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:48:34 +0200
commit3a0922f0c19f0723a6f4337b491ac3e70f904620 (patch)
treec2c9bdccedd620033f8097ca905627b41e5548ce
parent66851e74471cbccd0dc93d9bf6f0ff5eca3dcd54 (diff)
downloadandroid_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.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;
+ }
}