aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMeng Wang <mewan@google.com>2017-02-14 11:51:19 -0800
committergitbuildkicker <android-build@google.com>2017-02-16 14:42:33 -0800
commit37392ec092a43a2f66f192b54895769d8f6ce09d (patch)
tree1d6fb049512334d2a2f648d733567f867f2e8f13
parent122fcb16b359b96480db21ad26a21900c51562af (diff)
downloadandroid_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.java1
-rw-r--r--src/java/com/android/internal/telephony/GsmCdmaPhone.java8
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()) {