public static List<Object> getQueue(Object controllerObj) { List<QueueItem> queue = ((MediaController) controllerObj).getQueue(); if (queue == null) { return null; } return new ArrayList(queue); }
@Override public void onMetadataChanged(MediaMetadata metadata) { if (metadata != null) { MediaController mediaController = getActivity().getMediaController(); long activeQueueId; if (mediaController.getPlaybackState() == null) { activeQueueId = QueueItem.UNKNOWN_ID; } else { activeQueueId = mediaController.getPlaybackState().getActiveQueueItemId(); } updateNowPlayingList(mediaController.getQueue(), activeQueueId); mRowsAdapter.notifyArrayItemRangeChanged(0, mRowsAdapter.size()); } }
@Override public void onQueueChanged(List<QueueItem> queue) { // queue has changed somehow MediaController mediaController = getActivity().getMediaController(); long activeQueueId; if (mediaController.getPlaybackState() == null) { activeQueueId = QueueItem.UNKNOWN_ID; } else { activeQueueId = mediaController.getPlaybackState().getActiveQueueItemId(); } updateNowPlayingList(queue, activeQueueId); mRowsAdapter.notifyArrayItemRangeChanged(0, mRowsAdapter.size()); }
private void updateNowPlayingList(List<QueueItem> queue, long activeQueueId) { mListRowAdapter.clear(); if (activeQueueId != QueueItem.UNKNOWN_ID) { Iterator<QueueItem> iterator = queue.iterator(); while (iterator.hasNext()) { QueueItem queueItem = iterator.next(); if (activeQueueId != queueItem.getQueueId()) { iterator.remove(); } else { break; } } } mListRowAdapter.addAll(0, queue); }