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

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

Merge "Use ZenMode.getIconKey() and ZenIconLoader.getIcon() in Settings" into main

parents b91de2f3 dd7f6b91
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -24,12 +24,14 @@ import android.view.ViewGroup;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.notification.modes.ZenIcon;
import com.android.settingslib.notification.modes.ZenIconLoader;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.widget.LayoutPreference;
@@ -42,7 +44,7 @@ abstract class AbstractZenModeHeaderController extends AbstractZenModePreference

    private final DashboardFragment mFragment;
    private EntityHeaderController mHeaderController;
    private String mCurrentIconKey;
    @Nullable private ZenIcon.Key mCurrentIconKey;

    AbstractZenModeHeaderController(
            @NonNull Context context,
@@ -88,10 +90,10 @@ abstract class AbstractZenModeHeaderController extends AbstractZenModePreference
        if (!Objects.equal(mCurrentIconKey, zenMode.getIconKey())) {
            mCurrentIconKey = zenMode.getIconKey();
            FutureUtil.whenDone(
                    zenMode.getIcon(mContext, ZenIconLoader.getInstance()),
                    ZenIconLoader.getInstance().getIcon(mContext, zenMode),
                    icon -> {
                        checkNotNull(mHeaderController)
                                .setIcon(iconStylist.apply(icon))
                                .setIcon(iconStylist.apply(icon.drawable()))
                                .done(/* rebindActions= */ false);
                        iconView.jumpDrawablesToCurrentState(); // Skip animation on first load.
                    },
+1 −5
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.SimpleItemAnimator;

import com.android.settings.R;
import com.android.settingslib.notification.modes.ZenIconLoader;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.widget.LayoutPreference;

@@ -87,10 +86,7 @@ class ZenModeIconPickerListPreferenceController extends AbstractZenModePreferenc

    @Override
    void updateState(Preference preference, @NonNull ZenMode zenMode) {
        @DrawableRes int iconResId = zenMode.getRule().getIconResId();
        if (iconResId == 0) {
            iconResId = ZenIconLoader.getIconResourceIdFromType(zenMode.getType());
        }
        @DrawableRes int iconResId = zenMode.getIconKey().resId();
        updateIconSelection(iconResId);
    }

+3 −3
Original line number Diff line number Diff line
@@ -93,11 +93,11 @@ class ZenModesListItemPreference extends RestrictedPreference {

        setIconSize(ICON_SIZE_SMALL);
        FutureUtil.whenDone(
                mZenMode.getIcon(mContext, ZenIconLoader.getInstance()),
                ZenIconLoader.getInstance().getIcon(mContext, mZenMode),
                icon -> setIcon(
                        zenMode.isActive()
                                ? IconUtil.applyAccentTint(mContext, icon)
                                : IconUtil.applyNormalTint(mContext, icon)),
                                ? IconUtil.applyAccentTint(mContext, icon.drawable())
                                : IconUtil.applyNormalTint(mContext, icon.drawable())),
                mContext.getMainExecutor());

        updateTextColor(zenMode);
+4 −0
Original line number Diff line number Diff line
@@ -24,8 +24,11 @@ import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;

import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenIconLoader;
import com.android.settingslib.notification.modes.ZenMode;

import com.google.common.util.concurrent.MoreExecutors;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -47,6 +50,7 @@ public class ZenModesListItemPreferenceTest {
    public void setup() {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        ZenIconLoader.setInstance(new ZenIconLoader(MoreExecutors.newDirectExecutorService()));
    }

    @Test