diff --git a/res/layout/accessibility_shortcut_option_checkable.xml b/res/layout/accessibility_shortcut_option_checkable.xml index d10e8afb9b1..193366c06bd 100644 --- a/res/layout/accessibility_shortcut_option_checkable.xml +++ b/res/layout/accessibility_shortcut_option_checkable.xml @@ -26,7 +26,7 @@ android:minHeight="?android:attr/listPreferredItemHeight" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" - android:paddingBottom="?android:attr/listPreferredItemPaddingEnd"> + android:paddingVertical="20dp"> { - setResult(RESULT_CANCELED); - finish(); - }); + if (!ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) { + final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class); + AccessibilitySetupWizardUtils.setPrimaryButton(getContext(), mixin, R.string.done, + () -> { + setResult(RESULT_CANCELED); + finish(); + }); + } } } + @Override + protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { + if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) { + return new PreferenceAdapterInSuw(preferenceScreen); + } + return super.onCreateAdapter(preferenceScreen); + } + @Override public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { diff --git a/src/com/android/settings/accessibility/PreferenceAdapterInSuw.java b/src/com/android/settings/accessibility/PreferenceAdapterInSuw.java new file mode 100644 index 00000000000..5a20fc73755 --- /dev/null +++ b/src/com/android/settings/accessibility/PreferenceAdapterInSuw.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.accessibility; + +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.preference.PreferenceGroup; +import androidx.preference.PreferenceViewHolder; + +import com.android.settingslib.widget.SettingsPreferenceGroupAdapter; + +import com.google.android.setupdesign.util.ItemStyler; + +public class PreferenceAdapterInSuw extends SettingsPreferenceGroupAdapter { + + public PreferenceAdapterInSuw(@NonNull PreferenceGroup preferenceGroup) { + super(preferenceGroup); + } + + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder, int position) { + super.onBindViewHolder(holder, position); + View view = holder.itemView; + int paddingStart = view.getPaddingStart(); + int paddingTop = view.getPaddingTop(); + int paddingEnd = view.getPaddingEnd(); + int paddingBottom = view.getPaddingBottom(); + ItemStyler.applyPartnerCustomizationItemViewLayoutStyle(view); + view.setPaddingRelative(view.getPaddingStart() + paddingStart, + paddingTop, view.getPaddingEnd() + paddingEnd, + paddingBottom); + } +} diff --git a/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java index 11be73c7d3d..b710a7954c1 100644 --- a/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java +++ b/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java @@ -27,6 +27,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; import com.android.internal.annotations.VisibleForTesting; @@ -35,6 +36,7 @@ import com.android.settingslib.Utils; import com.google.android.setupcompat.template.FooterBarMixin; import com.google.android.setupdesign.GlifPreferenceLayout; +import com.google.android.setupdesign.util.ThemeHelper; /** * A {@link androidx.preference.PreferenceFragmentCompat} that displays the settings page related @@ -96,6 +98,14 @@ public class TextReadingPreferenceFragmentForSetupWizard extends TextReadingPref return super.onCreateRecyclerView(inflater, parent, savedInstanceState); } + @Override + protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { + if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) { + return new PreferenceAdapterInSuw(preferenceScreen); + } + return super.onCreateAdapter(preferenceScreen); + } + @Override public int getMetricsCategory() { return SettingsEnums.SUW_ACCESSIBILITY_TEXT_READING_OPTIONS; diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index 367f55710ba..b81e614c1e6 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -54,6 +54,7 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; +import androidx.preference.PreferenceViewHolder; import androidx.recyclerview.widget.RecyclerView; import com.android.internal.accessibility.common.ShortcutConstants; @@ -71,6 +72,7 @@ import com.android.settingslib.widget.IllustrationPreference; import com.android.settingslib.widget.TopIntroPreference; import com.google.android.setupcompat.util.WizardManagerHelper; +import com.google.android.setupdesign.util.ThemeHelper; import java.util.ArrayList; import java.util.List; @@ -426,7 +428,19 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment return drawable; } private void initAnimatedImagePreference() { - initAnimatedImagePreference(mImageUri, new IllustrationPreference(getPrefContext())); + initAnimatedImagePreference(mImageUri, new IllustrationPreference(getPrefContext()) { + @Override + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext()) + && isAnySetupWizard()) { + View illustrationFrame = holder.findViewById(R.id.illustration_frame); + final ViewGroup.LayoutParams lp = illustrationFrame.getLayoutParams(); + lp.width = ViewGroup.LayoutParams.MATCH_PARENT; + illustrationFrame.setLayoutParams(lp); + } + } + }); } @VisibleForTesting diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java index 52d75c19ed4..6e91594cf6c 100644 --- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java +++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java @@ -25,12 +25,14 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.google.android.setupcompat.template.FooterBarMixin; import com.google.android.setupdesign.GlifPreferenceLayout; +import com.google.android.setupdesign.util.ThemeHelper; public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard extends ToggleScreenMagnificationPreferenceFragment { @@ -60,6 +62,14 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard hidePreferenceSettingComponents(); } + @Override + protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { + if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) { + return new PreferenceAdapterInSuw(preferenceScreen); + } + return super.onCreateAdapter(preferenceScreen); + } + /** * Hide the magnification preference settings in the SuW's vision settings. */ diff --git a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java index eb0c93b755f..f81322a56af 100644 --- a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java +++ b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java @@ -25,12 +25,14 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.google.android.setupcompat.template.FooterBarMixin; import com.google.android.setupdesign.GlifPreferenceLayout; +import com.google.android.setupdesign.util.ThemeHelper; public class ToggleScreenReaderPreferenceFragmentForSetupWizard extends ToggleAccessibilityServicePreferenceFragment { @@ -74,6 +76,14 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard return super.onCreateRecyclerView(inflater, parent, savedInstanceState); } + @Override + protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { + if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) { + return new PreferenceAdapterInSuw(preferenceScreen); + } + return super.onCreateAdapter(preferenceScreen); + } + @Override public int getMetricsCategory() { return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER; diff --git a/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java index 14dc0bc1caf..9cb9d6376ca 100644 --- a/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java +++ b/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java @@ -25,12 +25,14 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.google.android.setupcompat.template.FooterBarMixin; import com.google.android.setupdesign.GlifPreferenceLayout; +import com.google.android.setupdesign.util.ThemeHelper; public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard extends InvisibleToggleAccessibilityServicePreferenceFragment { @@ -74,6 +76,14 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard return super.onCreateRecyclerView(inflater, parent, savedInstanceState); } + @Override + protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { + if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) { + return new PreferenceAdapterInSuw(preferenceScreen); + } + return super.onCreateAdapter(preferenceScreen); + } + @Override public int getMetricsCategory() { return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK; diff --git a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java index f05b15710c8..e41195ad8cd 100644 --- a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java +++ b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java @@ -53,6 +53,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; import com.android.internal.accessibility.common.ShortcutConstants; @@ -62,6 +63,7 @@ import com.android.settings.R; import com.android.settings.SetupWizardUtils; import com.android.settings.accessibility.AccessibilitySetupWizardUtils; import com.android.settings.accessibility.Flags; +import com.android.settings.accessibility.PreferenceAdapterInSuw; import com.android.settings.accessibility.PreferredShortcuts; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; @@ -70,6 +72,7 @@ import com.android.settingslib.core.AbstractPreferenceController; import com.google.android.setupcompat.template.FooterBarMixin; import com.google.android.setupcompat.util.WizardManagerHelper; import com.google.android.setupdesign.GlifPreferenceLayout; +import com.google.android.setupdesign.util.ThemeHelper; import java.util.ArrayList; import java.util.Collection; @@ -245,6 +248,15 @@ public class EditShortcutsPreferenceFragment extends DashboardFragment { } } + @Override + protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { + if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext()) + && WizardManagerHelper.isAnySetupWizard(getIntent())) { + return new PreferenceAdapterInSuw(preferenceScreen); + } + return super.onCreateAdapter(preferenceScreen); + } + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState);