summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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