.class public Lcom/google/android/gms/drive/events/DriveEventService; .super Landroid/app/Service; .source "SourceFile" # interfaces .implements Lcom/google/android/gms/drive/events/ChangeListener; .implements Lcom/google/android/gms/drive/events/CompletionListener; .implements Lcom/google/android/gms/drive/events/zzd; .implements Lcom/google/android/gms/drive/events/zzi; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/google/android/gms/drive/events/DriveEventService$zzb;, Lcom/google/android/gms/drive/events/DriveEventService$zza; } .end annotation # static fields .field public static final ACTION_HANDLE_EVENT:Ljava/lang/String; = "com.google.android.gms.drive.events.HANDLE_EVENT" .field private static final zzbz:Lcom/google/android/gms/common/internal/GmsLogger; # instance fields .field private final name:Ljava/lang/String; .field private zzcj:Ljava/util/concurrent/CountDownLatch; .field zzck:Lcom/google/android/gms/drive/events/DriveEventService$zza; .annotation build Lcom/google/android/gms/common/util/VisibleForTesting; .end annotation .end field .field zzcl:Z .field private zzcm:I .annotation build Lcom/google/android/gms/common/util/VisibleForTesting; .end annotation .end field # direct methods .method static constructor ()V .locals 3 .line 72 new-instance v0, Lcom/google/android/gms/common/internal/GmsLogger; const-string v1, "DriveEventService" const-string v2, "" invoke-direct {v0, v1, v2}, Lcom/google/android/gms/common/internal/GmsLogger;->(Ljava/lang/String;Ljava/lang/String;)V sput-object v0, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; return-void .end method .method public constructor ()V .locals 1 const-string v0, "DriveEventService" .line 6 invoke-direct {p0, v0}, Lcom/google/android/gms/drive/events/DriveEventService;->(Ljava/lang/String;)V return-void .end method .method public constructor (Ljava/lang/String;)V .locals 1 .line 1 invoke-direct {p0}, Landroid/app/Service;->()V const/4 v0, 0x0 iput-boolean v0, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcl:Z const/4 v0, -0x1 iput v0, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcm:I iput-object p1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->name:Ljava/lang/String; return-void .end method .method public static synthetic zza(Lcom/google/android/gms/drive/events/DriveEventService;)V .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/SecurityException; } .end annotation .line 70 invoke-direct {p0}, Lcom/google/android/gms/drive/events/DriveEventService;->zzw()V return-void .end method .method public static synthetic zza(Lcom/google/android/gms/drive/events/DriveEventService;Lcom/google/android/gms/internal/drive/zzfp;)V .locals 0 .line 68 invoke-direct {p0, p1}, Lcom/google/android/gms/drive/events/DriveEventService;->zza(Lcom/google/android/gms/internal/drive/zzfp;)V return-void .end method .method private final zza(Lcom/google/android/gms/internal/drive/zzfp;)V .locals 7 const-string v0, "DriveEventService" .line 45 invoke-virtual {p1}, Lcom/google/android/gms/internal/drive/zzfp;->zzat()Lcom/google/android/gms/drive/events/DriveEvent; move-result-object p1 .line 46 :try_start_0 invoke-interface {p1}, Lcom/google/android/gms/drive/events/DriveEvent;->getType()I move-result v1 const/4 v2, 0x1 if-eq v1, v2, :cond_3 const/4 v3, 0x2 if-eq v1, v3, :cond_2 const/4 v4, 0x4 if-eq v1, v4, :cond_1 const/4 v4, 0x7 if-eq v1, v4, :cond_0 sget-object v1, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; const-string v2, "Unhandled event: %s" filled-new-array {p1}, [Ljava/lang/Object; move-result-object p1 .line 56 invoke-virtual {v1, v0, v2, p1}, Lcom/google/android/gms/common/internal/GmsLogger;->wfmt(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V return-void :catch_0 move-exception p1 goto :goto_0 .line 53 :cond_0 check-cast p1, Lcom/google/android/gms/drive/events/zzv; sget-object v1, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; const-string v4, "Unhandled transfer state event in %s: %s" new-array v3, v3, [Ljava/lang/Object; iget-object v5, p0, Lcom/google/android/gms/drive/events/DriveEventService;->name:Ljava/lang/String; const/4 v6, 0x0 aput-object v5, v3, v6 aput-object p1, v3, v2 .line 54 invoke-virtual {v1, v0, v4, v3}, Lcom/google/android/gms/common/internal/GmsLogger;->wfmt(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V return-void .line 51 :cond_1 check-cast p1, Lcom/google/android/gms/drive/events/zzb; invoke-virtual {p0, p1}, Lcom/google/android/gms/drive/events/DriveEventService;->zza(Lcom/google/android/gms/drive/events/zzb;)V return-void .line 49 :cond_2 check-cast p1, Lcom/google/android/gms/drive/events/CompletionEvent; invoke-virtual {p0, p1}, Lcom/google/android/gms/drive/events/DriveEventService;->onCompletion(Lcom/google/android/gms/drive/events/CompletionEvent;)V return-void .line 47 :cond_3 check-cast p1, Lcom/google/android/gms/drive/events/ChangeEvent; invoke-virtual {p0, p1}, Lcom/google/android/gms/drive/events/DriveEventService;->onChange(Lcom/google/android/gms/drive/events/ChangeEvent;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 return-void :goto_0 sget-object v1, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; iget-object v2, p0, Lcom/google/android/gms/drive/events/DriveEventService;->name:Ljava/lang/String; filled-new-array {v2}, [Ljava/lang/Object; move-result-object v2 const-string v3, "Error handling event in %s" .line 59 invoke-static {v3, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v0, v2, p1}, Lcom/google/android/gms/common/internal/GmsLogger;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V return-void .end method .method public static synthetic zzb(Lcom/google/android/gms/drive/events/DriveEventService;)Ljava/util/concurrent/CountDownLatch; .locals 0 .line 71 iget-object p0, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcj:Ljava/util/concurrent/CountDownLatch; return-object p0 .end method .method private final zzw()V .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/SecurityException; } .end annotation .line 61 invoke-virtual {p0}, Lcom/google/android/gms/drive/events/DriveEventService;->getCallingUid()I move-result v0 iget v1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcm:I if-ne v0, v1, :cond_0 return-void .line 64 :cond_0 invoke-static {p0, v0}, Lcom/google/android/gms/common/util/UidVerifier;->isGooglePlayServicesUid(Landroid/content/Context;I)Z move-result v1 if-eqz v1, :cond_1 iput v0, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcm:I return-void .line 67 :cond_1 new-instance v0, Ljava/lang/SecurityException; const-string v1, "Caller is not GooglePlayServices" invoke-direct {v0, v1}, Ljava/lang/SecurityException;->(Ljava/lang/String;)V throw v0 .end method .method public static synthetic zzx()Lcom/google/android/gms/common/internal/GmsLogger; .locals 1 sget-object v0, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; return-object v0 .end method # virtual methods .method public getCallingUid()I .locals 1 .annotation build Lcom/google/android/gms/common/util/VisibleForTesting; .end annotation .line 44 invoke-static {}, Landroid/os/Binder;->getCallingUid()I move-result v0 return v0 .end method .method public final declared-synchronized onBind(Landroid/content/Intent;)Landroid/os/IBinder; .locals 4 monitor-enter p0 :try_start_0 const-string v0, "com.google.android.gms.drive.events.HANDLE_EVENT" .line 8 invoke-virtual {p1}, Landroid/content/Intent;->getAction()Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 const/4 v0, 0x0 if-eqz p1, :cond_1 iget-object p1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzck:Lcom/google/android/gms/drive/events/DriveEventService$zza; if-nez p1, :cond_0 iget-boolean p1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcl:Z if-nez p1, :cond_0 const/4 p1, 0x1 iput-boolean p1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcl:Z .line 11 new-instance v1, Ljava/util/concurrent/CountDownLatch; invoke-direct {v1, p1}, Ljava/util/concurrent/CountDownLatch;->(I)V .line 12 new-instance v2, Ljava/util/concurrent/CountDownLatch; invoke-direct {v2, p1}, Ljava/util/concurrent/CountDownLatch;->(I)V iput-object v2, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcj:Ljava/util/concurrent/CountDownLatch; .line 13 new-instance p1, Lcom/google/android/gms/drive/events/zzh; invoke-direct {p1, p0, v1}, Lcom/google/android/gms/drive/events/zzh;->(Lcom/google/android/gms/drive/events/DriveEventService;Ljava/util/concurrent/CountDownLatch;)V .line 14 invoke-virtual {p1}, Ljava/lang/Thread;->start()V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 15 :try_start_1 sget-object p1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; const-wide/16 v2, 0x1388 .line 16 invoke-virtual {v1, v2, v3, p1}, Ljava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z move-result p1 if-nez p1, :cond_0 sget-object p1, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; const-string v1, "DriveEventService" const-string v2, "Failed to synchronously initialize event handler." .line 18 invoke-virtual {p1, v1, v2}, Lcom/google/android/gms/common/internal/GmsLogger;->e(Ljava/lang/String;Ljava/lang/String;)V :try_end_1 .catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 goto :goto_0 :catchall_0 move-exception p1 goto :goto_1 :catch_0 move-exception p1 .line 21 :try_start_2 new-instance v0, Ljava/lang/RuntimeException; const-string v1, "Unable to start event handler" invoke-direct {v0, v1, p1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 .line 22 :cond_0 :goto_0 new-instance p1, Lcom/google/android/gms/drive/events/DriveEventService$zzb; invoke-direct {p1, p0, v0}, Lcom/google/android/gms/drive/events/DriveEventService$zzb;->(Lcom/google/android/gms/drive/events/DriveEventService;Lcom/google/android/gms/drive/events/zzh;)V invoke-virtual {p1}, Lcom/google/android/gms/internal/drive/zzb;->asBinder()Landroid/os/IBinder; move-result-object p1 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 monitor-exit p0 return-object p1 .line 23 :cond_1 monitor-exit p0 return-object v0 :goto_1 monitor-exit p0 throw p1 .end method .method public onChange(Lcom/google/android/gms/drive/events/ChangeEvent;)V .locals 3 sget-object v0, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; iget-object v1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->name:Ljava/lang/String; filled-new-array {v1, p1}, [Ljava/lang/Object; move-result-object p1 const-string v1, "DriveEventService" const-string v2, "Unhandled change event in %s: %s" .line 38 invoke-virtual {v0, v1, v2, p1}, Lcom/google/android/gms/common/internal/GmsLogger;->wfmt(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V return-void .end method .method public onCompletion(Lcom/google/android/gms/drive/events/CompletionEvent;)V .locals 3 sget-object v0, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; iget-object v1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->name:Ljava/lang/String; filled-new-array {v1, p1}, [Ljava/lang/Object; move-result-object p1 const-string v1, "DriveEventService" const-string v2, "Unhandled completion event in %s: %s" .line 42 invoke-virtual {v0, v1, v2, p1}, Lcom/google/android/gms/common/internal/GmsLogger;->wfmt(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V return-void .end method .method public declared-synchronized onDestroy()V .locals 5 monitor-enter p0 :try_start_0 iget-object v0, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzck:Lcom/google/android/gms/drive/events/DriveEventService$zza; if-eqz v0, :cond_1 .line 26 invoke-static {v0}, Lcom/google/android/gms/drive/events/DriveEventService$zza;->zza(Lcom/google/android/gms/drive/events/DriveEventService$zza;)Landroid/os/Message; move-result-object v0 iget-object v1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzck:Lcom/google/android/gms/drive/events/DriveEventService$zza; .line 27 invoke-virtual {v1, v0}, Landroid/os/Handler;->sendMessage(Landroid/os/Message;)Z const/4 v0, 0x0 iput-object v0, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzck:Lcom/google/android/gms/drive/events/DriveEventService$zza; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 :try_start_1 iget-object v1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcj:Ljava/util/concurrent/CountDownLatch; .line 29 sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; const-wide/16 v3, 0x1388 .line 30 invoke-virtual {v1, v3, v4, v2}, Ljava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z move-result v1 if-nez v1, :cond_0 sget-object v1, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; const-string v2, "DriveEventService" const-string v3, "Failed to synchronously quit event handler. Will quit itself" .line 32 invoke-virtual {v1, v2, v3}, Lcom/google/android/gms/common/internal/GmsLogger;->w(Ljava/lang/String;Ljava/lang/String;)V :try_end_1 .catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 goto :goto_0 :catchall_0 move-exception v0 goto :goto_1 :catch_0 :cond_0 :goto_0 :try_start_2 iput-object v0, p0, Lcom/google/android/gms/drive/events/DriveEventService;->zzcj:Ljava/util/concurrent/CountDownLatch; .line 36 :cond_1 invoke-super {p0}, Landroid/app/Service;->onDestroy()V :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 .line 37 monitor-exit p0 return-void :goto_1 monitor-exit p0 throw v0 .end method .method public onUnbind(Landroid/content/Intent;)Z .locals 0 const/4 p1, 0x1 return p1 .end method .method public final zza(Lcom/google/android/gms/drive/events/zzb;)V .locals 3 .annotation build Lcom/google/android/gms/common/internal/ShowFirstParty; .end annotation sget-object v0, Lcom/google/android/gms/drive/events/DriveEventService;->zzbz:Lcom/google/android/gms/common/internal/GmsLogger; iget-object v1, p0, Lcom/google/android/gms/drive/events/DriveEventService;->name:Ljava/lang/String; filled-new-array {v1, p1}, [Ljava/lang/Object; move-result-object p1 const-string v1, "DriveEventService" const-string v2, "Unhandled changes available event in %s: %s" .line 40 invoke-virtual {v0, v1, v2, p1}, Lcom/google/android/gms/common/internal/GmsLogger;->wfmt(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V return-void .end method