.class public final Lcom/google/android/gms/internal/measurement/zzco; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation build Landroid/annotation/TargetApi; value = 0x18 .end annotation # static fields .field private static final zza:Ljava/lang/reflect/Method; .annotation build Landroidx/annotation/Nullable; .end annotation .end field .field private static final zzb:Ljava/lang/reflect/Method; .annotation build Landroidx/annotation/Nullable; .end annotation .end field # instance fields .field private final zzc:Landroid/app/job/JobScheduler; # direct methods .method static constructor ()V .locals 1 .line 35 invoke-static {}, Lcom/google/android/gms/internal/measurement/zzco;->zzc()Ljava/lang/reflect/Method; move-result-object v0 sput-object v0, Lcom/google/android/gms/internal/measurement/zzco;->zza:Ljava/lang/reflect/Method; .line 36 invoke-static {}, Lcom/google/android/gms/internal/measurement/zzco;->zzb()Ljava/lang/reflect/Method; move-result-object v0 sput-object v0, Lcom/google/android/gms/internal/measurement/zzco;->zzb:Ljava/lang/reflect/Method; return-void .end method .method private constructor (Landroid/app/job/JobScheduler;)V .locals 0 .line 37 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Lcom/google/android/gms/internal/measurement/zzco;->zzc:Landroid/app/job/JobScheduler; return-void .end method .method private static zza()I .locals 4 sget-object v0, Lcom/google/android/gms/internal/measurement/zzco;->zzb:Ljava/lang/reflect/Method; const/4 v1, 0x0 if-eqz v0, :cond_1 :try_start_0 const-class v2, Landroid/os/UserHandle; new-array v3, v1, [Ljava/lang/Object; .line 2 invoke-virtual {v0, v2, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Integer; if-eqz v0, :cond_0 .line 3 invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I move-result v0 :try_end_0 .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0 return v0 :catch_0 move-exception v0 goto :goto_0 :catch_1 move-exception v0 goto :goto_0 :cond_0 return v1 :goto_0 const/4 v2, 0x6 const-string v3, "JobSchedulerCompat" .line 5 invoke-static {v3, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v2 if-eqz v2, :cond_1 const-string v2, "myUserId invocation illegal" .line 6 invoke-static {v3, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I :cond_1 return v1 .end method .method private final zza(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I .locals 5 sget-object v0, Lcom/google/android/gms/internal/measurement/zzco;->zza:Ljava/lang/reflect/Method; if-eqz v0, :cond_1 :try_start_0 iget-object v1, p0, Lcom/google/android/gms/internal/measurement/zzco;->zzc:Landroid/app/job/JobScheduler; const/4 v2, 0x4 new-array v2, v2, [Ljava/lang/Object; const/4 v3, 0x0 aput-object p1, v2, v3 const/4 v4, 0x1 aput-object p2, v2, v4 .line 10 invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p2 const/4 p3, 0x2 aput-object p2, v2, p3 const/4 p2, 0x3 aput-object p4, v2, p2 invoke-virtual {v0, v1, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p2 check-cast p2, Ljava/lang/Integer; if-eqz p2, :cond_0 .line 11 invoke-virtual {p2}, Ljava/lang/Integer;->intValue()I move-result p1 :try_end_0 .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0 return p1 :catch_0 move-exception p2 goto :goto_0 :catch_1 move-exception p2 goto :goto_0 :cond_0 return v3 :goto_0 const-string p3, "error calling scheduleAsPackage" .line 13 invoke-static {p4, p3, p2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I :cond_1 iget-object p2, p0, Lcom/google/android/gms/internal/measurement/zzco;->zzc:Landroid/app/job/JobScheduler; .line 14 invoke-virtual {p2, p1}, Landroid/app/job/JobScheduler;->schedule(Landroid/app/job/JobInfo;)I move-result p1 return p1 .end method .method public static zza(Landroid/content/Context;Landroid/app/job/JobInfo;Ljava/lang/String;Ljava/lang/String;)I .locals 2 const-string v0, "jobscheduler" .line 16 invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/app/job/JobScheduler; .line 17 invoke-static {v0}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/app/job/JobScheduler; sget-object v1, Lcom/google/android/gms/internal/measurement/zzco;->zza:Ljava/lang/reflect/Method; if-eqz v1, :cond_1 const-string v1, "android.permission.UPDATE_DEVICE_STATS" .line 19 invoke-virtual {p0, v1}, Landroid/content/Context;->checkSelfPermission(Ljava/lang/String;)I move-result p0 if-eqz p0, :cond_0 goto :goto_0 .line 21 :cond_0 new-instance p0, Lcom/google/android/gms/internal/measurement/zzco; invoke-direct {p0, v0}, Lcom/google/android/gms/internal/measurement/zzco;->(Landroid/app/job/JobScheduler;)V .line 22 invoke-static {}, Lcom/google/android/gms/internal/measurement/zzco;->zza()I move-result v0 invoke-direct {p0, p1, p2, v0, p3}, Lcom/google/android/gms/internal/measurement/zzco;->zza(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I move-result p0 return p0 .line 20 :cond_1 :goto_0 invoke-virtual {v0, p1}, Landroid/app/job/JobScheduler;->schedule(Landroid/app/job/JobInfo;)I move-result p0 return p0 .end method .method private static zzb()Ljava/lang/reflect/Method; .locals 3 .annotation build Landroidx/annotation/Nullable; .end annotation :try_start_0 const-class v0, Landroid/os/UserHandle; const-string v1, "myUserId" const/4 v2, 0x0 new-array v2, v2, [Ljava/lang/Class; .line 24 invoke-virtual {v0, v1, v2}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v0 :try_end_0 .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 return-object v0 :catch_0 const/4 v0, 0x6 const-string v1, "JobSchedulerCompat" .line 26 invoke-static {v1, v0}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v0 if-eqz v0, :cond_0 const-string v0, "No myUserId method available" .line 27 invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I :cond_0 const/4 v0, 0x0 return-object v0 .end method .method private static zzc()Ljava/lang/reflect/Method; .locals 6 .annotation build Landroidx/annotation/Nullable; .end annotation const-class v0, Ljava/lang/String; :try_start_0 const-class v1, Landroid/app/job/JobScheduler; const-string v2, "scheduleAsPackage" const/4 v3, 0x4 new-array v3, v3, [Ljava/lang/Class; const-class v4, Landroid/app/job/JobInfo; const/4 v5, 0x0 aput-object v4, v3, v5 const/4 v4, 0x1 aput-object v0, v3, v4 sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; const/4 v5, 0x2 aput-object v4, v3, v5 const/4 v4, 0x3 aput-object v0, v3, v4 .line 30 invoke-virtual {v1, v2, v3}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v0 :try_end_0 .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 return-object v0 :catch_0 const/4 v0, 0x6 const-string v1, "JobSchedulerCompat" .line 32 invoke-static {v1, v0}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v0 if-eqz v0, :cond_0 const-string v0, "No scheduleAsPackage method available, falling back to schedule" .line 33 invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I :cond_0 const/4 v0, 0x0 return-object v0 .end method