Handle vol up/down on Android side
Don't pass the key events to the VM. If we pass, the VM's volume is
capped at the current volume level on the Android side.
Bug: 348128944
Test: press vol up/down button. Android volume control UI shows up.
Change-Id: Ibde0bb801da468a33dd1739d322fa4b3c860cf52
diff --git a/vmlauncher_app/java/com/android/virtualization/vmlauncher/MainActivity.java b/vmlauncher_app/java/com/android/virtualization/vmlauncher/MainActivity.java
index c2f218a..0be2e57 100644
--- a/vmlauncher_app/java/com/android/virtualization/vmlauncher/MainActivity.java
+++ b/vmlauncher_app/java/com/android/virtualization/vmlauncher/MainActivity.java
@@ -198,12 +198,18 @@
return configBuilder.build();
}
+ private static boolean isVolumeKey(int keyCode) {
+ return keyCode == KeyEvent.KEYCODE_VOLUME_UP
+ || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
+ || keyCode == KeyEvent.KEYCODE_VOLUME_MUTE;
+ }
+
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mVirtualMachine == null) {
return false;
}
- return mVirtualMachine.sendKeyEvent(event);
+ return !isVolumeKey(keyCode) && mVirtualMachine.sendKeyEvent(event);
}
@Override
@@ -211,7 +217,7 @@
if (mVirtualMachine == null) {
return false;
}
- return mVirtualMachine.sendKeyEvent(event);
+ return !isVolumeKey(keyCode) && mVirtualMachine.sendKeyEvent(event);
}
@Override