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:50:39 +0200 |
commit | 9c6f5ec2e30cc7b17d2f320075a194f592a08ab9 (patch) | |
tree | f1e87c56d32878c1b51f2fdfeab06dcc6bf1c4f8 | |
parent | cdcc382ed333db71a7f7f5abc1c5dd81de56f4b6 (diff) | |
download | android_frameworks_opt_telephony-lineage-17.1.tar.gz android_frameworks_opt_telephony-lineage-17.1.tar.bz2 android_frameworks_opt_telephony-lineage-17.1.zip |
Telephony: Add option for using regular poll state for airplane modelineage-17.1
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
-rwxr-xr-x | 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 2e45e9593..09031c1f3 100755 --- a/src/java/com/android/internal/telephony/ServiceStateTracker.java +++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java @@ -1209,8 +1209,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: @@ -5627,4 +5633,11 @@ public class ServiceStateTracker extends Handler { return idSet; } + + private boolean needsLegacyPollState() { + if (mCi instanceof RIL) { + return ((RIL) mCi).needsOldRilFeature("legacypollstate"); + } + return false; + } } |