.class public Lcom/moji/tool/fps/Foreground; .super Ljava/lang/Object; .source "Foreground.java" # interfaces .implements Landroid/app/Application$ActivityLifecycleCallbacks; # annotations .annotation build Landroid/annotation/TargetApi; value = 0xe .end annotation .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/moji/tool/fps/Foreground$Listener; } .end annotation # static fields .field public static final a:Ljava/lang/String; = "com.moji.tool.fps.Foreground" .field private static b:Lcom/moji/tool/fps/Foreground; # instance fields .field private c:Z .field private d:Z .field private e:Landroid/os/Handler; .field private f:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lcom/moji/tool/fps/Foreground$Listener;", ">;" } .end annotation .end field .field private g:Ljava/lang/Runnable; # direct methods .method static constructor ()V .locals 0 return-void .end method .method public constructor ()V .locals 1 .line 54 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x1 .line 69 iput-boolean v0, p0, Lcom/moji/tool/fps/Foreground;->c:Z iput-boolean v0, p0, Lcom/moji/tool/fps/Foreground;->d:Z .line 70 new-instance v0, Landroid/os/Handler; invoke-direct {v0}, Landroid/os/Handler;->()V iput-object v0, p0, Lcom/moji/tool/fps/Foreground;->e:Landroid/os/Handler; .line 71 new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList; invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;->()V iput-object v0, p0, Lcom/moji/tool/fps/Foreground;->f:Ljava/util/List; return-void .end method .method public static a()Lcom/moji/tool/fps/Foreground; .locals 1 .line 112 sget-object v0, Lcom/moji/tool/fps/Foreground;->b:Lcom/moji/tool/fps/Foreground; return-object v0 .end method .method public static a(Landroid/app/Application;)Lcom/moji/tool/fps/Foreground; .locals 1 .line 84 sget-object v0, Lcom/moji/tool/fps/Foreground;->b:Lcom/moji/tool/fps/Foreground; if-nez v0, :cond_0 .line 85 new-instance v0, Lcom/moji/tool/fps/Foreground; invoke-direct {v0}, Lcom/moji/tool/fps/Foreground;->()V sput-object v0, Lcom/moji/tool/fps/Foreground;->b:Lcom/moji/tool/fps/Foreground; .line 86 sget-object v0, Lcom/moji/tool/fps/Foreground;->b:Lcom/moji/tool/fps/Foreground; invoke-virtual {p0, v0}, Landroid/app/Application;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V .line 88 :cond_0 sget-object p0, Lcom/moji/tool/fps/Foreground;->b:Lcom/moji/tool/fps/Foreground; return-object p0 .end method .method public static a(Landroid/content/Context;)Lcom/moji/tool/fps/Foreground; .locals 1 .line 99 sget-object v0, Lcom/moji/tool/fps/Foreground;->b:Lcom/moji/tool/fps/Foreground; if-nez v0, :cond_1 .line 100 invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; move-result-object p0 .line 101 instance-of v0, p0, Landroid/app/Application; if-eqz v0, :cond_0 .line 102 check-cast p0, Landroid/app/Application; invoke-static {p0}, Lcom/moji/tool/fps/Foreground;->a(Landroid/app/Application;)Lcom/moji/tool/fps/Foreground; .line 104 :cond_0 new-instance p0, Ljava/lang/IllegalStateException; const-string v0, "Foreground is not initialised and cannot obtain the Application object" invoke-direct {p0, v0}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p0 .line 108 :cond_1 sget-object p0, Lcom/moji/tool/fps/Foreground;->b:Lcom/moji/tool/fps/Foreground; return-object p0 .end method .method static synthetic a(Lcom/moji/tool/fps/Foreground;)Z .locals 0 .line 54 iget-boolean p0, p0, Lcom/moji/tool/fps/Foreground;->c:Z return p0 .end method .method static synthetic a(Lcom/moji/tool/fps/Foreground;Z)Z .locals 0 .line 54 iput-boolean p1, p0, Lcom/moji/tool/fps/Foreground;->c:Z return p1 .end method .method static synthetic b(Lcom/moji/tool/fps/Foreground;)Z .locals 0 .line 54 iget-boolean p0, p0, Lcom/moji/tool/fps/Foreground;->d:Z return p0 .end method .method static synthetic c(Lcom/moji/tool/fps/Foreground;)Ljava/util/List; .locals 0 .line 54 iget-object p0, p0, Lcom/moji/tool/fps/Foreground;->f:Ljava/util/List; return-object p0 .end method # virtual methods .method public a(Lcom/moji/tool/fps/Foreground$Listener;)V .locals 1 .line 124 iget-object v0, p0, Lcom/moji/tool/fps/Foreground;->f:Ljava/util/List; invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z return-void .end method .method public b(Lcom/moji/tool/fps/Foreground$Listener;)V .locals 1 .line 128 iget-object v0, p0, Lcom/moji/tool/fps/Foreground;->f:Ljava/util/List; invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z return-void .end method .method public onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V .locals 0 return-void .end method .method public onActivityDestroyed(Landroid/app/Activity;)V .locals 0 return-void .end method .method public onActivityPaused(Landroid/app/Activity;)V .locals 3 const/4 p1, 0x1 .line 156 iput-boolean p1, p0, Lcom/moji/tool/fps/Foreground;->d:Z .line 158 iget-object p1, p0, Lcom/moji/tool/fps/Foreground;->g:Ljava/lang/Runnable; if-eqz p1, :cond_0 .line 159 iget-object p1, p0, Lcom/moji/tool/fps/Foreground;->e:Landroid/os/Handler; iget-object v0, p0, Lcom/moji/tool/fps/Foreground;->g:Ljava/lang/Runnable; invoke-virtual {p1, v0}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V .line 161 :cond_0 iget-object p1, p0, Lcom/moji/tool/fps/Foreground;->e:Landroid/os/Handler; new-instance v0, Lcom/moji/tool/fps/Foreground$1; invoke-direct {v0, p0}, Lcom/moji/tool/fps/Foreground$1;->(Lcom/moji/tool/fps/Foreground;)V iput-object v0, p0, Lcom/moji/tool/fps/Foreground;->g:Ljava/lang/Runnable; const-wide/16 v1, 0x258 invoke-virtual {p1, v0, v1, v2}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z return-void .end method .method public onActivityResumed(Landroid/app/Activity;)V .locals 3 const/4 p1, 0x0 .line 133 iput-boolean p1, p0, Lcom/moji/tool/fps/Foreground;->d:Z .line 134 iget-boolean p1, p0, Lcom/moji/tool/fps/Foreground;->c:Z const/4 v0, 0x1 xor-int/2addr p1, v0 .line 135 iput-boolean v0, p0, Lcom/moji/tool/fps/Foreground;->c:Z .line 137 iget-object v0, p0, Lcom/moji/tool/fps/Foreground;->g:Ljava/lang/Runnable; if-eqz v0, :cond_0 .line 138 iget-object v0, p0, Lcom/moji/tool/fps/Foreground;->e:Landroid/os/Handler; iget-object v1, p0, Lcom/moji/tool/fps/Foreground;->g:Ljava/lang/Runnable; invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V :cond_0 if-eqz p1, :cond_1 .line 141 sget-object p1, Lcom/moji/tool/fps/Foreground;->a:Ljava/lang/String; const-string v0, "went foreground" invoke-static {p1, v0}, Lcom/moji/tool/log/MJLogger;->c(Ljava/lang/String;Ljava/lang/String;)V .line 142 iget-object p1, p0, Lcom/moji/tool/fps/Foreground;->f:Ljava/util/List; invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p1 :goto_0 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_2 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/moji/tool/fps/Foreground$Listener; .line 144 :try_start_0 invoke-interface {v0}, Lcom/moji/tool/fps/Foreground$Listener;->a()V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception v0 .line 146 sget-object v1, Lcom/moji/tool/fps/Foreground;->a:Ljava/lang/String; const-string v2, "Listener threw exception!" invoke-static {v1, v2, v0}, Lcom/moji/tool/log/MJLogger;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V goto :goto_0 .line 150 :cond_1 sget-object p1, Lcom/moji/tool/fps/Foreground;->a:Ljava/lang/String; const-string v0, "still foreground" invoke-static {p1, v0}, Lcom/moji/tool/log/MJLogger;->c(Ljava/lang/String;Ljava/lang/String;)V :cond_2 return-void .end method .method public onActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V .locals 0 return-void .end method .method public onActivityStarted(Landroid/app/Activity;)V .locals 0 return-void .end method .method public onActivityStopped(Landroid/app/Activity;)V .locals 0 return-void .end method