Migrate more settings to SubSettingLauncher

Bug: 73250851
Test: robotest
Change-Id: Ifc27b90d68bf4a907f169e19338e9b52ea5f9922
This commit is contained in:
Fan Zhang
2018-02-16 16:20:30 -08:00
parent 7cf99f5f12
commit b1d6c76b53
9 changed files with 96 additions and 60 deletions

View File

@@ -683,22 +683,4 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
} }
getActivity().setResult(result); getActivity().setResult(result);
} }
public boolean startFragment(Fragment caller, String fragmentClass, int titleRes,
int requestCode, Bundle extras) {
final Activity activity = getActivity();
if (activity instanceof SettingsActivity) {
SettingsActivity sa = (SettingsActivity) activity;
sa.startPreferencePanel(
caller, fragmentClass, extras, titleRes, null, caller, requestCode);
return true;
} else {
Log.w(TAG,
"Parent isn't SettingsActivity nor PreferenceActivity, thus there's no way to "
+ "launch the given Fragment (name: " + fragmentClass
+ ", requestCode: " + requestCode + ")");
return false;
}
}
} }

View File

@@ -22,11 +22,13 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener; import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.text.format.Formatter; import android.text.format.Formatter;
import android.text.format.Formatter.BytesResult; import android.text.format.Formatter.BytesResult;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SummaryPreference; import com.android.settings.SummaryPreference;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.applications.ProcStatsData.MemInfo; import com.android.settings.applications.ProcStatsData.MemInfo;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenceClickListener { public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenceClickListener {
@@ -110,12 +112,16 @@ public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenc
@Override @Override
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
if (preference == mAppListPreference) { if (preference == mAppListPreference) {
Bundle args = new Bundle(); final Bundle args = new Bundle();
args.putBoolean(ARG_TRANSFER_STATS, true); args.putBoolean(ARG_TRANSFER_STATS, true);
args.putInt(ARG_DURATION_INDEX, mDurationIndex); args.putInt(ARG_DURATION_INDEX, mDurationIndex);
mStatsManager.xferStats(); mStatsManager.xferStats();
startFragment(this, ProcessStatsUi.class.getName(), R.string.memory_usage_apps, 0, new SubSettingLauncher(getContext())
args); .setDestination(ProcessStatsUi.class.getName())
.setTitle(R.string.memory_usage_apps)
.setArguments(args)
.setSourceMetricsCategory(getMetricsCategory())
.launch();
return true; return true;
} }
return false; return false;

View File

@@ -52,8 +52,10 @@ import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener; import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner; import android.widget.Spinner;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.datausage.CycleAdapter.SpinnerInterface; import com.android.settings.datausage.CycleAdapter.SpinnerInterface;
import com.android.settings.widget.LoadingViewController; import com.android.settings.widget.LoadingViewController;
import com.android.settingslib.AppItem; import com.android.settingslib.AppItem;
@@ -61,6 +63,7 @@ import com.android.settingslib.net.ChartData;
import com.android.settingslib.net.ChartDataLoader; import com.android.settingslib.net.ChartDataLoader;
import com.android.settingslib.net.SummaryForAllUidLoader; import com.android.settingslib.net.SummaryForAllUidLoader;
import com.android.settingslib.net.UidDetailProvider; import com.android.settingslib.net.UidDetailProvider;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -149,8 +152,12 @@ public class DataUsageList extends DataUsageBase {
mHeader.findViewById(R.id.filter_settings).setOnClickListener(btn -> { mHeader.findViewById(R.id.filter_settings).setOnClickListener(btn -> {
final Bundle args = new Bundle(); final Bundle args = new Bundle();
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate); args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
startFragment(DataUsageList.this, BillingCycleSettings.class.getName(), new SubSettingLauncher(getContext())
R.string.billing_cycle, 0, args); .setDestination(BillingCycleSettings.class.getName())
.setTitle(R.string.billing_cycle)
.setSourceMetricsCategory(getMetricsCategory())
.setArguments(args)
.launch();
}); });
mCycleSpinner = mHeader.findViewById(R.id.filter_spinner); mCycleSpinner = mHeader.findViewById(R.id.filter_spinner);
mCycleAdapter = new CycleAdapter(mCycleSpinner.getContext(), new SpinnerInterface() { mCycleAdapter = new CycleAdapter(mCycleSpinner.getContext(), new SpinnerInterface() {
@@ -404,10 +411,16 @@ public class DataUsageList extends DataUsageBase {
} }
private void startAppDataUsage(AppItem item) { private void startAppDataUsage(AppItem item) {
Bundle args = new Bundle(); final Bundle args = new Bundle();
args.putParcelable(AppDataUsage.ARG_APP_ITEM, item); args.putParcelable(AppDataUsage.ARG_APP_ITEM, item);
args.putParcelable(AppDataUsage.ARG_NETWORK_TEMPLATE, mTemplate); args.putParcelable(AppDataUsage.ARG_NETWORK_TEMPLATE, mTemplate);
startFragment(this, AppDataUsage.class.getName(), R.string.app_data_usage, 0, args);
new SubSettingLauncher(getContext())
.setDestination(AppDataUsage.class.getName())
.setTitle(R.string.app_data_usage)
.setArguments(args)
.setSourceMetricsCategory(getMetricsCategory())
.launch();
} }
/** /**

View File

@@ -57,6 +57,7 @@ import com.android.settings.Settings.StorageUseActivity;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.deviceinfo.StorageSettings.MountTask; import com.android.settings.deviceinfo.StorageSettings.MountTask;
import com.android.settingslib.deviceinfo.StorageMeasurement; import com.android.settingslib.deviceinfo.StorageMeasurement;
@@ -430,13 +431,21 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
return true; return true;
case R.id.storage_unmount: case R.id.storage_unmount:
args.putString(VolumeInfo.EXTRA_VOLUME_ID, mVolume.getId()); args.putString(VolumeInfo.EXTRA_VOLUME_ID, mVolume.getId());
startFragment(this, PrivateVolumeUnmount.class.getCanonicalName(), new SubSettingLauncher(context)
R.string.storage_menu_unmount, 0, args); .setDestination(PrivateVolumeUnmount.class.getCanonicalName())
.setTitle(R.string.storage_menu_unmount)
.setSourceMetricsCategory(getMetricsCategory())
.setArguments(args)
.launch();
return true; return true;
case R.id.storage_format: case R.id.storage_format:
args.putString(VolumeInfo.EXTRA_VOLUME_ID, mVolume.getId()); args.putString(VolumeInfo.EXTRA_VOLUME_ID, mVolume.getId());
startFragment(this, PrivateVolumeFormat.class.getCanonicalName(), new SubSettingLauncher(context)
R.string.storage_menu_format, 0, args); .setDestination(PrivateVolumeFormat.class.getCanonicalName())
.setTitle(R.string.storage_menu_format)
.setSourceMetricsCategory(getMetricsCategory())
.setArguments(args)
.launch();
return true; return true;
case R.id.storage_migrate: case R.id.storage_migrate:
final Intent intent = new Intent(context, StorageWizardMigrateConfirm.class); final Intent intent = new Intent(context, StorageWizardMigrateConfirm.class);

View File

@@ -48,6 +48,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
@@ -56,9 +57,7 @@ import com.android.settings.search.SearchIndexableRaw;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.deviceinfo.PrivateStorageInfo; import com.android.settingslib.deviceinfo.PrivateStorageInfo;
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider; import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
import com.android.settingslib.drawer.SettingsDrawerActivity;
import java.io.File;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@@ -279,15 +278,23 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
args.putString(VolumeInfo.EXTRA_VOLUME_ID, vol.getId()); args.putString(VolumeInfo.EXTRA_VOLUME_ID, vol.getId());
if (VolumeInfo.ID_PRIVATE_INTERNAL.equals(vol.getId())) { if (VolumeInfo.ID_PRIVATE_INTERNAL.equals(vol.getId())) {
startFragment(this, StorageDashboardFragment.class.getCanonicalName(), new SubSettingLauncher(getContext())
R.string.storage_settings, 0, args); .setDestination(StorageDashboardFragment.class.getCanonicalName())
.setTitle(R.string.storage_settings)
.setSourceMetricsCategory(getMetricsCategory())
.setArguments(args)
.launch();
} else { } else {
// TODO: Go to the StorageDashboardFragment once it fully handles all of the // TODO: Go to the StorageDashboardFragment once it fully handles all of the
// SD card cases and other private internal storage cases. // SD card cases and other private internal storage cases.
PrivateVolumeSettings.setVolumeSize(args, PrivateStorageInfo.getTotalSize(vol, PrivateVolumeSettings.setVolumeSize(args, PrivateStorageInfo.getTotalSize(vol,
sTotalInternalStorage)); sTotalInternalStorage));
startFragment(this, PrivateVolumeSettings.class.getCanonicalName(), new SubSettingLauncher(getContext())
-1, 0, args); .setDestination(PrivateVolumeSettings.class.getCanonicalName())
.setTitle(-1)
.setSourceMetricsCategory(getMetricsCategory())
.setArguments(args)
.launch();
} }
return true; return true;
@@ -299,8 +306,12 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
} else { } else {
final Bundle args = new Bundle(); final Bundle args = new Bundle();
args.putString(VolumeInfo.EXTRA_VOLUME_ID, vol.getId()); args.putString(VolumeInfo.EXTRA_VOLUME_ID, vol.getId());
startFragment(this, PublicVolumeSettings.class.getCanonicalName(), new SubSettingLauncher(getContext())
-1, 0, args); .setDestination(PublicVolumeSettings.class.getCanonicalName())
.setTitle(-1)
.setSourceMetricsCategory(getMetricsCategory())
.setArguments(args)
.launch();
return true; return true;
} }
} }
@@ -314,8 +325,12 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
// Picked a missing private volume // Picked a missing private volume
final Bundle args = new Bundle(); final Bundle args = new Bundle();
args.putString(VolumeRecord.EXTRA_FS_UUID, key); args.putString(VolumeRecord.EXTRA_FS_UUID, key);
startFragment(this, PrivateVolumeForget.class.getCanonicalName(), new SubSettingLauncher(getContext())
R.string.storage_menu_forget, 0, args); .setDestination(PrivateVolumeForget.class.getCanonicalName())
.setTitle(R.string.storage_menu_forget)
.setSourceMetricsCategory(getMetricsCategory())
.setArguments(args)
.launch();
return true; return true;
} }

View File

@@ -16,8 +16,6 @@
package com.android.settings.security; package com.android.settings.security;
import static com.android.settings.security.SecuritySettings.SET_OR_CHANGE_LOCK_METHOD_REQUEST_PROFILE;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -28,6 +26,7 @@ import android.text.TextUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.password.ChooseLockGeneric; import com.android.settings.password.ChooseLockGeneric;
public class ChangeProfileScreenLockPreferenceController extends public class ChangeProfileScreenLockPreferenceController extends
@@ -76,9 +75,13 @@ public class ChangeProfileScreenLockPreferenceController extends
} }
final Bundle extras = new Bundle(); final Bundle extras = new Bundle();
extras.putInt(Intent.EXTRA_USER_ID, mProfileChallengeUserId); extras.putInt(Intent.EXTRA_USER_ID, mProfileChallengeUserId);
mHost.startFragment(mHost, ChooseLockGeneric.ChooseLockGenericFragment.class.getName(), new SubSettingLauncher(mContext)
R.string.lock_settings_picker_title_profile, .setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
SET_OR_CHANGE_LOCK_METHOD_REQUEST_PROFILE, extras); .setTitle(R.string.lock_settings_picker_title_profile)
.setSourceMetricsCategory(mHost.getMetricsCategory())
.setArguments(extras)
.launch();
return true; return true;
} }

View File

@@ -16,8 +16,6 @@
package com.android.settings.security; package com.android.settings.security;
import static com.android.settings.security.SecuritySettings.SET_OR_CHANGE_LOCK_METHOD_REQUEST;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
import android.content.Context; import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
@@ -31,6 +29,7 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockGeneric; import com.android.settings.password.ChooseLockGeneric;
import com.android.settings.security.screenlock.ScreenLockSettings; import com.android.settings.security.screenlock.ScreenLockSettings;
@@ -104,7 +103,10 @@ public class ChangeScreenLockPreferenceController extends AbstractPreferenceCont
@Override @Override
public void onGearClick(GearPreference p) { public void onGearClick(GearPreference p) {
if (TextUtils.equals(p.getKey(), getPreferenceKey())) { if (TextUtils.equals(p.getKey(), getPreferenceKey())) {
mHost.startFragment(mHost, ScreenLockSettings.class.getName(), 0, 0, null); new SubSettingLauncher(mContext)
.setDestination(ScreenLockSettings.class.getName())
.setSourceMetricsCategory(mHost.getMetricsCategory())
.launch();
} }
} }
@@ -124,8 +126,12 @@ public class ChangeScreenLockPreferenceController extends AbstractPreferenceCont
return false; return false;
} }
} }
mHost.startFragment(mHost, ChooseLockGeneric.ChooseLockGenericFragment.class.getName(),
R.string.lock_settings_picker_title, SET_OR_CHANGE_LOCK_METHOD_REQUEST, null); new SubSettingLauncher(mContext)
.setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
.setTitle(R.string.lock_settings_picker_title)
.setSourceMetricsCategory(mHost.getMetricsCategory())
.launch();
return true; return true;
} }

View File

@@ -16,7 +16,6 @@
package com.android.settings.security; package com.android.settings.security;
import static com.android.settings.security.SecuritySettings.SET_OR_CHANGE_LOCK_METHOD_REQUEST_PROFILE;
import static com.android.settings.security.SecuritySettings.UNIFY_LOCK_CONFIRM_DEVICE_REQUEST; import static com.android.settings.security.SecuritySettings.UNIFY_LOCK_CONFIRM_DEVICE_REQUEST;
import static com.android.settings.security.SecuritySettings.UNIFY_LOCK_CONFIRM_PROFILE_REQUEST; import static com.android.settings.security.SecuritySettings.UNIFY_LOCK_CONFIRM_PROFILE_REQUEST;
import static com.android.settings.security.SecuritySettings.UNUNIFY_LOCK_CONFIRM_DEVICE_REQUEST; import static com.android.settings.security.SecuritySettings.UNUNIFY_LOCK_CONFIRM_DEVICE_REQUEST;
@@ -35,6 +34,7 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockGeneric; import com.android.settings.password.ChooseLockGeneric;
import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.password.ChooseLockSettingsHelper;
@@ -153,12 +153,14 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr
} }
private void ununifyLocks() { private void ununifyLocks() {
Bundle extras = new Bundle(); final Bundle extras = new Bundle();
extras.putInt(Intent.EXTRA_USER_ID, mProfileChallengeUserId); extras.putInt(Intent.EXTRA_USER_ID, mProfileChallengeUserId);
mHost.startFragment(mHost, new SubSettingLauncher(mContext)
ChooseLockGeneric.ChooseLockGenericFragment.class.getName(), .setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
R.string.lock_settings_picker_title_profile, .setTitle(R.string.lock_settings_picker_title_profile)
SET_OR_CHANGE_LOCK_METHOD_REQUEST_PROFILE, extras); .setSourceMetricsCategory(mHost.getMetricsCategory())
.setArguments(extras)
.launch();
} }
void launchConfirmDeviceLockForUnification() { void launchConfirmDeviceLockForUnification() {
@@ -209,9 +211,11 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr
void unifyUncompliantLocks() { void unifyUncompliantLocks() {
mLockPatternUtils.setSeparateProfileChallengeEnabled(mProfileChallengeUserId, false, mLockPatternUtils.setSeparateProfileChallengeEnabled(mProfileChallengeUserId, false,
mCurrentProfilePassword); mCurrentProfilePassword);
mHost.startFragment(mHost, ChooseLockGeneric.ChooseLockGenericFragment.class.getName(), new SubSettingLauncher(mContext)
R.string.lock_settings_picker_title, .setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
SecuritySettings.SET_OR_CHANGE_LOCK_METHOD_REQUEST, null); .setTitle(R.string.lock_settings_picker_title)
.setSourceMetricsCategory(mHost.getMetricsCategory())
.launch();
} }
} }

View File

@@ -49,9 +49,7 @@ public class SecuritySettings extends DashboardFragment {
private static final String TAG = "SecuritySettings"; private static final String TAG = "SecuritySettings";
public static final int SET_OR_CHANGE_LOCK_METHOD_REQUEST = 123;
public static final int CHANGE_TRUST_AGENT_SETTINGS = 126; public static final int CHANGE_TRUST_AGENT_SETTINGS = 126;
public static final int SET_OR_CHANGE_LOCK_METHOD_REQUEST_PROFILE = 127;
public static final int UNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 128; public static final int UNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 128;
public static final int UNIFY_LOCK_CONFIRM_PROFILE_REQUEST = 129; public static final int UNIFY_LOCK_CONFIRM_PROFILE_REQUEST = 129;
public static final int UNUNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 130; public static final int UNUNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 130;