diff options
| author | 2020-07-21 10:04:40 -0700 | |
|---|---|---|
| committer | 2020-07-21 10:04:40 -0700 | |
| commit | a00600f64e1b33449edb5826d9b222f6baa28ea8 (patch) | |
| tree | 416cd6db2b8a86663e9cd48810aa4432d96f9d4c | |
| parent | f277044b7031bc8f0dbfa414f9eb9fab541967a8 (diff) | |
Adding shell command to enable testing car mode changes
Change-Id: Ib4d3e0a3a493b5be34c5f14104102200b780c13e
| -rw-r--r-- | services/core/java/com/android/server/UiModeManagerService.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java index be080e5cce62..915189c085c2 100644 --- a/services/core/java/com/android/server/UiModeManagerService.java +++ b/services/core/java/com/android/server/UiModeManagerService.java @@ -81,6 +81,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import static android.app.UiModeManager.DEFAULT_PRIORITY; import static android.app.UiModeManager.MODE_NIGHT_AUTO; import static android.app.UiModeManager.MODE_NIGHT_CUSTOM; import static android.app.UiModeManager.MODE_NIGHT_YES; @@ -1446,6 +1447,8 @@ final class UiModeManagerService extends SystemService { pw.println(" Print this help text."); pw.println(" night [yes|no|auto|custom]"); pw.println(" Set or read night mode."); + pw.println(" car [yes|no]"); + pw.println(" Set or read car mode."); pw.println(" time [start|end] <ISO time>"); pw.println(" Set custom start/end schedule time" + " (night mode must be set to custom to apply)."); @@ -1461,6 +1464,8 @@ final class UiModeManagerService extends SystemService { switch (cmd) { case "night": return handleNightMode(); + case "car": + return handleCarMode(); case "time": return handleCustomTime(); default: @@ -1558,6 +1563,34 @@ final class UiModeManagerService extends SystemService { return -1; } } + + private int handleCarMode() throws RemoteException { + final PrintWriter err = getErrPrintWriter(); + final String modeStr = getNextArg(); + if (modeStr == null) { + printCurrentCarMode(); + return 0; + } + + if (modeStr.equals("yes")) { + mInterface.enableCarMode(0 /* flags */, DEFAULT_PRIORITY, "" /* package */); + printCurrentCarMode(); + return 0; + } else if (modeStr.equals("no")) { + mInterface.disableCarMode(0 /* flags */); + printCurrentCarMode(); + return 0; + } else { + err.println("Error: mode must be 'yes', or 'no'"); + return -1; + } + } + + private void printCurrentCarMode() throws RemoteException { + final PrintWriter pw = getOutPrintWriter(); + final int currMode = mInterface.getCurrentModeType(); + pw.println("Car mode: " + (currMode == Configuration.UI_MODE_TYPE_CAR ? "yes" : "no")); + } } public final class LocalService extends UiModeManagerInternal { |