From f1b7d241fedec2f85362c9788a5525a65c9a733e Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Wed, 2 Jan 2019 11:51:28 +0100 Subject: [PATCH] make jump-to-enqueued-song an option --- .../android/vanilla/LibraryActivity.java | 26 ++++++++++++------- .../android/vanilla/PrefDefaults.java | 1 + .../android/vanilla/PrefKeys.java | 1 + app/src/main/res/values/translatable.xml | 3 +++ app/src/main/res/xml/preference_library.xml | 5 ++++ 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java b/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java index 6514dbe4..45977a9e 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2012 Christopher Eby - * Copyright (C) 2015-2017 Adrian Ulrich + * Copyright (C) 2015-2019 Adrian Ulrich * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -138,6 +138,10 @@ public class LibraryActivity * The action to execute when a row is tapped. */ private int mDefaultAction; + /** + * Whether or not to jump to songs if the are in the queue + */ + private boolean mJumpToEnqueuedOnPlay; /** * The last used action from the menu. Used with ACTION_LAST_USED. */ @@ -202,21 +206,23 @@ public class LibraryActivity } } - @Override - public void onRestart() - { - super.onRestart(); - loadTabOrder(); - } - @Override public void onStart() { super.onStart(); + loadPreferences(); + loadTabOrder(); + updateHeaders(); + } + + /** + * Load settings and cache them. + */ + private void loadPreferences() { SharedPreferences settings = PlaybackService.getSettings(this); mDefaultAction = Integer.parseInt(settings.getString(PrefKeys.DEFAULT_ACTION_INT, PrefDefaults.DEFAULT_ACTION_INT)); - updateHeaders(); + mJumpToEnqueuedOnPlay = settings.getBoolean(PrefKeys.JUMP_TO_ENQUEUED_ON_PLAY, PrefDefaults.JUMP_TO_ENQUEUED_ON_PLAY); } /** @@ -383,7 +389,7 @@ public class LibraryActivity // special handling if we pick one song to be played that is already in queue boolean songPicked = (id >= 0 && type == MediaUtils.TYPE_SONG); // not invalid, not play all - if (songPicked && effectiveAction == ACTION_PLAY) { + if (songPicked && effectiveAction == ACTION_PLAY && mJumpToEnqueuedOnPlay) { int songPosInQueue = PlaybackService.get(this).getQueuePositionForSongId(id); if (songPosInQueue > -1) { // we picked for play one song that is already present in the queue, just jump to it diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/PrefDefaults.java b/app/src/main/java/ch/blinkenlights/android/vanilla/PrefDefaults.java index 6d477660..5725c5b5 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/PrefDefaults.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/PrefDefaults.java @@ -74,4 +74,5 @@ public class PrefDefaults { public static final boolean KEEP_SCREEN_ON = false; public static final String PLAYLIST_SYNC_MODE = "0"; public static final String PLAYLIST_SYNC_FOLDER = "/sdcard/Playlists"; + public static final boolean JUMP_TO_ENQUEUED_ON_PLAY = true; } diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/PrefKeys.java b/app/src/main/java/ch/blinkenlights/android/vanilla/PrefKeys.java index 832a18ac..93f458de 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/PrefKeys.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/PrefKeys.java @@ -75,4 +75,5 @@ public class PrefKeys { public static final String KEEP_SCREEN_ON = "keep_screen_on"; public static final String PLAYLIST_SYNC_MODE = "playlist_sync_mode"; public static final String PLAYLIST_SYNC_FOLDER = "playlist_sync_folder"; + public static final String JUMP_TO_ENQUEUED_ON_PLAY = "jump_to_enqueued_on_play"; } diff --git a/app/src/main/res/values/translatable.xml b/app/src/main/res/values/translatable.xml index f38a2b77..d595daec 100644 --- a/app/src/main/res/values/translatable.xml +++ b/app/src/main/res/values/translatable.xml @@ -257,6 +257,9 @@ THE SOFTWARE. Scroll to track title in queue Scroll to currently playing track in the queue on song change + Jump to enqueued song on \'Play\' + If the requested song is already in the queue, jump to it instead of flushing the queue + Load artwork from Android Query Androids internal media database for album artwork diff --git a/app/src/main/res/xml/preference_library.xml b/app/src/main/res/xml/preference_library.xml index 2da30cdf..9588dd60 100644 --- a/app/src/main/res/xml/preference_library.xml +++ b/app/src/main/res/xml/preference_library.xml @@ -52,6 +52,11 @@ THE SOFTWARE. android:title="@string/queue_enable_scroll_to_song_title" android:summary="@string/queue_enable_scroll_to_song_summary" android:defaultValue="false" /> +