diff options
author | Arne Coucheron <arco68@gmail.com> | 2016-09-19 06:53:52 +0200 |
---|---|---|
committer | Arne Coucheron <arco68@gmail.com> | 2020-06-24 00:48:34 +0200 |
commit | 3a0922f0c19f0723a6f4337b491ac3e70f904620 (patch) | |
tree | c2c9bdccedd620033f8097ca905627b41e5548ce | |
parent | 66851e74471cbccd0dc93d9bf6f0ff5eca3dcd54 (diff) | |
download | android_frameworks_opt_telephony-lineage-16.0.tar.gz android_frameworks_opt_telephony-lineage-16.0.tar.bz2 android_frameworks_opt_telephony-lineage-16.0.zip |
Telephony: Add option for using regular poll state for airplane modelineage-16.0
The modemTriggeredPollState breaks airplane mode on some devices.
Although the UI shows that airplane mode is activated, the fact is that
the radio remains active and in service. By using regular pollState()
here, service state in sim status shows correctly radio off.
Enable with setting prop:
ro.telephony.ril.config=legacypollstate
Test: Insert SIM card. Put device into airplane mode. Go into
SIM Status and verify that it says "Radio off".
Change-Id: If2ab5b088a13b1a159e01f82fbea1f58a77b64cd
-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; + } } |