GCMPush.smali

.class public Lio/rong/push/platform/google/GCMPush;
.super Ljava/lang/Object;
.source "GCMPush.java"

# interfaces
.implements Lio/rong/push/platform/IPush;


# instance fields
.field private final TAG:Ljava/lang/String;


# direct methods
.method public constructor <init>()V
    .registers 2

    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 2
    const-class v0, Lio/rong/push/platform/google/GCMPush;

    invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lio/rong/push/platform/google/GCMPush;->TAG:Ljava/lang/String;

    return-void
.end method


# virtual methods
.method public register(Landroid/content/Context;Lio/rong/push/pushconfig/PushConfig;)V
    .registers 10

    .line 1
    invoke-static {p1}, Lio/rong/push/core/PushUtils;->checkPlayServices(Landroid/content/Context;)J

    move-result-wide v4

    const-wide/16 v0, 0x0

    cmp-long p2, v4, v0

    if-eqz p2, :cond_17

    .line 2
    invoke-static {}, Lio/rong/push/PushManager;->getInstance()Lio/rong/push/PushManager;

    move-result-object v0

    sget-object v2, Lio/rong/push/PushType;->GOOGLE_GCM:Lio/rong/push/PushType;

    const-string v3, "checkPlayServices"

    move-object v1, p1

    invoke-virtual/range {v0 .. v5}, Lio/rong/push/PushManager;->onErrorResponse(Landroid/content/Context;Lio/rong/push/PushType;Ljava/lang/String;J)V

    goto :goto_61

    .line 3
    :cond_17
    invoke-static {p1}, Lcom/google/android/gms/iid/InstanceID;->getInstance(Landroid/content/Context;)Lcom/google/android/gms/iid/InstanceID;

    move-result-object p2

    .line 4
    :try_start_1b
    invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v0

    invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v1

    const-string v2, "gcm_defaultSenderId"

    const-string v3, "string"

    invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v2, v3, v4}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I

    move-result v1

    invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

    move-result-object v0

    const-string v1, "GCM"

    const/4 v2, 0x0

    invoke-virtual {p2, v0, v1, v2}, Lcom/google/android/gms/iid/InstanceID;->getToken(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Ljava/lang/String;

    move-result-object p2

    .line 5
    invoke-static {}, Lio/rong/push/PushManager;->getInstance()Lio/rong/push/PushManager;

    move-result-object v0

    sget-object v1, Lio/rong/push/PushType;->GOOGLE_GCM:Lio/rong/push/PushType;

    invoke-virtual {v0, p1, v1, p2}, Lio/rong/push/PushManager;->onReceiveToken(Landroid/content/Context;Lio/rong/push/PushType;Ljava/lang/String;)V
    :try_end_43
    .catch Ljava/io/IOException; {:try_start_1b .. :try_end_43} :catch_44

    goto :goto_61

    :catch_44
    move-exception p2

    .line 6
    iget-object v0, p0, Lio/rong/push/platform/google/GCMPush;->TAG:Ljava/lang/String;

    invoke-virtual {p2}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object p2

    invoke-static {v0, p2}, Lio/rong/push/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)V

    .line 7
    invoke-static {}, Lio/rong/push/PushManager;->getInstance()Lio/rong/push/PushManager;

    move-result-object v1

    sget-object v3, Lio/rong/push/PushType;->GOOGLE_GCM:Lio/rong/push/PushType;

    sget-object p2, Lio/rong/push/PushErrorCode;->IO_EXCEPTION:Lio/rong/push/PushErrorCode;

    invoke-virtual {p2}, Lio/rong/push/PushErrorCode;->getCode()I

    move-result p2

    int-to-long v5, p2

    const-string v4, "checkPlayServices"

    move-object v2, p1

    invoke-virtual/range {v1 .. v6}, Lio/rong/push/PushManager;->onErrorResponse(Landroid/content/Context;Lio/rong/push/PushType;Ljava/lang/String;J)V

    :goto_61
    return-void
.end method