summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2011-06-08 17:38:55 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-06-08 17:38:55 -0700
commit9e612fb8c4921992b82c835c0e06bbd56b1b05ac (patch)
tree6ef4d73bf366c65843c5b13b85a414c39501c6c7
parentc0dcf597084d00e4c23a7fea5fd0738f6c095a6b (diff)
parentcd2b01416febb5bf50ed5ede1544dea33fee3b0b (diff)
downloadandroid_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."
-rw-r--r--src/com/android/launcher2/Launcher.java6
-rw-r--r--src/com/android/launcher2/LauncherModel.java12
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();
}
}