Create am no-home-screen command.
The no-home-screen command allows checking if the device had
no home screen. This is needed for CTS tests to correctly
detect that ARC++ devices have no home screen.
This is ported from ag/1851936 since it could not cherry-pick cleanly.
Original CL: I9c933f0b684cc82c74db948edf592fd067091a31
Bug: 33456072
Test: manual - adb shell am no-home-screen reports false by default.
Change-Id: I3df465a34393aa6e3f2934722a66ad909979824d
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index ee7ea6a..16efe06 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -2608,6 +2608,10 @@
<!-- True if the device supports split screen as a form of multi-window. -->
<bool name="config_supportsSplitScreenMultiWindow">true</bool>
+ <!-- True if the device has no home screen. That is a launcher activity
+ where the user can launch other applications from. -->
+ <bool name="config_noHomeScreen">false</bool>
+
<!-- True if the device requires AppWidgetService even if it does not have
the PackageManager.FEATURE_APP_WIDGETS feature -->
<bool name="config_enableAppWidgetService">false</bool>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 89ded8d..b299ef9 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -312,6 +312,7 @@
<java-symbol type="bool" name="config_freeformWindowManagement" />
<java-symbol type="bool" name="config_supportsMultiWindow" />
<java-symbol type="bool" name="config_supportsSplitScreenMultiWindow" />
+ <java-symbol type="bool" name="config_noHomeScreen" />
<java-symbol type="bool" name="config_guestUserEphemeral" />
<java-symbol type="bool" name="config_localDisplaysMirrorContent" />
<java-symbol type="integer" name="config_defaultDisplayDefaultColorMode" />
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index 80df26b..aaad12c 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -240,6 +240,8 @@
return runSupportsSplitScreenMultiwindow(pw);
case "update-appinfo":
return runUpdateApplicationInfo(pw);
+ case "no-home-screen":
+ return runNoHomeScreen(pw);
default:
return handleDefaultCommands(cmd);
}
@@ -2386,6 +2388,15 @@
return 0;
}
+ int runNoHomeScreen(PrintWriter pw) throws RemoteException {
+ final Resources res = getResources(pw);
+ if (res == null) {
+ return -1;
+ }
+ pw.println(res.getBoolean(com.android.internal.R.bool.config_noHomeScreen));
+ return 0;
+ }
+
private Resources getResources(PrintWriter pw) throws RemoteException {
// system resources does not contain all the device configuration, construct it manually.
Configuration config = mInterface.getConfiguration();