Update UI for factory reset flow

After applying a collapsing toolbar in the Settings app, the factory
reset screen is not displayed correctly. This is because
1) the factory reset page should not essentially have a toolbar since it
has different UI layout form other pages.
2) this page was launched previously as a SubSettings so it applied a
wrong theme.

This change is mainly updating the inheritence structure and specifying
the right theme for the factory reset page in order to have a correct
layout.

Bug: 179457252
Test: robotests and visual verified
Change-Id: I91aec65a120d5a288507d89ace7c9298acdca42b
This commit is contained in:
Mill Chen
2021-02-25 15:03:25 +08:00
parent 8767313e05
commit 1e607904c3
4 changed files with 50 additions and 8 deletions

View File

@@ -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

View File

@@ -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 */ }

View File

@@ -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(),

View File

@@ -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;
}
}