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

Commit 3eee5cf0 authored by cnchen's avatar cnchen
Browse files

Font size page support light theme in deferred setup

Bug:124470158
Test: atest & manually test
Change-Id: I41e1e98a9a64e516a294c4a94c8b5f335434078f
Merged-In: I41e1e98a9a64e516a294c4a94c8b5f335434078f
parent 26ff84d3
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -1447,6 +1447,16 @@
                <action android:name="android.settings.ACCESSIBILITY_SETTINGS_FOR_SUW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.accessibility.AccessibilitySettingsForSetupWizard" />
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                android:value="true" />
        </activity>

        <activity-alias
            android:name=".FontSizeSettingsForSetupWizardActivity"
            android:exported="true"
            android:targetActivity=".accessibility.AccessibilitySettingsForSetupWizardActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.DISPLAY_SETTINGS" />
@@ -1457,9 +1467,7 @@
                android:value="true" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.accessibility.AccessibilitySettingsForSetupWizard" />
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                android:value="true" />
        </activity>
        </activity-alias>

        <activity
            android:name="Settings$AccessibilityDaltonizerSettingsActivity"
+13 −0
Original line number Diff line number Diff line
@@ -231,4 +231,17 @@
        <item name="android:textColorSecondary">@*android:color/secondary_text_light</item>
    </style>

    <!-- Light theme for those pages inherit SubSettings and launched during setup flow -->
    <style name="LightTheme.SubSettings.SetupWizard" parent="@android:style/Theme.DeviceDefault.Light">
        <item name="android:windowLightStatusBar">true</item>
        <item name="android:statusBarColor">@android:color/white</item>
        <item name="android:navigationBarColor">@android:color/white</item>
        <item name="android:windowLightNavigationBar">true</item>
        <item name="android:windowBackground">@android:color/white</item>
        <item name="android:navigationBarDividerColor">@*android:color/navigation_bar_divider_device_default_settings</item>

        <item name="android:colorPrimary">@android:color/white</item>
        <item name="android:colorPrimaryDark">@android:color/white</item>
        <item name="android:colorAccent">@color/material_blue_700</item>
    </style>
</resources>
+6 −3
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ import androidx.preference.PreferenceManager;
import com.android.internal.util.ArrayUtils;
import com.android.settings.Settings.WifiSettingsActivity;
import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.backup.BackupSettingsHelper;
import com.android.settings.backup.UserBackupSettingsActivity;
import com.android.settings.core.OnActivityResultListener;
import com.android.settings.core.SettingsBaseActivity;
@@ -67,6 +66,8 @@ import com.android.settingslib.core.instrumentation.SharedPreferencesLogger;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import com.android.settingslib.drawer.DashboardCategory;

import com.google.android.setupcompat.util.WizardManagerHelper;

import java.util.ArrayList;
import java.util.List;

@@ -243,8 +244,10 @@ public class SettingsActivity extends SettingsBaseActivity
                intent.getBooleanExtra(EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, false);

        // If this is a sub settings, then apply the SubSettings Theme for the ActionBar content
        // insets
        if (isSubSettings) {
        // insets.
        // If this is in setup flow, don't apply theme. Because light theme needs to be applied
        // in SettingsBaseActivity#onCreate().
        if (isSubSettings && !WizardManagerHelper.isAnySetupWizard(getIntent())) {
            setTheme(R.style.Theme_SubSettings);
        }

+16 −0
Original line number Diff line number Diff line
@@ -16,12 +16,18 @@

package com.android.settings;

import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_FIRST_RUN;
import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SETUP_FLOW;

import android.content.Intent;
import android.os.Bundle;
import android.sysprop.SetupWizardProperties;

import com.google.android.setupcompat.util.WizardManagerHelper;
import com.google.android.setupdesign.util.ThemeHelper;

import java.util.Arrays;


public class SetupWizardUtils {

@@ -90,4 +96,14 @@ public class SetupWizardUtils {
    public static void copySetupExtras(Intent fromIntent, Intent toIntent) {
        WizardManagerHelper.copyWizardManagerExtras(fromIntent, toIntent);
    }

    public static Bundle copyLifecycleExtra(Bundle srcBundle, Bundle dstBundle) {
        for (String key :
                Arrays.asList(
                        EXTRA_IS_FIRST_RUN,
                        EXTRA_IS_SETUP_FLOW)) {
            dstBundle.putBoolean(key, srcBundle.getBoolean(key, false));
        }
        return dstBundle;
    }
}
+41 −0
Original line number Diff line number Diff line
@@ -16,23 +16,35 @@

package com.android.settings.accessibility;

import android.content.ComponentName;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.accessibility.AccessibilityEvent;

import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;

import com.android.settings.SettingsActivity;
import com.android.settings.SetupWizardUtils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard;
import com.android.settings.search.actionbar.SearchMenuController;
import com.android.settings.support.actionbar.HelpResourceProvider;
import com.android.settingslib.core.instrumentation.Instrumentable;

import com.google.android.setupcompat.util.WizardManagerHelper;

public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivity {

    private static final String LOG_TAG = "A11ySettingsForSUW";
    private static final String SAVE_KEY_TITLE = "activity_title";

    @VisibleForTesting
    static final String CLASS_NAME_FONT_SIZE_SETTINGS_FOR_SUW =
            "com.android.settings.FontSizeSettingsForSetupWizardActivity";

    @Override
    protected void onSaveInstanceState(Bundle savedState) {
        savedState.putCharSequence(SAVE_KEY_TITLE, getTitle());
@@ -79,4 +91,33 @@ public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivit
                .launch();
        return true;
    }

    @Override
    protected void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        tryLaunchFontSizeSettings();
    }

    @VisibleForTesting
    void tryLaunchFontSizeSettings() {
        if (WizardManagerHelper.isAnySetupWizard(getIntent())
                && new ComponentName(getPackageName(),
                CLASS_NAME_FONT_SIZE_SETTINGS_FOR_SUW).equals(
                getIntent().getComponent())) {
            final Bundle args = new Bundle();
            args.putInt(HelpResourceProvider.HELP_URI_RESOURCE_KEY, 0);
            args.putBoolean(SearchMenuController.NEED_SEARCH_ICON_IN_ACTION_BAR, false);
            final SubSettingLauncher subSettingLauncher = new SubSettingLauncher(this)
                    .setDestination(FontSizePreferenceFragmentForSetupWizard.class.getName())
                    .setArguments(args)
                    .setSourceMetricsCategory(Instrumentable.METRICS_CATEGORY_UNKNOWN)
                    .setExtras(SetupWizardUtils.copyLifecycleExtra(getIntent().getExtras(),
                            new Bundle()));

            Log.d(LOG_TAG, "Launch font size settings");
            subSettingLauncher.launch();
            finish();
        }
    }
}
Loading