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

Commit 7413b562 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use SettingsLib expressive flag when using custom adapter in SUW." into main

parents d6aeec9d c2692696
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.display.BrightnessLevelPreferenceControllerForSetupWizard;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.widget.SettingsThemeHelper;

import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupdesign.GlifPreferenceLayout;
@@ -113,7 +114,7 @@ public class AccessibilitySettingsForSetupWizard extends DashboardFragment

    @Override
    protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) {
        if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) {
        if (SettingsThemeHelper.isExpressiveTheme(requireContext())) {
            return new PreferenceAdapterInSuw(preferenceScreen);
        }
        return super.onCreateAdapter(preferenceScreen);
+37 −8
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.accessibility;

import android.content.Context;
import android.content.res.TypedArray;
import android.view.View;

import androidx.annotation.NonNull;
@@ -23,26 +25,53 @@ import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceViewHolder;

import com.android.settingslib.widget.SettingsPreferenceGroupAdapter;
import com.android.settingslib.widget.SettingsThemeHelper;

import com.google.android.setupdesign.util.ItemStyler;

/**
 * PreferenceAdapterInSuw is a temporary fix on the padding issue introduced in the expressive style
 * in SettingsPreferenceGroupAdapter. This adapter should be removed once the padding issue is
 * resolved in the SettingsLib.
 *
 * TODO(b/403645956): Remove this adapter
 */
public class PreferenceAdapterInSuw extends SettingsPreferenceGroupAdapter {
    private final int mListPreferredItemPaddingStart;
    private final int mListPreferredItemPaddingEnd;
    private final int mContentPadding;

    public PreferenceAdapterInSuw(@NonNull PreferenceGroup preferenceGroup) {
        super(preferenceGroup);
        TypedArray resolvedAttributes = preferenceGroup.getContext().obtainStyledAttributes(
                new int[]{android.R.attr.listPreferredItemPaddingStart,
                        android.R.attr.listPreferredItemPaddingEnd});
        mListPreferredItemPaddingStart = resolvedAttributes.getDimensionPixelSize(0, 0);
        mListPreferredItemPaddingEnd = resolvedAttributes.getDimensionPixelSize(1, 0);
        resolvedAttributes.recycle();
        mContentPadding = preferenceGroup.getContext().getResources().getDimensionPixelSize(
                com.android.settingslib.widget.theme
                        .R.dimen.settingslib_expressive_space_small1);
    }

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

        if (shouldApplyPadding(view.getContext(), position)) {
            view.setPaddingRelative(mListPreferredItemPaddingStart + mContentPadding, paddingTop,
                    mListPreferredItemPaddingEnd + mContentPadding, paddingBottom);
        } else {
            view.setPaddingRelative(mListPreferredItemPaddingStart, paddingTop,
                    mListPreferredItemPaddingEnd, paddingBottom);
        }
    }

    private boolean shouldApplyPadding(@NonNull Context context, int position) {
        if (SettingsThemeHelper.isExpressiveTheme(context)) {
            return getRoundCornerDrawableRes(position, /* isSelected= */ false) != 0;
        }
        return false;
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -33,10 +33,10 @@ import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settingslib.Utils;
import com.android.settingslib.widget.SettingsThemeHelper;

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
@@ -100,7 +100,7 @@ public class TextReadingPreferenceFragmentForSetupWizard extends TextReadingPref

    @Override
    protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) {
        if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) {
        if (SettingsThemeHelper.isExpressiveTheme(requireContext())) {
            return new PreferenceAdapterInSuw(preferenceScreen);
        }
        return super.onCreateAdapter(preferenceScreen);
+2 −2
Original line number Diff line number Diff line
@@ -62,10 +62,10 @@ import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragm
import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.widget.IllustrationPreference;
import com.android.settingslib.widget.SettingsThemeHelper;
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;
@@ -378,7 +378,7 @@ public abstract class ToggleFeaturePreferenceFragment extends BaseSupportFragmen
            @Override
            public void onBindViewHolder(PreferenceViewHolder holder) {
                super.onBindViewHolder(holder);
                if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())
                if (SettingsThemeHelper.isExpressiveTheme(getContext())
                        && isAnySetupWizard()) {
                    View illustrationFrame = holder.findViewById(R.id.illustration_frame);
                    final ViewGroup.LayoutParams lp = illustrationFrame.getLayoutParams();
+2 −2
Original line number Diff line number Diff line
@@ -29,10 +29,10 @@ import androidx.preference.PreferenceScreen;
import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.R;
import com.android.settingslib.widget.SettingsThemeHelper;

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 {
@@ -64,7 +64,7 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard

    @Override
    protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) {
        if (ThemeHelper.shouldApplyGlifExpressiveStyle(getContext())) {
        if (SettingsThemeHelper.isExpressiveTheme(requireContext())) {
            return new PreferenceAdapterInSuw(preferenceScreen);
        }
        return super.onCreateAdapter(preferenceScreen);
Loading