aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChinmay Dhodapkar <chinmayd@google.com>2022-06-10 20:29:43 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-06-10 20:29:43 +0000
commit3c6ae79d757a766d32d539a8c91ba7c0543087a7 (patch)
tree894d7705a6661a995030bc51b8334a5f9c93fa48
parentcd9e3dd2816251e34704fdd47fa448d19f647d71 (diff)
parent2838d3908eecbc55c57076c142ac1c204f2761f9 (diff)
downloadims-3c6ae79d757a766d32d539a8c91ba7c0543087a7.tar.gz
Fix shouldProcessCall in ImsManager am: 2838d3908e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/net/ims/+/18839007 Change-Id: I8afbe8216a5a6175bff355faaeec11a461d28e85 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/java/com/android/ims/ImsManager.java3
-rw-r--r--tests/src/com/android/ims/ImsManagerTest.java16
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.