diff options
author | Meng Wang <mewan@google.com> | 2017-02-14 11:51:19 -0800 |
---|---|---|
committer | gitbuildkicker <android-build@google.com> | 2017-02-16 14:42:33 -0800 |
commit | 37392ec092a43a2f66f192b54895769d8f6ce09d (patch) | |
tree | 1d6fb049512334d2a2f648d733567f867f2e8f13 | |
parent | 122fcb16b359b96480db21ad26a21900c51562af (diff) | |
download | android_frameworks_opt_telephony-37392ec092a43a2f66f192b54895769d8f6ce09d.tar.gz android_frameworks_opt_telephony-37392ec092a43a2f66f192b54895769d8f6ce09d.tar.bz2 android_frameworks_opt_telephony-37392ec092a43a2f66f192b54895769d8f6ce09d.zip |
Don't dial non-emergency CS voice call in airplane mode
Added a new CallStateException error code ERROR_POWER_OFF
Bug: 28709116
Change-Id: Ia63196d5e8c051a91da3e2a7e60ac605dccf8344
(cherry picked from commit 16ebf27f93b3c8c5aaf4aa6a169a63a2dae5f436)
-rw-r--r-- | src/java/com/android/internal/telephony/CallStateException.java | 1 | ||||
-rw-r--r-- | src/java/com/android/internal/telephony/GsmCdmaPhone.java | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/CallStateException.java b/src/java/com/android/internal/telephony/CallStateException.java index 57cbeb852..cac701a70 100644 --- a/src/java/com/android/internal/telephony/CallStateException.java +++ b/src/java/com/android/internal/telephony/CallStateException.java @@ -27,6 +27,7 @@ public class CallStateException extends Exception public static final int ERROR_INVALID = -1; public static final int ERROR_DISCONNECTED = 1; + public static final int ERROR_POWER_OFF = 2; public CallStateException() diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java index 333087998..07afe0ca1 100644 --- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java +++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java @@ -1121,6 +1121,14 @@ public class GsmCdmaPhone extends Phone { && mSST.mSS.getDataRegState() != ServiceState.STATE_IN_SERVICE && !isEmergency) { throw new CallStateException("cannot dial in current state"); } + // Check non-emergency voice CS call - shouldn't dial when POWER_OFF + if (mSST != null && mSST.mSS.getState() == ServiceState.STATE_POWER_OFF /* CS POWER_OFF */ + && !VideoProfile.isVideo(videoState) /* voice call */ + && !isEmergency /* non-emergency call */) { + throw new CallStateException( + CallStateException.ERROR_POWER_OFF, + "cannot dial voice call in airplane mode"); + } if (DBG) logd("Trying (non-IMS) CS call"); if (isPhoneTypeGsm()) { |