[Settings] Avoid from crash when pull out SIM

Avoid from crash through exception handling.

Bug: 148803073
Test: m RunSettingsRoboTests -j
ROBOTEST_FILTER=WifiCallingSettingsForSubTest
Test: m RunSettingsRoboTests -j
ROBOTEST_FILTER=WifiCallingPreferenceControllerTest
Test: m RunSettingsRoboTests -j
ROBOTEST_FILTER=WifiCallingSettingsTest
Test: m RunSettingsRoboTests -j
ROBOTEST_FILTER=WifiCallingSliceHelperTest

Change-Id: I10aff50b6f3fc50b2f336ee320740f9f4a81e256
diff --git a/src/com/android/settings/network/ims/ImsQueryEnhanced4gLteModeUserSetting.java b/src/com/android/settings/network/ims/ImsQueryEnhanced4gLteModeUserSetting.java
index c00f1df..34d8430 100644
--- a/src/com/android/settings/network/ims/ImsQueryEnhanced4gLteModeUserSetting.java
+++ b/src/com/android/settings/network/ims/ImsQueryEnhanced4gLteModeUserSetting.java
@@ -17,6 +17,7 @@
 package com.android.settings.network.ims;
 
 import android.telephony.ims.ImsMmTelManager;
+import android.util.Log;
 
 
 /**
@@ -24,6 +25,7 @@
  */
 public class ImsQueryEnhanced4gLteModeUserSetting implements ImsQuery {
 
+    private static final String LOG_TAG = "QueryEnhanced4gLteModeUserSetting";
     /**
      * Constructor
      * @param subId subscription id
@@ -40,8 +42,13 @@
      * @return result of query
      */
     public boolean query() {
-        final ImsMmTelManager imsMmTelManager =
-                ImsMmTelManager.createForSubscriptionId(mSubId);
-        return imsMmTelManager.isAdvancedCallingSettingEnabled();
+        try {
+            final ImsMmTelManager imsMmTelManager =
+                    ImsMmTelManager.createForSubscriptionId(mSubId);
+            return imsMmTelManager.isAdvancedCallingSettingEnabled();
+        } catch (IllegalArgumentException exception) {
+            Log.w(LOG_TAG, "fail to get VoLte settings. subId=" + mSubId, exception);
+        }
+        return false;
     }
 }
diff --git a/src/com/android/settings/network/ims/ImsQueryProvisioningStat.java b/src/com/android/settings/network/ims/ImsQueryProvisioningStat.java
index 5c050b5..b52d22c 100644
--- a/src/com/android/settings/network/ims/ImsQueryProvisioningStat.java
+++ b/src/com/android/settings/network/ims/ImsQueryProvisioningStat.java
@@ -19,6 +19,7 @@
 import android.telephony.ims.ProvisioningManager;
 import android.telephony.ims.feature.MmTelFeature;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.util.Log;
 
 
 /**
@@ -26,6 +27,8 @@
  */
 public class ImsQueryProvisioningStat implements ImsQuery {
 
+    private static final String LOG_TAG = "QueryPrivisioningStat";
+
     private volatile int mSubId;
     private volatile int mCapability;
     private volatile int mTech;
@@ -50,8 +53,13 @@
      * @return result of query
      */
     public boolean query() {
-        final ProvisioningManager privisionManager =
-                ProvisioningManager.createForSubscriptionId(mSubId);
-        return privisionManager.getProvisioningStatusForCapability(mCapability, mTech);
+        try {
+            final ProvisioningManager privisionManager =
+                    ProvisioningManager.createForSubscriptionId(mSubId);
+            return privisionManager.getProvisioningStatusForCapability(mCapability, mTech);
+        } catch (IllegalArgumentException exception) {
+            Log.w(LOG_TAG, "fail to get Provisioning stat. subId=" + mSubId, exception);
+        }
+        return false;
     }
 }
diff --git a/src/com/android/settings/network/ims/ImsQueryTtyOnVolteStat.java b/src/com/android/settings/network/ims/ImsQueryTtyOnVolteStat.java
index c2d655f..e2719dd 100644
--- a/src/com/android/settings/network/ims/ImsQueryTtyOnVolteStat.java
+++ b/src/com/android/settings/network/ims/ImsQueryTtyOnVolteStat.java
@@ -17,6 +17,7 @@
 package com.android.settings.network.ims;
 
 import android.telephony.ims.ImsMmTelManager;
