From: Amith Yamasani Date: Mon, 15 Nov 2010 22:45:19 +0000 (-0800) Subject: Jump to top-level settings when launched from system bar or Settings shortcut. X-Git-Tag: android-x86-4.4-r1~2900^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3965ae6d1f60527c49e7914b624c9afe5bdd15e9;p=android-x86%2Fpackages-apps-Settings.git Jump to top-level settings when launched from system bar or Settings shortcut. Bug: 3192808 Also switch back to Theme.Holo, as Theme.Holo.Extended is deprecated. --- diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c5e5eb7340..38579b69e1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -52,7 +52,8 @@ @@ -73,7 +74,7 @@ @@ -93,7 +94,7 @@ @@ -209,7 +210,7 @@ @@ -223,7 +224,7 @@ @@ -241,7 +242,7 @@ @@ -265,7 +266,7 @@ @@ -281,7 +282,7 @@ @@ -298,7 +299,7 @@ @@ -324,7 +325,7 @@ @@ -342,7 +343,7 @@ @@ -360,7 +361,7 @@ @@ -379,7 +380,7 @@ @@ -429,7 +430,7 @@ @@ -444,7 +445,7 @@ @@ -490,7 +491,7 @@ @@ -507,7 +508,7 @@ @@ -523,7 +524,7 @@ @@ -551,7 +552,7 @@ @@ -603,7 +604,7 @@ @@ -618,7 +619,7 @@ @@ -686,7 +687,7 @@ @@ -742,7 +743,7 @@ @@ -917,7 +918,7 @@ @@ -933,7 +934,7 @@ diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 28a0f70f5f..c94a0e1685 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -38,6 +38,7 @@ public class Settings extends PreferenceActivity { private String mFragmentClass; private int mTopLevelHeaderId; + private Header mFirstHeader; // TODO: Update Call Settings based on airplane mode state. @@ -52,6 +53,17 @@ public class Settings extends PreferenceActivity { highlightHeader(); } + @Override + public void onNewIntent(Intent intent) { + super.onNewIntent(intent); + + // If it is not launched from history, then reset to top-level + if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0 + && mFirstHeader != null) { + switchToHeader(mFirstHeader); + } + } + private void highlightHeader() { if (mTopLevelHeaderId != 0) { Integer index = mHeaderIndexMap.get(mTopLevelHeaderId); @@ -143,6 +155,8 @@ public class Settings extends PreferenceActivity { } // Increment if the current one wasn't removed by the Utils code. if (target.get(i) == header) { + // Hold on to the first header, when we need to reset to the top-level + if (i == 0) mFirstHeader = header; mHeaderIndexMap.put(id, i); i++; }