diff options
author | Adam Cohen <adamcohen@google.com> | 2014-09-30 23:05:26 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-09-30 23:05:26 +0000 |
commit | adf571c7725f0281a3e37a4b6254818da956ca53 (patch) | |
tree | 95b5d890c4aff4d2517a582619f1248694335586 /src/com/android/launcher3 | |
parent | ebdb7fcc8ca851390bcf276929e8990ba23b6869 (diff) | |
parent | 52077b7a951153ce77e7354c6096b3bcfbec8c3e (diff) | |
download | android_packages_apps_Trebuchet-adf571c7725f0281a3e37a4b6254818da956ca53.tar.gz android_packages_apps_Trebuchet-adf571c7725f0281a3e37a4b6254818da956ca53.tar.bz2 android_packages_apps_Trebuchet-adf571c7725f0281a3e37a4b6254818da956ca53.zip |
am 52077b7a: Merge "Don\'t let old Launcher activity interfere with new one" into ub-now-porkchop
* commit '52077b7a951153ce77e7354c6096b3bcfbec8c3e':
Don't let old Launcher activity interfere with new one
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 13 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 4 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 37a7f5cc8..678081286 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1134,7 +1134,9 @@ public class Launcher extends Activity @Override public Object onRetainNonConfigurationInstance() { // Flag the loader to stop early before switching - mModel.stopLoader(); + if (mModel.isCurrentCallbacks(this)) { + mModel.stopLoader(); + } if (mAppsCustomizeContent != null) { mAppsCustomizeContent.surrender(); } @@ -1997,8 +1999,13 @@ public class Launcher extends Activity // Stop callbacks from LauncherModel LauncherAppState app = (LauncherAppState.getInstance()); - mModel.stopLoader(); - app.setLauncher(null); + + // It's possible to receive onDestroy after a new Launcher activity has + // been created. In this case, don't interfere with the new Launcher. + if (mModel.isCurrentCallbacks(this)) { + mModel.stopLoader(); + app.setLauncher(null); + } try { mAppWidgetHost.stopListening(); diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index dd948916b..60eb15f9c 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -1385,6 +1385,10 @@ public class LauncherModel extends BroadcastReceiver return isLaunching; } + public boolean isCurrentCallbacks(Callbacks callbacks) { + return (mCallbacks != null && mCallbacks.get() == callbacks); + } + public void startLoader(boolean isLaunching, int synchronousBindPage) { startLoader(isLaunching, synchronousBindPage, LOADER_FLAG_NONE); } |