Merge "Remove unnecessary ranking calls" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8d9ca7ea01
@@ -135,7 +135,6 @@ public class PreferencesHelper implements RankingConfig {
|
||||
private static final String ATT_SHOW_BADGE = "show_badge";
|
||||
private static final String ATT_APP_USER_LOCKED_FIELDS = "app_user_locked_fields";
|
||||
private static final String ATT_ENABLED = "enabled";
|
||||
private static final String ATT_USER_ALLOWED = "allowed";
|
||||
private static final String ATT_HIDE_SILENT = "hide_gentle";
|
||||
private static final String ATT_SENT_INVALID_MESSAGE = "sent_invalid_msg";
|
||||
private static final String ATT_SENT_VALID_MESSAGE = "sent_valid_msg";
|
||||
@@ -363,15 +362,12 @@ public class PreferencesHelper implements RankingConfig {
|
||||
String delegateName = XmlUtils.readStringAttribute(parser, ATT_NAME);
|
||||
boolean delegateEnabled = parser.getAttributeBoolean(
|
||||
null, ATT_ENABLED, Delegate.DEFAULT_ENABLED);
|
||||
boolean userAllowed = parser.getAttributeBoolean(
|
||||
null, ATT_USER_ALLOWED, Delegate.DEFAULT_USER_ALLOWED);
|
||||
Delegate d = null;
|
||||
if (delegateId != UNKNOWN_UID && !TextUtils.isEmpty(delegateName)) {
|
||||
d = new Delegate(delegateName, delegateId, delegateEnabled, userAllowed);
|
||||
d = new Delegate(delegateName, delegateId, delegateEnabled);
|
||||
}
|
||||
r.delegate = d;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -640,9 +636,6 @@ public class PreferencesHelper implements RankingConfig {
|
||||
if (r.delegate.mEnabled != Delegate.DEFAULT_ENABLED) {
|
||||
out.attributeBoolean(null, ATT_ENABLED, r.delegate.mEnabled);
|
||||
}
|
||||
if (r.delegate.mUserAllowed != Delegate.DEFAULT_USER_ALLOWED) {
|
||||
out.attributeBoolean(null, ATT_USER_ALLOWED, r.delegate.mUserAllowed);
|
||||
}
|
||||
out.endTag(null, TAG_DELEGATE);
|
||||
}
|
||||
|
||||
@@ -725,10 +718,17 @@ public class PreferencesHelper implements RankingConfig {
|
||||
|
||||
@Override
|
||||
public void setShowBadge(String packageName, int uid, boolean showBadge) {
|
||||
boolean changed = false;
|
||||
synchronized (mPackagePreferences) {
|
||||
getOrCreatePackagePreferencesLocked(packageName, uid).showBadge = showBadge;
|
||||
PackagePreferences pkgPrefs = getOrCreatePackagePreferencesLocked(packageName, uid);
|
||||
if (pkgPrefs.showBadge != showBadge) {
|
||||
pkgPrefs.showBadge = showBadge;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
updateConfig();
|
||||
}
|
||||
updateConfig();
|
||||
}
|
||||
|
||||
public boolean isInInvalidMsgState(String packageName, int uid) {
|
||||
@@ -985,7 +985,9 @@ public class PreferencesHelper implements RankingConfig {
|
||||
needsPolicyFileChange = true;
|
||||
}
|
||||
|
||||
updateConfig();
|
||||
if (needsPolicyFileChange) {
|
||||
updateConfig();
|
||||
}
|
||||
if (needsPolicyFileChange && !wasUndeleted) {
|
||||
mNotificationChannelLogger.logNotificationChannelModified(existing, uid, pkg,
|
||||
previousLoggingImportance, false);
|
||||
@@ -1072,6 +1074,7 @@ public class PreferencesHelper implements RankingConfig {
|
||||
boolean fromUser) {
|
||||
Objects.requireNonNull(updatedChannel);
|
||||
Objects.requireNonNull(updatedChannel.getId());
|
||||
boolean changed = false;
|
||||
boolean needsDndChange = false;
|
||||
synchronized (mPackagePreferences) {
|
||||
PackagePreferences r = getOrCreatePackagePreferencesLocked(pkg, uid);
|
||||
@@ -1105,6 +1108,7 @@ public class PreferencesHelper implements RankingConfig {
|
||||
? Notification.PRIORITY_MAX : Notification.PRIORITY_DEFAULT;
|
||||
r.visibility = updatedChannel.getLockscreenVisibility();
|
||||
r.showBadge = updatedChannel.canShowBadge();
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (!channel.equals(updatedChannel)) {
|
||||
@@ -1113,17 +1117,21 @@ public class PreferencesHelper implements RankingConfig {
|
||||
.setSubtype(fromUser ? 1 : 0));
|
||||
mNotificationChannelLogger.logNotificationChannelModified(updatedChannel, uid, pkg,
|
||||
NotificationChannelLogger.getLoggingImportance(channel), fromUser);
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (updatedChannel.canBypassDnd() != mAreChannelsBypassingDnd
|
||||
|| channel.getImportance() != updatedChannel.getImportance()) {
|
||||
needsDndChange = true;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if (needsDndChange) {
|
||||
updateChannelsBypassingDnd();
|
||||
}
|
||||
updateConfig();
|
||||
if (changed) {
|
||||
updateConfig();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1788,7 +1796,7 @@ public class PreferencesHelper implements RankingConfig {
|
||||
if (prefs == null || prefs.delegate == null) {
|
||||
return null;
|
||||
}
|
||||
if (!prefs.delegate.mUserAllowed || !prefs.delegate.mEnabled) {
|
||||
if (!prefs.delegate.mEnabled) {
|
||||
return null;
|
||||
}
|
||||
return prefs.delegate.mPkg;
|
||||
@@ -1802,46 +1810,20 @@ public class PreferencesHelper implements RankingConfig {
|
||||
String delegatePkg, int delegateUid) {
|
||||
synchronized (mPackagePreferences) {
|
||||
PackagePreferences prefs = getOrCreatePackagePreferencesLocked(sourcePkg, sourceUid);
|
||||
|
||||
boolean userAllowed = prefs.delegate == null || prefs.delegate.mUserAllowed;
|
||||
Delegate delegate = new Delegate(delegatePkg, delegateUid, true, userAllowed);
|
||||
prefs.delegate = delegate;
|
||||
prefs.delegate = new Delegate(delegatePkg, delegateUid, true);
|
||||
}
|
||||
updateConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* Used by an app to turn off its notification delegate.
|
||||
*/
|
||||
public void revokeNotificationDelegate(String sourcePkg, int sourceUid) {
|
||||
boolean changed = false;
|
||||
synchronized (mPackagePreferences) {
|
||||
PackagePreferences prefs = getPackagePreferencesLocked(sourcePkg, sourceUid);
|
||||
if (prefs != null && prefs.delegate != null) {
|
||||
prefs.delegate.mEnabled = false;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
updateConfig();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggles whether an app can have a notification delegate on behalf of a user.
|
||||
*/
|
||||
public void toggleNotificationDelegate(String sourcePkg, int sourceUid, boolean userAllowed) {
|
||||
boolean changed = false;
|
||||
synchronized (mPackagePreferences) {
|
||||
PackagePreferences prefs = getPackagePreferencesLocked(sourcePkg, sourceUid);
|
||||
if (prefs != null && prefs.delegate != null) {
|
||||
prefs.delegate.mUserAllowed = userAllowed;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
updateConfig();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2726,17 +2708,15 @@ public class PreferencesHelper implements RankingConfig {
|
||||
|
||||
private static class Delegate {
|
||||
static final boolean DEFAULT_ENABLED = true;
|
||||
static final boolean DEFAULT_USER_ALLOWED = true;
|
||||
String mPkg;
|
||||
int mUid = UNKNOWN_UID;
|
||||
boolean mEnabled = DEFAULT_ENABLED;
|
||||
boolean mUserAllowed = DEFAULT_USER_ALLOWED;
|
||||
|
||||
Delegate(String pkg, int uid, boolean enabled, boolean userAllowed) {
|
||||
final String mPkg;
|
||||
final int mUid;
|
||||
boolean mEnabled;
|
||||
|
||||
Delegate(String pkg, int uid, boolean enabled) {
|
||||
mPkg = pkg;
|
||||
mUid = uid;
|
||||
mEnabled = enabled;
|
||||
mUserAllowed = userAllowed;
|
||||
}
|
||||
|
||||
public boolean isAllowed(String pkg, int uid) {
|
||||
@@ -2745,7 +2725,7 @@ public class PreferencesHelper implements RankingConfig {
|
||||
}
|
||||
return pkg.equals(mPkg)
|
||||
&& uid == mUid
|
||||
&& (mUserAllowed && mEnabled);
|
||||
&& mEnabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@ import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.clearInvocations;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@@ -70,6 +71,7 @@ import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.AppOpsManager;
|
||||
@@ -161,7 +163,6 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
private static final String SYSTEM_PKG = "android";
|
||||
private static final int SYSTEM_UID = 1000;
|
||||
private static final UserHandle USER2 = UserHandle.of(10);
|
||||
private static final String TEST_CHANNEL_ID = "test_channel_id";
|
||||
private static final String TEST_AUTHORITY = "test";
|
||||
private static final Uri SOUND_URI =
|
||||
Uri.parse("content://" + TEST_AUTHORITY + "/internal/audio/media/10");
|
||||
@@ -284,9 +285,9 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
anyString(), eq(null), anyString())).thenReturn(MODE_DEFAULT);
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(UID_P, PKG_P), new Pair(true, false));
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(true, false));
|
||||
appPermissions.put(new Pair(UID_N_MR1, PKG_N_MR1), new Pair(true, false));
|
||||
appPermissions.put(new Pair<>(UID_P, PKG_P), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(UID_N_MR1, PKG_N_MR1), new Pair<>(true, false));
|
||||
|
||||
when(mPermissionHelper.getNotificationPermissionValues(USER_SYSTEM))
|
||||
.thenReturn(appPermissions);
|
||||
@@ -422,8 +423,8 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
assertTrue(mHelper.createNotificationChannel(package10, uid10, channel10, true, false));
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(uid0, package0), new Pair(false, false));
|
||||
appPermissions.put(new Pair(uid10, package10), new Pair(true, false));
|
||||
appPermissions.put(new Pair<>(uid0, package0), new Pair<>(false, false));
|
||||
appPermissions.put(new Pair<>(uid10, package10), new Pair<>(true, false));
|
||||
|
||||
when(mPermissionHelper.getNotificationPermissionValues(10))
|
||||
.thenReturn(appPermissions);
|
||||
@@ -454,7 +455,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
assertTrue(mHelper.createNotificationChannel(package0, uid0, channel0, true, false));
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(uid0, package0), new Pair(true, false));
|
||||
appPermissions.put(new Pair<>(uid0, package0), new Pair<>(true, false));
|
||||
|
||||
when(mPermissionHelper.getNotificationPermissionValues(USER_SYSTEM))
|
||||
.thenReturn(appPermissions);
|
||||
@@ -1009,11 +1010,11 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mPermissionHelper, mLogger, mAppOpsManager, mStatsEventBuilderFactory, false);
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(1, "first"), new Pair(true, false));
|
||||
appPermissions.put(new Pair(3, "third"), new Pair(false, false));
|
||||
appPermissions.put(new Pair(UID_P, PKG_P), new Pair(true, false));
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, false));
|
||||
appPermissions.put(new Pair(UID_N_MR1, PKG_N_MR1), new Pair(true, false));
|
||||
appPermissions.put(new Pair<>(1, "first"), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(3, "third"), new Pair<>(false, false));
|
||||
appPermissions.put(new Pair<>(UID_P, PKG_P), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, false));
|
||||
appPermissions.put(new Pair<>(UID_N_MR1, PKG_N_MR1), new Pair<>(true, false));
|
||||
|
||||
when(mPermissionHelper.getNotificationPermissionValues(USER_SYSTEM))
|
||||
.thenReturn(appPermissions);
|
||||
@@ -1089,11 +1090,11 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mPermissionHelper, mLogger, mAppOpsManager, mStatsEventBuilderFactory, false);
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(1, "first"), new Pair(true, false));
|
||||
appPermissions.put(new Pair(3, "third"), new Pair(false, false));
|
||||
appPermissions.put(new Pair(UID_P, PKG_P), new Pair(true, false));
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, false));
|
||||
appPermissions.put(new Pair(UID_N_MR1, PKG_N_MR1), new Pair(true, false));
|
||||
appPermissions.put(new Pair<>(1, "first"), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(3, "third"), new Pair<>(false, false));
|
||||
appPermissions.put(new Pair<>(UID_P, PKG_P), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, false));
|
||||
appPermissions.put(new Pair<>(UID_N_MR1, PKG_N_MR1), new Pair<>(true, false));
|
||||
|
||||
when(mPermissionHelper.getNotificationPermissionValues(USER_SYSTEM))
|
||||
.thenReturn(appPermissions);
|
||||
@@ -1175,8 +1176,8 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mPermissionHelper, mLogger, mAppOpsManager, mStatsEventBuilderFactory, false);
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(UID_P, PKG_P), new Pair(true, false));
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, false));
|
||||
appPermissions.put(new Pair<>(UID_P, PKG_P), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, false));
|
||||
when(mPermissionHelper.getNotificationPermissionValues(USER_SYSTEM))
|
||||
.thenReturn(appPermissions);
|
||||
|
||||
@@ -1254,11 +1255,11 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mPermissionHelper, mLogger, mAppOpsManager, mStatsEventBuilderFactory, false);
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(1, "first"), new Pair(true, false));
|
||||
appPermissions.put(new Pair(3, "third"), new Pair(false, false));
|
||||
appPermissions.put(new Pair(UID_P, PKG_P), new Pair(true, false));
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, false));
|
||||
appPermissions.put(new Pair(UID_N_MR1, PKG_N_MR1), new Pair(true, false));
|
||||
appPermissions.put(new Pair<>(1, "first"), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(3, "third"), new Pair<>(false, false));
|
||||
appPermissions.put(new Pair<>(UID_P, PKG_P), new Pair<>(true, false));
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, false));
|
||||
appPermissions.put(new Pair<>(UID_N_MR1, PKG_N_MR1), new Pair<>(true, false));
|
||||
|
||||
when(mPermissionHelper.getNotificationPermissionValues(USER_SYSTEM))
|
||||
.thenReturn(appPermissions);
|
||||
@@ -1372,7 +1373,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
@Test
|
||||
public void testBackupRestoreXml_withNullSoundUri() throws Exception {
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(UID_N_MR1, PKG_N_MR1), new Pair(true, false));
|
||||
appPermissions.put(new Pair<>(UID_N_MR1, PKG_N_MR1), new Pair<>(true, false));
|
||||
|
||||
when(mPermissionHelper.getNotificationPermissionValues(USER_SYSTEM))
|
||||
.thenReturn(appPermissions);
|
||||
@@ -2605,10 +2606,8 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
|
||||
@Test
|
||||
public void testClearData() {
|
||||
ArraySet<String> pkg = new ArraySet<>();
|
||||
pkg.add(PKG_O);
|
||||
ArraySet<Pair<String, Integer>> pkgPair = new ArraySet<>();
|
||||
pkgPair.add(new Pair(PKG_O, UID_O));
|
||||
pkgPair.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.createNotificationChannel(PKG_O, UID_O, getChannel(), true, false);
|
||||
mHelper.createNotificationChannelGroup(
|
||||
PKG_O, UID_O, new NotificationChannelGroup("1", "bye"), true);
|
||||
@@ -2879,10 +2878,10 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
|
||||
// package permissions map to be passed in
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(1, "first"), new Pair(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair(3, "third"), new Pair(false, false)); // not in local prefs
|
||||
appPermissions.put(new Pair(UID_P, PKG_P), new Pair(true, false)); // in local prefs
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, false)); // in local prefs
|
||||
appPermissions.put(new Pair<>(1, "first"), new Pair<>(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(3, "third"), new Pair<>(false, false)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(UID_P, PKG_P), new Pair<>(true, false)); // in local prefs
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, false)); // in local prefs
|
||||
|
||||
NotificationChannel channel1 =
|
||||
new NotificationChannel("id1", "name1", NotificationManager.IMPORTANCE_HIGH);
|
||||
@@ -2901,15 +2900,15 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
ArrayMap<Pair<Integer, String>, String> expected = new ArrayMap<>();
|
||||
|
||||
// packages that only exist via the app permissions; should be present
|
||||
expected.put(new Pair(UserHandle.getUserId(1), "first"), "DEFAULT");
|
||||
expected.put(new Pair(UserHandle.getUserId(3), "third"), "NONE");
|
||||
expected.put(new Pair<>(UserHandle.getUserId(1), "first"), "DEFAULT");
|
||||
expected.put(new Pair<>(UserHandle.getUserId(3), "third"), "NONE");
|
||||
|
||||
// packages that exist in both app permissions & local preferences
|
||||
expected.put(new Pair(UserHandle.getUserId(UID_P), PKG_P), "DEFAULT");
|
||||
expected.put(new Pair(UserHandle.getUserId(UID_O), PKG_O), "NONE");
|
||||
expected.put(new Pair<>(UserHandle.getUserId(UID_P), PKG_P), "DEFAULT");
|
||||
expected.put(new Pair<>(UserHandle.getUserId(UID_O), PKG_O), "NONE");
|
||||
|
||||
// package that only exists in local preferences; expect no importance output
|
||||
expected.put(new Pair(UserHandle.getUserId(UID_N_MR1), PKG_N_MR1), null);
|
||||
expected.put(new Pair<>(UserHandle.getUserId(UID_N_MR1), PKG_N_MR1), null);
|
||||
|
||||
JSONArray actual = (JSONArray) mHelper.dumpJson(
|
||||
new NotificationManagerService.DumpFilter(), appPermissions)
|
||||
@@ -2918,7 +2917,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
for (int i = 0; i < actual.length(); i++) {
|
||||
JSONObject pkgInfo = actual.getJSONObject(i);
|
||||
Pair<Integer, String> pkgKey =
|
||||
new Pair(pkgInfo.getInt("userId"), pkgInfo.getString("packageName"));
|
||||
new Pair<>(pkgInfo.getInt("userId"), pkgInfo.getString("packageName"));
|
||||
assertTrue(expected.containsKey(pkgKey));
|
||||
if (pkgInfo.has("importance")) {
|
||||
assertThat(pkgInfo.getString("importance")).isEqualTo(expected.get(pkgKey));
|
||||
@@ -2957,16 +2956,16 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
// have their permission set to false, and not based on PackagePreferences importance
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(1, "first"), new Pair(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair(3, "third"), new Pair(false, false)); // not in local prefs
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, false)); // in local prefs
|
||||
appPermissions.put(new Pair<>(1, "first"), new Pair<>(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(3, "third"), new Pair<>(false, false)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, false)); // in local prefs
|
||||
|
||||
mHelper.canShowBadge(PKG_O, UID_O);
|
||||
|
||||
// expected output
|
||||
ArraySet<Pair<Integer, String>> expected = new ArraySet<>();
|
||||
expected.add(new Pair(UserHandle.getUserId(3), "third"));
|
||||
expected.add(new Pair(UserHandle.getUserId(UID_O), PKG_O));
|
||||
expected.add(new Pair<>(UserHandle.getUserId(3), "third"));
|
||||
expected.add(new Pair<>(UserHandle.getUserId(UID_O), PKG_O));
|
||||
|
||||
// make sure that's the only thing in the package ban output
|
||||
JSONArray actual = mHelper.dumpBansJson(
|
||||
@@ -2976,7 +2975,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
for (int i = 0; i < actual.length(); i++) {
|
||||
JSONObject ban = actual.getJSONObject(i);
|
||||
assertTrue(expected.contains(
|
||||
new Pair(ban.getInt("userId"), ban.getString("packageName"))));
|
||||
new Pair<>(ban.getInt("userId"), ban.getString("packageName"))));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2994,9 +2993,9 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
// confirm that the string resulting from dumpImpl contains only importances from permission
|
||||
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(1, "first"), new Pair(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair(3, "third"), new Pair(false, true)); // not in local prefs
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, false)); // in local prefs
|
||||
appPermissions.put(new Pair<>(1, "first"), new Pair<>(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(3, "third"), new Pair<>(false, true)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, false)); // in local prefs
|
||||
|
||||
// local package preferences
|
||||
mHelper.canShowBadge(PKG_O, UID_O);
|
||||
@@ -3055,9 +3054,9 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
|
||||
// permissions -- these should take precedence
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(1, "first"), new Pair(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair(3, "third"), new Pair(false, false)); // not in local prefs
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, false)); // in local prefs
|
||||
appPermissions.put(new Pair<>(1, "first"), new Pair<>(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(3, "third"), new Pair<>(false, false)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, false)); // in local prefs
|
||||
|
||||
// local package preferences
|
||||
mHelper.canShowBadge(PKG_O, UID_O);
|
||||
@@ -3067,14 +3066,14 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
// should have importance set (aka not PKG_P)
|
||||
// map format: (uid, package name) -> importance (int)
|
||||
ArrayMap<Pair<Integer, String>, Integer> expected = new ArrayMap<>();
|
||||
expected.put(new Pair(1, "first"), IMPORTANCE_DEFAULT);
|
||||
expected.put(new Pair(3, "third"), IMPORTANCE_NONE);
|
||||
expected.put(new Pair(UID_O, PKG_O), IMPORTANCE_NONE);
|
||||
expected.put(new Pair<>(1, "first"), IMPORTANCE_DEFAULT);
|
||||
expected.put(new Pair<>(3, "third"), IMPORTANCE_NONE);
|
||||
expected.put(new Pair<>(UID_O, PKG_O), IMPORTANCE_NONE);
|
||||
|
||||
// unfortunately, due to how nano protos work, there's no distinction between unset
|
||||
// fields and default-value fields, so we have no choice here but to check for a value of 0.
|
||||
// at least we can make sure the local importance for PKG_P in this test is not 0 (NONE).
|
||||
expected.put(new Pair(UID_P, PKG_P), 0);
|
||||
expected.put(new Pair<>(UID_P, PKG_P), 0);
|
||||
|
||||
// get the proto output and inspect its contents
|
||||
ProtoOutputStream proto = new ProtoOutputStream();
|
||||
@@ -3084,7 +3083,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
assertThat(actual.records.length).isEqualTo(expected.size());
|
||||
for (int i = 0; i < actual.records.length; i++) {
|
||||
RankingHelperProto.RecordProto record = actual.records[i];
|
||||
Pair<Integer, String> pkgKey = new Pair(record.uid, record.package_);
|
||||
Pair<Integer, String> pkgKey = new Pair<>(record.uid, record.package_);
|
||||
assertTrue(expected.containsKey(pkgKey));
|
||||
assertThat(record.importance).isEqualTo(expected.get(pkgKey));
|
||||
}
|
||||
@@ -3402,26 +3401,6 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToggleNotificationDelegate() {
|
||||
mHelper.setNotificationDelegate(PKG_O, UID_O, "other", 53);
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, false);
|
||||
|
||||
assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, true);
|
||||
assertEquals("other", mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToggleNotificationDelegate_noDelegateExistsNoCrash() {
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, false);
|
||||
assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, true);
|
||||
assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsDelegateAllowed_noSource() {
|
||||
assertFalse(mHelper.isDelegateAllowed("does not exist", -1, "whatever", 0));
|
||||
@@ -3450,14 +3429,6 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
assertFalse(mHelper.isDelegateAllowed(PKG_O, UID_O, "banana", 27));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsDelegateAllowed_delegateDisabledByUser() {
|
||||
mHelper.setNotificationDelegate(PKG_O, UID_O, "other", 53);
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, false);
|
||||
|
||||
assertFalse(mHelper.isDelegateAllowed(PKG_O, UID_O, "other", 53));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsDelegateAllowed() {
|
||||
mHelper.setNotificationDelegate(PKG_O, UID_O, "other", 53);
|
||||
@@ -3503,46 +3474,8 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
loadStreamXml(baos, false, UserHandle.USER_ALL);
|
||||
|
||||
assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDelegateXml_userDisabledDelegate() throws Exception {
|
||||
mHelper.setNotificationDelegate(PKG_O, UID_O, "other", 53);
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, false);
|
||||
|
||||
ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
|
||||
mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper,
|
||||
mPermissionHelper, mLogger,
|
||||
mAppOpsManager, mStatsEventBuilderFactory, false);
|
||||
loadStreamXml(baos, false, UserHandle.USER_ALL);
|
||||
|
||||
// appears disabled
|
||||
assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
|
||||
// but was loaded and can be toggled back on
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, true);
|
||||
assertEquals("other", mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDelegateXml_entirelyDisabledDelegate() throws Exception {
|
||||
mHelper.setNotificationDelegate(PKG_O, UID_O, "other", 53);
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, false);
|
||||
mHelper.revokeNotificationDelegate(PKG_O, UID_O);
|
||||
|
||||
ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false, UserHandle.USER_ALL);
|
||||
mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper,
|
||||
mPermissionHelper, mLogger,
|
||||
mAppOpsManager, mStatsEventBuilderFactory, false);
|
||||
loadStreamXml(baos, false, UserHandle.USER_ALL);
|
||||
|
||||
// appears disabled
|
||||
assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
|
||||
mHelper.setNotificationDelegate(PKG_O, UID_O, "other", 53);
|
||||
assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
|
||||
mHelper.toggleNotificationDelegate(PKG_O, UID_O, true);
|
||||
assertEquals("other", mHelper.getNotificationDelegate(PKG_O, UID_O));
|
||||
}
|
||||
|
||||
@@ -3686,7 +3619,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
@Test
|
||||
public void testUpdateNotificationChannel_defaultApp() {
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(0, null, toAdd);
|
||||
NotificationChannel a = new NotificationChannel("a", "a", IMPORTANCE_HIGH);
|
||||
mHelper.createNotificationChannel(PKG_O, UID_O, a, true, false);
|
||||
@@ -3820,7 +3753,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mHelper.createNotificationChannel(PKG_O, UserHandle.PER_USER_RANGE + 1, c, true, true);
|
||||
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, toAdd);
|
||||
|
||||
assertTrue(mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false)
|
||||
@@ -3840,7 +3773,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mHelper.createNotificationChannel(PKG_N_MR1, UID_N_MR1, b, false, false);
|
||||
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, toAdd);
|
||||
|
||||
assertTrue(mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false)
|
||||
@@ -3858,7 +3791,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mHelper.createNotificationChannel(PKG_O, UID_O, b, false, false);
|
||||
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, toAdd);
|
||||
|
||||
assertTrue(mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false)
|
||||
@@ -3884,7 +3817,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mHelper.createNotificationChannel(PKG_N_MR1, UID_N_MR1, b, false, false);
|
||||
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, toAdd);
|
||||
|
||||
|
||||
@@ -3897,7 +3830,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
ArraySet<String> toRemove = new ArraySet<>();
|
||||
toRemove.add(PKG_O);
|
||||
toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_N_MR1, UID_N_MR1));
|
||||
toAdd.add(new Pair<>(PKG_N_MR1, UID_N_MR1));
|
||||
mHelper.updateDefaultApps(USER.getIdentifier(), toRemove, toAdd);
|
||||
|
||||
assertFalse(mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false)
|
||||
@@ -3909,7 +3842,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
@Test
|
||||
public void testUpdateDefaultApps_appDoesNotExist_noCrash() {
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
ArraySet<String> toRemove = new ArraySet<>();
|
||||
toRemove.add(PKG_N_MR1);
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), toRemove, toAdd);
|
||||
@@ -3922,7 +3855,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
mHelper.createNotificationChannel(PKG_O, UID_O, a, true, false);
|
||||
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, toAdd);
|
||||
|
||||
assertTrue(mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false)
|
||||
@@ -3938,7 +3871,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
NotificationChannel a = new NotificationChannel("a", "a", IMPORTANCE_HIGH);
|
||||
mHelper.createNotificationChannel(PKG_O, UID_O, a, true, false);
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, toAdd);
|
||||
|
||||
NotificationChannel update = new NotificationChannel("a", "a", IMPORTANCE_NONE);
|
||||
@@ -3964,7 +3897,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
@Test
|
||||
public void testDefaultApp_appHasNoSettingsYet() {
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, toAdd);
|
||||
|
||||
NotificationChannel a = new NotificationChannel("a", "a", IMPORTANCE_HIGH);
|
||||
@@ -4004,7 +3937,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
@Test
|
||||
public void testUpdateDefaultApps_thenNotFixedPermission() {
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(0, null, toAdd);
|
||||
|
||||
UserInfo user = new UserInfo();
|
||||
@@ -4043,7 +3976,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
UID_O});
|
||||
|
||||
ArraySet<Pair<String, Integer>> toAdd = new ArraySet<>();
|
||||
toAdd.add(new Pair(PKG_O, UID_O));
|
||||
toAdd.add(new Pair<>(PKG_O, UID_O));
|
||||
mHelper.updateDefaultApps(UserHandle.getUserId(UID_O), null, toAdd);
|
||||
|
||||
TypedXmlPullParser parser = Xml.newFastPullParser();
|
||||
@@ -5041,9 +4974,9 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
|
||||
// build a collection of app permissions that should be passed in but ignored
|
||||
ArrayMap<Pair<Integer, String>, Pair<Boolean, Boolean>> appPermissions = new ArrayMap<>();
|
||||
appPermissions.put(new Pair(1, "first"), new Pair(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair(3, "third"), new Pair(false, true)); // not in local prefs
|
||||
appPermissions.put(new Pair(UID_O, PKG_O), new Pair(false, true)); // in local prefs
|
||||
appPermissions.put(new Pair<>(1, "first"), new Pair<>(true, false)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(3, "third"), new Pair<>(false, true)); // not in local prefs
|
||||
appPermissions.put(new Pair<>(UID_O, PKG_O), new Pair<>(false, true)); // in local prefs
|
||||
|
||||
// local preferences
|
||||
mHelper.canShowBadge(PKG_O, UID_O);
|
||||
@@ -5052,10 +4985,10 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
// expected output. format: uid -> importance, as only uid (and not package name)
|
||||
// is in PackageNotificationPreferences
|
||||
ArrayMap<Integer, Pair<Integer, Boolean>> expected = new ArrayMap<>();
|
||||
expected.put(1, new Pair(IMPORTANCE_DEFAULT, false));
|
||||
expected.put(3, new Pair(IMPORTANCE_NONE, true));
|
||||
expected.put(UID_O, new Pair(IMPORTANCE_NONE, true)); // banned by permissions
|
||||
expected.put(UID_P, new Pair(IMPORTANCE_NONE, false)); // defaults to none, false
|
||||
expected.put(1, new Pair<>(IMPORTANCE_DEFAULT, false));
|
||||
expected.put(3, new Pair<>(IMPORTANCE_NONE, true));
|
||||
expected.put(UID_O, new Pair<>(IMPORTANCE_NONE, true)); // banned by permissions
|
||||
expected.put(UID_P, new Pair<>(IMPORTANCE_NONE, false)); // defaults to none, false
|
||||
|
||||
ArrayList<StatsEvent> events = new ArrayList<>();
|
||||
mHelper.pullPackagePreferencesStats(events, appPermissions);
|
||||
@@ -5109,4 +5042,72 @@ public class PreferencesHelperTest extends UiServiceTestCase {
|
||||
assertTrue((channelB.getUserLockedFields() & USER_LOCKED_IMPORTANCE) == 0);
|
||||
assertTrue((channelC.getUserLockedFields() & USER_LOCKED_IMPORTANCE) == 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createNotificationChannel_updateDifferent_requestsSort() {
|
||||
NotificationChannel original = new NotificationChannel("id", "Bah", IMPORTANCE_DEFAULT);
|
||||
mHelper.createNotificationChannel(PKG_P, 0, original, true, false);
|
||||
clearInvocations(mHandler);
|
||||
|
||||
NotificationChannel updated = new NotificationChannel("id", "Wow", IMPORTANCE_DEFAULT);
|
||||
mHelper.createNotificationChannel(PKG_P, 0, updated, true, false);
|
||||
|
||||
verify(mHandler).requestSort();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createNotificationChannel_updateSame_doesNotRequestSort() {
|
||||
NotificationChannel original = new NotificationChannel("id", "Bah", IMPORTANCE_DEFAULT);
|
||||
mHelper.createNotificationChannel(PKG_P, 0, original, true, false);
|
||||
clearInvocations(mHandler);
|
||||
|
||||
NotificationChannel same = new NotificationChannel("id", "Bah", IMPORTANCE_DEFAULT);
|
||||
mHelper.createNotificationChannel(PKG_P, 0, same, true, false);
|
||||
|
||||
verifyZeroInteractions(mHandler);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateNotificationChannel_different_requestsSort() {
|
||||
NotificationChannel original = new NotificationChannel("id", "Bah", IMPORTANCE_DEFAULT);
|
||||
mHelper.createNotificationChannel(PKG_P, 0, original, true, false);
|
||||
clearInvocations(mHandler);
|
||||
|
||||
NotificationChannel updated = new NotificationChannel("id", "Wow", IMPORTANCE_DEFAULT);
|
||||
mHelper.updateNotificationChannel(PKG_P, 0, updated, false);
|
||||
|
||||
verify(mHandler).requestSort();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateNotificationChannel_same_doesNotRequestSort() {
|
||||
NotificationChannel original = new NotificationChannel("id", "Bah", IMPORTANCE_DEFAULT);
|
||||
mHelper.createNotificationChannel(PKG_P, 0, original, true, false);
|
||||
clearInvocations(mHandler);
|
||||
// Note: Creating a NotificationChannel identical to the original is not equals(), because
|
||||
// of mOriginalImportance. So we create a "true copy" instead.
|
||||
Parcel parcel = Parcel.obtain();
|
||||
original.writeToParcel(parcel, 0);
|
||||
parcel.setDataPosition(0);
|
||||
NotificationChannel same = NotificationChannel.CREATOR.createFromParcel(parcel);
|
||||
parcel.recycle();
|
||||
|
||||
mHelper.updateNotificationChannel(PKG_P, 0, same, false);
|
||||
|
||||
verifyZeroInteractions(mHandler);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setShowBadge_update_requestsSort() {
|
||||
mHelper.setShowBadge(PKG_P, 0, false);
|
||||
|
||||
verify(mHandler).requestSort();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setShowBadge_same_doesNotRequestSort() {
|
||||
mHelper.setShowBadge(PKG_P, 0, true); // true == DEFAULT_SHOW_BADGE
|
||||
|
||||
verifyZeroInteractions(mHandler);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user