diff options
| author | Shaowei Shen <shaoweishen@google.com> | 2022-03-02 02:05:15 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-03-02 02:05:15 +0000 |
| commit | fedcf34ff8dc92bbfb23538d4b6466cc8efb4594 (patch) | |
| tree | 4f1638d923201d3977eb663dccb24712ff7e4c81 | |
| parent | 455035b4bc33b65a36d0f3d6057701cfb0e7c7f4 (diff) | |
| parent | fcf85a36c0b68b8eccf034c7c955fadfa4d0e0bb (diff) | |
Merge "[Output Switcher] Fix recyclerview flickering" into tm-dev
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java | 15 |
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 |
