Show back button for non-toplevel settings in new IA.

Bug: 32159368
Test: RunSettingsRoboTests
Change-Id: I627a6e456ece8ecb1fc337fcd4dd1e9598dab554
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 08eb247..7e013e4 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -16,11 +16,11 @@
 
 package com.android.settings;
 
+import android.app.ActionBar;
 import android.app.ActivityManager;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
-import android.app.ActionBar;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -166,7 +166,6 @@
     private static final String SAVE_KEY_SEARCH_QUERY = ":settings:search_query";
     private static final String SAVE_KEY_SHOW_HOME_AS_UP = ":settings:show_home_as_up";
     private static final String SAVE_KEY_SHOW_SEARCH = ":settings:show_search";
-    private static final String SAVE_KEY_HOME_ACTIVITIES_COUNT = ":settings:home_activities_count";
 
     /**
      * When starting this activity, the invoking Intent can contain this extra
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index 2872a78..13c2cc3 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -17,6 +17,7 @@
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
@@ -25,6 +26,7 @@
 import android.util.ArraySet;
 import android.util.Log;
 
+import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.overlay.FeatureFactory;
@@ -232,8 +234,13 @@
             if (tile.icon != null) {
                 pref.setIcon(tile.icon.loadDrawable(context));
             }
-            if (tile.intent != null) {
-                pref.setIntent(tile.intent);
+            final Intent intent = new Intent(tile.intent);
+            if (intent != null) {
+                pref.setOnPreferenceClickListener(preference -> {
+                    intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, true);
+                    getActivity().startActivityForResult(intent, 0);
+                    return true;
+                });
             }
             // Use negated priority for order, because tile priority is based on intent-filter
             // (larger value has higher priority). However pref order defines smaller value has