Merge "Prevent orphaned fragment on the settings stack." into ics-mr1
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 6096029..21e8caa 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -49,6 +49,7 @@
 import android.app.Dialog;
 import android.app.DialogFragment;
 import android.app.Fragment;
+import android.app.FragmentManager;
 import android.app.FragmentTransaction;
 import android.app.LoaderManager.LoaderCallbacks;
 import android.content.ContentResolver;
@@ -518,6 +519,15 @@
         mUidDetailProvider = null;
     }
 
+    @Override
+    public void onDestroy() {
+        if (this.isRemoving()) {
+            getFragmentManager()
+                    .popBackStack(TAG_APP_DETAILS, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+        }
+        super.onDestroy();
+    }
+
     /**
      * Listener to setup {@link LayoutTransition} after first layout pass.
      */
@@ -1502,7 +1512,6 @@
             final AppDetailsFragment fragment = new AppDetailsFragment();
             fragment.setArguments(args);
             fragment.setTargetFragment(parent, 0);
-
             final FragmentTransaction ft = parent.getFragmentManager().beginTransaction();
             ft.add(fragment, TAG_APP_DETAILS);
             ft.addToBackStack(TAG_APP_DETAILS);