fi.smali
.class public final Lcom/xiaomi/push/fi;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/xiaomi/push/fi$a;
}
.end annotation
# static fields
.field private static a:Lcom/xiaomi/push/fi$a;
.field private static final b:Ljava/lang/String;
.field private static c:I
# direct methods
.method static constructor <clinit>()V
.registers 1
const-class v0, Lcom/xiaomi/push/service/XMJobService;
invoke-virtual {v0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/xiaomi/push/fi;->b:Ljava/lang/String;
const/4 v0, 0x0
sput v0, Lcom/xiaomi/push/fi;->c:I
return-void
.end method
.method public static declared-synchronized a()V
.registers 2
const-class v1, Lcom/xiaomi/push/fi;
monitor-enter v1
:try_start_3
sget-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
:try_end_5
.catchall {:try_start_3 .. :try_end_5} :catchall_f
if-nez v0, :cond_9
:goto_7
monitor-exit v1
return-void
:cond_9
:try_start_9
sget-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
invoke-interface {v0}, Lcom/xiaomi/push/fi$a;->a()V
:try_end_e
.catchall {:try_start_9 .. :try_end_e} :catchall_f
goto :goto_7
:catchall_f
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static a(Landroid/content/Context;)V
.registers 11
const/4 v0, 0x0
const/4 v1, 0x1
invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v4
const-string v2, "com.xiaomi.xmsf"
invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_1a
new-instance v0, Lcom/xiaomi/push/fj;
invoke-direct {v0, v4}, Lcom/xiaomi/push/fj;-><init>(Landroid/content/Context;)V
sput-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
:goto_19
return-void
:cond_1a
invoke-virtual {v4}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v2
:try_start_1e
invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
const/4 v5, 0x4
invoke-virtual {v2, v3, v5}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v2
iget-object v3, v2, Landroid/content/pm/PackageInfo;->services:[Landroid/content/pm/ServiceInfo;
if-eqz v3, :cond_e8
iget-object v5, v2, Landroid/content/pm/PackageInfo;->services:[Landroid/content/pm/ServiceInfo;
array-length v6, v5
move v3, v0
:goto_2f
if-ge v3, v6, :cond_e8
aget-object v7, v5, v3
const-string v2, "android.permission.BIND_JOB_SERVICE"
iget-object v8, v7, Landroid/content/pm/ServiceInfo;->permission:Ljava/lang/String;
invoke-virtual {v2, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_98
sget-object v2, Lcom/xiaomi/push/fi;->b:Ljava/lang/String;
iget-object v8, v7, Landroid/content/pm/ServiceInfo;->name:Ljava/lang/String;
invoke-virtual {v2, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
:try_end_44
.catch Ljava/lang/Exception; {:try_start_1e .. :try_end_44} :catch_b3
move-result v2
if-eqz v2, :cond_80
move v0, v1
:cond_48
:goto_48
if-ne v0, v1, :cond_98
move v1, v0
:cond_4b
:goto_4b
if-nez v1, :cond_d3
invoke-static {v4}, Lcom/xiaomi/push/kk;->b(Landroid/content/Context;)Z
move-result v0
if-eqz v0, :cond_d3
new-instance v0, Ljava/lang/RuntimeException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Should export service: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
sget-object v2, Lcom/xiaomi/push/fi;->b:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " with permission "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "android.permission.BIND_JOB_SERVICE"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " in AndroidManifest.xml file"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:cond_80
:try_start_80
iget-object v2, v7, Landroid/content/pm/ServiceInfo;->name:Ljava/lang/String;
invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v2
sget-object v8, Lcom/xiaomi/push/fi;->b:Ljava/lang/String;
invoke-virtual {v2}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v8, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
:try_end_93
.catch Ljava/lang/Exception; {:try_start_80 .. :try_end_93} :catch_e5
move-result v2
if-eqz v2, :cond_48
move v0, v1
goto :goto_48
:cond_98
move v2, v0
:try_start_99
sget-object v0, Lcom/xiaomi/push/fi;->b:Ljava/lang/String;
iget-object v8, v7, Landroid/content/pm/ServiceInfo;->name:Ljava/lang/String;
invoke-virtual {v0, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_ad
const-string v0, "android.permission.BIND_JOB_SERVICE"
iget-object v7, v7, Landroid/content/pm/ServiceInfo;->permission:Ljava/lang/String;
invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
:try_end_aa
.catch Ljava/lang/Exception; {:try_start_99 .. :try_end_aa} :catch_e2
move-result v0
if-nez v0, :cond_4b
:cond_ad
add-int/lit8 v0, v3, 0x1
move v3, v0
move v0, v2
goto/16 :goto_2f
:catch_b3
move-exception v1
move-object v9, v1
move v1, v0
move-object v0, v9
:goto_b7
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "check service err : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/xiaomi/a/a/a/c;->a(Ljava/lang/String;)V
goto/16 :goto_4b
:cond_d3
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_d9
:cond_d9
new-instance v0, Lcom/xiaomi/push/fj;
invoke-direct {v0, v4}, Lcom/xiaomi/push/fj;-><init>(Landroid/content/Context;)V
sput-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
goto/16 :goto_19
:catch_e2
move-exception v0
move v1, v2
goto :goto_b7
:catch_e5
move-exception v2
goto/16 :goto_48
:cond_e8
move v1, v0
goto/16 :goto_4b
.end method
.method public static declared-synchronized a(Landroid/content/Context;I)V
.registers 7
const/4 v4, 0x2
const-class v1, Lcom/xiaomi/push/fi;
monitor-enter v1
:try_start_4
sget v0, Lcom/xiaomi/push/fi;->c:I
const-string v2, "com.xiaomi.xmsf"
invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_17
if-ne p1, v4, :cond_2b
const/4 v2, 0x2
sput v2, Lcom/xiaomi/push/fi;->c:I
:cond_17
:goto_17
sget v2, Lcom/xiaomi/push/fi;->c:I
if-eq v0, v2, :cond_29
sget v0, Lcom/xiaomi/push/fi;->c:I
if-ne v0, v4, :cond_29
invoke-static {}, Lcom/xiaomi/push/fi;->a()V
new-instance v0, Lcom/xiaomi/push/fl;
invoke-direct {v0, p0}, Lcom/xiaomi/push/fl;-><init>(Landroid/content/Context;)V
sput-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
:try_end_29
.catchall {:try_start_4 .. :try_end_29} :catchall_2f
:cond_29
monitor-exit v1
return-void
:cond_2b
const/4 v2, 0x0
:try_start_2c
sput v2, Lcom/xiaomi/push/fi;->c:I
:try_end_2e
.catchall {:try_start_2c .. :try_end_2e} :catchall_2f
goto :goto_17
:catchall_2f
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized a(Z)V
.registers 3
const-class v1, Lcom/xiaomi/push/fi;
monitor-enter v1
:try_start_3
sget-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
if-nez v0, :cond_e
const-string v0, "timer is not initialized"
invoke-static {v0}, Lcom/xiaomi/a/a/a/c;->a(Ljava/lang/String;)V
:try_end_c
.catchall {:try_start_3 .. :try_end_c} :catchall_14
:goto_c
monitor-exit v1
return-void
:cond_e
:try_start_e
sget-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
invoke-interface {v0, p0}, Lcom/xiaomi/push/fi$a;->a(Z)V
:try_end_13
.catchall {:try_start_e .. :try_end_13} :catchall_14
goto :goto_c
:catchall_14
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized b()Z
.registers 2
const-class v1, Lcom/xiaomi/push/fi;
monitor-enter v1
:try_start_3
sget-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
:try_end_5
.catchall {:try_start_3 .. :try_end_5} :catchall_11
if-nez v0, :cond_a
const/4 v0, 0x0
:goto_8
monitor-exit v1
return v0
:cond_a
:try_start_a
sget-object v0, Lcom/xiaomi/push/fi;->a:Lcom/xiaomi/push/fi$a;
invoke-interface {v0}, Lcom/xiaomi/push/fi$a;->b()Z
:try_end_f
.catchall {:try_start_a .. :try_end_f} :catchall_11
move-result v0
goto :goto_8
:catchall_11
move-exception v0
monitor-exit v1
throw v0
.end method