aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/com/android/internal/telephony/ServiceStateTracker.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index 635562713..c8d71ca85 100644
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -1109,8 +1109,14 @@ public class ServiceStateTracker extends Handler {
}
// This will do nothing in the 'radio not available' case
setPowerStateToDesired();
- // These events are modem triggered, so pollState() needs to be forced
- modemTriggeredPollState();
+ if (needsLegacyPollState()) {
+ // Some older radio blobs need this to put device
+ // properly into airplane mode.
+ pollState();
+ } else {
+ // These events are modem triggered, so pollState() needs to be forced
+ modemTriggeredPollState();
+ }
break;
case EVENT_NETWORK_STATE_CHANGED:
@@ -4779,4 +4785,11 @@ public class ServiceStateTracker extends Handler {
public LocaleTracker getLocaleTracker() {
return mLocaleTracker;
}
+
+ private boolean needsLegacyPollState() {
+ if (mCi instanceof RIL) {
+ return ((RIL) mCi).needsOldRilFeature("legacypollstate");
+ }
+ return false;
+ }
}