can open settings with support tab by default

Changes were made to the two files to allow users to provide
an argument in the intent for the settings activity. This
argument allows you to specify if you want the summary tab
or support open on startup.

Fixes: 30233920
Change-Id: I4745a0f75ea6a60a22381f5e58f2fac3836d86b9
(cherry picked from commit 2368e548e69e7331a0ea9b579cc65dd4b73b1343)
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 5b81c56..05d67b5 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -588,7 +588,6 @@
             // of starting fresh.
             mSearchMenuItemExpanded = savedState.getBoolean(SAVE_KEY_SEARCH_MENU_EXPANDED);
             mSearchQuery = savedState.getString(SAVE_KEY_SEARCH_QUERY);
-
             setTitleFromIntent(intent);
 
             ArrayList<DashboardCategory> categories =
@@ -601,6 +600,7 @@
 
             mDisplayHomeAsUpEnabled = savedState.getBoolean(SAVE_KEY_SHOW_HOME_AS_UP);
             mDisplaySearch = savedState.getBoolean(SAVE_KEY_SHOW_SEARCH);
+
         } else {
             if (!mIsShowingDashboard) {
                 mDisplaySearch = false;
@@ -623,7 +623,13 @@
                 // Show Search affordance
                 mDisplaySearch = true;
                 mInitialTitleResId = R.string.dashboard_title;
-                switchToFragment(DashboardContainerFragment.class.getName(), null, false, false,
+
+                // add argument to indicate which settings tab should be initially selected
+                final Bundle args = new Bundle();
+                final String extraName = DashboardContainerFragment.EXTRA_SELECT_SETTINGS_TAB;
+                args.putString(extraName, intent.getStringExtra(extraName));
+
+                switchToFragment(DashboardContainerFragment.class.getName(), args, false, false,
                         mInitialTitleResId, mInitialTitle, false);
             }
         }
@@ -1272,5 +1278,4 @@
         }
         super.onActivityResult(requestCode, resultCode, data);
     }
-
 }
diff --git a/src/com/android/settings/dashboard/DashboardContainerFragment.java b/src/com/android/settings/dashboard/DashboardContainerFragment.java
index 4268b81..cd42f7d 100644
--- a/src/com/android/settings/dashboard/DashboardContainerFragment.java
+++ b/src/com/android/settings/dashboard/DashboardContainerFragment.java
@@ -22,6 +22,7 @@
 import android.content.Context;
 import android.os.Bundle;
 import android.support.v13.app.FragmentPagerAdapter;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -42,6 +43,10 @@
  */
 public final class DashboardContainerFragment extends InstrumentedFragment {
 
+    public static final String EXTRA_SELECT_SETTINGS_TAB = ":settings:select_settings_tab";
+
+    private static final String ARG_SUPPORT_TAB = "SUPPORT";
+    private static final String ARG_SUMMARY_TAB = "SUMMARY";
     private static final int INDEX_SUMMARY_FRAGMENT = 0;
     private static final int INDEX_SUPPORT_FRAGMENT = 1;
 
@@ -69,7 +74,16 @@
         mViewPager.setAdapter(mPagerAdapter);
         mViewPager.addOnPageChangeListener(
                 new TabChangeListener((SettingsActivity) getActivity()));
-        mViewPager.setCurrentItem(INDEX_SUMMARY_FRAGMENT);
+
+        // check if support tab needs to be selected
+        final String selectedTab = getArguments().
+            getString(EXTRA_SELECT_SETTINGS_TAB, ARG_SUMMARY_TAB);
+        if (TextUtils.equals(selectedTab, ARG_SUPPORT_TAB)) {
+            mViewPager.setCurrentItem(INDEX_SUPPORT_FRAGMENT);
+        } else {
+            mViewPager.setCurrentItem(INDEX_SUMMARY_FRAGMENT);
+        }
+
         mHeaderView = inflater.inflate(R.layout.dashboard_container_header, parent, false);
         ((SlidingTabLayout) mHeaderView).setViewPager(mViewPager);
         return content;