[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,15 +415,17 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
|||||||
if (signalStrength == null) {
|
if (signalStrength == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// by default we show the signal strength
|
||||||
|
boolean showSignalStrength = true;
|
||||||
|
if (mSubscriptionInfo != null) {
|
||||||
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
||||||
final PersistableBundle carrierConfig =
|
final PersistableBundle carrierConfig =
|
||||||
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
||||||
// by default we show the signal strength
|
|
||||||
boolean showSignalStrength = true;
|
|
||||||
if (carrierConfig != null) {
|
if (carrierConfig != null) {
|
||||||
showSignalStrength = carrierConfig.getBoolean(
|
showSignalStrength = carrierConfig.getBoolean(
|
||||||
CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL);
|
CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!showSignalStrength) {
|
if (!showSignalStrength) {
|
||||||
mDialog.removeSettingFromScreen(SIGNAL_STRENGTH_LABEL_ID);
|
mDialog.removeSettingFromScreen(SIGNAL_STRENGTH_LABEL_ID);
|
||||||
mDialog.removeSettingFromScreen(SIGNAL_STRENGTH_VALUE_ID);
|
mDialog.removeSettingFromScreen(SIGNAL_STRENGTH_VALUE_ID);
|
||||||
@@ -455,6 +457,14 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateNetworkType() {
|
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...
|
// Whether EDGE, UMTS, etc...
|
||||||
String dataNetworkTypeName = null;
|
String dataNetworkTypeName = null;
|
||||||
String voiceNetworkTypeName = null;
|
String voiceNetworkTypeName = null;
|
||||||
@@ -497,15 +507,17 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateIccidNumber() {
|
private void updateIccidNumber() {
|
||||||
|
// do not show iccid by default
|
||||||
|
boolean showIccId = false;
|
||||||
|
if (mSubscriptionInfo != null) {
|
||||||
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
||||||
final PersistableBundle carrierConfig =
|
final PersistableBundle carrierConfig =
|
||||||
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
||||||
// do not show iccid by default
|
|
||||||
boolean showIccId = false;
|
|
||||||
if (carrierConfig != null) {
|
if (carrierConfig != null) {
|
||||||
showIccId = carrierConfig.getBoolean(
|
showIccId = carrierConfig.getBoolean(
|
||||||
CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL);
|
CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!showIccId) {
|
if (!showIccId) {
|
||||||
mDialog.removeSettingFromScreen(ICCID_INFO_LABEL_ID);
|
mDialog.removeSettingFromScreen(ICCID_INFO_LABEL_ID);
|
||||||
mDialog.removeSettingFromScreen(ICCID_INFO_VALUE_ID);
|
mDialog.removeSettingFromScreen(ICCID_INFO_VALUE_ID);
|
||||||
@@ -556,6 +568,9 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isImsRegistrationStateShowUp() {
|
private boolean isImsRegistrationStateShowUp() {
|
||||||
|
if (mSubscriptionInfo == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
|
||||||
final PersistableBundle carrierConfig =
|
final PersistableBundle carrierConfig =
|
||||||
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
mCarrierConfigManager.getConfigForSubId(subscriptionId);
|
||||||
|
Reference in New Issue
Block a user