summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Brad Ebinger <breadley@google.com> 2020-11-16 12:57:01 -0800
committer Brad Ebinger <breadley@google.com> 2020-11-16 15:32:59 -0800
commit18958eaee71e0e548a8705046d3e7f129f528d17 (patch)
treebe9e841c6cef640f59bcb57236b5a48584380d8f
parentdd1a0165681f8fb9e8e6afa0cbce4ad3c8da0002 (diff)
Catch SSE when no subId is loaded
Correctly catch SSEs in ImsRcsManager and RcsUceAdapter and rethrow as checked ImsExceptions instead of using RuntimeExceptions. Fixes: 173436604 Test: atest CtsTelephonyTestCases:ImsServiceTest Change-Id: I80dde5556c1239f89a258b0f57f7feceb142aec7
-rw-r--r--telephony/java/android/telephony/ims/ImsRcsManager.java6
-rw-r--r--telephony/java/android/telephony/ims/RcsUceAdapter.java9
2 files changed, 13 insertions, 2 deletions
diff --git a/telephony/java/android/telephony/ims/ImsRcsManager.java b/telephony/java/android/telephony/ims/ImsRcsManager.java
index 4292aae59515..0d8e5bceaf2b 100644
--- a/telephony/java/android/telephony/ims/ImsRcsManager.java
+++ b/telephony/java/android/telephony/ims/ImsRcsManager.java
@@ -26,6 +26,7 @@ import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
+import android.os.ServiceSpecificException;
import android.provider.Settings;
import android.telephony.AccessNetworkConstants;
import android.telephony.BinderCacheManager;
@@ -198,6 +199,8 @@ public class ImsRcsManager {
c.setExecutor(executor);
try {
imsRcsController.registerImsRegistrationCallback(mSubId, c.getBinder());
+ } catch (ServiceSpecificException e) {
+ throw new ImsException(e.toString(), e.errorCode);
} catch (RemoteException | IllegalStateException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
@@ -333,6 +336,9 @@ public class ImsRcsManager {
c.setExecutor(executor);
try {
imsRcsController.registerRcsAvailabilityCallback(mSubId, c.getBinder());
+
+ } catch (ServiceSpecificException e) {
+ throw new ImsException(e.toString(), e.errorCode);
} catch (RemoteException e) {
Log.e(TAG, "Error calling IImsRcsController#registerRcsAvailabilityCallback", e);
throw new ImsException("Remote IMS Service is not available",
diff --git a/telephony/java/android/telephony/ims/RcsUceAdapter.java b/telephony/java/android/telephony/ims/RcsUceAdapter.java
index 0aeaecc2af5e..ada069666547 100644
--- a/telephony/java/android/telephony/ims/RcsUceAdapter.java
+++ b/telephony/java/android/telephony/ims/RcsUceAdapter.java
@@ -27,6 +27,7 @@ import android.net.Uri;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
+import android.os.ServiceSpecificException;
import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.ims.aidl.IImsRcsController;
import android.telephony.ims.aidl.IRcsUceControllerCallback;
@@ -463,6 +464,8 @@ public class RcsUceAdapter {
try {
imsRcsController.requestCapabilities(mSubId, mContext.getOpPackageName(),
mContext.getAttributionTag(), contactNumbers, internalCallback);
+ } catch (ServiceSpecificException e) {
+ throw new ImsException(e.toString(), e.errorCode);
} catch (RemoteException e) {
Log.e(TAG, "Error calling IImsRcsController#requestCapabilities", e);
throw new ImsException("Remote IMS Service is not available",
@@ -545,6 +548,8 @@ public class RcsUceAdapter {
try {
imsRcsController.requestNetworkAvailability(mSubId, mContext.getOpPackageName(),
mContext.getAttributionTag(), contactNumber, internalCallback);
+ } catch (ServiceSpecificException e) {
+ throw new ImsException(e.toString(), e.errorCode);
} catch (RemoteException e) {
Log.e(TAG, "Error calling IImsRcsController#requestNetworkAvailability", e);
throw new ImsException("Remote IMS Service is not available",
@@ -574,7 +579,7 @@ public class RcsUceAdapter {
try {
return imsRcsController.getUcePublishState(mSubId);
- } catch (android.os.ServiceSpecificException e) {
+ } catch (ServiceSpecificException e) {
throw new ImsException(e.getMessage(), e.errorCode);
} catch (RemoteException e) {
Log.e(TAG, "Error calling IImsRcsController#getUcePublishState", e);
@@ -621,7 +626,7 @@ public class RcsUceAdapter {
c.setExecutor(executor);
try {
imsRcsController.registerUcePublishStateCallback(mSubId, c.getBinder());
- } catch (android.os.ServiceSpecificException e) {
+ } catch (ServiceSpecificException e) {
throw new ImsException(e.getMessage(), e.errorCode);
} catch (RemoteException e) {
Log.e(TAG, "Error calling IImsRcsController#registerUcePublishStateCallback", e);