Merge "Catch when telecom isn't ready yet" into tm-dev am: 5a633e1b99
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18577095 Change-Id: I3b5660be715a2366915ecf6d415319b91c8e28fa 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 {
|
try {
|
||||||
if (mPackageManagerClient.hasSystemFeature(FEATURE_TELECOM)
|
if (mPackageManagerClient.hasSystemFeature(FEATURE_TELECOM)
|
||||||
&& mTelecomManager != null) {
|
&& mTelecomManager != null) {
|
||||||
return mTelecomManager.isInManagedCall()
|
try {
|
||||||
|| mTelecomManager.isInSelfManagedCall(
|
return mTelecomManager.isInManagedCall()
|
||||||
pkg, UserHandle.getUserHandleForUid(uid));
|
|| 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;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -9331,6 +9331,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
assertThat(mService.checkDisqualifyingFeatures(r.getUserId(), r.getUid(),
|
assertThat(mService.checkDisqualifyingFeatures(r.getUserId(), r.getUid(),
|
||||||
r.getSbn().getId(), r.getSbn().getTag(), r, false))
|
r.getSbn().getId(), r.getSbn().getTag(), r, false))
|
||||||
.isFalse();
|
.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
|
@Test
|
||||||
@@ -9430,6 +9437,18 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
|
|
||||||
verify(mUsageStats).registerBlocked(any());
|
verify(mUsageStats).registerBlocked(any());
|
||||||
verify(mUsageStats, never()).registerPostedByApp(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
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user