[Android] [PATCH] Add: 'Insert next'.
Jens Jawer
jade at skygreen.de
Sat Apr 1 22:45:47 CEST 2017
---
vlc-android/res/menu/audio_list_browser.xml | 5 +++-
vlc-android/res/values-de/strings.xml | 1 +
vlc-android/res/values/strings.xml | 1 +
.../src/org/videolan/vlc/PlaybackService.java | 33 ++++++++++++++++++++++
.../src/org/videolan/vlc/gui/PlaylistActivity.java | 3 ++
.../vlc/gui/audio/AudioAlbumsSongsFragment.java | 3 ++
.../vlc/gui/audio/AudioBrowserFragment.java | 3 ++
7 files changed, 48 insertions(+), 1 deletion(-)
diff --git a/vlc-android/res/menu/audio_list_browser.xml b/vlc-android/res/menu/audio_list_browser.xml
index f17432c..c4dcdad 100644
--- a/vlc-android/res/menu/audio_list_browser.xml
+++ b/vlc-android/res/menu/audio_list_browser.xml
@@ -7,6 +7,9 @@
<item
android:id="@+id/audio_list_browser_append"
android:title="@string/append" />
+ <item
+ android:id="@+id/audio_list_browser_insert_next"
+ android:title="@string/insert_next" />
<group android:id="@+id/songs_view_only">
<item
android:id="@+id/audio_list_browser_play_all"
@@ -27,4 +30,4 @@
android:title="@string/set_song"/>
</group>
-</menu>
\ No newline at end of file
+</menu>
diff --git a/vlc-android/res/values-de/strings.xml b/vlc-android/res/values-de/strings.xml
index 8ea9482..e4463b6 100644
--- a/vlc-android/res/values-de/strings.xml
+++ b/vlc-android/res/values-de/strings.xml
@@ -24,6 +24,7 @@
<string name="play_as_audio_background">Videos im Hintergrund abspielen</string>
<string name="play_as_audio_background_summary">Video-Wiedergabe im Hintergund fortsetzen, wenn der Gerätebildschirm ausgeschaltet oder der HOME-Button gedrückt wurde.</string>
<string name="append">Anhängen</string>
+ <string name="insert_next">Einfügen als Nächstes</string>
<string name="play_all">Alle wiedergeben</string>
<string name="append_all">Alle anhängen</string>
<string name="last_playlist">Letzte Wiedergabeliste</string>
diff --git a/vlc-android/res/values/strings.xml b/vlc-android/res/values/strings.xml
index cea6a3f..5a50c75 100644
--- a/vlc-android/res/values/strings.xml
+++ b/vlc-android/res/values/strings.xml
@@ -28,6 +28,7 @@
<string name="play_as_audio_background">Play videos in background</string>
<string name="play_as_audio_background_summary">Continue video playback in background when turning device screen off or clicking HOME button.</string>
<string name="append">Append</string>
+ <string name="insert_next">Insert next</string>
<string name="play_all">Play all</string>
<string name="append_all">Append all</string>
<string name="last_playlist">Last playlist</string>
diff --git a/vlc-android/src/org/videolan/vlc/PlaybackService.java b/vlc-android/src/org/videolan/vlc/PlaybackService.java
index 9540b69..a6c9f44 100644
--- a/vlc-android/src/org/videolan/vlc/PlaybackService.java
+++ b/vlc-android/src/org/videolan/vlc/PlaybackService.java
@@ -2079,6 +2079,39 @@ public class PlaybackService extends MediaBrowserServiceCompat implements IVLCVo
}
/**
+ * Insert into the current existing playlist
+ */
+
+ @MainThread
+ public void insertNext(MediaWrapper[] mediaList) {
+ insertNext(Arrays.asList(mediaList));
+ }
+
+ @MainThread
+ public void insertNext(List<MediaWrapper> mediaList) {
+ if (!hasCurrentMedia()) {
+ load(mediaList, 0);
+ return;
+ }
+
+ int startIndex = mCurrentIndex + 1;
+
+ for (int i = 0; i < mediaList.size(); i++) {
+ MediaWrapper mediaWrapper = mediaList.get(i);
+ mMediaList.insert(startIndex + i, mediaWrapper);
+ }
+ onMediaListChanged();
+ updateMediaQueue();
+ }
+
+ @MainThread
+ public void insertNext(MediaWrapper media) {
+ ArrayList<MediaWrapper> arrayList = new ArrayList<>();
+ arrayList.add(media);
+ insertNext(arrayList);
+ }
+
+ /**
* Move an item inside the playlist.
*/
@MainThread
diff --git a/vlc-android/src/org/videolan/vlc/gui/PlaylistActivity.java b/vlc-android/src/org/videolan/vlc/gui/PlaylistActivity.java
index 0fdd39e..29745ab 100644
--- a/vlc-android/src/org/videolan/vlc/gui/PlaylistActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/PlaylistActivity.java
@@ -315,6 +315,9 @@ public class PlaylistActivity extends AudioPlayerContainerActivity implements IE
} else if (id == R.id.audio_list_browser_append) {
mService.append(media);
return true;
+ } else if (id == R.id.audio_list_browser_insert_next) {
+ mService.insertNext(media);
+ return true;
} else if (id == R.id.audio_list_browser_delete) {
mAdapter.remove(media);
UiTools.snackerWithCancel(getWindow().getDecorView(), getString(R.string.file_deleted), new Runnable() {
diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioAlbumsSongsFragment.java b/vlc-android/src/org/videolan/vlc/gui/audio/AudioAlbumsSongsFragment.java
index e15e955..b79e774 100644
--- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioAlbumsSongsFragment.java
+++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioAlbumsSongsFragment.java
@@ -200,6 +200,7 @@ public class AudioAlbumsSongsFragment extends BaseAudioBrowser implements SwipeR
boolean useAllItems = id == R.id.audio_list_browser_play_all;
boolean append = id == R.id.audio_list_browser_append;
+ boolean insert_next = id == R.id.audio_list_browser_insert_next;
if (id == R.id.audio_list_browser_delete) {
@@ -254,6 +255,8 @@ public class AudioAlbumsSongsFragment extends BaseAudioBrowser implements SwipeR
if (mService != null) {
if (append)
mService.append(medias);
+ else if (insert_next)
+ mService.insertNext(medias);
else
mService.load(medias, startPosition);
return true;
diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.java b/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.java
index 4ae3704..967412f 100644
--- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.java
+++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.java
@@ -350,6 +350,7 @@ public class AudioBrowserFragment extends BaseAudioBrowser implements DevicesDis
boolean useAllItems = id == R.id.audio_list_browser_play_all;
boolean append = id == R.id.audio_list_browser_append;
+ boolean insert_next = id == R.id.audio_list_browser_insert_next;
// Play/Append
if (useAllItems) {
@@ -368,6 +369,8 @@ public class AudioBrowserFragment extends BaseAudioBrowser implements DevicesDis
if (mService != null) {
if (append)
mService.append(medias);
+ else if (insert_next)
+ mService.insertNext(medias);
else
mService.load(medias, startPosition);
return true;
--
2.7.4
More information about the Android
mailing list