summaryrefslogtreecommitdiff
path: root/MusicDemo/src/main/java/com/example/android/musicservicedemo/utils/QueueHelper.java
diff options
context:
space:
mode:
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.java129
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());
- }
-}