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

Commit bd2bb065 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Prevent oem locked and default apps from being blocked

Test: robotests
Fixes: 129358763
Change-Id: I999b017f9f7389424e499a44cfac43711acbbbea
parent 1cc5eef8
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -126,6 +126,11 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc
                return mChannel.getImportance() == IMPORTANCE_NONE;
            }

            if (mChannel.isImportanceLockedByOEM()
                    || mChannel.isImportanceLockedByCriticalDeviceFunction()) {
                return false;
            }

            return mChannel.isBlockableSystem() || !mAppRow.systemApp
                    || mChannel.getImportance() == IMPORTANCE_NONE;
        }
+24 −0
Original line number Diff line number Diff line
@@ -317,6 +317,30 @@ public class NotificationPreferenceControllerTest {
        assertTrue(mController.isChannelGroupBlockable());
    }

    @Test
    public void testIsChannelBlockable_oemLocked() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
        appRow.systemApp = false;
        NotificationChannel channel = mock(NotificationChannel.class);
        when(channel.isImportanceLockedByOEM()).thenReturn(true);
        when(channel.getImportance()).thenReturn(IMPORTANCE_DEFAULT);

        mController.onResume(appRow, channel, null, null);
        assertFalse(mController.isChannelBlockable());
    }

    @Test
    public void testIsChannelBlockable_criticalDeviceFunction() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
        appRow.systemApp = false;
        NotificationChannel channel = mock(NotificationChannel.class);
        when(channel.isImportanceLockedByCriticalDeviceFunction()).thenReturn(true);
        when(channel.getImportance()).thenReturn(IMPORTANCE_DEFAULT);

        mController.onResume(appRow, channel, null, null);
        assertFalse(mController.isChannelBlockable());
    }

    @Test
    public void testIsChannelGroupBlockable_SystemNotBlockable() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();