diff options
Diffstat (limited to 'src/java/com/android/internal/telephony/ServiceStateTracker.java')
-rw-r--r-- | src/java/com/android/internal/telephony/ServiceStateTracker.java | 17 |
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; + } } |