diff options
-rw-r--r-- | src/java/com/android/ims/ImsManager.java | 3 | ||||
-rw-r--r-- | tests/src/com/android/ims/ImsManagerTest.java | 16 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java index cf95a20b..c41426d0 100644 --- a/src/java/com/android/ims/ImsManager.java +++ b/src/java/com/android/ims/ImsManager.java @@ -3035,7 +3035,8 @@ public class ImsManager implements FeatureUpdates { public @MmTelFeature.ProcessCallResult int shouldProcessCall(boolean isEmergency, String[] numbers) throws ImsException { try { - return mMmTelConnectionRef.get().shouldProcessCall(isEmergency, numbers); + MmTelFeatureConnection c = getOrThrowExceptionIfServiceUnavailable(); + return c.shouldProcessCall(isEmergency, numbers); } catch (RemoteException e) { throw new ImsException("shouldProcessCall()", e, ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN); diff --git a/tests/src/com/android/ims/ImsManagerTest.java b/tests/src/com/android/ims/ImsManagerTest.java index 42f110dc..0653908d 100644 --- a/tests/src/com/android/ims/ImsManagerTest.java +++ b/tests/src/com/android/ims/ImsManagerTest.java @@ -22,6 +22,7 @@ import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TE import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_LTE; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.anyInt; @@ -968,6 +969,21 @@ public class ImsManagerTest extends ImsTestBase { anyInt()); } + @Test @SmallTest + public void testShouldProcessCall_ThrowsExceptionIfServiceIsStillInitializing() { + ImsManager imsManager = getImsManagerAndInitProvisionedValues(); + doReturn(-1).when(mMmTelFeatureConnection).getSubId(); + assertThrows(ImsException.class, () -> imsManager.shouldProcessCall(true, new String[1])); + } + + @Test @SmallTest + public void testShouldProcessCall_DoesNotThrowExceptionWhenServiceInitialized() + throws Exception { + ImsManager imsManager = getImsManagerAndInitProvisionedValues(); + int ret = imsManager.shouldProcessCall(true, new String[1]); + assertEquals(MmTelFeature.PROCESS_CALL_IMS, ret); + } + /** * Tests the operation of setWfcRoamingSetting and ensures that the user setting for WFC roaming * and the ImsConfig setting are both called properly. |