summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2011-06-08 16:02:26 -0700
committerWinson Chung <winsonc@google.com>2011-06-08 16:19:08 -0700
commitcd2b01416febb5bf50ed5ede1544dea33fee3b0b (patch)
tree7c9805e66fb15c507c739b9d3247e083057d2480 /src/com
parent9578bde6a903925fbda2ecf738c7b00d6fa4026d (diff)
downloadandroid_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/com')
-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 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();
}
}