Add mock modem service operations in Telephony
Bug: 205101043
Bug: 203241555
Test: manual
Change-Id: Idd34e908ca625a6bf1ba9bd9a115b15315560936
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index f6d7b94..56854cf 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -152,6 +152,10 @@
private static final String UCE_SET_CAPABILITY_REQUEST_TIMEOUT =
"set-capabilities-request-timeout";
+ private static final String RADIO_SUBCOMMAND = "radio";
+ private static final String RADIO_SET_MODEM_SERVICE = "set-modem-service";
+ private static final String RADIO_GET_MODEM_SERVICE = "get-modem-service";
+
// Check if a package has carrier privileges on any SIM, regardless of subId/phoneId.
private static final String HAS_CARRIER_PRIVILEGES_COMMAND = "has-carrier-privileges";
@@ -324,6 +328,8 @@
return handleAllowedNetworkTypesCommand(cmd);
case GET_DATA_MODE:
return handleGetDataMode();
+ case RADIO_SUBCOMMAND:
+ return handleRadioCommand();
default: {
return handleDefaultCommands(cmd);
}
@@ -362,6 +368,8 @@
pw.println(" Get the Allowed Network Types.");
pw.println(" set-allowed-network-types-for-users");
pw.println(" Set the Allowed Network Types.");
+ pw.println(" radio");
+ pw.println(" Radio Commands.");
onHelpIms();
onHelpUce();
onHelpEmergencyNumber();
@@ -373,6 +381,7 @@
onHelpD2D();
onHelpDisableOrEnablePhysicalSubscription();
onHelpAllowedNetworkTypes();
+ onHelpRadio();
}
private void onHelpD2D() {
@@ -661,6 +670,21 @@
pw.println(" LTE only : 01000001000000000000");
}
+ private void onHelpRadio() {
+ PrintWriter pw = getOutPrintWriter();
+ pw.println("Radio Commands:");
+ pw.println(" radio set-modem-service [-s SERVICE_NAME]");
+ pw.println(" Sets the class name of modem service defined in SERVICE_NAME");
+ pw.println(" to be the bound. Options are:");
+ pw.println(" -s: the service name that the modem service should be bound for.");
+ pw.println(" If no option is specified, it will bind to the default.");
+ pw.println(" radio get-modem-service");
+ pw.println(" Gets the service name of the currently defined modem service.");
+ pw.println(" If it is binding to default, 'default' returns.");
+ pw.println(" If it doesn't bind to any modem service for some reasons,");
+ pw.println(" the result would be 'unknown'.");
+ }
+
private int handleImsCommand() {
String arg = getNextArg();
if (arg == null) {
@@ -2761,4 +2785,69 @@
}
return 0;
}
+
+ private int handleRadioSetModemServiceCommand() {
+ PrintWriter errPw = getErrPrintWriter();
+ String serviceName = null;
+
+ String opt;
+ while ((opt = getNextOption()) != null) {
+ switch (opt) {
+ case "-s": {
+ serviceName = getNextArgRequired();
+ break;
+ }
+ }
+ }
+
+ try {
+ boolean result = mInterface.setModemService(serviceName);
+ if (VDBG) {
+ Log.v(LOG_TAG,
+ "RadioSetModemService " + serviceName + ", result = " + result);
+ }
+ getOutPrintWriter().println(result);
+ } catch (RemoteException e) {
+ Log.w(LOG_TAG,
+ "RadioSetModemService: " + serviceName + ", error = " + e.getMessage());
+ errPw.println("Exception: " + e.getMessage());
+ return -1;
+ }
+ return 0;
+ }
+
+ private int handleRadioGetModemServiceCommand() {
+ PrintWriter errPw = getErrPrintWriter();
+ String result;
+
+ try {
+ result = mInterface.getModemService();
+ getOutPrintWriter().println(result);
+ } catch (RemoteException e) {
+ errPw.println("Exception: " + e.getMessage());
+ return -1;
+ }
+ if (VDBG) {
+ Log.v(LOG_TAG, "RadioGetModemService, result = " + result);
+ }
+ return 0;
+ }
+
+ private int handleRadioCommand() {
+ String arg = getNextArg();
+ if (arg == null) {
+ onHelpRadio();
+ return 0;
+ }
+
+ switch (arg) {
+ case RADIO_SET_MODEM_SERVICE:
+ return handleRadioSetModemServiceCommand();
+
+ case RADIO_GET_MODEM_SERVICE:
+ return handleRadioGetModemServiceCommand();
+ }
+
+ return -1;
+ }
}