From e170706352f1ccc87c8050b92ea19cdd099f6306 Mon Sep 17 00:00:00 2001 From: Brad Ebinger Date: Thu, 21 May 2020 16:35:23 -0700 Subject: [PATCH] Remove IllegalArgumentException for registration of capabilities We threw an IllegalArgumentException for an invalid subscription, however this is counter to what this exception should be used for. Instead, use ImsException#CODE_ERROR_INVALID_SUBSCRIPTION. Also fixed incorrect ImsException sent when telephony crashed. Bug: 156402275 Fixes: 159135792 Test: atest FrameworksTelephonyTests; CtsTelephonyTestCases; manual Change-Id: I3250419a2438afb58922ae653e3f2e4f9628e593 Merged-In: I3250419a2438afb58922ae653e3f2e4f9628e593 --- .../java/android/telephony/ims/ImsMmTelManager.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java index 872f49d65d256..c274ec49cb2e8 100644 --- a/telephony/java/android/telephony/ims/ImsMmTelManager.java +++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java @@ -519,9 +519,6 @@ public class ImsMmTelManager implements RegistrationManager { * @param executor The executor the callback events should be run on. * @param c The MmTel {@link CapabilityCallback} to be registered. * @see #unregisterMmTelCapabilityCallback(CapabilityCallback) - * @throws IllegalArgumentException if the subscription associated with this callback is not - * active (SIM is not inserted, ESIM inactive) or invalid, or a null {@link Executor} or - * {@link CapabilityCallback} callback. * @throws ImsException if the subscription associated with this callback is valid, but * the {@link ImsService} associated with the subscription is not available. This can happen if * the service crashed, for example. See {@link ImsException#getCode()} for a more detailed @@ -544,18 +541,13 @@ public class ImsMmTelManager implements RegistrationManager { ITelephony iTelephony = getITelephony(); if (iTelephony == null) { throw new ImsException("Could not find Telephony Service.", - ImsException.CODE_ERROR_INVALID_SUBSCRIPTION); + ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } try { iTelephony.registerMmTelCapabilityCallback(mSubId, c.getBinder()); } catch (ServiceSpecificException e) { - if (e.errorCode == ImsException.CODE_ERROR_INVALID_SUBSCRIPTION) { - // Rethrow as runtime error to keep API compatible. - throw new IllegalArgumentException(e.getMessage()); - } else { - throw new ImsException(e.getMessage(), e.errorCode); - } + throw new ImsException(e.getMessage(), e.errorCode); } catch (RemoteException e) { throw e.rethrowAsRuntimeException(); } catch (IllegalStateException e) {