SceneChargingDetectMonitor.smali
.class public Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;
.super Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneBaseMonitor;
.source "SceneChargingDetectMonitor.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkHandler;,
Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkerAlarm;
}
.end annotation
# static fields
.field private static final BADCHARGING_MONITOR_ACTION:Ljava/lang/String; = "android.scenemonitor.badchargingworkeralarm"
# instance fields
.field private LOOP_PERIOD:J
.field private LOOP_TIMES:I
.field private mAlarmManager:Landroid/app/AlarmManager;
.field private mChargingIntent:Landroid/app/PendingIntent;
.field private mContext:Landroid/content/Context;
.field private mHandler:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkHandler;
.field private final mHistoryQueue:Ljava/util/Queue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Queue",
"<",
"Ljava/lang/Long;",
">;"
}
.end annotation
.end field
.field private mLastCapacity:J
.field private mMonitorSetting:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;
.field private mWorkAlarm:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkerAlarm;
.field private mbIsElecAbnormal:Z
.field private mbIsEverSceenOn:Z
.field private volatile mbIsInTask:Z
# direct methods
.method public constructor <init>(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneBaseMonitor$IMonitorDetectCallback;Landroid/os/Looper;Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;Landroid/content/Context;)V
.registers 9
.param p1 # Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneBaseMonitor$IMonitorDetectCallback;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/os/Looper;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p4 # Landroid/content/Context;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.prologue
const/4 v3, 0x0
.line 55
invoke-direct {p0, p1}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneBaseMonitor;-><init>(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneBaseMonitor$IMonitorDetectCallback;)V
.line 37
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mLastCapacity:J
.line 39
iput-boolean v3, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsElecAbnormal:Z
.line 40
iput-boolean v3, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsEverSceenOn:Z
.line 43
const/16 v0, 0x1e
iput v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_TIMES:I
.line 44
const-wide/16 v0, 0x1388
iput-wide v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_PERIOD:J
.line 46
new-instance v0, Ljava/util/ArrayDeque;
const/16 v1, 0xa
invoke-direct {v0, v1}, Ljava/util/ArrayDeque;-><init>(I)V
iput-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mHistoryQueue:Ljava/util/Queue;
.line 48
iput-boolean v3, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsInTask:Z
.line 57
iput-object p4, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mContext:Landroid/content/Context;
.line 58
iput-object p3, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mMonitorSetting:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;
.line 59
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mContext:Landroid/content/Context;
const-string v1, "alarm"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/AlarmManager;
iput-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mAlarmManager:Landroid/app/AlarmManager;
.line 60
new-instance v0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkerAlarm;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkerAlarm;-><init>(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$1;)V
iput-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mWorkAlarm:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkerAlarm;
.line 61
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mContext:Landroid/content/Context;
new-instance v1, Landroid/content/Intent;
const-string v2, "android.scenemonitor.badchargingworkeralarm"
invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
const/high16 v2, 0x8000000
invoke-static {v0, v3, v1, v2}, Landroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mChargingIntent:Landroid/app/PendingIntent;
.line 64
if-eqz p3, :cond_5d
.line 65
iget v0, p3, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;->BADCHARGING_LOOP_TIMES:I
const/4 v1, 0x1
if-ge v0, v1, :cond_a5
iget v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_TIMES:I
:goto_51
iput v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_TIMES:I
.line 66
iget v0, p3, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;->BADCHARGING_LOOP_PERIOD:I
const/16 v1, 0x3e8
if-ge v0, v1, :cond_a8
iget-wide v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_PERIOD:J
:goto_5b
iput-wide v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_PERIOD:J
.line 68
:cond_5d
sget-boolean v0, Lcom/cleanmaster/boost/sceneengine/mainengine/scene/SceneDefine;->DEBUG:Z
if-eqz v0, :cond_87
.line 69
const-string v0, "cm_scene_detect"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "badcharging,LOOP_TIMES = "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_TIMES:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " , LOOP_PERIOD = "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-wide v2, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_PERIOD:J
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 71
:cond_87
new-instance v0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkHandler;
invoke-direct {v0, p0, p2}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkHandler;-><init>(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;Landroid/os/Looper;)V
iput-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mHandler:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkHandler;
.line 73
new-instance v0, Landroid/content/IntentFilter;
invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()V
.line 74
const-string v1, "android.scenemonitor.badchargingworkeralarm"
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 75
const-string v1, "android.intent.action.SCREEN_ON"
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 76
iget-object v1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mContext:Landroid/content/Context;
iget-object v2, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mWorkAlarm:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkerAlarm;
invoke-virtual {v1, v2, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
.line 77
return-void
.line 65
:cond_a5
iget v0, p3, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;->BADCHARGING_LOOP_TIMES:I
goto :goto_51
.line 66
:cond_a8
iget v0, p3, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;->BADCHARGING_LOOP_PERIOD:I
int-to-long v0, v0
goto :goto_5b
.end method
.method static synthetic access$100(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;)Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;
.registers 2
.prologue
.line 27
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mMonitorSetting:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;
return-object v0
.end method
.method static synthetic access$200(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;)J
.registers 3
.prologue
.line 27
iget-wide v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mLastCapacity:J
return-wide v0
.end method
.method static synthetic access$300(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;)Z
.registers 2
.prologue
.line 27
iget-boolean v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsElecAbnormal:Z
return v0
.end method
.method static synthetic access$302(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;Z)Z
.registers 2
.prologue
.line 27
iput-boolean p1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsElecAbnormal:Z
return p1
.end method
.method static synthetic access$402(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;Z)Z
.registers 2
.prologue
.line 27
iput-boolean p1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsInTask:Z
return p1
.end method
.method static synthetic access$502(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;Z)Z
.registers 2
.prologue
.line 27
iput-boolean p1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsEverSceenOn:Z
return p1
.end method
.method static synthetic access$600(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;)Ljava/util/Queue;
.registers 2
.prologue
.line 27
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mHistoryQueue:Ljava/util/Queue;
return-object v0
.end method
.method static synthetic access$700(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;)I
.registers 2
.prologue
.line 27
iget v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_TIMES:I
return v0
.end method
.method static synthetic access$800(Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;)J
.registers 3
.prologue
.line 27
iget-wide v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->LOOP_PERIOD:J
return-wide v0
.end method
# virtual methods
.method public isIsInTask()Z
.registers 2
.prologue
.line 111
monitor-enter p0
.line 112
:try_start_1
iget-boolean v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsInTask:Z
monitor-exit p0
return v0
.line 113
:catchall_5
move-exception v0
monitor-exit p0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_5
throw v0
.end method
.method public isNeedInterupted()Z
.registers 2
.prologue
.line 118
iget-boolean v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsEverSceenOn:Z
if-nez v0, :cond_c
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mContext:Landroid/content/Context;
invoke-static {v0}, Lcom/cleanmaster/boost/sceneengine/mainengine/deps/Commons;->isBatteryCharging(Landroid/content/Context;)Z
move-result v0
if-nez v0, :cond_e
:cond_c
const/4 v0, 0x1
:goto_d
return v0
:cond_e
const/4 v0, 0x0
goto :goto_d
.end method
.method public startMonitor()V
.registers 8
.prologue
const/4 v6, 0x1
.line 81
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mHandler:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkHandler;
if-eqz v0, :cond_11
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mMotionDetectCallback:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneBaseMonitor$IMonitorDetectCallback;
if-eqz v0, :cond_11
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mContext:Landroid/content/Context;
if-eqz v0, :cond_11
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mAlarmManager:Landroid/app/AlarmManager;
if-nez v0, :cond_12
.line 107
:cond_11
:goto_11
return-void
.line 88
:cond_12
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mContext:Landroid/content/Context;
invoke-static {v0}, Lcom/cleanmaster/boost/sceneengine/mainengine/deps/Commons;->getChargingInfo(Landroid/content/Context;)Lcom/cleanmaster/boost/sceneengine/mainengine/models/ChargingInfo;
move-result-object v0
.line 89
if-eqz v0, :cond_1f
.line 90
iget v0, v0, Lcom/cleanmaster/boost/sceneengine/mainengine/models/ChargingInfo;->mnCapacity:I
int-to-long v0, v0
iput-wide v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mLastCapacity:J
.line 93
:cond_1f
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mMonitorSetting:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;
invoke-virtual {v0}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;->getBadChargingAlarmPeriodMS()J
move-result-wide v0
.line 94
iget-object v2, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mMonitorSetting:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;
iget-wide v2, v2, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;->BADCHARGING_ALARM_PERIOD:J
cmp-long v2, v0, v2
if-gez v2, :cond_31
.line 95
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mMonitorSetting:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;
iget-wide v0, v0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/MonitorSetting;->BADCHARGING_ALARM_PERIOD:J
.line 97
:cond_31
iget-object v2, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mAlarmManager:Landroid/app/AlarmManager;
const/4 v3, 0x3
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v4
add-long/2addr v0, v4
iget-object v4, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mChargingIntent:Landroid/app/PendingIntent;
invoke-virtual {v2, v3, v0, v1, v4}, Landroid/app/AlarmManager;->set(IJLandroid/app/PendingIntent;)V
.line 98
iget-object v1, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mHistoryQueue:Ljava/util/Queue;
monitor-enter v1
.line 99
:try_start_41
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mHistoryQueue:Ljava/util/Queue;
invoke-interface {v0}, Ljava/util/Queue;->clear()V
.line 100
monitor-exit v1
:try_end_47
.catchall {:try_start_41 .. :try_end_47} :catchall_5d
.line 101
iput-boolean v6, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsInTask:Z
.line 102
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mbIsEverSceenOn:Z
.line 103
iget-object v0, p0, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor;->mHandler:Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkHandler;
invoke-virtual {v0, v6}, Lcom/cleanmaster/boost/sceneengine/mainengine/monitor/SceneChargingDetectMonitor$WorkHandler;->sendEmptyMessage(I)Z
.line 104
sget-boolean v0, Lcom/cleanmaster/boost/sceneengine/mainengine/scene/SceneDefine;->DEBUG:Z
if-eqz v0, :cond_11
.line 105
const-string v0, "cm_scene_detect"
const-string v1, "SceneChargingDetectMonitor startMonitor"
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_11
.line 100
:catchall_5d
move-exception v0
:try_start_5e
monitor-exit v1
:try_end_5f
.catchall {:try_start_5e .. :try_end_5f} :catchall_5d
throw v0
.end method