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

Commit 8fca94f5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Restore original importance when unblocking notif channel" into rvc-qpr-dev

parents 1a44a98f 2700b83c
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -106,8 +106,11 @@ public class BlockPreferenceController extends NotificationPreferenceController
            // It's always safe to override the importance if it's meant to be blocked or if
            // it was blocked and we are unblocking it.
            if (blocked || originalImportance == IMPORTANCE_NONE) {
                final int importance = blocked ? IMPORTANCE_NONE
                        : isDefaultChannel() ? IMPORTANCE_UNSPECIFIED : IMPORTANCE_DEFAULT;
                final int importance = blocked
                        ? IMPORTANCE_NONE
                        : isDefaultChannel()
                                ? IMPORTANCE_UNSPECIFIED
                                : mChannel.getOriginalImportance();
                mChannel.setImportance(importance);
                saveChannel();
            }
+2 −23
Original line number Diff line number Diff line
@@ -207,17 +207,14 @@ public class ChannelListPreferenceController extends NotificationPreferenceContr
        channelPref.setOnPreferenceChangeListener(
                (preference, o) -> {
                    boolean value = (Boolean) o;
                    int importance = value ? IMPORTANCE_LOW : IMPORTANCE_NONE;
                    int importance = value ? channel.getOriginalImportance() : IMPORTANCE_NONE;
                    channel.setImportance(importance);
                    channel.lockFields(
                            NotificationChannel.USER_LOCKED_IMPORTANCE);
                    channel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
                    MasterSwitchPreference channelPref1 = (MasterSwitchPreference) preference;
                    channelPref1.setIcon(null);
                    if (channel.getImportance() > IMPORTANCE_LOW) {
                        channelPref1.setIcon(getAlertingIcon());
                    }
                    toggleBehaviorIconState(channelPref1.getIcon(),
                            importance != IMPORTANCE_NONE);
                    mBackend.updateChannel(mAppRow.pkg, mAppRow.uid, channel);

                    return true;
@@ -234,24 +231,6 @@ public class ChannelListPreferenceController extends NotificationPreferenceContr
        return icon;
    }

    private void toggleBehaviorIconState(Drawable icon, boolean enabled) {
        if (icon == null) return;

        LayerDrawable layerDrawable = (LayerDrawable) icon;
        GradientDrawable background =
                (GradientDrawable) layerDrawable.findDrawableByLayerId(R.id.back);

        if (background == null) return;

        if (enabled) {
            background.clearColorFilter();
        } else {
            background.setColorFilter(new BlendModeColorFilter(
                    mContext.getColor(R.color.material_grey_300),
                    BlendMode.SRC_IN));
        }
    }

    protected void onGroupBlockStateChanged(NotificationChannelGroup group) {
        if (group == null) {
            return;
+2 −1
Original line number Diff line number Diff line
@@ -368,6 +368,7 @@ public class BlockPreferenceControllerTest {
    public void testOnSwitchChanged_channel_nonDefault() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
        NotificationChannel channel = new NotificationChannel("a", "a", IMPORTANCE_HIGH);
        channel.setOriginalImportance(IMPORTANCE_HIGH);
        mController.onResume(appRow, channel, null, null, null, null);
        mController.updateState(mPreference);

@@ -375,7 +376,7 @@ public class BlockPreferenceControllerTest {
        assertEquals(IMPORTANCE_NONE, channel.getImportance());

        mController.onSwitchChanged(null, true);
        assertEquals(IMPORTANCE_DEFAULT, channel.getImportance());
        assertEquals(IMPORTANCE_HIGH, channel.getImportance());

        verify(mBackend, times(2)).updateChannel(any(), anyInt(), any());
    }