diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 90c1355d2f2..29b5469334c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -52,7 +52,7 @@ android:label="@string/settings_label_launcher" android:taskAffinity="com.android.settings" android:theme="@android:style/Theme.Holo" - android:launchMode="singleTop"> + > diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 1f57f6c4e5c..6cc641ed8e6 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 @@ public class Settings extends PreferenceActivity { // 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 @@ public class Settings extends PreferenceActivity { if (fragmentClass != null) { Header header = new Header(); header.fragment = fragmentClass; + header.fragmentArguments = getIntent().getExtras(); return header; } return super.onGetInitialHeader();