aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-08-08 07:26:00 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-08-08 07:26:00 +0000
commitb5c27d42d81457f7391aceb2274b076c1b5f4607 (patch)
treea155b0d37bdb0050f3f81396d7d1a6e6e0de1ebc
parenta0d6531da3d537c8eb74f2b124bdf62a9b579b83 (diff)
parent97217bb7b219d17b297c6e8ef07a74142f5ff745 (diff)
downloadtelephony-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.java15
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
+}