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:
TreeHugger Robot
2022-05-25 18:35:13 +00:00
committed by Automerger Merge Worker
2 changed files with 27 additions and 3 deletions

View File

@@ -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 {

View File

@@ -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