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

Commit 560e175a authored by Julia Reynolds's avatar Julia Reynolds Committed by Android (Google) Code Review
Browse files

Merge "Prevent oem locked and default apps from being blocked"

parents e69f3368 bd2bb065
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();