diff options
author | Winson Chung <winsonc@google.com> | 2011-06-08 16:02:26 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2011-06-08 16:19:08 -0700 |
commit | cd2b01416febb5bf50ed5ede1544dea33fee3b0b (patch) | |
tree | 7c9805e66fb15c507c739b9d3247e083057d2480 /src | |
parent | 9578bde6a903925fbda2ecf738c7b00d6fa4026d (diff) | |
download | android_packages_apps_Trebuchet-cd2b01416febb5bf50ed5ede1544dea33fee3b0b.tar.gz android_packages_apps_Trebuchet-cd2b01416febb5bf50ed5ede1544dea33fee3b0b.tar.bz2 android_packages_apps_Trebuchet-cd2b01416febb5bf50ed5ede1544dea33fee3b0b.zip |
Removing old Launcher callback reference from LauncherModel when the activity is destroyed.
Change-Id: I288d2bd7e305c2cf9bdeec5357997d566d5205b7
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 eb533fe60..2d63b3f4b 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(); } } |