diff options
Diffstat (limited to 'MusicDemo/src/main/java/com/example/android/musicservicedemo/utils/QueueHelper.java')
-rw-r--r-- | MusicDemo/src/main/java/com/example/android/musicservicedemo/utils/QueueHelper.java | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/MusicDemo/src/main/java/com/example/android/musicservicedemo/utils/QueueHelper.java b/MusicDemo/src/main/java/com/example/android/musicservicedemo/utils/QueueHelper.java deleted file mode 100644 index 9a510fb..0000000 --- a/MusicDemo/src/main/java/com/example/android/musicservicedemo/utils/QueueHelper.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2014 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.android.musicservicedemo.utils; - -import android.media.MediaMetadata; -import android.media.session.MediaSession; - -import com.example.android.musicservicedemo.model.MusicProvider; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import static com.example.android.musicservicedemo.utils.MediaIDHelper.MEDIA_ID_MUSICS_BY_GENRE; - -/** - * Utility class to help on queue related tasks. - */ -public class QueueHelper { - - private static final String TAG = "QueueHelper"; - - public static final List<MediaSession.QueueItem> getPlayingQueue(String mediaId, - MusicProvider musicProvider) { - - // extract the category and unique music ID from the media ID: - String[] category = MediaIDHelper.extractBrowseCategoryFromMediaID(mediaId); - - // This sample only supports genre category. - if (!category[0].equals(MEDIA_ID_MUSICS_BY_GENRE) || category.length != 2) { - LogHelper.e(TAG, "Could not build a playing queue for this mediaId: ", mediaId); - return null; - } - - String categoryValue = category[1]; - LogHelper.e(TAG, "Creating playing queue for musics of genre ", categoryValue); - - List<MediaSession.QueueItem> queue = convertToQueue( - musicProvider.getMusicsByGenre(categoryValue)); - - return queue; - } - - public static final List<MediaSession.QueueItem> getPlayingQueueFromSearch(String query, - MusicProvider musicProvider) { - - LogHelper.e(TAG, "Creating playing queue for musics from search ", query); - - return convertToQueue(musicProvider.searchMusics(query)); - } - - - public static final int getMusicIndexOnQueue(Iterable<MediaSession.QueueItem> queue, - String mediaId) { - int index = 0; - for (MediaSession.QueueItem item: queue) { - if (mediaId.equals(item.getDescription().getMediaId())) { - return index; - } - index++; - } - return -1; - } - - public static final int getMusicIndexOnQueue(Iterable<MediaSession.QueueItem> queue, - long queueId) { - int index = 0; - for (MediaSession.QueueItem item: queue) { - if (queueId == item.getQueueId()) { - return index; - } - index++; - } - return -1; - } - - private static final List<MediaSession.QueueItem> convertToQueue( - Iterable<MediaMetadata> tracks) { - List<MediaSession.QueueItem> queue = new ArrayList<>(); - int count = 0; - for (MediaMetadata track : tracks) { - // We don't expect queues to change after created, so we use the item index as the - // queueId. Any other number unique in the queue would work. - MediaSession.QueueItem item = new MediaSession.QueueItem( - track.getDescription(), count++); - queue.add(item); - } - return queue; - - } - - /** - * Create a random queue. For simplicity sake, instead of a random queue, we create a - * queue using the first genre, - * - * @param musicProvider - * @return - */ - public static final List<MediaSession.QueueItem> getRandomQueue(MusicProvider musicProvider) { - Iterator<String> genres = musicProvider.getGenres().iterator(); - if (!genres.hasNext()) { - return new ArrayList<>(); - } - String genre = genres.next(); - Iterable<MediaMetadata> tracks = musicProvider.getMusicsByGenre(genre); - - return convertToQueue(tracks); - } - - - - public static final boolean isIndexPlayable(int index, List<MediaSession.QueueItem> queue) { - return (queue != null && index >= 0 && index < queue.size()); - } -} |