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();