aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Coucheron <arco68@gmail.com>2016-09-19 06:53:52 +0200
committerArne Coucheron <arco68@gmail.com>2020-06-24 00:50:39 +0200
commit9c6f5ec2e30cc7b17d2f320075a194f592a08ab9 (patch)
treef1e87c56d32878c1b51f2fdfeab06dcc6bf1c4f8
parentcdcc382ed333db71a7f7f5abc1c5dd81de56f4b6 (diff)
downloadandroid_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-xsrc/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 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;
+ }
}