+import android.util.Log;
 
 
 /**
@@ -24,6 +25,8 @@
  */
 public class ImsQueryTtyOnVolteStat implements ImsQuery {
 
+    private static final String LOG_TAG = "QueryTtyOnVolteStat";
+
     /**
      * Constructor
      * @param subId subscription id
@@ -40,7 +43,13 @@
      * @return result of query
      */
     public boolean query() {
-        final ImsMmTelManager imsMmTelManager = ImsMmTelManager.createForSubscriptionId(mSubId);
-        return imsMmTelManager.isTtyOverVolteEnabled();
+        try {
+            final ImsMmTelManager imsMmTelManager =
+                    ImsMmTelManager.createForSubscriptionId(mSubId);
+            return imsMmTelManager.isTtyOverVolteEnabled();
+        } catch (IllegalArgumentException exception) {
+            Log.w(LOG_TAG, "fail to get VoLte Tty Stat. subId=" + mSubId, exception);
+        }
+        return false;
     }
 }
diff --git a/src/com/android/settings/network/ims/ImsQueryVtUserSetting.java b/src/com/android/settings/network/ims/ImsQueryVtUserSetting.java
index 6d699e3..6da4a4c 100644
--- a/src/com/android/settings/network/ims/ImsQueryVtUserSetting.java
+++ b/src/com/android/settings/network/ims/ImsQueryVtUserSetting.java
@@ -17,6 +17,7 @@
 package com.android.settings.network.ims;
 
 import android.telephony.ims.ImsMmTelManager;
+import android.util.Log;
 
 
 /**
@@ -24,6 +25,8 @@
  */
 public class ImsQueryVtUserSetting implements ImsQuery {
 
+    private static final String LOG_TAG = "QueryVtUserSetting";
+
     /**
      * Constructor
      * @param subId subscription id
@@ -40,7 +43,13 @@
      * @return result of query
      */
     public boolean query() {
-        final ImsMmTelManager imsMmTelManager = ImsMmTelManager.createForSubscriptionId(mSubId);
-        return imsMmTelManager.isVtSettingEnabled();
+        try {
+            final ImsMmTelManager imsMmTelManager =
+                    ImsMmTelManager.createForSubscriptionId(mSubId);
+            return imsMmTelManager.isVtSettingEnabled();
+        } catch (IllegalArgumentException exception) {
+            Log.w(LOG_TAG, "fail to get VT settings. subId=" + mSubId, exception);
+        }
+        return false;
     }
 }
diff --git a/src/com/android/settings/network/ims/ImsQueryWfcUserSetting.java b/src/com/android/settings/network/ims/ImsQueryWfcUserSetting.java
index 22d2c67..3407413 100644
--- a/src/com/android/settings/network/ims/ImsQueryWfcUserSetting.java
+++ b/src/com/android/settings/network/ims/ImsQueryWfcUserSetting.java
@@ -17,6 +17,7 @@
 package com.android.settings.network.ims;
 
 import android.telephony.ims.ImsMmTelManager;
+import android.util.Log;
 
 
 /**
@@ -24,6 +25,8 @@
  */
 public class ImsQueryWfcUserSetting implements ImsQuery {
 
+    private static final String LOG_TAG = "QueryWfcUserSetting";
+
     /**
      * Constructor
      * @param subId subscription id
@@ -40,7 +43,13 @@
      * @return result of query
      */
     public boolean query() {
-        final ImsMmTelManager imsMmTelManager = ImsMmTelManager.createForSubscriptionId(mSubId);
-        return imsMmTelManager.isVoWiFiSettingEnabled();
+        try {
+            final ImsMmTelManager imsMmTelManager =
+                    ImsMmTelManager.createForSubscriptionId(mSubId);
+            return imsMmTelManager.isVoWiFiSettingEnabled();
+        } catch (IllegalArgumentException exception) {
+            Log.w(LOG_TAG, "fail to get Wfc settings. subId=" + mSubId, exception);
+        }
+        return false;
     }
 }