Remove singleTop, as it's causing serious problems on the phone. And...

Fix fragment launching from another app - pass along the fragment class name
and bundle from the original intent.

Bug: 3064432
Bug: 3059311 (partial fix)
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 1f57f6c..6cc641e 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -16,9 +16,7 @@
 
 package com.android.settings;
 
-import android.app.Fragment;
 import android.content.Intent;
-import android.os.Bundle;
 import android.preference.PreferenceActivity;
 
 import java.util.List;
@@ -30,6 +28,18 @@
 
     // TODO: Update Call Settings based on airplane mode state.
 
+    @Override
+    public Intent getIntent() {
+        String startingFragment = getStartingFragmentClass(super.getIntent());
+        if (startingFragment != null && !onIsMultiPane()) {
+            Intent modIntent = new Intent(super.getIntent());
+            modIntent.putExtra(EXTRA_SHOW_FRAGMENT, startingFragment);
+            modIntent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, super.getIntent().getExtras());
+            return modIntent;
+        }
+        return super.getIntent();
+    }
+
     /**
      * Checks if the component name in the intent is different from the Settings class and
      * returns the class name to load as a fragment.
@@ -51,6 +61,7 @@
         if (fragmentClass != null) {
             Header header = new Header();
             header.fragment = fragmentClass;
+            header.fragmentArguments = getIntent().getExtras();
             return header;
         }
         return super.onGetInitialHeader();