diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index 3b5e6e04726..9339d681a61 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -48,6 +48,7 @@ import android.provider.Settings; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; import android.telephony.CarrierConfigManager; +import android.telephony.ServiceState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; @@ -475,8 +476,9 @@ public class MobileNetworkUtils { if (carrierConfig.getBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL)) { return true; } - - final String operatorNumeric = telephonyManager.getServiceState().getOperatorNumeric(); + final ServiceState serviceState = telephonyManager.getServiceState(); + final String operatorNumeric = + (serviceState != null) ? serviceState.getOperatorNumeric() : null; final String[] numericArray = carrierConfig.getStringArray( CarrierConfigManager.KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY); if (numericArray == null || operatorNumeric == null) { diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java index ba803e3616c..ff641e9851b 100644 --- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java +++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java @@ -405,6 +405,9 @@ public class NetworkSelectSettings extends DashboardFragment { if (mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED) { // Try to get the network registration states final ServiceState ss = mTelephonyManager.getServiceState(); + if (ss == null) { + return; + } final List networkList = ss.getNetworkRegistrationInfoListForTransportType( AccessNetworkConstants.TRANSPORT_TYPE_WWAN); diff --git a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java index 293353c917f..2a7bc02c61c 100644 --- a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java +++ b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java @@ -183,7 +183,7 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen final TextView operatorName = view.findViewById(R.id.operator_name_value); mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId); final ServiceState serviceState = mTelephonyManager.getServiceState(); - operatorName.setText(serviceState.getOperatorAlphaLong()); + operatorName.setText(serviceState == null ? "" : serviceState.getOperatorAlphaLong()); final TextView phoneTitle = view.findViewById(R.id.number_label); phoneTitle.setVisibility(info.isOpportunistic() ? View.GONE : View.VISIBLE); diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java index 361f58e4172..d98136290e1 100644 --- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java +++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java @@ -29,6 +29,7 @@ import android.os.PersistableBundle; import android.os.SystemClock; import android.provider.Settings; import android.telephony.CarrierConfigManager; +import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; @@ -125,7 +126,13 @@ public class AutoSelectPreferenceController extends TelephonyTogglePreferenceCon super.updateState(preference); preference.setSummary(null); - if (mTelephonyManager.getServiceState().getRoaming()) { + final ServiceState serviceState = mTelephonyManager.getServiceState(); + if (serviceState == null) { + preference.setEnabled(false); + return; + } + + if (serviceState.getRoaming()) { preference.setEnabled(true); } else { preference.setEnabled(!mOnlyAutoSelectInHome);