summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaowei Shen <shaoweishen@google.com>2022-03-02 02:05:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-03-02 02:05:15 +0000
commitfedcf34ff8dc92bbfb23538d4b6466cc8efb4594 (patch)
tree4f1638d923201d3977eb663dccb24712ff7e4c81
parent455035b4bc33b65a36d0f3d6057701cfb0e7c7f4 (diff)
parentfcf85a36c0b68b8eccf034c7c955fadfa4d0e0bb (diff)
Merge "[Output Switcher] Fix recyclerview flickering" into tm-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java15
1 files changed, 15 insertions, 0 deletions
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 3cd390533132..89cf68a1e830 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
@@ -54,6 +54,7 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
MediaOutputDialog mediaOutputDialog) {
super(controller);
mMediaOutputDialog = mediaOutputDialog;
+ setHasStableIds(true);
}
@Override
@@ -79,6 +80,20 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
}
@Override
+ public long getItemId(int position) {
+ final int size = mController.getMediaDevices().size();
+ if (position == size && mController.isZeroMode()) {
+ return -1;
+ } else if (position < size) {
+ return ((List<MediaDevice>) (mController.getMediaDevices()))
+ .get(position).getId().hashCode();
+ } else if (DEBUG) {
+ Log.d(TAG, "Incorrect position for item id: " + position);
+ }
+ return position;
+ }
+
+ @Override
public int getItemCount() {
if (mController.isZeroMode()) {
// Add extra one for "pair new" or dynamic group