Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e607904 authored by Mill Chen's avatar Mill Chen
Browse files

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
parent 8767313e
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -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
+24 −1
Original line number Diff line number Diff line
@@ -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 */ }
+2 −0
Original line number Diff line number Diff line
@@ -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(),
+14 −0
Original line number Diff line number Diff line
@@ -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;
    }
}