Avoid cancelling the data disconnected notification unnecessarily
The RIL is sending us multiple DATA_STATE_CHANGED broadcasts with the
same information. Cache the state of dataDisconnectedDueToRoaming to avoid
cancelling/sending out multiple notifications unncessarily.
Bug: 18218683
Change-Id: Icc6046f6c18333c86cfacb22e8a0c6f24ed2dac1
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 62eb272..e957924 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -162,6 +162,7 @@
// True if we are beginning a call, but the phone state has not changed yet
private boolean mBeginningCall;
+ private boolean mDataDisconnectedDueToRoaming = false;
// Last phone state seen by updatePhoneState()
private PhoneConstants.State mLastPhoneState = PhoneConstants.State.IDLE;
@@ -800,9 +801,11 @@
&& "DISCONNECTED".equals(intent.getStringExtra(PhoneConstants.STATE_KEY))
&& Phone.REASON_ROAMING_ON.equals(
intent.getStringExtra(PhoneConstants.STATE_CHANGE_REASON_KEY));
- mHandler.sendEmptyMessage(disconnectedDueToRoaming
- ? EVENT_DATA_ROAMING_DISCONNECTED
- : EVENT_DATA_ROAMING_OK);
+ if (mDataDisconnectedDueToRoaming != disconnectedDueToRoaming) {
+ mDataDisconnectedDueToRoaming = disconnectedDueToRoaming;
+ mHandler.sendEmptyMessage(disconnectedDueToRoaming
+ ? EVENT_DATA_ROAMING_DISCONNECTED : EVENT_DATA_ROAMING_OK);
+ }
} else if ((action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) &&
(mPUKEntryActivity != null)) {
// if an attempt to un-PUK-lock the device was made, while we're