GcmAvailableHelper.smali
.class final Lcom/evernote/android/job/GcmAvailableHelper;
.super Ljava/lang/Object;
# static fields
.field private static final a:Lcom/evernote/android/job/util/JobCat;
.field private static final b:Z
.field private static c:I
.field private static d:Z
# direct methods
.method static constructor <clinit>()V
.registers 2
new-instance v0, Lcom/evernote/android/job/util/JobCat;
const-string v1, "GcmAvailableHelper"
invoke-direct {v0, v1}, Lcom/evernote/android/job/util/JobCat;-><init>(Ljava/lang/String;)V
sput-object v0, Lcom/evernote/android/job/GcmAvailableHelper;->a:Lcom/evernote/android/job/util/JobCat;
const/4 v0, -0x1
sput v0, Lcom/evernote/android/job/GcmAvailableHelper;->c:I
:try_start_c
const-string v0, "com.google.android.gms.gcm.GcmNetworkManager"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
:try_end_11
.catchall {:try_start_c .. :try_end_11} :catchall_13
const/4 v0, 0x1
goto :goto_14
:catchall_13
const/4 v0, 0x0
:goto_14
sput-boolean v0, Lcom/evernote/android/job/GcmAvailableHelper;->b:Z
return-void
.end method
.method private static a()Ljava/lang/String;
.registers 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-class v1, Lcom/evernote/android/job/gcm/JobProxyGcm;
invoke-virtual {v1}, Ljava/lang/Class;->getPackage()Ljava/lang/Package;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Package;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ".PlatformGcmService"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method private static b(Ljava/util/List;)Z
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Landroid/content/pm/ResolveInfo;",
">;)Z"
}
.end annotation
const/4 v0, 0x0
if-eqz p0, :cond_30
invoke-interface {p0}, Ljava/util/List;->isEmpty()Z
move-result v1
if-eqz v1, :cond_a
goto :goto_30
:cond_a
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_e
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_30
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/content/pm/ResolveInfo;
iget-object v2, v1, Landroid/content/pm/ResolveInfo;->serviceInfo:Landroid/content/pm/ServiceInfo;
if-eqz v2, :cond_e
iget-object v2, v2, Landroid/content/pm/ServiceInfo;->permission:Ljava/lang/String;
const-string v3, "com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_e
iget-object v1, v1, Landroid/content/pm/ResolveInfo;->serviceInfo:Landroid/content/pm/ServiceInfo;
iget-boolean v1, v1, Landroid/content/pm/ServiceInfo;->exported:Z
if-eqz v1, :cond_e
const/4 p0, 0x1
return p0
:cond_30
:goto_30
return v0
.end method
.method public static c(Landroid/content/Context;)Z
.registers 4
const/4 v0, 0x0
:try_start_1
sget-boolean v1, Lcom/evernote/android/job/GcmAvailableHelper;->d:Z
const/4 v2, 0x1
if-nez v1, :cond_d
sput-boolean v2, Lcom/evernote/android/job/GcmAvailableHelper;->d:Z
sget-boolean v1, Lcom/evernote/android/job/GcmAvailableHelper;->b:Z
invoke-static {p0, v1}, Lcom/evernote/android/job/GcmAvailableHelper;->e(Landroid/content/Context;Z)V
:cond_d
sget-boolean v1, Lcom/evernote/android/job/GcmAvailableHelper;->b:Z
if-eqz v1, :cond_22
invoke-static {}, Lcom/google/android/gms/common/GoogleApiAvailability;->getInstance()Lcom/google/android/gms/common/GoogleApiAvailability;
move-result-object v1
invoke-virtual {v1, p0}, Lcom/google/android/gms/common/GoogleApiAvailability;->isGooglePlayServicesAvailable(Landroid/content/Context;)I
move-result v1
if-nez v1, :cond_22
invoke-static {p0}, Lcom/evernote/android/job/GcmAvailableHelper;->d(Landroid/content/Context;)I
move-result p0
:try_end_1f
.catchall {:try_start_1 .. :try_end_1f} :catchall_22
if-nez p0, :cond_22
const/4 v0, 0x1
:catchall_22
:cond_22
return v0
.end method
.method private static d(Landroid/content/Context;)I
.registers 6
sget v0, Lcom/evernote/android/job/GcmAvailableHelper;->c:I
if-gez v0, :cond_57
const-class v0, Lcom/evernote/android/job/JobApi;
monitor-enter v0
:try_start_7
sget v1, Lcom/evernote/android/job/GcmAvailableHelper;->c:I
if-gez v1, :cond_52
new-instance v1, Landroid/content/Intent;
invoke-direct {v1}, Landroid/content/Intent;-><init>()V
new-instance v2, Landroid/content/ComponentName;
invoke-static {}, Lcom/evernote/android/job/GcmAvailableHelper;->a()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, p0, v3}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/String;)V
invoke-virtual {v1, v2}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v2
const/4 v3, 0x0
invoke-virtual {v2, v1, v3}, Landroid/content/pm/PackageManager;->queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;
move-result-object v1
invoke-static {v1}, Lcom/evernote/android/job/GcmAvailableHelper;->b(Ljava/util/List;)Z
move-result v1
const/4 v2, 0x1
if-nez v1, :cond_30
sput v2, Lcom/evernote/android/job/GcmAvailableHelper;->c:I
monitor-exit v0
return v2
:cond_30
new-instance v1, Landroid/content/Intent;
const-string v4, "com.google.android.gms.gcm.ACTION_TASK_READY"
invoke-direct {v1, v4}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v4}, Landroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object p0
invoke-virtual {p0, v1, v3}, Landroid/content/pm/PackageManager;->queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;
move-result-object p0
invoke-static {p0}, Lcom/evernote/android/job/GcmAvailableHelper;->b(Ljava/util/List;)Z
move-result p0
if-nez p0, :cond_50
sput v2, Lcom/evernote/android/job/GcmAvailableHelper;->c:I
monitor-exit v0
return v2
:cond_50
sput v3, Lcom/evernote/android/job/GcmAvailableHelper;->c:I
:cond_52
monitor-exit v0
goto :goto_57
:catchall_54
move-exception p0
monitor-exit v0
:try_end_56
.catchall {:try_start_7 .. :try_end_56} :catchall_54
throw p0
:cond_57
:goto_57
sget p0, Lcom/evernote/android/job/GcmAvailableHelper;->c:I
return p0
.end method
.method private static e(Landroid/content/Context;Z)V
.registers 6
:try_start_0
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
new-instance v1, Landroid/content/ComponentName;
invoke-static {}, Lcom/evernote/android/job/GcmAvailableHelper;->a()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, p0, v2}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/String;)V
invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->getComponentEnabledSetting(Landroid/content/ComponentName;)I
move-result p0
const/4 v2, 0x1
if-eqz p0, :cond_27
const/4 v3, 0x2
if-eq p0, v2, :cond_1a
if-eq p0, v3, :cond_27
goto :goto_33
:cond_1a
if-nez p1, :cond_33
invoke-virtual {v0, v1, v3, v2}, Landroid/content/pm/PackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;II)V
sget-object p0, Lcom/evernote/android/job/GcmAvailableHelper;->a:Lcom/evernote/android/job/util/JobCat;
const-string p1, "GCM service disabled"
invoke-virtual {p0, p1}, Lcom/evernote/android/job/util/JobCat;->h(Ljava/lang/String;)V
goto :goto_33
:cond_27
if-eqz p1, :cond_33
invoke-virtual {v0, v1, v2, v2}, Landroid/content/pm/PackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;II)V
sget-object p0, Lcom/evernote/android/job/GcmAvailableHelper;->a:Lcom/evernote/android/job/util/JobCat;
const-string p1, "GCM service enabled"
invoke-virtual {p0, p1}, Lcom/evernote/android/job/util/JobCat;->h(Ljava/lang/String;)V
:try_end_33
.catchall {:try_start_0 .. :try_end_33} :catchall_33
:catchall_33
:cond_33
:goto_33
return-void
.end method