e.smali
.class public Lcom/google/a/a/a/e;
.super Ljava/lang/Object;
# interfaces
.implements Landroid/hardware/SensorEventListener;
# instance fields
.field private final a:Landroid/view/Display;
.field private final b:[F
.field private final c:[F
.field private d:F
.field private final e:[F
.field private final f:[F
.field private final g:[F
.field private h:F
.field private final i:Ljava/lang/Object;
.field private volatile j:Z
.field private final k:Lcom/google/a/a/a/a/d;
.field private final l:Ljava/lang/Object;
.field private m:Lcom/google/a/a/a/a/a;
.field private n:Lcom/google/a/a/a/f;
.field private o:Lcom/google/a/a/a/a;
.field private p:J
.field private volatile q:Z
.field private r:[F
.field private final s:Lcom/google/a/a/a/a/g;
.field private final t:Lcom/google/a/a/a/a/g;
.field private final u:Lcom/google/a/a/a/a/g;
# direct methods
.method public constructor <init>(Lcom/google/a/a/a/f;Lcom/google/a/a/a/a;Landroid/view/Display;)V
.registers 7
const/4 v2, 0x1
const/16 v1, 0x10
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-array v0, v1, [F
iput-object v0, p0, Lcom/google/a/a/a/e;->b:[F
new-array v0, v1, [F
iput-object v0, p0, Lcom/google/a/a/a/e;->c:[F
const/high16 v0, -0x40800000 # -1.0f
iput v0, p0, Lcom/google/a/a/a/e;->d:F
new-array v0, v1, [F
iput-object v0, p0, Lcom/google/a/a/a/e;->e:[F
new-array v0, v1, [F
iput-object v0, p0, Lcom/google/a/a/a/e;->f:[F
new-array v0, v1, [F
iput-object v0, p0, Lcom/google/a/a/a/e;->g:[F
const/high16 v0, 0x3f800000 # 1.0f
iput v0, p0, Lcom/google/a/a/a/e;->h:F
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcom/google/a/a/a/e;->i:Ljava/lang/Object;
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
iput-boolean v2, p0, Lcom/google/a/a/a/e;->q:Z
const/4 v0, 0x3
new-array v0, v0, [F
iput-object v0, p0, Lcom/google/a/a/a/e;->r:[F
new-instance v0, Lcom/google/a/a/a/a/g;
invoke-direct {v0}, Lcom/google/a/a/a/a/g;-><init>()V
iput-object v0, p0, Lcom/google/a/a/a/e;->s:Lcom/google/a/a/a/a/g;
new-instance v0, Lcom/google/a/a/a/a/g;
invoke-direct {v0}, Lcom/google/a/a/a/a/g;-><init>()V
iput-object v0, p0, Lcom/google/a/a/a/e;->t:Lcom/google/a/a/a/a/g;
new-instance v0, Lcom/google/a/a/a/a/g;
invoke-direct {v0}, Lcom/google/a/a/a/a/g;-><init>()V
iput-object v0, p0, Lcom/google/a/a/a/e;->u:Lcom/google/a/a/a/a/g;
iput-object p2, p0, Lcom/google/a/a/a/e;->o:Lcom/google/a/a/a/a;
iput-object p1, p0, Lcom/google/a/a/a/e;->n:Lcom/google/a/a/a/f;
new-instance v0, Lcom/google/a/a/a/a/d;
invoke-direct {v0}, Lcom/google/a/a/a/a/d;-><init>()V
iput-object v0, p0, Lcom/google/a/a/a/e;->k:Lcom/google/a/a/a/a/d;
iput-object p3, p0, Lcom/google/a/a/a/e;->a:Landroid/view/Display;
invoke-virtual {p0, v2}, Lcom/google/a/a/a/e;->a(Z)V
iget-object v0, p0, Lcom/google/a/a/a/e;->e:[F
const/4 v1, 0x0
invoke-static {v0, v1}, Landroid/opengl/Matrix;->setIdentityM([FI)V
return-void
.end method
# virtual methods
.method public a()V
.registers 4
const/4 v2, 0x1
iget-boolean v0, p0, Lcom/google/a/a/a/e;->j:Z
if-nez v0, :cond_27
iget-object v0, p0, Lcom/google/a/a/a/e;->k:Lcom/google/a/a/a/a/d;
invoke-virtual {v0}, Lcom/google/a/a/a/a/d;->a()V
iget-object v0, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
iget-object v1, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
monitor-enter v1
:try_start_f
iget-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
if-eqz v0, :cond_18
iget-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
invoke-virtual {v0}, Lcom/google/a/a/a/a/a;->a()V
:cond_18
monitor-exit v1
:try_end_19
.catchall {:try_start_f .. :try_end_19} :catchall_28
iput-boolean v2, p0, Lcom/google/a/a/a/e;->q:Z
iget-object v0, p0, Lcom/google/a/a/a/e;->n:Lcom/google/a/a/a/f;
invoke-interface {v0, p0}, Lcom/google/a/a/a/f;->a(Landroid/hardware/SensorEventListener;)V
iget-object v0, p0, Lcom/google/a/a/a/e;->n:Lcom/google/a/a/a/f;
invoke-interface {v0}, Lcom/google/a/a/a/f;->a()V
iput-boolean v2, p0, Lcom/google/a/a/a/e;->j:Z
:cond_27
return-void
:catchall_28
move-exception v0
:try_start_29
monitor-exit v1
:try_end_2a
.catchall {:try_start_29 .. :try_end_2a} :catchall_28
throw v0
.end method
.method public a(Z)V
.registers 4
iget-object v0, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
iget-object v1, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
monitor-enter v1
if-nez p1, :cond_c
const/4 v0, 0x0
:try_start_8
iput-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
:cond_a
:goto_a
monitor-exit v1
return-void
:cond_c
iget-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
if-nez v0, :cond_a
new-instance v0, Lcom/google/a/a/a/a/a;
invoke-direct {v0}, Lcom/google/a/a/a/a/a;-><init>()V
iput-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
goto :goto_a
:catchall_18
move-exception v0
monitor-exit v1
:try_end_1a
.catchall {:try_start_8 .. :try_end_1a} :catchall_18
throw v0
.end method
.method public a([FI)V
.registers 13
const v8, 0x3d99999a # 0.075f
const/4 v9, 0x0
const/4 v1, 0x0
add-int/lit8 v0, p2, 0x10
array-length v2, p1
if-le v0, v2, :cond_12
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Not enough space to write the result"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_12
iget-object v0, p0, Lcom/google/a/a/a/e;->a:Landroid/view/Display;
invoke-virtual {v0}, Landroid/view/Display;->getRotation()I
move-result v0
packed-switch v0, :pswitch_data_bc
move v0, v9
:goto_1c
iget v2, p0, Lcom/google/a/a/a/e;->d:F
cmpl-float v2, v0, v2
if-eqz v2, :cond_31
iput v0, p0, Lcom/google/a/a/a/e;->d:F
iget-object v2, p0, Lcom/google/a/a/a/e;->c:[F
neg-float v3, v0
invoke-static {v2, v1, v9, v9, v3}, Landroid/opengl/Matrix;->setRotateEulerM([FIFFF)V
iget-object v2, p0, Lcom/google/a/a/a/e;->b:[F
const/high16 v3, -0x3d4c0000 # -90.0f
invoke-static {v2, v1, v3, v9, v0}, Landroid/opengl/Matrix;->setRotateEulerM([FIFFF)V
:cond_31
iget-object v0, p0, Lcom/google/a/a/a/e;->k:Lcom/google/a/a/a/a/d;
iget-object v2, p0, Lcom/google/a/a/a/e;->k:Lcom/google/a/a/a/a/d;
monitor-enter v2
:try_start_36
iget-object v0, p0, Lcom/google/a/a/a/e;->k:Lcom/google/a/a/a/a/d;
invoke-virtual {v0}, Lcom/google/a/a/a/a/d;->b()Z
move-result v0
if-nez v0, :cond_4b
monitor-exit v2
:goto_3f
return-void
:pswitch_40
move v0, v9
goto :goto_1c
:pswitch_42
const/high16 v0, 0x42b40000 # 90.0f
goto :goto_1c
:pswitch_45
const/high16 v0, 0x43340000 # 180.0f
goto :goto_1c
:pswitch_48
const/high16 v0, 0x43870000 # 270.0f
goto :goto_1c
:cond_4b
sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
iget-object v3, p0, Lcom/google/a/a/a/e;->o:Lcom/google/a/a/a/a;
invoke-interface {v3}, Lcom/google/a/a/a/a;->a()J
move-result-wide v4
iget-wide v6, p0, Lcom/google/a/a/a/e;->p:J
sub-long/2addr v4, v6
invoke-virtual {v0, v4, v5}, Ljava/util/concurrent/TimeUnit;->toSeconds(J)J
move-result-wide v4
long-to-double v4, v4
const-wide v6, 0x3fadb22d00000000L # 0.057999998331069946
add-double/2addr v4, v6
iget-object v0, p0, Lcom/google/a/a/a/e;->k:Lcom/google/a/a/a/a/d;
invoke-virtual {v0, v4, v5}, Lcom/google/a/a/a/a/d;->a(D)[D
move-result-object v3
move v0, v1
:goto_68
array-length v4, p1
if-lt v0, v4, :cond_af
monitor-exit v2
:try_end_6c
.catchall {:try_start_36 .. :try_end_6c} :catchall_b9
iget-object v0, p0, Lcom/google/a/a/a/e;->g:[F
iget-object v2, p0, Lcom/google/a/a/a/e;->c:[F
iget-object v4, p0, Lcom/google/a/a/a/e;->f:[F
move v3, v1
move v5, v1
invoke-static/range {v0 .. v5}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
iget-object v4, p0, Lcom/google/a/a/a/e;->g:[F
iget-object v6, p0, Lcom/google/a/a/a/e;->b:[F
move-object v2, p1
move v3, p2
move v5, v1
move v7, v1
invoke-static/range {v2 .. v7}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
iget-object v0, p0, Lcom/google/a/a/a/e;->e:[F
invoke-static {v0, v1}, Landroid/opengl/Matrix;->setIdentityM([FI)V
iget-object v0, p0, Lcom/google/a/a/a/e;->e:[F
iget v2, p0, Lcom/google/a/a/a/e;->h:F
neg-float v2, v2
mul-float/2addr v2, v8
iget v3, p0, Lcom/google/a/a/a/e;->h:F
const v4, 0x3da3d70a # 0.08f
mul-float/2addr v3, v4
invoke-static {v0, v1, v9, v2, v3}, Landroid/opengl/Matrix;->translateM([FIFFF)V
iget-object v0, p0, Lcom/google/a/a/a/e;->f:[F
iget-object v2, p0, Lcom/google/a/a/a/e;->e:[F
move v3, v1
move-object v4, p1
move v5, p2
invoke-static/range {v0 .. v5}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
iget-object v4, p0, Lcom/google/a/a/a/e;->f:[F
iget v0, p0, Lcom/google/a/a/a/e;->h:F
mul-float v7, v0, v8
move-object v2, p1
move v3, p2
move v5, v1
move v6, v9
move v8, v9
invoke-static/range {v2 .. v8}, Landroid/opengl/Matrix;->translateM([FI[FIFFF)V
goto :goto_3f
:cond_af
:try_start_af
iget-object v4, p0, Lcom/google/a/a/a/e;->f:[F
aget-wide v6, v3, v0
double-to-float v5, v6
aput v5, v4, v0
add-int/lit8 v0, v0, 0x1
goto :goto_68
:catchall_b9
move-exception v0
monitor-exit v2
:try_end_bb
.catchall {:try_start_af .. :try_end_bb} :catchall_b9
throw v0
:pswitch_data_bc
.packed-switch 0x0
:pswitch_40
:pswitch_42
:pswitch_45
:pswitch_48
.end packed-switch
.end method
.method public b()V
.registers 2
iget-boolean v0, p0, Lcom/google/a/a/a/e;->j:Z
if-eqz v0, :cond_11
iget-object v0, p0, Lcom/google/a/a/a/e;->n:Lcom/google/a/a/a/f;
invoke-interface {v0, p0}, Lcom/google/a/a/a/f;->b(Landroid/hardware/SensorEventListener;)V
iget-object v0, p0, Lcom/google/a/a/a/e;->n:Lcom/google/a/a/a/f;
invoke-interface {v0}, Lcom/google/a/a/a/f;->b()V
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/a/a/a/e;->j:Z
:cond_11
return-void
.end method
.method public onAccuracyChanged(Landroid/hardware/Sensor;I)V
.registers 3
return-void
.end method
.method public onSensorChanged(Landroid/hardware/SensorEvent;)V
.registers 11
const/16 v2, 0x10
const/4 v3, 0x4
const/4 v7, 0x2
const/4 v5, 0x1
const/4 v8, 0x0
iget-object v0, p1, Landroid/hardware/SensorEvent;->sensor:Landroid/hardware/Sensor;
invoke-virtual {v0}, Landroid/hardware/Sensor;->getType()I
move-result v0
if-ne v0, v5, :cond_42
iget-object v1, p0, Lcom/google/a/a/a/e;->u:Lcom/google/a/a/a/a/g;
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v8
float-to-double v2, v0
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v5
float-to-double v4, v0
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v7
float-to-double v6, v0
invoke-virtual/range {v1 .. v7}, Lcom/google/a/a/a/a/g;->a(DDD)V
iget-object v0, p0, Lcom/google/a/a/a/e;->k:Lcom/google/a/a/a/a/d;
iget-object v1, p0, Lcom/google/a/a/a/e;->u:Lcom/google/a/a/a/a/g;
iget-wide v2, p1, Landroid/hardware/SensorEvent;->timestamp:J
invoke-virtual {v0, v1, v2, v3}, Lcom/google/a/a/a/a/d;->b(Lcom/google/a/a/a/a/g;J)V
iget-object v0, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
iget-object v1, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
monitor-enter v1
:try_start_30
iget-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
if-eqz v0, :cond_3d
iget-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
iget-object v2, p0, Lcom/google/a/a/a/e;->u:Lcom/google/a/a/a/a/g;
iget-wide v4, p1, Landroid/hardware/SensorEvent;->timestamp:J
invoke-virtual {v0, v2, v4, v5}, Lcom/google/a/a/a/a/a;->b(Lcom/google/a/a/a/a/g;J)V
:cond_3d
monitor-exit v1
:cond_3e
:goto_3e
return-void
:catchall_3f
move-exception v0
monitor-exit v1
:try_end_41
.catchall {:try_start_30 .. :try_end_41} :catchall_3f
throw v0
:cond_42
iget-object v0, p1, Landroid/hardware/SensorEvent;->sensor:Landroid/hardware/Sensor;
invoke-virtual {v0}, Landroid/hardware/Sensor;->getType()I
move-result v0
if-eq v0, v3, :cond_52
iget-object v0, p1, Landroid/hardware/SensorEvent;->sensor:Landroid/hardware/Sensor;
invoke-virtual {v0}, Landroid/hardware/Sensor;->getType()I
move-result v0
if-ne v0, v2, :cond_3e
:cond_52
iget-object v0, p0, Lcom/google/a/a/a/e;->o:Lcom/google/a/a/a/a;
invoke-interface {v0}, Lcom/google/a/a/a/a;->a()J
move-result-wide v0
iput-wide v0, p0, Lcom/google/a/a/a/e;->p:J
iget-object v0, p1, Landroid/hardware/SensorEvent;->sensor:Landroid/hardware/Sensor;
invoke-virtual {v0}, Landroid/hardware/Sensor;->getType()I
move-result v0
if-ne v0, v2, :cond_d9
iget-boolean v0, p0, Lcom/google/a/a/a/e;->q:Z
if-eqz v0, :cond_86
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
array-length v0, v0
const/4 v1, 0x6
if-ne v0, v1, :cond_86
iget-object v0, p0, Lcom/google/a/a/a/e;->r:[F
iget-object v1, p1, Landroid/hardware/SensorEvent;->values:[F
const/4 v2, 0x3
aget v1, v1, v2
aput v1, v0, v8
iget-object v0, p0, Lcom/google/a/a/a/e;->r:[F
iget-object v1, p1, Landroid/hardware/SensorEvent;->values:[F
aget v1, v1, v3
aput v1, v0, v5
iget-object v0, p0, Lcom/google/a/a/a/e;->r:[F
iget-object v1, p1, Landroid/hardware/SensorEvent;->values:[F
const/4 v2, 0x5
aget v1, v1, v2
aput v1, v0, v7
:cond_86
iget-object v1, p0, Lcom/google/a/a/a/e;->t:Lcom/google/a/a/a/a/g;
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v8
iget-object v2, p0, Lcom/google/a/a/a/e;->r:[F
aget v2, v2, v8
sub-float/2addr v0, v2
float-to-double v2, v0
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v5
iget-object v4, p0, Lcom/google/a/a/a/e;->r:[F
aget v4, v4, v5
sub-float/2addr v0, v4
float-to-double v4, v0
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v7
iget-object v6, p0, Lcom/google/a/a/a/e;->r:[F
aget v6, v6, v7
sub-float/2addr v0, v6
float-to-double v6, v0
invoke-virtual/range {v1 .. v7}, Lcom/google/a/a/a/a/g;->a(DDD)V
:goto_a9
iput-boolean v8, p0, Lcom/google/a/a/a/e;->q:Z
iget-object v0, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
iget-object v1, p0, Lcom/google/a/a/a/e;->l:Ljava/lang/Object;
monitor-enter v1
:try_start_b0
iget-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
if-eqz v0, :cond_cd
iget-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
iget-object v2, p0, Lcom/google/a/a/a/e;->t:Lcom/google/a/a/a/a/g;
iget-wide v4, p1, Landroid/hardware/SensorEvent;->timestamp:J
invoke-virtual {v0, v2, v4, v5}, Lcom/google/a/a/a/a/a;->a(Lcom/google/a/a/a/a/g;J)V
iget-object v0, p0, Lcom/google/a/a/a/e;->m:Lcom/google/a/a/a/a/a;
iget-object v2, p0, Lcom/google/a/a/a/e;->s:Lcom/google/a/a/a/a/g;
invoke-virtual {v0, v2}, Lcom/google/a/a/a/a/a;->a(Lcom/google/a/a/a/a/g;)V
iget-object v0, p0, Lcom/google/a/a/a/e;->t:Lcom/google/a/a/a/a/g;
iget-object v2, p0, Lcom/google/a/a/a/e;->s:Lcom/google/a/a/a/a/g;
iget-object v3, p0, Lcom/google/a/a/a/e;->t:Lcom/google/a/a/a/a/g;
invoke-static {v0, v2, v3}, Lcom/google/a/a/a/a/g;->b(Lcom/google/a/a/a/a/g;Lcom/google/a/a/a/a/g;Lcom/google/a/a/a/a/g;)V
:cond_cd
monitor-exit v1
:try_end_ce
.catchall {:try_start_b0 .. :try_end_ce} :catchall_ee
iget-object v0, p0, Lcom/google/a/a/a/e;->k:Lcom/google/a/a/a/a/d;
iget-object v1, p0, Lcom/google/a/a/a/e;->t:Lcom/google/a/a/a/a/g;
iget-wide v2, p1, Landroid/hardware/SensorEvent;->timestamp:J
invoke-virtual {v0, v1, v2, v3}, Lcom/google/a/a/a/a/d;->a(Lcom/google/a/a/a/a/g;J)V
goto/16 :goto_3e
:cond_d9
iget-object v1, p0, Lcom/google/a/a/a/e;->t:Lcom/google/a/a/a/a/g;
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v8
float-to-double v2, v0
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v5
float-to-double v4, v0
iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F
aget v0, v0, v7
float-to-double v6, v0
invoke-virtual/range {v1 .. v7}, Lcom/google/a/a/a/a/g;->a(DDD)V
goto :goto_a9
:catchall_ee
move-exception v0
:try_start_ef
monitor-exit v1
:try_end_f0
.catchall {:try_start_ef .. :try_end_f0} :catchall_ee
throw v0
.end method