Merge "Update clearData flow for notification settings" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
39d59de13d
@@ -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();
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user