Merge changes from topics "ut_provision_api", "ims_prov_api_defs"
* changes:
Add UT capability detection and caching
Modify setVoWiFiNonPersistent to use current roaming mode
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index ad17964..e7131fe 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -232,6 +232,8 @@
private static final int EVENT_CMD_MODEM_REBOOT_DONE = 65;
private static final int CMD_REQUEST_CELL_INFO_UPDATE = 66;
private static final int EVENT_REQUEST_CELL_INFO_UPDATE_DONE = 67;
+ private static final int CMD_REQUEST_ENABLE_MODEM = 68;
+ private static final int EVENT_ENABLE_MODEM_DONE = 69;
// Parameters of select command.
private static final int SELECT_COMMAND = 0xA4;
@@ -1084,6 +1086,19 @@
case EVENT_CMD_MODEM_REBOOT_DONE:
handleNullReturnEvent(msg, "rebootModem");
break;
+ case CMD_REQUEST_ENABLE_MODEM:
+ request = (MainThreadRequest) msg.obj;
+ boolean enable = (boolean) request.argument;
+ onCompleted = obtainMessage(EVENT_ENABLE_MODEM_DONE, request);
+ PhoneConfigurationManager.getInstance()
+ .enablePhone(request.phone, enable, onCompleted);
+ break;
+ case EVENT_ENABLE_MODEM_DONE:
+ ar = (AsyncResult) msg.obj;
+ request = (MainThreadRequest) ar.userObj;
+ request.result = (ar.exception == null);
+ notifyRequester(request);
+ break;
default:
Log.w(LOG_TAG, "MainThreadHandler: unexpected message code: " + msg.what);
break;
@@ -6367,4 +6382,24 @@
}
return null;
}
+
+ /**
+ * Enable or disable a modem stack.
+ */
+ @Override
+ public boolean enableModemForSlot(int slotIndex, boolean enable) {
+ enforceModifyPermission();
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Phone phone = PhoneFactory.getPhone(slotIndex);
+ if (phone == null) {
+ return false;
+ } else {
+ return (Boolean) sendRequest(CMD_REQUEST_ENABLE_MODEM, enable, phone, null);
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
}