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

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

Merge "Update clearData flow for notification settings" into qt-dev

parents f4496e18 7af51c56
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -2863,8 +2863,7 @@ public class NotificationManagerService extends SystemService {


            // Reset notification preferences
            // Reset notification preferences
            if (!fromApp) {
            if (!fromApp) {
                mPreferencesHelper.onPackagesChanged(
                mPreferencesHelper.clearData(packageName, uid);
                        true, UserHandle.getCallingUserId(), packages, uids);
            }
            }


            handleSavePolicyFile();
            handleSavePolicyFile();
+17 −0
Original line number Original line Diff line number Diff line
@@ -1717,6 +1717,23 @@ public class PreferencesHelper implements RankingConfig {
        }
        }
    }
    }


    public void clearData(String pkg, int uid) {
        synchronized (mPackagePreferences) {
            PackagePreferences p = getPackagePreferencesLocked(pkg, uid);
            if (p != null) {
                p.channels = new ArrayMap<>();
                p.groups = new ArrayMap<>();
                p.delegate = null;
                p.lockedAppFields = DEFAULT_LOCKED_APP_FIELDS;
                p.allowBubble = DEFAULT_ALLOW_BUBBLE;
                p.importance = DEFAULT_IMPORTANCE;
                p.priority = DEFAULT_PRIORITY;
                p.visibility = DEFAULT_VISIBILITY;
                p.showBadge = DEFAULT_SHOW_BADGE;
            }
        }
    }

    private LogMaker getChannelLog(NotificationChannel channel, String pkg) {
    private LogMaker getChannelLog(NotificationChannel channel, String pkg) {
        return new LogMaker(
        return new LogMaker(
                com.android.internal.logging.nano.MetricsProto.MetricsEvent
                com.android.internal.logging.nano.MetricsProto.MetricsEvent
+32 −0
Original line number Original line Diff line number Diff line
@@ -1643,6 +1643,38 @@ public class PreferencesHelperTest extends UiServiceTestCase {
                PKG_O, UID_O, NotificationChannel.DEFAULT_CHANNEL_ID, false));
                PKG_O, UID_O, NotificationChannel.DEFAULT_CHANNEL_ID, false));
    }
    }


    @Test
    public void testClearData() {
        ArraySet<String> pkg = new ArraySet<>();
        pkg.add(PKG_O);
        mHelper.createNotificationChannel(PKG_O, UID_O, getChannel(), true, false);
        mHelper.createNotificationChannelGroup(
                PKG_O, UID_O, new NotificationChannelGroup("1", "bye"), true);
        mHelper.lockChannelsForOEM(pkg.toArray(new String[]{}));
        mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, pkg);
        mHelper.setNotificationDelegate(PKG_O, UID_O, "", 1);
        mHelper.setImportance(PKG_O, UID_O, IMPORTANCE_NONE);
        mHelper.setBubblesAllowed(PKG_O, UID_O, false);
        mHelper.setShowBadge(PKG_O, UID_O, false);
        mHelper.setAppImportanceLocked(PKG_O, UID_O);

        mHelper.clearData(PKG_O, UID_O);

        assertEquals(IMPORTANCE_UNSPECIFIED, mHelper.getImportance(PKG_O, UID_O));
        assertTrue(mHelper.areBubblesAllowed(PKG_O, UID_O));
        assertTrue(mHelper.canShowBadge(PKG_O, UID_O));
        assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
        assertEquals(0, mHelper.getAppLockedFields(PKG_O, UID_O));
        assertEquals(0, mHelper.getNotificationChannels(PKG_O, UID_O, true).getList().size());
        assertEquals(0, mHelper.getNotificationChannelGroups(PKG_O, UID_O).size());

        NotificationChannel channel = getChannel();
        mHelper.createNotificationChannel(PKG_O, UID_O, channel, true, false);

        assertTrue(channel.isImportanceLockedByCriticalDeviceFunction());
        assertTrue(channel.isImportanceLockedByOEM());
    }

    @Test
    @Test
    public void testRecordDefaults() throws Exception {
    public void testRecordDefaults() throws Exception {
        assertEquals(NotificationManager.IMPORTANCE_UNSPECIFIED, mHelper.getImportance(PKG_N_MR1,
        assertEquals(NotificationManager.IMPORTANCE_UNSPECIFIED, mHelper.getImportance(PKG_N_MR1,