From 21a5030bb3f460332819eb77f0c57e5f1a1f091a Mon Sep 17 00:00:00 2001 From: Sriram Ramasubramanian Date: Tue, 8 May 2012 16:40:12 -0700 Subject: [PATCH] Bug 751690: isApplicationInBackground() should return correct values r=mfinkle --- mobile/android/base/GeckoActivity.java.in | 14 +++++++++----- mobile/android/base/GeckoApplication.java | 15 ++++++++++++--- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/mobile/android/base/GeckoActivity.java.in b/mobile/android/base/GeckoActivity.java.in index d8449f417314..00d982129ce6 100644 --- a/mobile/android/base/GeckoActivity.java.in +++ b/mobile/android/base/GeckoActivity.java.in @@ -13,7 +13,7 @@ import android.content.ComponentName; public class GeckoActivity extends Activity { private boolean hasStarted = false; - private boolean isGeckoActivityOpened = false; + private boolean mGeckoActivityOpened = false; @Override public void onPause() { @@ -31,7 +31,7 @@ public class GeckoActivity extends Activity { // Avoid resume notifications in startup path. if (hasStarted && (getApplication() instanceof GeckoApplication)) { ((GeckoApplication) getApplication()).onActivityResume(this); - isGeckoActivityOpened = false; + mGeckoActivityOpened = false; } else { hasStarted = true; } @@ -54,15 +54,19 @@ public class GeckoActivity extends Activity { // If we call an activity from another package, or an open intent (leaving android to resolve) // component has a different package name or it is null. ComponentName component = intent.getComponent(); - isGeckoActivityOpened = false; + mGeckoActivityOpened = false; if (component != null && component.getPackageName() != null && component.getPackageName().equals("@ANDROID_PACKAGE_NAME@")) { - isGeckoActivityOpened = true; + mGeckoActivityOpened = true; } } + public boolean isGeckoActivityOpened() { + return mGeckoActivityOpened; + } + public boolean isApplicationInBackground() { - return !isGeckoActivityOpened; + return ((GeckoApplication) getApplication()).isApplicationInBackground(); } } diff --git a/mobile/android/base/GeckoApplication.java b/mobile/android/base/GeckoApplication.java index f800d91fd7ef..1ca07713dfbd 100644 --- a/mobile/android/base/GeckoApplication.java +++ b/mobile/android/base/GeckoApplication.java @@ -11,6 +11,7 @@ import android.app.Application; public class GeckoApplication extends Application { + private boolean mInBackground = false; private ArrayList mListeners; public interface ApplicationLifecycleCallbacks { @@ -33,19 +34,21 @@ public class GeckoApplication extends Application { } public void onActivityPause(GeckoActivity activity) { - if (!activity.isApplicationInBackground()) + if (activity.isGeckoActivityOpened()) return; if (mListeners == null) return; + mInBackground = true; + for (ApplicationLifecycleCallbacks listener: mListeners) listener.onApplicationPause(); } public void onActivityResume(GeckoActivity activity) { - // This is a misnomer. Should have been "wasApplicationInBackground". - if (!activity.isApplicationInBackground()) + // This is a misnomer. Should have been "wasGeckoActivityOpened". + if (activity.isGeckoActivityOpened()) return; if (mListeners == null) @@ -53,5 +56,11 @@ public class GeckoApplication extends Application { for (ApplicationLifecycleCallbacks listener: mListeners) listener.onApplicationResume(); + + mInBackground = false; + } + + public boolean isApplicationInBackground() { + return mInBackground; } }