a.smali
.class public Lcom/ss/android/socialbase/downloader/a/a;
.super Ljava/lang/Object;
.source "AppStatusManager.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/ss/android/socialbase/downloader/a/a$a;,
Lcom/ss/android/socialbase/downloader/a/a$b;
}
.end annotation
# instance fields
.field private a:Landroid/app/Application;
.field private final b:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lcom/ss/android/socialbase/downloader/a/a$a;",
">;"
}
.end annotation
.end field
.field private c:I
.field private volatile d:I
.field private final e:Landroid/app/Application$ActivityLifecycleCallbacks;
# direct methods
.method private constructor <init>()V
.registers 2
.prologue
.line 60
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 27
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
.line 29
const/4 v0, -0x1
iput v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->d:I
.line 144
new-instance v0, Lcom/ss/android/socialbase/downloader/a/b;
invoke-direct {v0, p0}, Lcom/ss/android/socialbase/downloader/a/b;-><init>(Lcom/ss/android/socialbase/downloader/a/a;)V
iput-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->e:Landroid/app/Application$ActivityLifecycleCallbacks;
.line 61
return-void
.end method
.method synthetic constructor <init>(Lcom/ss/android/socialbase/downloader/a/b;)V
.registers 2
.prologue
.line 19
invoke-direct {p0}, Lcom/ss/android/socialbase/downloader/a/a;-><init>()V
return-void
.end method
.method static synthetic a(Lcom/ss/android/socialbase/downloader/a/a;)I
.registers 2
.prologue
.line 19
iget v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->c:I
return v0
.end method
.method static synthetic a(Lcom/ss/android/socialbase/downloader/a/a;I)I
.registers 2
.prologue
.line 19
iput p1, p0, Lcom/ss/android/socialbase/downloader/a/a;->c:I
return p1
.end method
.method public static a()Lcom/ss/android/socialbase/downloader/a/a;
.registers 1
.prologue
.line 32
invoke-static {}, Lcom/ss/android/socialbase/downloader/a/a$b;->a()Lcom/ss/android/socialbase/downloader/a/a;
move-result-object v0
return-object v0
.end method
.method static synthetic b(Lcom/ss/android/socialbase/downloader/a/a;)V
.registers 1
.prologue
.line 19
invoke-direct {p0}, Lcom/ss/android/socialbase/downloader/a/a;->d()V
return-void
.end method
.method static synthetic c(Lcom/ss/android/socialbase/downloader/a/a;)V
.registers 1
.prologue
.line 19
invoke-direct {p0}, Lcom/ss/android/socialbase/downloader/a/a;->e()V
return-void
.end method
.method private c()[Ljava/lang/Object;
.registers 4
.prologue
.line 113
const/4 v0, 0x0
.line 114
iget-object v1, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
monitor-enter v1
.line 115
:try_start_4
iget-object v2, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-lez v2, :cond_12
.line 116
iget-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->toArray()[Ljava/lang/Object;
move-result-object v0
.line 118
:cond_12
monitor-exit v1
.line 119
return-object v0
.line 118
:catchall_14
move-exception v0
monitor-exit v1
:try_end_16
.catchall {:try_start_4 .. :try_end_16} :catchall_14
throw v0
.end method
.method private d()V
.registers 5
.prologue
.line 123
const-string v0, "AppStatusManager"
const-string v1, "dispatchAppForeground"
invoke-static {v0, v1}, Lcom/ss/android/socialbase/downloader/f/a;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 124
const/4 v0, 0x1
iput v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->d:I
.line 125
invoke-direct {p0}, Lcom/ss/android/socialbase/downloader/a/a;->c()[Ljava/lang/Object;
move-result-object v2
.line 126
if-eqz v2, :cond_20
.line 127
array-length v3, v2
const/4 v0, 0x0
move v1, v0
:goto_13
if-ge v1, v3, :cond_20
aget-object v0, v2, v1
.line 128
check-cast v0, Lcom/ss/android/socialbase/downloader/a/a$a;
invoke-interface {v0}, Lcom/ss/android/socialbase/downloader/a/a$a;->b()V
.line 127
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_13
.line 131
:cond_20
return-void
.end method
.method private e()V
.registers 5
.prologue
const/4 v0, 0x0
.line 134
const-string v1, "AppStatusManager"
const-string v2, "dispatchAppBackground"
invoke-static {v1, v2}, Lcom/ss/android/socialbase/downloader/f/a;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 135
iput v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->d:I
.line 136
invoke-direct {p0}, Lcom/ss/android/socialbase/downloader/a/a;->c()[Ljava/lang/Object;
move-result-object v2
.line 137
if-eqz v2, :cond_1f
.line 138
array-length v3, v2
move v1, v0
:goto_12
if-ge v1, v3, :cond_1f
aget-object v0, v2, v1
.line 139
check-cast v0, Lcom/ss/android/socialbase/downloader/a/a$a;
invoke-interface {v0}, Lcom/ss/android/socialbase/downloader/a/a$a;->c()V
.line 138
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_12
.line 142
:cond_1f
return-void
.end method
.method private f()V
.registers 4
.prologue
.line 195
invoke-direct {p0}, Lcom/ss/android/socialbase/downloader/a/a;->g()Landroid/app/Activity;
move-result-object v0
.line 196
iget v1, p0, Lcom/ss/android/socialbase/downloader/a/a;->d:I
const/4 v2, -0x1
if-ne v1, v2, :cond_14
.line 197
if-eqz v0, :cond_15
.line 198
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
iput v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->c:I
.line 199
const/4 v0, 0x1
iput v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->d:I
.line 204
:cond_14
:goto_14
return-void
.line 201
:cond_15
const/4 v0, 0x0
iput v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->d:I
goto :goto_14
.end method
.method private g()Landroid/app/Activity;
.registers 7
.prologue
const/4 v1, 0x0
.line 208
:try_start_1
const-string v0, "android.app.ActivityThread"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
.line 209
const-string v2, "currentActivityThread"
const/4 v3, 0x0
new-array v3, v3, [Ljava/lang/Class;
invoke-virtual {v0, v2, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
const/4 v3, 0x0
const/4 v4, 0x0
new-array v4, v4, [Ljava/lang/Object;
invoke-virtual {v2, v3, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
.line 210
const-string v3, "mActivities"
invoke-virtual {v0, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 211
const/4 v3, 0x1
invoke-virtual {v0, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 212
invoke-virtual {v0, v2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map;
.line 213
if-eqz v0, :cond_30
invoke-interface {v0}, Ljava/util/Map;->size()I
move-result v2
if-nez v2, :cond_32
:cond_30
move-object v0, v1
.line 235
:goto_31
return-object v0
.line 218
:cond_32
invoke-interface {v0}, Ljava/util/Map;->values()Ljava/util/Collection;
move-result-object v0
invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v3
move-object v2, v1
move-object v0, v1
:cond_3c
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_73
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
.line 219
if-nez v0, :cond_4c
.line 220
invoke-virtual {v4}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
.line 222
:cond_4c
if-nez v2, :cond_54
.line 223
const-string v2, "paused"
invoke-virtual {v0, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v2
.line 225
:cond_54
const/4 v5, 0x1
invoke-virtual {v2, v5}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 226
invoke-virtual {v2, v4}, Ljava/lang/reflect/Field;->getBoolean(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_3c
.line 227
const-string v2, "activity"
invoke-virtual {v0, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 228
const/4 v2, 0x1
invoke-virtual {v0, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 229
invoke-virtual {v0, v4}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/Activity;
:try_end_6e
.catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_6e} :catch_6f
goto :goto_31
.line 232
:catch_6f
move-exception v0
.line 233
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:cond_73
move-object v0, v1
.line 235
goto :goto_31
.end method
# virtual methods
.method public a(Landroid/content/Context;)V
.registers 4
.prologue
.line 64
iget-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->a:Landroid/app/Application;
if-nez v0, :cond_19
.line 65
instance-of v0, p1, Landroid/app/Application;
if-eqz v0, :cond_19
.line 66
monitor-enter p0
.line 67
:try_start_9
iget-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->a:Landroid/app/Application;
if-nez v0, :cond_18
.line 68
check-cast p1, Landroid/app/Application;
iput-object p1, p0, Lcom/ss/android/socialbase/downloader/a/a;->a:Landroid/app/Application;
.line 69
iget-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->a:Landroid/app/Application;
iget-object v1, p0, Lcom/ss/android/socialbase/downloader/a/a;->e:Landroid/app/Application$ActivityLifecycleCallbacks;
invoke-virtual {v0, v1}, Landroid/app/Application;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
.line 71
:cond_18
monitor-exit p0
.line 74
:cond_19
return-void
.line 71
:catchall_1a
move-exception v0
monitor-exit p0
:try_end_1c
.catchall {:try_start_9 .. :try_end_1c} :catchall_1a
throw v0
.end method
.method public a(Lcom/ss/android/socialbase/downloader/a/a$a;)V
.registers 4
.prologue
.line 93
if-nez p1, :cond_3
.line 101
:goto_2
return-void
.line 96
:cond_3
iget-object v1, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
monitor-enter v1
.line 97
:try_start_6
iget-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_13
.line 98
iget-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 100
:cond_13
monitor-exit v1
goto :goto_2
:catchall_15
move-exception v0
monitor-exit v1
:try_end_17
.catchall {:try_start_6 .. :try_end_17} :catchall_15
throw v0
.end method
.method public b(Lcom/ss/android/socialbase/downloader/a/a$a;)V
.registers 4
.prologue
.line 107
iget-object v1, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
monitor-enter v1
.line 108
:try_start_3
iget-object v0, p0, Lcom/ss/android/socialbase/downloader/a/a;->b:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
.line 109
monitor-exit v1
.line 110
return-void
.line 109
:catchall_a
move-exception v0
monitor-exit v1
:try_end_c
.catchall {:try_start_3 .. :try_end_c} :catchall_a
throw v0
.end method
.method public b()Z
.registers 4
.prologue
const/4 v0, 0x1
.line 81
iget v1, p0, Lcom/ss/android/socialbase/downloader/a/a;->d:I
.line 82
const/4 v2, -0x1
if-ne v1, v2, :cond_b
.line 83
invoke-direct {p0}, Lcom/ss/android/socialbase/downloader/a/a;->f()V
.line 84
iget v1, p0, Lcom/ss/android/socialbase/downloader/a/a;->d:I
.line 86
:cond_b
if-ne v1, v0, :cond_e
:goto_d
return v0
:cond_e
const/4 v0, 0x0
goto :goto_d
.end method