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/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 28a0f70..c94a0e1 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -38,6 +38,7 @@
 
     private String mFragmentClass;
     private int mTopLevelHeaderId;
+    private Header mFirstHeader;
 
     // TODO: Update Call Settings based on airplane mode state.
 
@@ -52,6 +53,17 @@
         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 @@
             }
             // 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++;
             }