diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java index 9858ad21026..e3f217dba3a 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java @@ -140,6 +140,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O private SubscriptionInfo mSubscriptionInfo; private TelephonyDisplayInfo mTelephonyDisplayInfo; + private ServiceState mServiceState; private final int mSlotIndex; private TelephonyManager mTelephonyManager; @@ -437,6 +438,9 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O final int state = Utils.getCombinedServiceState(serviceState); if (!Utils.isInService(serviceState)) { resetSignalStrength(); + } else if (mServiceState != null && !Utils.isInService(mServiceState)) { + // If ServiceState changed from out of service -> in service, update signal strength. + updateSignalStrength(mTelephonyManager.getSignalStrength()); } String serviceStateValue; @@ -484,7 +488,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O } ServiceState serviceState = mTelephonyManager.getServiceState(); - if (serviceState == null || !Utils.isInService(serviceState)) { + if (!Utils.isInService(serviceState)) { return; } @@ -767,6 +771,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O updateNetworkProvider(); updateServiceState(serviceState); updateRoamingStatus(serviceState); + mServiceState = serviceState; } @Override