diff options
author | Winson Chung <winsonc@google.com> | 2011-06-08 17:38:55 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-06-08 17:38:55 -0700 |
commit | 9e612fb8c4921992b82c835c0e06bbd56b1b05ac (patch) | |
tree | 6ef4d73bf366c65843c5b13b85a414c39501c6c7 /src | |
parent | c0dcf597084d00e4c23a7fea5fd0738f6c095a6b (diff) | |
parent | cd2b01416febb5bf50ed5ede1544dea33fee3b0b (diff) | |
download | android_packages_apps_Trebuchet-9e612fb8c4921992b82c835c0e06bbd56b1b05ac.tar.gz android_packages_apps_Trebuchet-9e612fb8c4921992b82c835c0e06bbd56b1b05ac.tar.bz2 android_packages_apps_Trebuchet-9e612fb8c4921992b82c835c0e06bbd56b1b05ac.zip |
Merge "Removing old Launcher callback reference from LauncherModel when the activity is destroyed."
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher2/LauncherModel.java | 12 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 22ce003f4..85ffbe7a7 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -1495,6 +1495,11 @@ public final class Launcher extends Activity public void onDestroy() { super.onDestroy(); + // Stop callbacks from LauncherModel + LauncherApplication app = ((LauncherApplication) getApplication()); + mModel.stopLoader(); + app.setLauncher(null); + try { mAppWidgetHost.stopListening(); } catch (NullPointerException ex) { @@ -1506,7 +1511,6 @@ public final class Launcher extends Activity TextKeyListener.getInstance().release(); - mModel.stopLoader(); unbindDesktopItems(); diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index d5505c5fa..7cfab2a17 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -1301,7 +1301,8 @@ public class LauncherModel extends BroadcastReceiver { final ArrayList<ApplicationInfo> addedFinal = added; mHandler.post(new Runnable() { public void run() { - if (callbacks == mCallbacks.get()) { + Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; + if (callbacks == cb && cb != null) { callbacks.bindAppsAdded(addedFinal); } } @@ -1311,7 +1312,8 @@ public class LauncherModel extends BroadcastReceiver { final ArrayList<ApplicationInfo> modifiedFinal = modified; mHandler.post(new Runnable() { public void run() { - if (callbacks == mCallbacks.get()) { + Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; + if (callbacks == cb && cb != null) { callbacks.bindAppsUpdated(modifiedFinal); } } @@ -1322,7 +1324,8 @@ public class LauncherModel extends BroadcastReceiver { final ArrayList<ApplicationInfo> removedFinal = removed; mHandler.post(new Runnable() { public void run() { - if (callbacks == mCallbacks.get()) { + Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; + if (callbacks == cb && cb != null) { callbacks.bindAppsRemoved(removedFinal, permanent); } } @@ -1332,7 +1335,8 @@ public class LauncherModel extends BroadcastReceiver { mHandler.post(new Runnable() { @Override public void run() { - if (callbacks == mCallbacks.get()) { + Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; + if (callbacks == cb && cb != null) { callbacks.bindPackagesUpdated(); } } |