[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;
}
}