keep volume listener across mocking
- sysui sets it once and it should be kept across mocking
cycle to make volume ui work across mocked tests
bug: 30646148
Change-Id: Ie978eb53b56ee4fd83703b99ae6622431387f5a4
diff --git a/service/src/com/android/car/CarVolumeService.java b/service/src/com/android/car/CarVolumeService.java
index c8bfc90..a0d3033 100644
--- a/service/src/com/android/car/CarVolumeService.java
+++ b/service/src/com/android/car/CarVolumeService.java
@@ -47,6 +47,8 @@
private CarVolumeController mCarVolumeController;
+ private IVolumeController mIVolumeController;
+
public static int androidStreamToCarUsage(int logicalAndroidStream) {
return CarAudioAttributesUtil.getCarUsageFromAudioAttributes(
new AudioAttributes.Builder()
@@ -66,6 +68,9 @@
mAudioService, mAudioHal, mInputService);
mCarVolumeController.init();
+ if (mIVolumeController != null) {
+ mCarVolumeController.setVolumeController(mIVolumeController);
+ }
mInputService.setVolumeKeyListener(mCarVolumeController);
}
@@ -73,7 +78,8 @@
getController().setStreamVolume(streamType, index, flags);
}
- public void setVolumeController(IVolumeController controller) {
+ public synchronized void setVolumeController(IVolumeController controller) {
+ mIVolumeController = controller;
getController().setVolumeController(controller);
}