diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-08 07:26:00 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-08 07:26:00 +0000 |
commit | b5c27d42d81457f7391aceb2274b076c1b5f4607 (patch) | |
tree | a155b0d37bdb0050f3f81396d7d1a6e6e0de1ebc | |
parent | a0d6531da3d537c8eb74f2b124bdf62a9b579b83 (diff) | |
parent | 97217bb7b219d17b297c6e8ef07a74142f5ff745 (diff) | |
download | telephony-b5c27d42d81457f7391aceb2274b076c1b5f4607.tar.gz |
release-request-ef177764-b092-4138-885c-f9ecf5a80dc4-for-git_oc-dr1-release-4253863 snap-temp-L73600000090287988
Change-Id: Ia357e5493e08aebe61b909eeb2e91b033ea3c463
-rw-r--r-- | src/java/com/android/internal/telephony/CarrierServiceStateTracker.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/java/com/android/internal/telephony/CarrierServiceStateTracker.java b/src/java/com/android/internal/telephony/CarrierServiceStateTracker.java index 9865d1bb5e..4acb6e3ecf 100644 --- a/src/java/com/android/internal/telephony/CarrierServiceStateTracker.java +++ b/src/java/com/android/internal/telephony/CarrierServiceStateTracker.java @@ -29,6 +29,7 @@ import android.os.PersistableBundle; import android.provider.Settings; import android.telephony.CarrierConfigManager; import android.telephony.Rlog; +import android.telephony.ServiceState; import com.android.internal.telephony.util.NotificationChannelController; @@ -69,7 +70,7 @@ public class CarrierServiceStateTracker extends Handler { break; case CARRIER_EVENT_VOICE_DEREGISTRATION: case CARRIER_EVENT_DATA_DEREGISTRATION: - if (isGlobalModeOrRadioOffOrAirplaneMode()) { + if (isGlobalModeOrRadioOffOrAirplaneMode() || isPhoneStillRegistered()) { break; } mIsPhoneRegistered = false; @@ -81,6 +82,14 @@ public class CarrierServiceStateTracker extends Handler { } } + private boolean isPhoneStillRegistered() { + if (mSST.mSS == null) { + return true; //something has gone wrong, return true and not show the notification. + } + return (mSST.mSS.getVoiceRegState() == ServiceState.STATE_IN_SERVICE + || mSST.mSS.getDataRegState() == ServiceState.STATE_IN_SERVICE); + } + /** * Returns true if the preferred network is set to 'Global' or the radio is off or in * Airplane Mode else returns false. @@ -109,7 +118,6 @@ public class CarrierServiceStateTracker extends Handler { * Contains logic to decide when to create/cancel notifications. */ private void handleConfigChanges() { - if (mDelay == UNINITIALIZED_DELAY_VALUE) { cancelNotification(); return; @@ -188,8 +196,9 @@ public class CarrierServiceStateTracker extends Handler { private void cancelNotification() { Context context = mPhone.getContext(); mIsPhoneRegistered = true; + removeMessages(SHOW_NOTIFICATION); NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(NOTIFICATION_ID); } -}
\ No newline at end of file +} |