Merge "[Output Switcher] Disable icon clicklistener for volume fixed"
diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
index ffcb8c6..d555d05 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
@@ -146,6 +146,11 @@
@Override
public int getItemViewType(int position) {
+ if (mController.isAdvancedLayoutSupported()
+ && position >= mController.getMediaItemList().size()) {
+ Log.d(TAG, "Incorrect position for item type: " + position);
+ return MediaItem.MediaItemType.TYPE_GROUP_DIVIDER;
+ }
return mController.isAdvancedLayoutSupported()
? mController.getMediaItemList().get(position).getMediaItemType()
: super.getItemViewType(position);
diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java
index b1cbee8..2a2cf63 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java
@@ -333,7 +333,7 @@
if (!mController.isVolumeControlEnabled(device)) {
disableSeekBar();
} else {
- enableSeekBar();
+ enableSeekBar(device);
}
mSeekBar.setMaxVolume(device.getMaxVolume());
final int currentVolume = device.getCurrentVolume();
@@ -369,13 +369,6 @@
if (mIsInitVolumeFirstTime) {
mIsInitVolumeFirstTime = false;
}
- if (mController.isAdvancedLayoutSupported()) {
- updateIconAreaClickListener((v) -> {
- mSeekBar.resetVolume();
- mController.adjustVolume(device, 0);
- updateMutedVolumeIcon();
- });
- }
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
@@ -556,11 +549,21 @@
protected void disableSeekBar() {
mSeekBar.setEnabled(false);
mSeekBar.setOnTouchListener((v, event) -> true);
+ if (mController.isAdvancedLayoutSupported()) {
+ updateIconAreaClickListener(null);
+ }
}
- private void enableSeekBar() {
+ private void enableSeekBar(MediaDevice device) {
mSeekBar.setEnabled(true);
mSeekBar.setOnTouchListener((v, event) -> false);
+ if (mController.isAdvancedLayoutSupported()) {
+ updateIconAreaClickListener((v) -> {
+ mSeekBar.resetVolume();
+ mController.adjustVolume(device, 0);
+ updateMutedVolumeIcon();
+ });
+ }
}
protected void setUpDeviceIcon(MediaDevice device) {