zzh.smali
.class final Lcom/google/android/gms/common/internal/zzh;
.super Lcom/google/android/gms/common/internal/GmsClientSupervisor;
# interfaces
.implements Landroid/os/Handler$Callback;
# instance fields
.field private final mHandler:Landroid/os/Handler;
.field private final zzau:Landroid/content/Context;
.field private final zztr:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap",
"<",
"Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;",
"Lcom/google/android/gms/common/internal/zzi;",
">;"
}
.end annotation
.end field
.field private final zzts:Lcom/google/android/gms/common/stats/ConnectionTracker;
.field private final zztt:J
.field private final zztu:J
# direct methods
.method constructor <init>(Landroid/content/Context;)V
.registers 4
invoke-direct {p0}, Lcom/google/android/gms/common/internal/GmsClientSupervisor;-><init>()V
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
iput-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zzau:Landroid/content/Context;
new-instance v0, Landroid/os/Handler;
invoke-virtual {p1}, Landroid/content/Context;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1, p0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
iput-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->mHandler:Landroid/os/Handler;
invoke-static {}, Lcom/google/android/gms/common/stats/ConnectionTracker;->getInstance()Lcom/google/android/gms/common/stats/ConnectionTracker;
move-result-object v0
iput-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zzts:Lcom/google/android/gms/common/stats/ConnectionTracker;
const-wide/16 v0, 0x1388
iput-wide v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztt:J
const-wide/32 v0, 0x493e0
iput-wide v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztu:J
return-void
.end method
.method static synthetic zza(Lcom/google/android/gms/common/internal/zzh;)Ljava/util/HashMap;
.registers 2
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
return-object v0
.end method
.method static synthetic zzb(Lcom/google/android/gms/common/internal/zzh;)Landroid/os/Handler;
.registers 2
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->mHandler:Landroid/os/Handler;
return-object v0
.end method
.method static synthetic zzc(Lcom/google/android/gms/common/internal/zzh;)Landroid/content/Context;
.registers 2
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zzau:Landroid/content/Context;
return-object v0
.end method
.method static synthetic zzd(Lcom/google/android/gms/common/internal/zzh;)Lcom/google/android/gms/common/stats/ConnectionTracker;
.registers 2
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zzts:Lcom/google/android/gms/common/stats/ConnectionTracker;
return-object v0
.end method
.method static synthetic zze(Lcom/google/android/gms/common/internal/zzh;)J
.registers 3
iget-wide v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztu:J
return-wide v0
.end method
# virtual methods
.method protected final bindService(Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;Landroid/content/ServiceConnection;Ljava/lang/String;)Z
.registers 9
const-string v0, "ServiceConnection must not be null"
invoke-static {p2, v0}, Lcom/google/android/gms/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v1, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
monitor-enter v1
:try_start_8
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/gms/common/internal/zzi;
if-nez v0, :cond_28
new-instance v0, Lcom/google/android/gms/common/internal/zzi;
invoke-direct {v0, p0, p1}, Lcom/google/android/gms/common/internal/zzi;-><init>(Lcom/google/android/gms/common/internal/zzh;Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;)V
invoke-virtual {v0, p2, p3}, Lcom/google/android/gms/common/internal/zzi;->zza(Landroid/content/ServiceConnection;Ljava/lang/String;)V
invoke-virtual {v0, p3}, Lcom/google/android/gms/common/internal/zzi;->zzj(Ljava/lang/String;)V
iget-object v2, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {v2, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:goto_22
invoke-virtual {v0}, Lcom/google/android/gms/common/internal/zzi;->isBound()Z
move-result v0
monitor-exit v1
return v0
:cond_28
iget-object v2, p0, Lcom/google/android/gms/common/internal/zzh;->mHandler:Landroid/os/Handler;
const/4 v3, 0x0
invoke-virtual {v2, v3, p1}, Landroid/os/Handler;->removeMessages(ILjava/lang/Object;)V
invoke-virtual {v0, p2}, Lcom/google/android/gms/common/internal/zzi;->zza(Landroid/content/ServiceConnection;)Z
move-result v2
if-eqz v2, :cond_5e
new-instance v0, Ljava/lang/IllegalStateException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x51
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "Trying to bind a GmsServiceConnection that was already connected before. config="
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:catchall_5b
move-exception v0
monitor-exit v1
:try_end_5d
.catchall {:try_start_8 .. :try_end_5d} :catchall_5b
throw v0
:cond_5e
:try_start_5e
invoke-virtual {v0, p2, p3}, Lcom/google/android/gms/common/internal/zzi;->zza(Landroid/content/ServiceConnection;Ljava/lang/String;)V
invoke-virtual {v0}, Lcom/google/android/gms/common/internal/zzi;->getState()I
move-result v2
packed-switch v2, :pswitch_data_7a
goto :goto_22
:pswitch_69
invoke-virtual {v0}, Lcom/google/android/gms/common/internal/zzi;->getComponentName()Landroid/content/ComponentName;
move-result-object v2
invoke-virtual {v0}, Lcom/google/android/gms/common/internal/zzi;->getBinder()Landroid/os/IBinder;
move-result-object v3
invoke-interface {p2, v2, v3}, Landroid/content/ServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
goto :goto_22
:pswitch_75
invoke-virtual {v0, p3}, Lcom/google/android/gms/common/internal/zzi;->zzj(Ljava/lang/String;)V
:try_end_78
.catchall {:try_start_5e .. :try_end_78} :catchall_5b
goto :goto_22
nop
:pswitch_data_7a
.packed-switch 0x1
:pswitch_69
:pswitch_75
.end packed-switch
.end method
.method public final handleMessage(Landroid/os/Message;)Z
.registers 10
const/4 v2, 0x1
iget v0, p1, Landroid/os/Message;->what:I
packed-switch v0, :pswitch_data_9c
const/4 v0, 0x0
:goto_7
return v0
:pswitch_8
iget-object v3, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
monitor-enter v3
:try_start_b
iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast v0, Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;
iget-object v1, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {v1, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/gms/common/internal/zzi;
if-eqz v1, :cond_2f
invoke-virtual {v1}, Lcom/google/android/gms/common/internal/zzi;->zzcv()Z
move-result v4
if-eqz v4, :cond_2f
invoke-virtual {v1}, Lcom/google/android/gms/common/internal/zzi;->isBound()Z
move-result v4
if-eqz v4, :cond_2a
const-string v4, "GmsClientSupervisor"
invoke-virtual {v1, v4}, Lcom/google/android/gms/common/internal/zzi;->zzk(Ljava/lang/String;)V
:cond_2a
iget-object v1, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {v1, v0}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
:cond_2f
monitor-exit v3
move v0, v2
goto :goto_7
:catchall_32
move-exception v0
monitor-exit v3
:try_end_34
.catchall {:try_start_b .. :try_end_34} :catchall_32
throw v0
:pswitch_35
iget-object v4, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
monitor-enter v4
:try_start_38
iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast v0, Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;
iget-object v1, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {v1, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/gms/common/internal/zzi;
if-eqz v1, :cond_93
invoke-virtual {v1}, Lcom/google/android/gms/common/internal/zzi;->getState()I
move-result v3
const/4 v5, 0x3
if-ne v3, v5, :cond_93
const-string v3, "GmsClientSupervisor"
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/String;->length()I
move-result v6
add-int/lit8 v6, v6, 0x2f
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7, v6}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v6, "Timeout waiting for ServiceConnection callback "
invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
new-instance v6, Ljava/lang/Exception;
invoke-direct {v6}, Ljava/lang/Exception;-><init>()V
invoke-static {v3, v5, v6}, Landroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
invoke-virtual {v1}, Lcom/google/android/gms/common/internal/zzi;->getComponentName()Landroid/content/ComponentName;
move-result-object v3
if-nez v3, :cond_82
invoke-virtual {v0}, Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;->getComponentName()Landroid/content/ComponentName;
move-result-object v3
:cond_82
if-nez v3, :cond_9a
new-instance v3, Landroid/content/ComponentName;
invoke-virtual {v0}, Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;->getPackage()Ljava/lang/String;
move-result-object v0
const-string v5, "unknown"
invoke-direct {v3, v0, v5}, Landroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V
move-object v0, v3
:goto_90
invoke-virtual {v1, v0}, Lcom/google/android/gms/common/internal/zzi;->onServiceDisconnected(Landroid/content/ComponentName;)V
:cond_93
monitor-exit v4
move v0, v2
goto/16 :goto_7
:catchall_97
move-exception v0
monitor-exit v4
:try_end_99
.catchall {:try_start_38 .. :try_end_99} :catchall_97
throw v0
:cond_9a
move-object v0, v3
goto :goto_90
:pswitch_data_9c
.packed-switch 0x0
:pswitch_8
:pswitch_35
.end packed-switch
.end method
.method public final resetForTesting()V
.registers 7
.annotation build Lcom/google/android/gms/common/util/VisibleForTesting;
.end annotation
iget-object v1, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
monitor-enter v1
:try_start_3
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/util/HashMap;->values()Ljava/util/Collection;
move-result-object v0
invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v2
:cond_d
:goto_d
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_32
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/gms/common/internal/zzi;
iget-object v3, p0, Lcom/google/android/gms/common/internal/zzh;->mHandler:Landroid/os/Handler;
const/4 v4, 0x0
invoke-static {v0}, Lcom/google/android/gms/common/internal/zzi;->zza(Lcom/google/android/gms/common/internal/zzi;)Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;
move-result-object v5
invoke-virtual {v3, v4, v5}, Landroid/os/Handler;->removeMessages(ILjava/lang/Object;)V
invoke-virtual {v0}, Lcom/google/android/gms/common/internal/zzi;->isBound()Z
move-result v3
if-eqz v3, :cond_d
const-string v3, "GmsClientSupervisor"
invoke-virtual {v0, v3}, Lcom/google/android/gms/common/internal/zzi;->zzk(Ljava/lang/String;)V
goto :goto_d
:catchall_2f
move-exception v0
monitor-exit v1
:try_end_31
.catchall {:try_start_3 .. :try_end_31} :catchall_2f
throw v0
:cond_32
:try_start_32
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/util/HashMap;->clear()V
monitor-exit v1
:try_end_38
.catchall {:try_start_32 .. :try_end_38} :catchall_2f
return-void
.end method
.method protected final unbindService(Lcom/google/android/gms/common/internal/GmsClientSupervisor$ConnectionStatusConfig;Landroid/content/ServiceConnection;Ljava/lang/String;)V
.registers 10
const-string v0, "ServiceConnection must not be null"
invoke-static {p2, v0}, Lcom/google/android/gms/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v1, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
monitor-enter v1
:try_start_8
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->zztr:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/gms/common/internal/zzi;
if-nez v0, :cond_3c
new-instance v0, Ljava/lang/IllegalStateException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x32
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "Nonexistent connection status for service config: "
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:catchall_39
move-exception v0
monitor-exit v1
:try_end_3b
.catchall {:try_start_8 .. :try_end_3b} :catchall_39
throw v0
:cond_3c
:try_start_3c
invoke-virtual {v0, p2}, Lcom/google/android/gms/common/internal/zzi;->zza(Landroid/content/ServiceConnection;)Z
move-result v2
if-nez v2, :cond_69
new-instance v0, Ljava/lang/IllegalStateException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x4c
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "Trying to unbind a GmsServiceConnection that was not bound before. config="
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_69
invoke-virtual {v0, p2, p3}, Lcom/google/android/gms/common/internal/zzi;->zzb(Landroid/content/ServiceConnection;Ljava/lang/String;)V
invoke-virtual {v0}, Lcom/google/android/gms/common/internal/zzi;->zzcv()Z
move-result v0
if-eqz v0, :cond_80
iget-object v0, p0, Lcom/google/android/gms/common/internal/zzh;->mHandler:Landroid/os/Handler;
const/4 v2, 0x0
invoke-virtual {v0, v2, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
iget-object v2, p0, Lcom/google/android/gms/common/internal/zzh;->mHandler:Landroid/os/Handler;
iget-wide v4, p0, Lcom/google/android/gms/common/internal/zzh;->zztt:J
invoke-virtual {v2, v0, v4, v5}, Landroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z
:cond_80
monitor-exit v1
:try_end_81
.catchall {:try_start_3c .. :try_end_81} :catchall_39
return-void
.end method