[DO NOT MERGE] Revert "Fix system zen rules by using owner package name if caller is system"
This reverts commit dbfe869c30.
Reason for revert: broke DND schedules in multi-user mode b/257477671
Change-Id: I037112dbb6fa0997cadafefce2aac0089dc0f6f6
This commit is contained in:
committed by
Android (Google) Code Review
parent
dbfe869c30
commit
7fcdd1fa0e
@@ -3626,16 +3626,7 @@ public class NotificationManagerService extends SystemService {
|
||||
}
|
||||
enforcePolicyAccess(Binder.getCallingUid(), "addAutomaticZenRule");
|
||||
|
||||
// If the caller is system, take the package name from the rule's owner rather than
|
||||
// from the caller's package.
|
||||
String rulePkg = pkg;
|
||||
if (isCallingUidSystem()) {
|
||||
if (automaticZenRule.getOwner() != null) {
|
||||
rulePkg = automaticZenRule.getOwner().getPackageName();
|
||||
}
|
||||
}
|
||||
|
||||
return mZenModeHelper.addAutomaticZenRule(rulePkg, automaticZenRule,
|
||||
return mZenModeHelper.addAutomaticZenRule(pkg, automaticZenRule,
|
||||
"addAutomaticZenRule");
|
||||
}
|
||||
|
||||
|
||||
@@ -5285,43 +5285,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
||||
mBinderService.addAutomaticZenRule(rule, mContext.getPackageName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddAutomaticZenRule_systemCallTakesPackageFromOwner() throws Exception {
|
||||
mService.isSystemUid = true;
|
||||
ZenModeHelper mockZenModeHelper = mock(ZenModeHelper.class);
|
||||
when(mConditionProviders.isPackageOrComponentAllowed(anyString(), anyInt()))
|
||||
.thenReturn(true);
|
||||
mService.setZenHelper(mockZenModeHelper);
|
||||
ComponentName owner = new ComponentName("android", "ProviderName");
|
||||
ZenPolicy zenPolicy = new ZenPolicy.Builder().allowAlarms(true).build();
|
||||
boolean isEnabled = true;
|
||||
AutomaticZenRule rule = new AutomaticZenRule("test", owner, owner, mock(Uri.class),
|
||||
zenPolicy, NotificationManager.INTERRUPTION_FILTER_PRIORITY, isEnabled);
|
||||
mBinderService.addAutomaticZenRule(rule, "com.android.settings");
|
||||
|
||||
// verify that zen mode helper gets passed in a package name of "android"
|
||||
verify(mockZenModeHelper).addAutomaticZenRule(eq("android"), eq(rule), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddAutomaticZenRule_nonSystemCallTakesPackageFromArg() throws Exception {
|
||||
mService.isSystemUid = false;
|
||||
ZenModeHelper mockZenModeHelper = mock(ZenModeHelper.class);
|
||||
when(mConditionProviders.isPackageOrComponentAllowed(anyString(), anyInt()))
|
||||
.thenReturn(true);
|
||||
mService.setZenHelper(mockZenModeHelper);
|
||||
ComponentName owner = new ComponentName("android", "ProviderName");
|
||||
ZenPolicy zenPolicy = new ZenPolicy.Builder().allowAlarms(true).build();
|
||||
boolean isEnabled = true;
|
||||
AutomaticZenRule rule = new AutomaticZenRule("test", owner, owner, mock(Uri.class),
|
||||
zenPolicy, NotificationManager.INTERRUPTION_FILTER_PRIORITY, isEnabled);
|
||||
mBinderService.addAutomaticZenRule(rule, "another.package");
|
||||
|
||||
// verify that zen mode helper gets passed in the package name from the arg, not the owner
|
||||
verify(mockZenModeHelper).addAutomaticZenRule(
|
||||
eq("another.package"), eq(rule), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAreNotificationsEnabledForPackage_crossUser() throws Exception {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user