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) {