.class public Lcom/brsdk/android/utils/g;
.super Ljava/lang/Object;
.source "BRShake.java"

# interfaces
.implements Landroid/hardware/SensorEventListener;


# static fields
.field private static final a:I = 0xbb8

.field private static final b:I = 0x46


# instance fields
.field private c:Landroid/hardware/SensorManager;

.field private d:Landroid/hardware/Sensor;

.field private e:Lcom/brsdk/android/event/BRValueListener;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/brsdk/android/event/BRValueListener<",
            "Ljava/lang/Boolean;",
            ">;"
        }
    .end annotation
.end field

.field private f:Landroid/os/Vibrator;

.field private g:F

.field private h:F

.field private i:F

.field private j:J


# direct methods
.method public constructor <init>(Lcom/brsdk/android/event/BRValueListener;)V
    .locals 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/brsdk/android/event/BRValueListener<",
            "Ljava/lang/Boolean;",
            ">;)V"
        }
    .end annotation

    .line 35
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 36
    iput-object p1, p0, Lcom/brsdk/android/utils/g;->e:Lcom/brsdk/android/event/BRValueListener;

    .line 37
    invoke-static {}, Lcom/brsdk/android/core/b;->b()Landroid/app/Application;

    move-result-object p1

    const-string v0, "sensor"

    .line 39
    invoke-virtual {p1, v0}, 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/brsdk/android/utils/g;->c:Landroid/hardware/SensorManager;

    .line 41
    iget-object v0, p0, Lcom/brsdk/android/utils/g;->c:Landroid/hardware/SensorManager;

    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;

    move-result-object v0

    iput-object v0, p0, Lcom/brsdk/android/utils/g;->d:Landroid/hardware/Sensor;

    const-string v0, "vibrator"

    .line 43
    invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Landroid/os/Vibrator;

    iput-object p1, p0, Lcom/brsdk/android/utils/g;->f:Landroid/os/Vibrator;

    return-void
.end method


# virtual methods
.method public a()V
    .locals 3

    const/4 v0, 0x0

    .line 48
    iput v0, p0, Lcom/brsdk/android/utils/g;->i:F

    iput v0, p0, Lcom/brsdk/android/utils/g;->h:F

    iput v0, p0, Lcom/brsdk/android/utils/g;->g:F

    .line 49
    iget-object v0, p0, Lcom/brsdk/android/utils/g;->c:Landroid/hardware/SensorManager;

    iget-object v1, p0, Lcom/brsdk/android/utils/g;->d:Landroid/hardware/Sensor;

    const/4 v2, 0x1

    invoke-virtual {v0, p0, v1, v2}, Landroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z

    return-void
.end method

.method public b()V
    .locals 1

    .line 54
    iget-object v0, p0, Lcom/brsdk/android/utils/g;->c:Landroid/hardware/SensorManager;

    invoke-virtual {v0, p0}, Landroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V

    return-void
.end method

.method public c()V
    .locals 3

    .line 96
    :try_start_0
    iget-object v0, p0, Lcom/brsdk/android/utils/g;->f:Landroid/os/Vibrator;

    const-wide/16 v1, 0x64

    invoke-virtual {v0, v1, v2}, Landroid/os/Vibrator;->vibrate(J)V

    .line 97
    iget-object v0, p0, Lcom/brsdk/android/utils/g;->e:Lcom/brsdk/android/event/BRValueListener;

    const/4 v1, 0x1

    invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v1

    invoke-interface {v0, v1}, Lcom/brsdk/android/event/BRValueListener;->onValue(Ljava/lang/Object;)V
    :try_end_0
    .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0

    goto :goto_0

    :catch_0
    move-exception v0

    .line 99
    invoke-static {v0}, Lcom/brsdk/android/utils/BRLogger;->w(Ljava/lang/Throwable;)V

    .line 100
    iget-object v0, p0, Lcom/brsdk/android/utils/g;->e:Lcom/brsdk/android/event/BRValueListener;

    const/4 v1, 0x0

    invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v1

    invoke-interface {v0, v1}, Lcom/brsdk/android/event/BRValueListener;->onValue(Ljava/lang/Object;)V

    :goto_0
    return-void
.end method

.method public onAccuracyChanged(Landroid/hardware/Sensor;I)V
    .locals 0

    return-void
.end method

.method public onSensorChanged(Landroid/hardware/SensorEvent;)V
    .locals 6

    .line 60
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v0

    .line 62
    iget-wide v2, p0, Lcom/brsdk/android/utils/g;->j:J

    sub-long v2, v0, v2

    const-wide/16 v4, 0x46

    cmp-long v2, v2, v4

    if-ltz v2, :cond_0

    .line 64
    iput-wide v0, p0, Lcom/brsdk/android/utils/g;->j:J

    .line 66
    iget-object v0, p1, Landroid/hardware/SensorEvent;->values:[F

    const/4 v1, 0x0

    aget v0, v0, v1

    .line 67
    iget-object v1, p1, Landroid/hardware/SensorEvent;->values:[F

    const/4 v2, 0x1

    aget v1, v1, v2

    .line 68
    iget-object p1, p1, Landroid/hardware/SensorEvent;->values:[F

    const/4 v2, 0x2

    aget p1, p1, v2

    .line 70
    iget v2, p0, Lcom/brsdk/android/utils/g;->g:F

    sub-float v2, v0, v2

    .line 71
    iget v3, p0, Lcom/brsdk/android/utils/g;->h:F

    sub-float v3, v1, v3

    .line 72
    iget v4, p0, Lcom/brsdk/android/utils/g;->i:F

    sub-float v4, p1, v4

    .line 74
    iput v0, p0, Lcom/brsdk/android/utils/g;->g:F

    .line 75
    iput v1, p0, Lcom/brsdk/android/utils/g;->h:F

    .line 76
    iput p1, p0, Lcom/brsdk/android/utils/g;->i:F

    mul-float/2addr v2, v2

    mul-float/2addr v3, v3

    add-float/2addr v2, v3

    mul-float/2addr v4, v4

    add-float/2addr v2, v4

    float-to-double v0, v2

    .line 78
    invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D

    move-result-wide v0

    const-wide v2, 0x4051800000000000L    # 70.0

    div-double/2addr v0, v2

    const-wide v2, 0x40c3880000000000L    # 10000.0

    mul-double/2addr v0, v2

    const-wide v2, 0x40a7700000000000L    # 3000.0

    cmpl-double p1, v0, v2

    if-ltz p1, :cond_0

    .line 83
    invoke-virtual {p0}, Lcom/brsdk/android/utils/g;->c()V

    :cond_0
    return-void
.end method