Open the same tab when switching profiles in apps settings

Bug: 16369104
Change-Id: Ibd23824a120541b17a5255952b7cf02d07b62c7b
This commit is contained in:
Alexandra Gherghina
2014-07-31 12:46:15 +01:00
parent 6cd90f45b7
commit f276e75f2d

View File

@@ -74,7 +74,6 @@ import com.android.settings.SettingsActivity;
import com.android.settings.UserSpinnerAdapter; import com.android.settings.UserSpinnerAdapter;
import com.android.settings.Settings.RunningServicesActivity; import com.android.settings.Settings.RunningServicesActivity;
import com.android.settings.Settings.StorageUseActivity; import com.android.settings.Settings.StorageUseActivity;
import com.android.settings.UserSpinnerAdapter.UserDetails;
import com.android.settings.applications.ApplicationsState.AppEntry; import com.android.settings.applications.ApplicationsState.AppEntry;
import com.android.settings.deviceinfo.StorageMeasurement; import com.android.settings.deviceinfo.StorageMeasurement;
import com.android.settings.Utils; import com.android.settings.Utils;
@@ -142,6 +141,7 @@ public class ManageApplications extends Fragment implements
static final String TAG = "ManageApplications"; static final String TAG = "ManageApplications";
static final boolean DEBUG = false; static final boolean DEBUG = false;
private static final String EXTRA_LIST_TYPE = "currentListType";
private static final String EXTRA_SORT_ORDER = "sortOrder"; private static final String EXTRA_SORT_ORDER = "sortOrder";
private static final String EXTRA_SHOW_BACKGROUND = "showBackground"; private static final String EXTRA_SHOW_BACKGROUND = "showBackground";
private static final String EXTRA_DEFAULT_LIST_TYPE = "defaultListType"; private static final String EXTRA_DEFAULT_LIST_TYPE = "defaultListType";
@@ -467,7 +467,8 @@ public class ManageApplications extends Fragment implements
// These are for keeping track of activity and spinner switch state. // These are for keeping track of activity and spinner switch state.
private boolean mActivityResumed; private boolean mActivityResumed;
private static final int LIST_TYPE_MISSING = -1;
static final int LIST_TYPE_DOWNLOADED = 0; static final int LIST_TYPE_DOWNLOADED = 0;
static final int LIST_TYPE_RUNNING = 1; static final int LIST_TYPE_RUNNING = 1;
static final int LIST_TYPE_SDCARD = 2; static final int LIST_TYPE_SDCARD = 2;
@@ -954,9 +955,13 @@ public class ManageApplications extends Fragment implements
if (savedInstanceState == null) { if (savedInstanceState == null) {
// First time init: make sure view pager is showing the correct tab. // First time init: make sure view pager is showing the correct tab.
for (int i = 0; i < mTabs.size(); i++) { int extraCurrentListType = getActivity().getIntent().getIntExtra(EXTRA_LIST_TYPE,
LIST_TYPE_MISSING);
int currentListType = (extraCurrentListType != LIST_TYPE_MISSING)
? extraCurrentListType : mDefaultListType;
for (int i = 0; i < mNumTabs; i++) {
TabInfo tab = mTabs.get(i); TabInfo tab = mTabs.get(i);
if (tab.mListType == mDefaultListType) { if (tab.mListType == currentListType) {
mViewPager.setCurrentItem(i); mViewPager.setCurrentItem(i);
break; break;
} }
@@ -1036,6 +1041,8 @@ public class ManageApplications extends Fragment implements
if (selectedUser.getIdentifier() != UserHandle.myUserId()) { if (selectedUser.getIdentifier() != UserHandle.myUserId()) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_SETTINGS); Intent intent = new Intent(Settings.ACTION_APPLICATION_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
int currentTab = mViewPager.getCurrentItem();
intent.putExtra(EXTRA_LIST_TYPE, mTabs.get(currentTab).mListType);
mContext.startActivityAsUser(intent, selectedUser); mContext.startActivityAsUser(intent, selectedUser);
getActivity().finish(); getActivity().finish();
} }