ApplicationStatus.smali
.class public Laegon/chrome/base/ApplicationStatus;
.super Ljava/lang/Object;
# annotations
.annotation runtime Laegon/chrome/base/annotations/JNINamespace;
value = "base::android"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Laegon/chrome/base/ApplicationStatus$WindowCallbackProxy;,
Laegon/chrome/base/ApplicationStatus$WindowFocusChangedListener;,
Laegon/chrome/base/ApplicationStatus$ActivityStateListener;,
Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;,
Laegon/chrome/base/ApplicationStatus$ActivityInfo;
}
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z
.field private static final TOOLBAR_CALLBACK_INTERNAL_WRAPPER_CLASS:Ljava/lang/String; = "android.support.v7.internal.app.ToolbarActionBar$ToolbarCallbackWrapper"
.field private static final TOOLBAR_CALLBACK_WRAPPER_CLASS:Ljava/lang/String; = "android.support.v7.app.ToolbarActionBar$ToolbarCallbackWrapper"
.field private static final WINDOW_PROFILER_CALLBACK:Ljava/lang/String; = "com.android.tools.profiler.support.event.WindowProfilerCallback"
.field private static sActivity:Landroid/app/Activity;
.annotation build Landroid/annotation/SuppressLint;
value = {
"StaticFieldLeak"
}
.end annotation
.end field
.field private static final sActivityInfo:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Landroid/app/Activity;",
"Laegon/chrome/base/ApplicationStatus$ActivityInfo;",
">;"
}
.end annotation
.end field
.field private static final sApplicationStateListeners:Laegon/chrome/base/ObserverList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Laegon/chrome/base/ObserverList",
"<",
"Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;",
">;"
}
.end annotation
.end field
.field private static sCurrentApplicationState:I
.annotation build Landroid/annotation/SuppressLint;
value = {
"SupportAnnotationUsage"
}
.end annotation
.annotation build Ljavax/annotation/concurrent/GuardedBy;
value = "sActivityInfo"
.end annotation
.end field
.field private static final sGeneralActivityStateListeners:Laegon/chrome/base/ObserverList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Laegon/chrome/base/ObserverList",
"<",
"Laegon/chrome/base/ApplicationStatus$ActivityStateListener;",
">;"
}
.end annotation
.end field
.field private static sNativeApplicationStateListener:Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;
.field private static final sWindowFocusListeners:Laegon/chrome/base/ObserverList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Laegon/chrome/base/ObserverList",
"<",
"Laegon/chrome/base/ApplicationStatus$WindowFocusChangedListener;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 2
const/4 v1, 0x0
const-class v0, Laegon/chrome/base/ApplicationStatus;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_2f
const/4 v0, 0x1
:goto_a
sput-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
invoke-static {v0}, Ljava/util/Collections;->synchronizedMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
sput-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
sput v1, Laegon/chrome/base/ApplicationStatus;->sCurrentApplicationState:I
new-instance v0, Laegon/chrome/base/ObserverList;
invoke-direct {v0}, Laegon/chrome/base/ObserverList;-><init>()V
sput-object v0, Laegon/chrome/base/ApplicationStatus;->sGeneralActivityStateListeners:Laegon/chrome/base/ObserverList;
new-instance v0, Laegon/chrome/base/ObserverList;
invoke-direct {v0}, Laegon/chrome/base/ObserverList;-><init>()V
sput-object v0, Laegon/chrome/base/ApplicationStatus;->sApplicationStateListeners:Laegon/chrome/base/ObserverList;
new-instance v0, Laegon/chrome/base/ObserverList;
invoke-direct {v0}, Laegon/chrome/base/ObserverList;-><init>()V
sput-object v0, Laegon/chrome/base/ApplicationStatus;->sWindowFocusListeners:Laegon/chrome/base/ObserverList;
return-void
:cond_2f
move v0, v1
goto :goto_a
.end method
.method private constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static synthetic access$000()Laegon/chrome/base/ObserverList;
.registers 1
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sWindowFocusListeners:Laegon/chrome/base/ObserverList;
return-object v0
.end method
.method static synthetic access$100()Landroid/app/Activity;
.registers 1
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivity:Landroid/app/Activity;
return-object v0
.end method
.method static synthetic access$102(Landroid/app/Activity;)Landroid/app/Activity;
.registers 1
sput-object p0, Laegon/chrome/base/ApplicationStatus;->sActivity:Landroid/app/Activity;
return-object p0
.end method
.method static synthetic access$200(Landroid/app/Activity;I)V
.registers 2
invoke-static {p0, p1}, Laegon/chrome/base/ApplicationStatus;->onStateChange(Landroid/app/Activity;I)V
return-void
.end method
.method static synthetic access$400()Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;
.registers 1
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sNativeApplicationStateListener:Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;
return-object v0
.end method
.method static synthetic access$402(Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;)Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;
.registers 1
sput-object p0, Laegon/chrome/base/ApplicationStatus;->sNativeApplicationStateListener:Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;
return-object p0
.end method
.method static synthetic access$500(I)V
.registers 1
invoke-static {p0}, Laegon/chrome/base/ApplicationStatus;->nativeOnApplicationStateChange(I)V
return-void
.end method
.method public static destroyForJUnitTests()V
.registers 2
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-object v1, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
monitor-enter v1
:try_start_3
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sApplicationStateListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0}, Laegon/chrome/base/ObserverList;->clear()V
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sGeneralActivityStateListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0}, Laegon/chrome/base/ObserverList;->clear()V
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->clear()V
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sWindowFocusListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0}, Laegon/chrome/base/ObserverList;->clear()V
const/4 v0, 0x0
sput v0, Laegon/chrome/base/ApplicationStatus;->sCurrentApplicationState:I
const/4 v0, 0x0
sput-object v0, Laegon/chrome/base/ApplicationStatus;->sActivity:Landroid/app/Activity;
const/4 v0, 0x0
sput-object v0, Laegon/chrome/base/ApplicationStatus;->sNativeApplicationStateListener:Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;
monitor-exit v1
return-void
:catchall_22
move-exception v0
monitor-exit v1
:try_end_24
.catchall {:try_start_3 .. :try_end_24} :catchall_22
throw v0
.end method
.method private static determineApplicationStateLocked()I
.registers 8
.annotation build Ljavax/annotation/concurrent/GuardedBy;
value = "sActivityInfo"
.end annotation
const/4 v7, 0x5
const/4 v0, 0x0
const/4 v4, 0x4
const/4 v3, 0x1
sget-object v1, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v1}, Ljava/util/Map;->values()Ljava/util/Collection;
move-result-object v1
invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v5
move v1, v0
move v2, v0
:goto_10
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_34
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/ApplicationStatus$ActivityInfo;
invoke-virtual {v0}, Laegon/chrome/base/ApplicationStatus$ActivityInfo;->getStatus()I
move-result v0
if-eq v0, v4, :cond_28
if-eq v0, v7, :cond_28
const/4 v6, 0x6
if-eq v0, v6, :cond_28
:goto_27
return v3
:cond_28
if-ne v0, v4, :cond_2f
move v0, v1
move v1, v3
:goto_2c
move v2, v1
move v1, v0
goto :goto_10
:cond_2f
if-ne v0, v7, :cond_3e
move v0, v3
move v1, v2
goto :goto_2c
:cond_34
if-eqz v2, :cond_38
const/4 v3, 0x2
goto :goto_27
:cond_38
if-eqz v1, :cond_3c
const/4 v3, 0x3
goto :goto_27
:cond_3c
move v3, v4
goto :goto_27
:cond_3e
move v0, v1
move v1, v2
goto :goto_2c
.end method
.method public static getLastTrackedFocusedActivity()Landroid/app/Activity;
.registers 1
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivity:Landroid/app/Activity;
return-object v0
.end method
.method public static getRunningActivities()Ljava/util/List;
.registers 3
.annotation build Landroid/support/annotation/AnyThread;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Landroid/app/Activity;",
">;"
}
.end annotation
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->isInitialized()Z
move-result v0
if-nez v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_10
sget-object v1, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
monitor-enter v1
:try_start_13
new-instance v0, Ljava/util/ArrayList;
sget-object v2, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v2}, Ljava/util/Map;->keySet()Ljava/util/Set;
move-result-object v2
invoke-direct {v0, v2}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
monitor-exit v1
return-object v0
:catchall_20
move-exception v0
monitor-exit v1
:try_end_22
.catchall {:try_start_13 .. :try_end_22} :catchall_20
throw v0
.end method
.method public static getStateForActivity(Landroid/app/Activity;)I
.registers 3
.param p0 # Landroid/app/Activity;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
.annotation build Landroid/support/annotation/AnyThread;
.end annotation
const/4 v1, 0x6
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_11
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->isInitialized()Z
move-result v0
if-nez v0, :cond_11
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_11
if-nez p0, :cond_14
:goto_13
return v1
:cond_14
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/ApplicationStatus$ActivityInfo;
if-eqz v0, :cond_24
invoke-virtual {v0}, Laegon/chrome/base/ApplicationStatus$ActivityInfo;->getStatus()I
move-result v0
:goto_22
move v1, v0
goto :goto_13
:cond_24
move v0, v1
goto :goto_22
.end method
.method public static getStateForApplication()I
.registers 2
.annotation build Laegon/chrome/base/annotations/CalledByNative;
.end annotation
.annotation build Landroid/support/annotation/AnyThread;
.end annotation
sget-object v1, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
monitor-enter v1
:try_start_3
sget v0, Laegon/chrome/base/ApplicationStatus;->sCurrentApplicationState:I
monitor-exit v1
return v0
:catchall_7
move-exception v0
monitor-exit v1
:try_end_9
.catchall {:try_start_3 .. :try_end_9} :catchall_7
throw v0
.end method
.method public static hasVisibleActivities()Z
.registers 3
.annotation build Landroid/support/annotation/AnyThread;
.end annotation
const/4 v0, 0x1
sget-boolean v1, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v1, :cond_11
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->isInitialized()Z
move-result v1
if-nez v1, :cond_11
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_11
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->getStateForApplication()I
move-result v1
if-eq v1, v0, :cond_1a
const/4 v2, 0x2
if-ne v1, v2, :cond_1b
:cond_1a
:goto_1a
return v0
:cond_1b
const/4 v0, 0x0
goto :goto_1a
.end method
.method public static initialize(Landroid/app/Application;)V
.registers 3
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->isInitialized()Z
move-result v0
if-eqz v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_10
sget-object v1, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
monitor-enter v1
const/4 v0, 0x4
:try_start_14
sput v0, Laegon/chrome/base/ApplicationStatus;->sCurrentApplicationState:I
monitor-exit v1
:try_end_17
.catchall {:try_start_14 .. :try_end_17} :catchall_28
new-instance v0, Laegon/chrome/base/ApplicationStatus$1;
invoke-direct {v0}, Laegon/chrome/base/ApplicationStatus$1;-><init>()V
invoke-static {v0}, Laegon/chrome/base/ApplicationStatus;->registerWindowFocusChangedListener(Laegon/chrome/base/ApplicationStatus$WindowFocusChangedListener;)V
new-instance v0, Laegon/chrome/base/ApplicationStatus$2;
invoke-direct {v0}, Laegon/chrome/base/ApplicationStatus$2;-><init>()V
invoke-virtual {p0, v0}, Landroid/app/Application;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
return-void
:catchall_28
move-exception v0
:try_start_29
monitor-exit v1
:try_end_2a
.catchall {:try_start_29 .. :try_end_2a} :catchall_28
throw v0
.end method
.method public static isEveryActivityDestroyed()Z
.registers 1
.annotation build Landroid/support/annotation/AnyThread;
.end annotation
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->isInitialized()Z
move-result v0
if-nez v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_10
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->isEmpty()Z
move-result v0
return v0
.end method
.method public static isInitialized()Z
.registers 2
sget-object v1, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
monitor-enter v1
:try_start_3
sget v0, Laegon/chrome/base/ApplicationStatus;->sCurrentApplicationState:I
if-eqz v0, :cond_a
const/4 v0, 0x1
:goto_8
monitor-exit v1
return v0
:cond_a
const/4 v0, 0x0
goto :goto_8
:catchall_c
move-exception v0
monitor-exit v1
:try_end_e
.catchall {:try_start_3 .. :try_end_e} :catchall_c
throw v0
.end method
.method private static native nativeOnApplicationStateChange(I)V
.end method
.method private static onStateChange(Landroid/app/Activity;I)V
.registers 7
const/4 v3, 0x1
if-nez p0, :cond_b
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "null activity is not supported"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_b
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivity:Landroid/app/Activity;
if-eqz v0, :cond_17
if-eq p1, v3, :cond_17
const/4 v0, 0x3
if-eq p1, v0, :cond_17
const/4 v0, 0x2
if-ne p1, v0, :cond_19
:cond_17
sput-object p0, Laegon/chrome/base/ApplicationStatus;->sActivity:Landroid/app/Activity;
:cond_19
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->getStateForApplication()I
move-result v1
sget-object v2, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
monitor-enter v2
if-ne p1, v3, :cond_42
:try_start_22
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_37
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_37
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:catchall_34
move-exception v0
monitor-exit v2
:try_end_36
.catchall {:try_start_22 .. :try_end_36} :catchall_34
throw v0
:cond_37
:try_start_37
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
new-instance v3, Laegon/chrome/base/ApplicationStatus$ActivityInfo;
const/4 v4, 0x0
invoke-direct {v3, v4}, Laegon/chrome/base/ApplicationStatus$ActivityInfo;-><init>(Laegon/chrome/base/ApplicationStatus$1;)V
invoke-interface {v0, p0, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_42
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/ApplicationStatus$ActivityInfo;
invoke-virtual {v0, p1}, Laegon/chrome/base/ApplicationStatus$ActivityInfo;->setStatus(I)V
const/4 v3, 0x6
if-ne p1, v3, :cond_5c
sget-object v3, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v3, p0}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
sget-object v3, Laegon/chrome/base/ApplicationStatus;->sActivity:Landroid/app/Activity;
if-ne p0, v3, :cond_5c
const/4 v3, 0x0
sput-object v3, Laegon/chrome/base/ApplicationStatus;->sActivity:Landroid/app/Activity;
:cond_5c
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->determineApplicationStateLocked()I
move-result v3
sput v3, Laegon/chrome/base/ApplicationStatus;->sCurrentApplicationState:I
monitor-exit v2
:try_end_63
.catchall {:try_start_37 .. :try_end_63} :catchall_34
invoke-virtual {v0}, Laegon/chrome/base/ApplicationStatus$ActivityInfo;->getListeners()Laegon/chrome/base/ObserverList;
move-result-object v0
invoke-virtual {v0}, Laegon/chrome/base/ObserverList;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_6b
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_7b
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/ApplicationStatus$ActivityStateListener;
invoke-interface {v0, p0, p1}, Laegon/chrome/base/ApplicationStatus$ActivityStateListener;->onActivityStateChange(Landroid/app/Activity;I)V
goto :goto_6b
:cond_7b
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sGeneralActivityStateListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0}, Laegon/chrome/base/ObserverList;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_81
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_91
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/ApplicationStatus$ActivityStateListener;
invoke-interface {v0, p0, p1}, Laegon/chrome/base/ApplicationStatus$ActivityStateListener;->onActivityStateChange(Landroid/app/Activity;I)V
goto :goto_81
:cond_91
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->getStateForApplication()I
move-result v2
if-eq v2, v1, :cond_ad
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sApplicationStateListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0}, Laegon/chrome/base/ObserverList;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_9d
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_ad
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;
invoke-interface {v0, v2}, Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;->onApplicationStateChange(I)V
goto :goto_9d
:cond_ad
return-void
.end method
.method public static onStateChangeForTesting(Landroid/app/Activity;I)V
.registers 2
.annotation build Laegon/chrome/base/VisibleForTesting;
.end annotation
.annotation build Landroid/support/annotation/MainThread;
.end annotation
invoke-static {p0, p1}, Laegon/chrome/base/ApplicationStatus;->onStateChange(Landroid/app/Activity;I)V
return-void
.end method
.method public static registerApplicationStateListener(Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;)V
.registers 2
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sApplicationStateListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0, p0}, Laegon/chrome/base/ObserverList;->addObserver(Ljava/lang/Object;)Z
return-void
.end method
.method public static registerStateListenerForActivity(Laegon/chrome/base/ApplicationStatus$ActivityStateListener;Landroid/app/Activity;)V
.registers 5
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->isInitialized()Z
move-result v0
if-nez v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_10
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_1c
if-nez p1, :cond_1c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_1c
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/ApplicationStatus$ActivityInfo;
sget-boolean v1, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v1, :cond_35
invoke-virtual {v0}, Laegon/chrome/base/ApplicationStatus$ActivityInfo;->getStatus()I
move-result v1
const/4 v2, 0x6
if-ne v1, v2, :cond_35
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_35
invoke-virtual {v0}, Laegon/chrome/base/ApplicationStatus$ActivityInfo;->getListeners()Laegon/chrome/base/ObserverList;
move-result-object v0
invoke-virtual {v0, p0}, Laegon/chrome/base/ObserverList;->addObserver(Ljava/lang/Object;)Z
return-void
.end method
.method public static registerStateListenerForAllActivities(Laegon/chrome/base/ApplicationStatus$ActivityStateListener;)V
.registers 2
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->isInitialized()Z
move-result v0
if-nez v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_10
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sGeneralActivityStateListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0, p0}, Laegon/chrome/base/ObserverList;->addObserver(Ljava/lang/Object;)Z
return-void
.end method
.method private static registerThreadSafeNativeApplicationStateListener()V
.registers 1
.annotation build Laegon/chrome/base/annotations/CalledByNative;
.end annotation
new-instance v0, Laegon/chrome/base/ApplicationStatus$3;
invoke-direct {v0}, Laegon/chrome/base/ApplicationStatus$3;-><init>()V
invoke-static {v0}, Laegon/chrome/base/ThreadUtils;->runOnUiThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public static registerWindowFocusChangedListener(Laegon/chrome/base/ApplicationStatus$WindowFocusChangedListener;)V
.registers 2
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-boolean v0, Laegon/chrome/base/ApplicationStatus;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-static {}, Laegon/chrome/base/ApplicationStatus;->isInitialized()Z
move-result v0
if-nez v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_10
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sWindowFocusListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0, p0}, Laegon/chrome/base/ObserverList;->addObserver(Ljava/lang/Object;)Z
return-void
.end method
.method public static unregisterActivityStateListener(Laegon/chrome/base/ApplicationStatus$ActivityStateListener;)V
.registers 4
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sGeneralActivityStateListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0, p0}, Laegon/chrome/base/ObserverList;->removeObserver(Ljava/lang/Object;)Z
sget-object v1, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
monitor-enter v1
:try_start_8
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sActivityInfo:Ljava/util/Map;
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 v2
:goto_12
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_29
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/ApplicationStatus$ActivityInfo;
invoke-virtual {v0}, Laegon/chrome/base/ApplicationStatus$ActivityInfo;->getListeners()Laegon/chrome/base/ObserverList;
move-result-object v0
invoke-virtual {v0, p0}, Laegon/chrome/base/ObserverList;->removeObserver(Ljava/lang/Object;)Z
goto :goto_12
:catchall_26
move-exception v0
monitor-exit v1
:try_end_28
.catchall {:try_start_8 .. :try_end_28} :catchall_26
throw v0
:cond_29
:try_start_29
monitor-exit v1
:try_end_2a
.catchall {:try_start_29 .. :try_end_2a} :catchall_26
return-void
.end method
.method public static unregisterApplicationStateListener(Laegon/chrome/base/ApplicationStatus$ApplicationStateListener;)V
.registers 2
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sApplicationStateListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0, p0}, Laegon/chrome/base/ObserverList;->removeObserver(Ljava/lang/Object;)Z
return-void
.end method
.method public static unregisterWindowFocusChangedListener(Laegon/chrome/base/ApplicationStatus$WindowFocusChangedListener;)V
.registers 2
.annotation build Landroid/support/annotation/MainThread;
.end annotation
sget-object v0, Laegon/chrome/base/ApplicationStatus;->sWindowFocusListeners:Laegon/chrome/base/ObserverList;
invoke-virtual {v0, p0}, Laegon/chrome/base/ObserverList;->removeObserver(Ljava/lang/Object;)Z
return-void
.end method