SceneSensorUtil.smali

.class public Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;
.super Ljava/lang/Object;
.source "SceneSensorUtil.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil$MotionSensorListener;
    }
.end annotation


# static fields
.field private static mMotionDetector:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector;


# instance fields
.field private isLightFinished:Z

.field private isMotionFinished:Z

.field private mContext:Landroid/content/Context;

.field private mHandler:Landroid/os/Handler;

.field private mLightLock:Ljava/lang/Object;

.field private mMotionLock:Ljava/lang/Object;

.field private mSensorManager:Landroid/hardware/SensorManager;

.field private mbIsMotion:Z

.field private mfLightValue:F


# direct methods
.method public constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
    .registers 5

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

    .line 20
    new-instance v0, Ljava/lang/Object;

    invoke-direct {v0}, Ljava/lang/Object;-><init>()V

    iput-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mMotionLock:Ljava/lang/Object;

    .line 23
    new-instance v0, Ljava/lang/Object;

    invoke-direct {v0}, Ljava/lang/Object;-><init>()V

    iput-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mLightLock:Ljava/lang/Object;

    .line 34
    iput-object p1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mContext:Landroid/content/Context;

    .line 35
    iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mContext:Landroid/content/Context;

    if-eqz v0, :cond_19

    if-nez p2, :cond_1a

    .line 40
    :cond_19
    :goto_19
    return-void

    .line 38
    :cond_1a
    iput-object p2, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mHandler:Landroid/os/Handler;

    .line 39
    iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mContext:Landroid/content/Context;

    iget-object v1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mContext:Landroid/content/Context;

    const-string v1, "sensor"

    invoke-virtual {v0, v1}, 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/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mSensorManager:Landroid/hardware/SensorManager;

    goto :goto_19
.end method

.method static synthetic access$002(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;Z)Z
    .registers 2

    .prologue
    .line 15
    iput-boolean p1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mbIsMotion:Z

    return p1
.end method

.method static synthetic access$100(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;)Ljava/lang/Object;
    .registers 2

    .prologue
    .line 15
    iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mMotionLock:Ljava/lang/Object;

    return-object v0
.end method

.method static synthetic access$202(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;Z)Z
    .registers 2

    .prologue
    .line 15
    iput-boolean p1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->isMotionFinished:Z

    return p1
.end method


# virtual methods
.method public getDeviceLight()F
    .registers 2

    .prologue
    .line 60
    invoke-static {}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/LightSceneSensorMonitor;->getInstance()Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/LightSceneSensorMonitor;

    move-result-object v0

    invoke-virtual {v0}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/LightSceneSensorMonitor;->getDeviceLight()F

    move-result v0

    return v0
.end method

.method public getDeviceMotion()Z
    .registers 6

    .prologue
    .line 64
    iget-object v1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mMotionLock:Ljava/lang/Object;

    monitor-enter v1

    .line 65
    :try_start_3
    sget-object v0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mMotionDetector:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector;

    if-nez v0, :cond_17

    .line 66
    new-instance v0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector;

    iget-object v2, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mHandler:Landroid/os/Handler;

    iget-object v3, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mSensorManager:Landroid/hardware/SensorManager;

    new-instance v4, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil$MotionSensorListener;

    invoke-direct {v4, p0}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil$MotionSensorListener;-><init>(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;)V

    invoke-direct {v0, v2, v3, v4}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector;-><init>(Landroid/os/Handler;Landroid/hardware/SensorManager;Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector$DeviceIdleCallback;)V

    sput-object v0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mMotionDetector:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector;

    .line 68
    :cond_17
    sget-object v0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mMotionDetector:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector;

    if-eqz v0, :cond_20

    .line 69
    sget-object v0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mMotionDetector:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector;

    invoke-virtual {v0}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/AnyMotionDetector;->checkForAnyMotion()V
    :try_end_20
    .catchall {:try_start_3 .. :try_end_20} :catchall_34

    .line 72
    :cond_20
    :try_start_20
    iget-boolean v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->isMotionFinished:Z

    if-nez v0, :cond_2b

    .line 73
    iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mMotionLock:Ljava/lang/Object;

    const-wide/16 v2, 0xbb8

    invoke-virtual {v0, v2, v3}, Ljava/lang/Object;->wait(J)V
    :try_end_2b
    .catch Ljava/lang/InterruptedException; {:try_start_20 .. :try_end_2b} :catch_2f
    .catchall {:try_start_20 .. :try_end_2b} :catchall_34

    .line 78
    :cond_2b
    :goto_2b
    :try_start_2b
    monitor-exit v1
    :try_end_2c
    .catchall {:try_start_2b .. :try_end_2c} :catchall_34

    .line 79
    iget-boolean v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneSensorUtil;->mbIsMotion:Z

    return v0

    .line 75
    :catch_2f
    move-exception v0

    .line 76
    :try_start_30
    invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V

    goto :goto_2b

    .line 78
    :catchall_34
    move-exception v0

    monitor-exit v1
    :try_end_36
    .catchall {:try_start_30 .. :try_end_36} :catchall_34

    throw v0
.end method