Fix up-navigation for different levels of Settings screens.

No up affordance for 2-pane screens since there's already
a fragment breadcrumb for navigating up.

Bug: 6452961

Change-Id: Iad9a5c2d0b68cc8f2aec7d5ed8e2ab14d023d48c
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 320e527..b36364d 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -143,9 +143,11 @@
             });
         }
 
-        // TODO Add support for android.R.id.home in all Setting's onOptionsItemSelected
-        // getActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP,
-        // ActionBar.DISPLAY_HOME_AS_UP);
+        // Override up navigation for multi-pane, since we handle it in the fragment breadcrumbs
+        if (onIsMultiPane()) {
+            getActionBar().setDisplayHomeAsUpEnabled(false);
+            getActionBar().setHomeButtonEnabled(false);
+        }
     }
 
     @Override
@@ -602,6 +604,10 @@
         return true;
     }
 
+    public boolean shouldUpRecreateTask(Intent targetIntent) {
+        return super.shouldUpRecreateTask(new Intent(this, Settings.class));
+    }
+
     @Override
     public void setListAdapter(ListAdapter adapter) {
         if (mHeaders == null) {
diff --git a/src/com/android/settings/SubSettings.java b/src/com/android/settings/SubSettings.java
index 9cd3c31..eb275ad 100644
--- a/src/com/android/settings/SubSettings.java
+++ b/src/com/android/settings/SubSettings.java
@@ -21,4 +21,10 @@
  * since for our app it is a special singleTask class.
  */
 public class SubSettings extends Settings {
+
+    @Override
+    public boolean onNavigateUp() {
+        finish();
+        return true;
+    }
 }