Fixing potential issue where loader was still running after the fragment was detached. (Bug 5682275)

Change-Id: I79fd21e2ad269eb09fa974264f9f319f654cad19
diff --git a/src/com/android/launcher2/WallpaperChooserDialogFragment.java b/src/com/android/launcher2/WallpaperChooserDialogFragment.java
index 030d33d..eec699e 100644
--- a/src/com/android/launcher2/WallpaperChooserDialogFragment.java
+++ b/src/com/android/launcher2/WallpaperChooserDialogFragment.java
@@ -82,10 +82,7 @@
         outState.putBoolean(EMBEDDED_KEY, mEmbedded);
     }
 
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-
+    private void cancelLoader() {
         if (mLoader != null && mLoader.getStatus() != WallpaperLoader.Status.FINISHED) {
             mLoader.cancel(true);
             mLoader = null;
@@ -93,6 +90,20 @@
     }
 
     @Override
+    public void onDetach() {
+        super.onDetach();
+
+        cancelLoader();
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+
+        cancelLoader();
+    }
+
+    @Override
     public void onDismiss(DialogInterface dialog) {
         super.onDismiss(dialog);
         /* On orientation changes, the dialog is effectively "dismissed" so this is called