Handle ImsException in IMS callback APIs

Test: atest FrameworksTelephonyTests
Merged-In: I9bfe8de10a47be1625c8deb25fadcea4e7866aa8
Change-Id: I9bfe8de10a47be1625c8deb25fadcea4e7866aa8
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 37c5d7c..55fd914 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -46,6 +46,7 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
 import android.telephony.TelephonyManager;
+import android.telephony.ims.ImsException;
 import android.telephony.ims.ImsMmTelManager;
 import android.telephony.ims.feature.MmTelFeature;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
@@ -114,10 +115,10 @@
             }
 
             try {
-                mMmTelManager = ImsMmTelManager.createForSubscriptionId(mContext, getSubId());
+                mMmTelManager = ImsMmTelManager.createForSubscriptionId(getSubId());
             } catch (IllegalArgumentException e) {
                 Log.i(this, "Not registering MmTel capabilities listener because the subid '"
-                        + getSubId() + "' is invalid");
+                        + getSubId() + "' is invalid: " + e.getMessage());
                 return;
             }
 
@@ -151,9 +152,9 @@
             try {
                 mMmTelManager.registerMmTelCapabilityCallback(mContext.getMainExecutor(),
                         mMmtelCapabilityCallback);
-            } catch (IllegalStateException e) {
+            } catch (ImsException e) {
                 Log.w(this, "registerMmTelCapabilityCallback: registration failed, no ImsService"
-                        + " available.");
+                        + " available. Exception: " + e.getMessage());
                 return;
             }
         }
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsCallingActivity.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsCallingActivity.java
index fea2bf8..0ff6cc1 100644
--- a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsCallingActivity.java
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsCallingActivity.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.os.Bundle;
 import android.telephony.SubscriptionManager;
+import android.telephony.ims.ImsException;
 import android.telephony.ims.ImsMmTelManager;
 import android.telephony.ims.feature.MmTelFeature;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
@@ -162,12 +163,12 @@
         mListView = (ListView) findViewById(R.id.cap_cb_list);
         mListView.setAdapter(mCapabiltyEventAdapter);
         try {
-            mImsManager = ImsMmTelManager.createForSubscriptionId(this,
+            mImsManager = ImsMmTelManager.createForSubscriptionId(
                     SubscriptionManager.getDefaultVoiceSubscriptionId());
             Log.i("ImsCallingActivity", "onResume");
             mImsManager.registerMmTelCapabilityCallback(getMainExecutor(), mCapabilityCallback);
-        } catch (IllegalArgumentException e) {
-            Log.w("ImsCallingActivity", "illegal subscription ID.");
+        } catch (IllegalArgumentException | ImsException e) {
+            Log.w("ImsCallingActivity", "Exception: " + e.getMessage());
         }
     }
 
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
index 3317ff1..e4a4e6f 100644
--- a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.os.Bundle;
 import android.telephony.SubscriptionManager;
+import android.telephony.ims.ImsException;
 import android.telephony.ims.ImsMmTelManager;
 import android.telephony.ims.ImsReasonInfo;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
@@ -177,10 +178,10 @@
         mListView = (ListView) findViewById(R.id.reg_cb_list);
         mListView.setAdapter(mRegItemAdapter);
         try {
-            mImsManager = ImsMmTelManager.createForSubscriptionId(this,
+            mImsManager = ImsMmTelManager.createForSubscriptionId(
                     SubscriptionManager.getDefaultVoiceSubscriptionId());
             mImsManager.registerImsRegistrationCallback(getMainExecutor(), mRegistrationCallback);
-        } catch (IllegalArgumentException e) {
+        } catch (IllegalArgumentException | ImsException e) {
             Log.w("ImsCallingActivity", "illegal subscription ID.");
         }