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.
This commit is contained in:
Amith Yamasani
2010-11-15 14:45:19 -08:00
parent 8ef17fcd94
commit 3965ae6d1f
2 changed files with 41 additions and 26 deletions

View File

@@ -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++;
}