Removing old Launcher callback reference from LauncherModel when the activity is destroyed.

Change-Id: I288d2bd7e305c2cf9bdeec5357997d566d5205b7
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index d5505c5..7cfab2a 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -1301,7 +1301,8 @@
                 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 @@
                 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 @@
                 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 @@
             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();
                     }
                 }