[Settings] Avoid from crash when pull out SIM
Avoid from crash when pull out SIM under SimStatusDialogController. Bug: 153512823 Test: manual Merged-In: I3869326bdfb65368827f25469ae83539a68e171f Change-Id: I60500c058cf15bc432e46e27fe4b9fb1ae2989b7
This commit is contained in:
@@ -415,14 +415,16 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
if (signalStrength == null) {
|
||||
return;
|
||||
}
|
||||
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
||||
final PersistableBundle carrierConfig =
|
||||
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
||||
// by default we show the signal strength
|
||||
boolean showSignalStrength = true;
|
||||
if (carrierConfig != null) {
|
||||
showSignalStrength = carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL);
|
||||
if (mSubscriptionInfo != null) {
|
||||
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
||||
final PersistableBundle carrierConfig =
|
||||
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
||||
if (carrierConfig != null) {
|
||||
showSignalStrength = carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL);
|
||||
}
|
||||
}
|
||||
if (!showSignalStrength) {
|
||||
mDialog.removeSettingFromScreen(SIGNAL_STRENGTH_LABEL_ID);
|
||||
@@ -455,6 +457,14 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
}
|
||||
|
||||
private void updateNetworkType() {
|
||||
if (mSubscriptionInfo == null) {
|
||||
final String unknownNetworkType =
|
||||
getNetworkTypeName(TelephonyManager.NETWORK_TYPE_UNKNOWN);
|
||||
mDialog.setText(CELL_VOICE_NETWORK_TYPE_VALUE_ID, unknownNetworkType);
|
||||
mDialog.setText(CELL_DATA_NETWORK_TYPE_VALUE_ID, unknownNetworkType);
|
||||
return;
|
||||
}
|
||||
|
||||
// Whether EDGE, UMTS, etc...
|
||||
String dataNetworkTypeName = null;
|
||||
String voiceNetworkTypeName = null;
|
||||
@@ -497,14 +507,16 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
}
|
||||
|
||||
private void updateIccidNumber() {
|
||||
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
||||
final PersistableBundle carrierConfig =
|
||||
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
||||
// do not show iccid by default
|
||||
boolean showIccId = false;
|
||||
if (carrierConfig != null) {
|
||||
showIccId = carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL);
|
||||
if (mSubscriptionInfo != null) {
|
||||
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
||||
final PersistableBundle carrierConfig =
|
||||
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
||||
if (carrierConfig != null) {
|
||||
showIccId = carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL);
|
||||
}
|
||||
}
|
||||
if (!showIccId) {
|
||||
mDialog.removeSettingFromScreen(ICCID_INFO_LABEL_ID);
|
||||
@@ -556,6 +568,9 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
}
|
||||
|
||||
private boolean isImsRegistrationStateShowUp() {
|
||||
if (mSubscriptionInfo == null) {
|
||||
return false;
|
||||
}
|
||||
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
||||
final PersistableBundle carrierConfig =
|
||||
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
||||
|
Reference in New Issue
Block a user