Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a633e1b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Catch when telecom isn't ready yet" into tm-dev

parents f77a4fd3 77a200b8
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -6948,9 +6948,14 @@ public class NotificationManagerService extends SystemService {
        try {
            if (mPackageManagerClient.hasSystemFeature(FEATURE_TELECOM)
                    && mTelecomManager != null) {
                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 {
+19 −0
Original line number Diff line number Diff line
@@ -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