adv.smali
.class public Ldxoptimizer/adv;
.super Ljava/lang/Object;
.source "BatteryInfoTracker.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Ldxoptimizer/adv$b;,
Ldxoptimizer/adv$a;
}
.end annotation
# static fields
.field private static a:Ldxoptimizer/adv;
# instance fields
.field private b:Landroid/content/Context;
.field private c:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Ldxoptimizer/adv$b;",
">;"
}
.end annotation
.end field
.field private d:Ldxoptimizer/adv$a;
.field private e:I
.field private f:Landroid/content/BroadcastReceiver;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 23
const/4 v0, 0x0
sput-object v0, Ldxoptimizer/adv;->a:Ldxoptimizer/adv;
return-void
.end method
.method private constructor <init>(Landroid/content/Context;)V
.registers 3
.prologue
.line 60
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 41
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
.line 43
const/16 v0, 0x64
iput v0, p0, Ldxoptimizer/adv;->e:I
.line 45
new-instance v0, Ldxoptimizer/adv$1;
invoke-direct {v0, p0}, Ldxoptimizer/adv$1;-><init>(Ldxoptimizer/adv;)V
iput-object v0, p0, Ldxoptimizer/adv;->f:Landroid/content/BroadcastReceiver;
.line 61
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
iput-object v0, p0, Ldxoptimizer/adv;->b:Landroid/content/Context;
.line 62
iget-object v0, p0, Ldxoptimizer/adv;->b:Landroid/content/Context;
invoke-static {v0}, Ldxoptimizer/cdr;->f(Landroid/content/Context;)I
move-result v0
iput v0, p0, Ldxoptimizer/adv;->e:I
.line 63
return-void
.end method
.method public static declared-synchronized a(Landroid/content/Context;)Ldxoptimizer/adv;
.registers 3
.prologue
.line 54
const-class v1, Ldxoptimizer/adv;
monitor-enter v1
:try_start_3
sget-object v0, Ldxoptimizer/adv;->a:Ldxoptimizer/adv;
if-nez v0, :cond_e
.line 55
new-instance v0, Ldxoptimizer/adv;
invoke-direct {v0, p0}, Ldxoptimizer/adv;-><init>(Landroid/content/Context;)V
sput-object v0, Ldxoptimizer/adv;->a:Ldxoptimizer/adv;
.line 57
:cond_e
sget-object v0, Ldxoptimizer/adv;->a:Ldxoptimizer/adv;
:try_end_10
.catchall {:try_start_3 .. :try_end_10} :catchall_12
monitor-exit v1
return-object v0
.line 54
:catchall_12
move-exception v0
monitor-exit v1
throw v0
.end method
.method private a()V
.registers 4
.prologue
.line 68
new-instance v0, Landroid/content/IntentFilter;
invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()V
.line 69
const-string v1, "android.intent.action.BATTERY_CHANGED"
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 70
iget-object v1, p0, Ldxoptimizer/adv;->b:Landroid/content/Context;
iget-object v2, p0, Ldxoptimizer/adv;->f:Landroid/content/BroadcastReceiver;
invoke-static {v1, v2, v0}, Ldxoptimizer/cga;->b(Landroid/content/Context;Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
move-result-object v0
.line 72
if-eqz v0, :cond_17
.line 74
invoke-direct {p0, v0}, Ldxoptimizer/adv;->b(Landroid/content/Intent;)V
.line 76
:cond_17
const-string v0, "BatteryInfoTracker"
const-string v1, "BatteryInfoTracker, service started"
invoke-static {v0, v1}, Ldxoptimizer/cdx;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 77
return-void
.end method
.method private a(Landroid/content/Intent;)V
.registers 2
.prologue
.line 119
invoke-direct {p0, p1}, Ldxoptimizer/adv;->b(Landroid/content/Intent;)V
.line 120
return-void
.end method
.method private a(Ldxoptimizer/adv$a;)V
.registers 5
.prologue
.line 111
iget-object v1, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
monitor-enter v1
.line 112
:try_start_3
iget-object v0, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_9
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_1c
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/adv$b;
.line 113
invoke-interface {v0, p1}, Ldxoptimizer/adv$b;->a(Ldxoptimizer/adv$a;)V
goto :goto_9
.line 115
:catchall_19
move-exception v0
monitor-exit v1
:try_end_1b
.catchall {:try_start_3 .. :try_end_1b} :catchall_19
throw v0
:cond_1c
:try_start_1c
monitor-exit v1
:try_end_1d
.catchall {:try_start_1c .. :try_end_1d} :catchall_19
.line 116
return-void
.end method
.method static synthetic a(Ldxoptimizer/adv;Landroid/content/Intent;)V
.registers 2
.prologue
.line 19
invoke-direct {p0, p1}, Ldxoptimizer/adv;->a(Landroid/content/Intent;)V
return-void
.end method
.method private b()V
.registers 3
.prologue
.line 80
iget-object v0, p0, Ldxoptimizer/adv;->b:Landroid/content/Context;
iget-object v1, p0, Ldxoptimizer/adv;->f:Landroid/content/BroadcastReceiver;
invoke-virtual {v0, v1}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
.line 81
const-string v0, "BatteryInfoTracker"
const-string v1, "BatteryInfoTracker, service stopped"
invoke-static {v0, v1}, Ldxoptimizer/cdx;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 82
return-void
.end method
.method private b(Landroid/content/Intent;)V
.registers 10
.prologue
const/4 v7, 0x0
const/16 v6, 0x64
.line 123
new-instance v1, Ldxoptimizer/adv$a;
invoke-direct {v1}, Ldxoptimizer/adv$a;-><init>()V
.line 124
const-string v0, "level"
invoke-static {p1, v0, v7}, Ldxoptimizer/cgc;->a(Landroid/content/Intent;Ljava/lang/String;I)I
move-result v0
invoke-static {v1, v0}, Ldxoptimizer/adv$a;->a(Ldxoptimizer/adv$a;I)I
.line 125
const-string v0, "scale"
invoke-static {p1, v0, v6}, Ldxoptimizer/cgc;->a(Landroid/content/Intent;Ljava/lang/String;I)I
move-result v0
invoke-static {v1, v0}, Ldxoptimizer/adv$a;->b(Ldxoptimizer/adv$a;I)I
.line 126
const-string v0, "temperature"
invoke-static {p1, v0, v7}, Ldxoptimizer/cgc;->a(Landroid/content/Intent;Ljava/lang/String;I)I
move-result v0
int-to-double v2, v0
const-wide v4, 0x3fb999999999999aL # 0.1
mul-double/2addr v2, v4
iput-wide v2, v1, Ldxoptimizer/adv$a;->b:D
.line 128
invoke-direct {p0, v1}, Ldxoptimizer/adv;->b(Ldxoptimizer/adv$a;)V
.line 130
invoke-static {v1}, Ldxoptimizer/adv$a;->a(Ldxoptimizer/adv$a;)I
move-result v0
const/4 v2, 0x1
if-ge v0, v2, :cond_52
invoke-static {v1}, Ldxoptimizer/adv$a;->b(Ldxoptimizer/adv$a;)I
move-result v0
:goto_37
invoke-static {v1, v0}, Ldxoptimizer/adv$a;->c(Ldxoptimizer/adv$a;I)I
.line 131
invoke-static {v1}, Ldxoptimizer/adv$a;->c(Ldxoptimizer/adv$a;)I
move-result v0
if-ltz v0, :cond_5e
invoke-static {v1}, Ldxoptimizer/adv$a;->c(Ldxoptimizer/adv$a;)I
move-result v0
if-gt v0, v6, :cond_5e
.line 132
invoke-static {v1}, Ldxoptimizer/adv$a;->c(Ldxoptimizer/adv$a;)I
move-result v0
iput v0, v1, Ldxoptimizer/adv$a;->a:I
.line 141
:cond_4c
:goto_4c
invoke-direct {p0, v1}, Ldxoptimizer/adv;->a(Ldxoptimizer/adv$a;)V
.line 142
iput-object v1, p0, Ldxoptimizer/adv;->d:Ldxoptimizer/adv$a;
.line 143
return-void
.line 130
:cond_52
invoke-static {v1}, Ldxoptimizer/adv$a;->b(Ldxoptimizer/adv$a;)I
move-result v0
mul-int/lit8 v0, v0, 0x64
invoke-static {v1}, Ldxoptimizer/adv$a;->a(Ldxoptimizer/adv$a;)I
move-result v2
div-int/2addr v0, v2
goto :goto_37
.line 133
:cond_5e
invoke-static {v1}, Ldxoptimizer/adv$a;->c(Ldxoptimizer/adv$a;)I
move-result v0
if-gez v0, :cond_67
.line 134
iput v7, v1, Ldxoptimizer/adv$a;->a:I
goto :goto_4c
.line 136
:cond_67
invoke-static {v1}, Ldxoptimizer/adv$a;->c(Ldxoptimizer/adv$a;)I
move-result v0
if-le v0, v6, :cond_4c
.line 137
iput v6, v1, Ldxoptimizer/adv$a;->a:I
goto :goto_4c
.end method
.method private b(Ldxoptimizer/adv$a;)V
.registers 5
.prologue
.line 147
invoke-static {p1}, Ldxoptimizer/adv$a;->b(Ldxoptimizer/adv$a;)I
move-result v0
invoke-static {p1}, Ldxoptimizer/adv$a;->a(Ldxoptimizer/adv$a;)I
move-result v1
if-le v0, v1, :cond_55
.line 148
const-string v0, "BatteryInfoTracker"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Bad phone!!! battery level: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p1}, Ldxoptimizer/adv$a;->b(Ldxoptimizer/adv$a;)I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ", battery scale: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 149
invoke-static {p1}, Ldxoptimizer/adv$a;->a(Ldxoptimizer/adv$a;)I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ", mBatteryScale: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Ldxoptimizer/adv;->e:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 148
invoke-static {v0, v1}, Ldxoptimizer/cdx;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 151
invoke-static {p1}, Ldxoptimizer/adv$a;->b(Ldxoptimizer/adv$a;)I
move-result v0
rem-int/lit8 v0, v0, 0x64
if-nez v0, :cond_55
.line 152
invoke-static {p1}, Ldxoptimizer/adv$a;->b(Ldxoptimizer/adv$a;)I
move-result v0
iput v0, p0, Ldxoptimizer/adv;->e:I
.line 153
iget-object v0, p0, Ldxoptimizer/adv;->b:Landroid/content/Context;
iget v1, p0, Ldxoptimizer/adv;->e:I
invoke-static {v0, v1}, Ldxoptimizer/cdr;->c(Landroid/content/Context;I)V
.line 158
:cond_55
invoke-static {p1}, Ldxoptimizer/adv$a;->a(Ldxoptimizer/adv$a;)I
move-result v0
iget v1, p0, Ldxoptimizer/adv;->e:I
if-ge v0, v1, :cond_62
.line 159
iget v0, p0, Ldxoptimizer/adv;->e:I
invoke-static {p1, v0}, Ldxoptimizer/adv$a;->b(Ldxoptimizer/adv$a;I)I
.line 161
:cond_62
return-void
.end method
# virtual methods
.method public a(Ldxoptimizer/adv$b;)V
.registers 4
.prologue
.line 86
iget-object v1, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
monitor-enter v1
.line 87
:try_start_3
iget-object v0, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
if-nez v0, :cond_e
.line 88
invoke-direct {p0}, Ldxoptimizer/adv;->a()V
.line 90
:cond_e
iget-object v0, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1b
.line 91
iget-object v0, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 93
:cond_1b
monitor-exit v1
:try_end_1c
.catchall {:try_start_3 .. :try_end_1c} :catchall_26
.line 96
iget-object v0, p0, Ldxoptimizer/adv;->d:Ldxoptimizer/adv$a;
if-eqz v0, :cond_25
.line 97
iget-object v0, p0, Ldxoptimizer/adv;->d:Ldxoptimizer/adv$a;
invoke-interface {p1, v0}, Ldxoptimizer/adv$b;->a(Ldxoptimizer/adv$a;)V
.line 99
:cond_25
return-void
.line 93
:catchall_26
move-exception v0
:try_start_27
monitor-exit v1
:try_end_28
.catchall {:try_start_27 .. :try_end_28} :catchall_26
throw v0
.end method
.method public b(Ldxoptimizer/adv$b;)V
.registers 4
.prologue
.line 102
iget-object v1, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
monitor-enter v1
.line 103
:try_start_3
iget-object v0, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
.line 104
iget-object v0, p0, Ldxoptimizer/adv;->c:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
if-nez v0, :cond_13
.line 105
invoke-direct {p0}, Ldxoptimizer/adv;->b()V
.line 107
:cond_13
monitor-exit v1
.line 108
return-void
.line 107
:catchall_15
move-exception v0
monitor-exit v1
:try_end_17
.catchall {:try_start_3 .. :try_end_17} :catchall_15
throw v0
.end method