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

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

Merge "Fix 'show badge' for pre O apps" into pi-dev

parents ee283563 6f245063
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.notification;

import static android.provider.Settings.Secure.NOTIFICATION_BADGING;

import android.app.NotificationChannel;
import android.content.Context;
import android.provider.Settings;
import android.support.v7.preference.Preference;
@@ -55,8 +56,12 @@ public class BadgePreferenceController extends NotificationPreferenceController
                NOTIFICATION_BADGING, SYSTEM_WIDE_ON) == SYSTEM_WIDE_OFF) {
            return false;
        }
        if (mChannel != null && !mAppRow.showBadge) {
            return false;
        if (mChannel != null) {
            if (NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) {
                return true;
            } else {
                return mAppRow.showBadge;
            }
        }
        return true;
    }
+27 −2
Original line number Diff line number Diff line
@@ -133,6 +133,19 @@ public class BadgePreferenceControllerTest {
        assertTrue(mController.isAvailable());
    }

    @Test
    public void testIsAvailable_defaultChannel() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
        appRow.showBadge = true;
        NotificationChannel channel = mock(NotificationChannel.class);
        when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
        when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
        mController.onResume(appRow, channel, null, null);
        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BADGING, 1);

        assertTrue(mController.isAvailable());
    }

    @Test
    public void testIsAvailable_channel() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
@@ -145,12 +158,24 @@ public class BadgePreferenceControllerTest {
        assertTrue(mController.isAvailable());
    }

    @Test
    public void testIsAvailable_channelAppOff() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
        appRow.showBadge = false;
        NotificationChannel channel = mock(NotificationChannel.class);
        when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
        mController.onResume(appRow, channel, null, null);
        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BADGING, 1);

        assertFalse(mController.isAvailable());
    }

    @Test
    public void testUpdateState_disabledByAdmin() {
        NotificationChannel channel = mock(NotificationChannel.class);
        when(channel.getId()).thenReturn("something");
        mController.onResume(
            new NotificationBackend.AppRow(), channel, null, mock(RestrictedLockUtils.EnforcedAdmin.class));
        mController.onResume(new NotificationBackend.AppRow(), channel, null,
                mock(RestrictedLockUtils.EnforcedAdmin.class));

        Preference pref = new RestrictedSwitchPreference(mContext);
        mController.updateState(pref);