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

Commit dd7f6b91 authored by Matías Hernández's avatar Matías Hernández
Browse files

Use ZenMode.getIconKey() and ZenIconLoader.getIcon() in Settings

Bug: 360399800
Bug: 361597532
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I82baaeaaa0d722f8042c7ac6be33b8654418391f
parent db74ac12
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