diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java index 326aeef61a4..a7aa8eacf92 100644 --- a/src/com/android/settings/MainClear.java +++ b/src/com/android/settings/MainClear.java @@ -59,11 +59,11 @@ import android.widget.TextView; import androidx.annotation.VisibleForTesting; import com.android.settings.core.InstrumentedFragment; -import com.android.settings.core.SubSettingLauncher; import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper; import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.password.ConfirmLockPattern; import com.android.settingslib.RestrictedLockUtilsInternal; +import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.development.DevelopmentSettingsEnabler; import com.google.android.setupcompat.template.FooterBarMixin; @@ -187,12 +187,15 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis final Bundle args = new Bundle(); args.putBoolean(ERASE_EXTERNAL_EXTRA, mExternalStorage.isChecked()); args.putBoolean(ERASE_ESIMS_EXTRA, mEsimStorage.isChecked()); - new SubSettingLauncher(getContext()) - .setDestination(MainClearConfirm.class.getName()) - .setArguments(args) - .setTitleRes(R.string.main_clear_confirm_title) - .setSourceMetricsCategory(getMetricsCategory()) - .launch(); + final Intent intent = new Intent(); + intent.setClass(getContext(), + com.android.settings.Settings.FactoryResetConfirmActivity.class); + intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, MainClearConfirm.class.getName()); + intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, args); + intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, + R.string.main_clear_confirm_title); + intent.putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, getMetricsCategory()); + getContext().startActivity(intent); } @VisibleForTesting diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 1008888504f..315eb19d3fc 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -123,7 +123,30 @@ public class Settings extends SettingsActivity { public static class ScanningSettingsActivity extends SettingsActivity { /* empty */ } public static class PrivacyDashboardActivity extends SettingsActivity { /* empty */ } public static class PrivacySettingsActivity extends SettingsActivity { /* empty */ } - public static class FactoryResetActivity extends SettingsActivity { /* empty */ } + public static class FactoryResetActivity extends SettingsActivity { + @Override + protected void onCreate(Bundle savedState) { + setTheme(SetupWizardUtils.getTheme(this, getIntent())); + super.onCreate(savedState); + } + + @Override + protected boolean isToolbarEnabled() { + return false; + } + } + public static class FactoryResetConfirmActivity extends SettingsActivity { + @Override + protected void onCreate(Bundle savedState) { + setTheme(SetupWizardUtils.getTheme(this, getIntent())); + super.onCreate(savedState); + } + + @Override + protected boolean isToolbarEnabled() { + return false; + } + } public static class RunningServicesActivity extends SettingsActivity { /* empty */ } public static class BatterySaverSettingsActivity extends SettingsActivity { /* empty */ } public static class BatterySaverScheduleSettingsActivity extends SettingsActivity { /* empty */ } diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java index 245389ea280..83ca2328a05 100644 --- a/src/com/android/settings/core/gateway/SettingsGateway.java +++ b/src/com/android/settings/core/gateway/SettingsGateway.java @@ -20,6 +20,7 @@ import com.android.settings.AllInOneTetherSettings; import com.android.settings.DisplaySettings; import com.android.settings.IccLockSettings; import com.android.settings.MainClear; +import com.android.settings.MainClearConfirm; import com.android.settings.Settings; import com.android.settings.TestingSettings; import com.android.settings.TetherSettings; @@ -282,6 +283,7 @@ public class SettingsGateway { WifiAPITest.class.getName(), WifiInfo.class.getName(), MainClear.class.getName(), + MainClearConfirm.class.getName(), ResetDashboardFragment.class.getName(), NightDisplaySettings.class.getName(), ManageDomainUrls.class.getName(), diff --git a/src/com/android/settings/system/FactoryResetPreferenceController.java b/src/com/android/settings/system/FactoryResetPreferenceController.java index cdeeaef5a3c..a307171d122 100644 --- a/src/com/android/settings/system/FactoryResetPreferenceController.java +++ b/src/com/android/settings/system/FactoryResetPreferenceController.java @@ -16,9 +16,13 @@ package com.android.settings.system; import android.content.Context; +import android.content.Intent; import android.os.UserManager; +import androidx.preference.Preference; + import com.android.settings.R; +import com.android.settings.Settings; import com.android.settings.Utils; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.AbstractPreferenceController; @@ -45,4 +49,14 @@ public class FactoryResetPreferenceController extends AbstractPreferenceControll public String getPreferenceKey() { return KEY_FACTORY_RESET; } + + @Override + public boolean handlePreferenceTreeClick(Preference preference) { + if (KEY_FACTORY_RESET.equals(preference.getKey())) { + final Intent intent = new Intent(mContext, Settings.FactoryResetActivity.class); + mContext.startActivity(intent); + return true; + } + return false; + } }