Merge "Catch when telecom isn't ready yet" into tm-dev am: 5a633e1b99 am: 5ca656b301
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18577095 Change-Id: I6d51766bfdc7ea43a992fecf06b53fb58a976226 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -6948,9 +6948,14 @@ public class NotificationManagerService extends SystemService {
|
||||
try {
|
||||
if (mPackageManagerClient.hasSystemFeature(FEATURE_TELECOM)
|
||||
&& mTelecomManager != null) {
|
||||
return mTelecomManager.isInManagedCall()
|
||||
|| mTelecomManager.isInSelfManagedCall(
|
||||
pkg, UserHandle.getUserHandleForUid(uid));
|
||||
try {
|
||||
return mTelecomManager.isInManagedCall()
|
||||
|| mTelecomManager.isInSelfManagedCall(
|
||||
pkg, UserHandle.getUserHandleForUid(uid));
|
||||
} catch (IllegalStateException ise) {
|
||||
// Telecom is not ready (this is likely early boot), so there are no calls.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} finally {
|
||||
|
||||
@@ -9331,6 +9331,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
||||
assertThat(mService.checkDisqualifyingFeatures(r.getUserId(), r.getUid(),
|
||||
r.getSbn().getId(), r.getSbn().getTag(), r, false))
|
||||
.isFalse();
|
||||
|
||||
// telecom manager is not ready - blocked
|
||||
mService.setTelecomManager(mTelecomManager);
|
||||
when(mTelecomManager.isInCall()).thenThrow(new IllegalStateException("not ready"));
|
||||
assertThat(mService.checkDisqualifyingFeatures(r.getUserId(), r.getUid(),
|
||||
r.getSbn().getId(), r.getSbn().getTag(), r, false))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -9430,6 +9437,18 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
||||
|
||||
verify(mUsageStats).registerBlocked(any());
|
||||
verify(mUsageStats, never()).registerPostedByApp(any());
|
||||
|
||||
// telecom is not ready - notifications should be blocked but no crashes
|
||||
mService.setTelecomManager(mTelecomManager);
|
||||
when(mTelecomManager.isInCall()).thenThrow(new IllegalStateException("not ready"));
|
||||
reset(mUsageStats);
|
||||
|
||||
mService.addEnqueuedNotification(r);
|
||||
runnable.run();
|
||||
waitForIdle();
|
||||
|
||||
verify(mUsageStats).registerBlocked(any());
|
||||
verify(mUsageStats, never()).registerPostedByApp(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user