Sensor device streaming demo

Bug: 368633836
Test: manual
Flag: android.companion.virtualdevice.flags.enable_limited_vdm_role

Change-Id: I096b5d69568cbac7c0d394b24e780ba0b34b5cba
diff --git a/samples/VirtualDeviceManager/README.md b/samples/VirtualDeviceManager/README.md
index cf6e09f..f541036 100644
--- a/samples/VirtualDeviceManager/README.md
+++ b/samples/VirtualDeviceManager/README.md
@@ -482,6 +482,8 @@
 
 ### Android 16 / Baklava
 
+-   Added `COMPANION_DEVICE_NEARBY_SENSOR_STREAMING` device profile.
+
 -   Added support for custom power management.
 
 -   Added support for custom system windows (like status bar) and insets.
diff --git a/samples/VirtualDeviceManager/host/AndroidManifest.xml b/samples/VirtualDeviceManager/host/AndroidManifest.xml
index 33058a6..8b3f651 100644
--- a/samples/VirtualDeviceManager/host/AndroidManifest.xml
+++ b/samples/VirtualDeviceManager/host/AndroidManifest.xml
@@ -31,6 +31,9 @@
         android:name="android.permission.REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING"
         tools:ignore="ProtectedPermissions" />
     <uses-permission
+        android:name="android.permission.REQUEST_COMPANION_PROFILE_SENSOR_DEVICE_STREAMING"
+        tools:ignore="ProtectedPermissions" />
+    <uses-permission
         android:name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY"
         tools:ignore="ProtectedPermissions" />
     <uses-permission
diff --git a/samples/VirtualDeviceManager/host/com.example.android.vdmdemo.host.xml b/samples/VirtualDeviceManager/host/com.example.android.vdmdemo.host.xml
index 465f6de..9d0e989 100644
--- a/samples/VirtualDeviceManager/host/com.example.android.vdmdemo.host.xml
+++ b/samples/VirtualDeviceManager/host/com.example.android.vdmdemo.host.xml
@@ -21,5 +21,6 @@
         <permission name="android.permission.REQUEST_COMPANION_SELF_MANAGED" />
         <permission name="android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING" />
         <permission name="android.permission.REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING" />
+        <permission name="android.permission.REQUEST_COMPANION_PROFILE_SENSOR_DEVICE_STREAMING" />
     </privapp-permissions>
 </permissions>
diff --git a/samples/VirtualDeviceManager/host/res/values/arrays.xml b/samples/VirtualDeviceManager/host/res/values/arrays.xml
index 74c78b3..c7ae4d6 100644
--- a/samples/VirtualDeviceManager/host/res/values/arrays.xml
+++ b/samples/VirtualDeviceManager/host/res/values/arrays.xml
@@ -3,10 +3,12 @@
     <string-array translatable="false" name="device_profile_labels">
         <item>App streaming</item>
         <item>Nearby device streaming</item>
+        <item>Nearby sensor streaming</item>
     </string-array>
     <string-array translatable="false" name="device_profiles">
         <item>@string/app_streaming</item>
         <item>@string/nearby_device_streaming</item>
+        <item>@string/sensor_device_streaming</item>
     </string-array>
 
     <string-array translatable="false" name="display_ime_policy_labels">
diff --git a/samples/VirtualDeviceManager/host/res/values/strings.xml b/samples/VirtualDeviceManager/host/res/values/strings.xml
index f231a0e..bb1502a 100644
--- a/samples/VirtualDeviceManager/host/res/values/strings.xml
+++ b/samples/VirtualDeviceManager/host/res/values/strings.xml
@@ -68,4 +68,5 @@
 
     <string name="app_streaming" translatable="false">android.app.role.COMPANION_DEVICE_APP_STREAMING</string>
     <string name="nearby_device_streaming" translatable="false">android.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING</string>
+    <string name="sensor_device_streaming" translatable="false">android.app.role.COMPANION_DEVICE_SENSOR_DEVICE_STREAMING</string>
 </resources>
\ No newline at end of file
diff --git a/samples/VirtualDeviceManager/host/src/com/example/android/vdmdemo/host/MainActivity.java b/samples/VirtualDeviceManager/host/src/com/example/android/vdmdemo/host/MainActivity.java
index 1977ad3..95664bf 100644
--- a/samples/VirtualDeviceManager/host/src/com/example/android/vdmdemo/host/MainActivity.java
+++ b/samples/VirtualDeviceManager/host/src/com/example/android/vdmdemo/host/MainActivity.java
@@ -201,12 +201,17 @@
                 () -> {
                     if (mLauncher != null) {
                         mLauncherAdapter.update();
-                        mLauncher.setVisibility(visibility);
+                        if (mPreferenceController.getBoolean(
+                                R.string.internal_pref_home_displays_supported)) {
+                            mLauncher.setVisibility(visibility);
+                        } else {
+                            mLauncher.setVisibility(View.GONE);
+                        }
                     }
                     if (mHomeDisplayButton != null) {
                         mHomeDisplayButton.setEnabled(
-                                mPreferenceController.getBoolean(R
-                                        .string.internal_pref_home_displays_supported));
+                                mPreferenceController.getBoolean(
+                                        R.string.internal_pref_home_displays_supported));
                         mHomeDisplayButton.setVisibility(visibility);
                     }
                     if (mMirrorDisplayButton != null) {