.class public final Lcom/google/android/gms/internal/ads/zzdvx; .super Lcom/google/android/gms/internal/ads/zzfqz; .source "SourceFile" # instance fields .field private final zza:Landroid/content/Context; .field private zzb:Landroid/hardware/SensorManager; .field private zzc:Landroid/hardware/Sensor; .field private zzd:J .field private zze:I .field private zzf:Lcom/google/android/gms/internal/ads/zzdvw; .field private zzg:Z # direct methods .method public constructor (Landroid/content/Context;)V .locals 2 const-string v0, "ShakeDetector" const-string v1, "ads" .line 1 invoke-direct {p0, v0, v1}, Lcom/google/android/gms/internal/ads/zzfqz;->(Ljava/lang/String;Ljava/lang/String;)V iput-object p1, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zza:Landroid/content/Context; return-void .end method # virtual methods .method public final zza(Landroid/hardware/SensorEvent;)V .locals 9 .line 1 sget-object v0, Lcom/google/android/gms/internal/ads/zzbcl;->zziR:Lcom/google/android/gms/internal/ads/zzbcc; .line 2 invoke-static {}, Lcom/google/android/gms/ads/internal/client/zzbe;->zzc()Lcom/google/android/gms/internal/ads/zzbcj; move-result-object v1 invoke-virtual {v1, v0}, Lcom/google/android/gms/internal/ads/zzbcj;->zza(Lcom/google/android/gms/internal/ads/zzbcc;)Ljava/lang/Object; move-result-object v0 .line 1 check-cast v0, Ljava/lang/Boolean; invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z move-result v0 if-nez v0, :cond_0 goto/16 :goto_0 .line 3 :cond_0 iget-object p1, p1, Landroid/hardware/SensorEvent;->values:[F const/4 v0, 0x0 aget v1, p1, v0 const/4 v2, 0x1 .line 4 aget v3, p1, v2 const/4 v4, 0x2 .line 5 aget p1, p1, v4 const v4, 0x411ce80a div-float/2addr v1, v4 div-float/2addr v3, v4 div-float/2addr p1, v4 mul-float/2addr v1, v1 mul-float/2addr v3, v3 add-float/2addr v1, v3 mul-float/2addr p1, p1 add-float/2addr v1, p1 float-to-double v3, v1 .line 6 invoke-static {v3, v4}, Ljava/lang/Math;->sqrt(D)D move-result-wide v3 double-to-float p1, v3 sget-object v1, Lcom/google/android/gms/internal/ads/zzbcl;->zziS:Lcom/google/android/gms/internal/ads/zzbcc; .line 7 invoke-static {}, Lcom/google/android/gms/ads/internal/client/zzbe;->zzc()Lcom/google/android/gms/internal/ads/zzbcj; move-result-object v3 invoke-virtual {v3, v1}, Lcom/google/android/gms/internal/ads/zzbcj;->zza(Lcom/google/android/gms/internal/ads/zzbcc;)Ljava/lang/Object; move-result-object v1 .line 8 check-cast v1, Ljava/lang/Float; invoke-virtual {v1}, Ljava/lang/Float;->floatValue()F move-result v1 cmpg-float p1, p1, v1 if-ltz p1, :cond_2 .line 9 invoke-static {}, Lcom/google/android/gms/ads/internal/zzv;->zzC()Lcom/google/android/gms/common/util/Clock; move-result-object p1 invoke-interface {p1}, Lcom/google/android/gms/common/util/Clock;->currentTimeMillis()J move-result-wide v3 iget-wide v5, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzd:J sget-object p1, Lcom/google/android/gms/internal/ads/zzbcl;->zziT:Lcom/google/android/gms/internal/ads/zzbcc; .line 10 invoke-static {}, Lcom/google/android/gms/ads/internal/client/zzbe;->zzc()Lcom/google/android/gms/internal/ads/zzbcj; move-result-object v1 invoke-virtual {v1, p1}, Lcom/google/android/gms/internal/ads/zzbcj;->zza(Lcom/google/android/gms/internal/ads/zzbcc;)Ljava/lang/Object; move-result-object p1 .line 11 check-cast p1, Ljava/lang/Integer; invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I move-result p1 int-to-long v7, p1 add-long/2addr v5, v7 cmp-long p1, v5, v3 if-gtz p1, :cond_2 iget-wide v5, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzd:J sget-object p1, Lcom/google/android/gms/internal/ads/zzbcl;->zziU:Lcom/google/android/gms/internal/ads/zzbcc; .line 12 invoke-static {}, Lcom/google/android/gms/ads/internal/client/zzbe;->zzc()Lcom/google/android/gms/internal/ads/zzbcj; move-result-object v1 invoke-virtual {v1, p1}, Lcom/google/android/gms/internal/ads/zzbcj;->zza(Lcom/google/android/gms/internal/ads/zzbcc;)Ljava/lang/Object; move-result-object p1 .line 13 check-cast p1, Ljava/lang/Integer; invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I move-result p1 int-to-long v7, p1 add-long/2addr v5, v7 cmp-long p1, v5, v3 if-gez p1, :cond_1 iput v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zze:I :cond_1 const-string p1, "Shake detected." .line 14 invoke-static {p1}, Lcom/google/android/gms/ads/internal/util/zze;->zza(Ljava/lang/String;)V iput-wide v3, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzd:J iget p1, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zze:I add-int/2addr p1, v2 iput p1, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zze:I iget-object v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzf:Lcom/google/android/gms/internal/ads/zzdvw; if-eqz v0, :cond_2 sget-object v1, Lcom/google/android/gms/internal/ads/zzbcl;->zziV:Lcom/google/android/gms/internal/ads/zzbcc; .line 15 invoke-static {}, Lcom/google/android/gms/ads/internal/client/zzbe;->zzc()Lcom/google/android/gms/internal/ads/zzbcj; move-result-object v2 invoke-virtual {v2, v1}, Lcom/google/android/gms/internal/ads/zzbcj;->zza(Lcom/google/android/gms/internal/ads/zzbcc;)Ljava/lang/Object; move-result-object v1 .line 16 check-cast v1, Ljava/lang/Integer; invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I move-result v1 if-ne p1, v1, :cond_2 new-instance p1, Lcom/google/android/gms/internal/ads/zzdus; check-cast v0, Lcom/google/android/gms/internal/ads/zzduv; .line 17 invoke-direct {p1, v0}, Lcom/google/android/gms/internal/ads/zzdus;->(Lcom/google/android/gms/internal/ads/zzduv;)V sget-object v1, Lcom/google/android/gms/internal/ads/zzduu;->zzc:Lcom/google/android/gms/internal/ads/zzduu; invoke-virtual {v0, p1, v1}, Lcom/google/android/gms/internal/ads/zzduv;->zzh(Lcom/google/android/gms/ads/internal/client/zzdl;Lcom/google/android/gms/internal/ads/zzduu;)V :cond_2 :goto_0 return-void .end method .method public final zzb()V .locals 2 .line 1 monitor-enter p0 :try_start_0 iget-boolean v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzg:Z if-eqz v0, :cond_1 iget-object v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzb:Landroid/hardware/SensorManager; if-eqz v0, :cond_0 iget-object v1, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzc:Landroid/hardware/Sensor; invoke-virtual {v0, p0, v1}, Landroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V const-string v0, "Stopped listening for shake gestures." .line 2 invoke-static {v0}, Lcom/google/android/gms/ads/internal/util/zze;->zza(Ljava/lang/String;)V goto :goto_0 :catchall_0 move-exception v0 goto :goto_1 :cond_0 :goto_0 const/4 v0, 0x0 iput-boolean v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzg:Z .line 3 :cond_1 monitor-exit p0 return-void :goto_1 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v0 .end method .method public final zzc()V .locals 6 .line 1 monitor-enter p0 :try_start_0 sget-object v0, Lcom/google/android/gms/internal/ads/zzbcl;->zziR:Lcom/google/android/gms/internal/ads/zzbcc; .line 2 invoke-static {}, Lcom/google/android/gms/ads/internal/client/zzbe;->zzc()Lcom/google/android/gms/internal/ads/zzbcj; move-result-object v1 invoke-virtual {v1, v0}, Lcom/google/android/gms/internal/ads/zzbcj;->zza(Lcom/google/android/gms/internal/ads/zzbcc;)Ljava/lang/Object; move-result-object v0 .line 1 check-cast v0, Ljava/lang/Boolean; invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z move-result v0 if-nez v0, :cond_0 .line 3 monitor-exit p0 return-void :catchall_0 move-exception v0 goto :goto_0 :cond_0 iget-object v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzb:Landroid/hardware/SensorManager; const/4 v1, 0x1 if-nez v0, :cond_2 iget-object v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zza:Landroid/content/Context; const-string v2, "sensor" .line 4 invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/hardware/SensorManager; iput-object v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzb:Landroid/hardware/SensorManager; if-nez v0, :cond_1 const-string v0, "Shake detection failed to initialize. Failed to obtain accelerometer." .line 11 invoke-static {v0}, Lcom/google/android/gms/ads/internal/util/client/zzo;->zzj(Ljava/lang/String;)V .line 12 monitor-exit p0 return-void .line 5 :cond_1 invoke-virtual {v0, v1}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor; move-result-object v0 iput-object v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzc:Landroid/hardware/Sensor; :cond_2 iget-boolean v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzg:Z if-nez v0, :cond_3 iget-object v0, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzb:Landroid/hardware/SensorManager; if-eqz v0, :cond_3 iget-object v2, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzc:Landroid/hardware/Sensor; if-eqz v2, :cond_3 const/4 v3, 0x2 .line 6 invoke-virtual {v0, p0, v2, v3}, Landroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z .line 7 invoke-static {}, Lcom/google/android/gms/ads/internal/zzv;->zzC()Lcom/google/android/gms/common/util/Clock; move-result-object v0 invoke-interface {v0}, Lcom/google/android/gms/common/util/Clock;->currentTimeMillis()J move-result-wide v2 sget-object v0, Lcom/google/android/gms/internal/ads/zzbcl;->zziT:Lcom/google/android/gms/internal/ads/zzbcc; .line 8 invoke-static {}, Lcom/google/android/gms/ads/internal/client/zzbe;->zzc()Lcom/google/android/gms/internal/ads/zzbcj; move-result-object v4 invoke-virtual {v4, v0}, Lcom/google/android/gms/internal/ads/zzbcj;->zza(Lcom/google/android/gms/internal/ads/zzbcc;)Ljava/lang/Object; move-result-object v0 .line 7 check-cast v0, Ljava/lang/Integer; invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I move-result v0 int-to-long v4, v0 sub-long/2addr v2, v4 iput-wide v2, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzd:J iput-boolean v1, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzg:Z const-string v0, "Listening for shake gestures." .line 9 invoke-static {v0}, Lcom/google/android/gms/ads/internal/util/zze;->zza(Ljava/lang/String;)V .line 10 :cond_3 monitor-exit p0 return-void :goto_0 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v0 .end method .method public final zzd(Lcom/google/android/gms/internal/ads/zzdvw;)V .locals 0 iput-object p1, p0, Lcom/google/android/gms/internal/ads/zzdvx;->zzf:Lcom/google/android/gms/internal/ads/zzdvw; return-void .end method