Add shell command to trigger ECBM mode
Fix EmergencyCallBackMode dialog Overlaid issue
Test: manual
Bug: 178821491
Change-Id: I731531d2d717e18e17f035262cd92d58d1f39ff9
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 3bad155..218a79a 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -18,6 +18,8 @@
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_CDMA;
+import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_GSM;
import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_IMS;
import static com.android.internal.telephony.PhoneConstants.SUBSCRIPTION_KEY;
@@ -143,6 +145,7 @@
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.DefaultPhoneNotifier;
import com.android.internal.telephony.GbaManager;
+import com.android.internal.telephony.GsmCdmaPhone;
import com.android.internal.telephony.HalVersion;
import com.android.internal.telephony.IBooleanConsumer;
import com.android.internal.telephony.ICallForwardingInfoCallback;
@@ -8699,6 +8702,31 @@
}
/**
+ * Start emergency callback mode for GsmCdmaPhone for testing.
+ */
+ @Override
+ public void startEmergencyCallbackMode() {
+ TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(),
+ "startEmergencyCallbackMode");
+ enforceModifyPermission();
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ for (Phone phone : PhoneFactory.getPhones()) {
+ Rlog.d(LOG_TAG, "startEmergencyCallbackMode phone type: " + phone.getPhoneType());
+ if (phone != null && ((phone.getPhoneType() == PHONE_TYPE_GSM)
+ || (phone.getPhoneType() == PHONE_TYPE_CDMA))) {
+ GsmCdmaPhone gsmCdmaPhone = (GsmCdmaPhone) phone;
+ gsmCdmaPhone.obtainMessage(
+ GsmCdmaPhone.EVENT_EMERGENCY_CALLBACK_MODE_ENTER).sendToTarget();
+ Rlog.d(LOG_TAG, "startEmergencyCallbackMode: triggered");
+ }
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
* Update emergency number list for test mode.
*/
@Override