Font size page support light theme in deferred setup
Bug:124470158 Test: atest & manually test Change-Id: I41e1e98a9a64e516a294c4a94c8b5f335434078f Merged-In: I41e1e98a9a64e516a294c4a94c8b5f335434078f
This commit is contained in:
@@ -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,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;
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -37,8 +37,11 @@ import android.widget.Toolbar;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SubSettings;
|
||||
import com.android.settings.dashboard.CategoryManager;
|
||||
|
||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -65,6 +68,10 @@ public class SettingsBaseActivity extends FragmentActivity {
|
||||
if (!theme.getBoolean(android.R.styleable.Theme_windowNoTitle, false)) {
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
}
|
||||
// Apply SetupWizard light theme during setup flow. This is for SubSettings pages.
|
||||
if (WizardManagerHelper.isAnySetupWizard(getIntent()) && this instanceof SubSettings) {
|
||||
setTheme(R.style.LightTheme_SubSettings_SetupWizard);
|
||||
}
|
||||
super.setContentView(R.layout.settings_base_layout);
|
||||
|
||||
final Toolbar toolbar = findViewById(R.id.action_bar);
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.core;
|
||||
import android.annotation.StringRes;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.text.TextUtils;
|
||||
@@ -89,6 +90,11 @@ public class SubSettingLauncher {
|
||||
return this;
|
||||
}
|
||||
|
||||
public SubSettingLauncher setExtras(Bundle extras) {
|
||||
mLaunchRequest.extras = extras;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SubSettingLauncher setSourceMetricsCategory(int sourceMetricsCategory) {
|
||||
mLaunchRequest.sourceMetricsCategory = sourceMetricsCategory;
|
||||
return this;
|
||||
@@ -136,6 +142,7 @@ public class SubSettingLauncher {
|
||||
|
||||
public Intent toIntent() {
|
||||
final Intent intent = new Intent(Intent.ACTION_MAIN);
|
||||
copyExtras(intent);
|
||||
intent.setClass(mContext, SubSettings.class);
|
||||
if (TextUtils.isEmpty(mLaunchRequest.destinationName)) {
|
||||
throw new IllegalArgumentException("Destination fragment must be set");
|
||||
@@ -180,6 +187,11 @@ public class SubSettingLauncher {
|
||||
listener.startActivityForResult(intent, requestCode);
|
||||
}
|
||||
|
||||
private void copyExtras(Intent intent) {
|
||||
if (mLaunchRequest.extras != null) {
|
||||
intent.replaceExtras(mLaunchRequest.extras);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Simple container that has information about how to launch a subsetting.
|
||||
*/
|
||||
@@ -194,5 +206,6 @@ public class SubSettingLauncher {
|
||||
int mRequestCode;
|
||||
UserHandle userHandle;
|
||||
Bundle arguments;
|
||||
Bundle extras;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user