summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Stetson <alexstetson@google.com>2023-11-20 13:42:37 -0800
committerAlex Stetson <alexstetson@google.com>2023-11-20 13:42:37 -0800
commite1bef7ca50f05d363911d20ad904b1877678b495 (patch)
tree1b1c683931ad53ced164b40b409b33e9cc1b2756
parent93140930c0eecfe555bec539e6fd2b9fb041dec4 (diff)
downloadSystemUI-e1bef7ca50f05d363911d20ad904b1877678b495.tar.gz
Add fallback audio zone for VolumeUI
OEMs may not have occupant zones configured on their systems. To allow VolumeUI to still show up in these cases, assume the foreground user is the driver and default to the primary audio zone. Bug: 311450600 Test: build Change-Id: I1a38e1a22f19ada85cff910a6f491a9af3a62d57
-rw-r--r--src/com/android/systemui/car/volume/VolumeUI.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/com/android/systemui/car/volume/VolumeUI.java b/src/com/android/systemui/car/volume/VolumeUI.java
index bccbd46b..823040fd 100644
--- a/src/com/android/systemui/car/volume/VolumeUI.java
+++ b/src/com/android/systemui/car/volume/VolumeUI.java
@@ -18,9 +18,11 @@ package com.android.systemui.car.volume;
import static android.car.media.CarAudioManager.AUDIO_FEATURE_VOLUME_GROUP_EVENTS;
import static android.car.media.CarAudioManager.INVALID_AUDIO_ZONE;
+import static android.car.media.CarAudioManager.PRIMARY_AUDIO_ZONE;
import static android.car.media.CarVolumeGroupEvent.EXTRA_INFO_SHOW_UI;
import static android.car.media.CarVolumeGroupEvent.EXTRA_INFO_VOLUME_INDEX_CHANGED_BY_AUDIO_SYSTEM;
+import android.app.ActivityManager;
import android.car.Car;
import android.car.CarOccupantZoneManager;
import android.car.media.CarAudioManager;
@@ -152,11 +154,12 @@ public class VolumeUI implements CoreStartable {
mCarServiceProvider.addListener(car -> {
if (mCarAudioManager != null) {
+ // already initialized
return;
}
- CarOccupantZoneManager carOccupantZoneManager =
- (CarOccupantZoneManager) car.getCarManager(Car.CAR_OCCUPANT_ZONE_SERVICE);
+ CarOccupantZoneManager carOccupantZoneManager = car.getCarManager(
+ CarOccupantZoneManager.class);
if (carOccupantZoneManager != null) {
CarOccupantZoneManager.OccupantZoneInfo info =
carOccupantZoneManager.getOccupantZoneForUser(mUserTracker.getUserHandle());
@@ -166,7 +169,14 @@ public class VolumeUI implements CoreStartable {
}
if (mAudioZoneId == INVALID_AUDIO_ZONE) {
- return;
+ if (mUserTracker.getUserId() == ActivityManager.getCurrentUser()) {
+ // Certain devices may not have occupant zones configured. As a fallback for
+ // this situation, if the user is the foreground user, assume driver and use the
+ // primary audio zone.
+ mAudioZoneId = PRIMARY_AUDIO_ZONE;
+ } else {
+ return;
+ }
}
mCarAudioManager = (CarAudioManager) car.getCarManager(Car.AUDIO_SERVICE);