Added preference to turn off shuffle mode when selecting new list of songs (#527)

An option to turn sticky shuffle on or off. It's enabled by default so it keeps the current functionality the same. I noticed every other player has it so hopefully you don't have any issues with it being in the app.
This commit is contained in:
Andrew 2018-06-18 22:12:34 -04:00 committed by Eugene
commit 6624fcd505
4 changed files with 18 additions and 0 deletions

View file

@ -24,6 +24,7 @@ import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.loader.SongLoader; import com.kabouzeid.gramophone.loader.SongLoader;
import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.service.MusicService; import com.kabouzeid.gramophone.service.MusicService;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@ -176,6 +177,9 @@ public class MusicPlayerRemote {
public static void openQueue(final ArrayList<Song> queue, final int startPosition, final boolean startPlaying) { public static void openQueue(final ArrayList<Song> queue, final int startPosition, final boolean startPlaying) {
if (!tryToHandleOpenPlayingQueue(queue, startPosition, startPlaying) && musicService != null) { if (!tryToHandleOpenPlayingQueue(queue, startPosition, startPlaying) && musicService != null) {
musicService.openQueue(queue, startPosition, startPlaying); musicService.openQueue(queue, startPosition, startPlaying);
if (!PreferenceUtil.getInstance(musicService).rememberShuffle()){
setShuffleMode(MusicService.SHUFFLE_MODE_NONE);
}
} }
} }

View file

@ -82,6 +82,8 @@ public final class PreferenceUtil {
public static final String LIBRARY_CATEGORIES = "library_categories"; public static final String LIBRARY_CATEGORIES = "library_categories";
private static final String REMEMBER_SHUFFLE = "remember_shuffle";
private static PreferenceUtil sInstance; private static PreferenceUtil sInstance;
private final SharedPreferences mPreferences; private final SharedPreferences mPreferences;
@ -432,6 +434,10 @@ public final class PreferenceUtil {
return mPreferences.getBoolean(INTRO_SHOWN, false); return mPreferences.getBoolean(INTRO_SHOWN, false);
} }
public final boolean rememberShuffle() {
return mPreferences.getBoolean(REMEMBER_SHUFFLE, true);
}
public final String autoDownloadImagesPolicy() { public final String autoDownloadImagesPolicy() {
return mPreferences.getString(AUTO_DOWNLOAD_IMAGES_POLICY, "only_wifi"); return mPreferences.getString(AUTO_DOWNLOAD_IMAGES_POLICY, "only_wifi");
} }

View file

@ -131,6 +131,7 @@
<string name="pref_title_last_added_interval">Last added playlist interval</string> <string name="pref_title_last_added_interval">Last added playlist interval</string>
<string name="pref_title_synchronized_lyrics_show">Show synchronized lyrics</string> <string name="pref_title_synchronized_lyrics_show">Show synchronized lyrics</string>
<string name="pref_title_remember_last_tab">Remember last tab</string> <string name="pref_title_remember_last_tab">Remember last tab</string>
<string name="pref_title_remember_shuffle">Remember shuffle</string>
<string name="no_equalizer">No equalizer found.</string> <string name="no_equalizer">No equalizer found.</string>
<string name="no_audio_ID">"Play a song first, then try again."</string> <string name="no_audio_ID">"Play a song first, then try again."</string>
<string name="delete_action">Delete</string> <string name="delete_action">Delete</string>
@ -165,6 +166,7 @@
<string name="pref_summary_audio_ducking">Notifications, navigation etc.</string> <string name="pref_summary_audio_ducking">Notifications, navigation etc.</string>
<string name="pref_summary_synchronized_lyrics_show">Currently only synchronized lyrics in LRC format are supported. Either embedded or as a separate file.</string> <string name="pref_summary_synchronized_lyrics_show">Currently only synchronized lyrics in LRC format are supported. Either embedded or as a separate file.</string>
<string name="pref_summary_remember_last_tab">Go to the last opened tab on launch</string> <string name="pref_summary_remember_last_tab">Go to the last opened tab on launch</string>
<string name="pref_summary_remember_shuffle">Shuffle mode will stay on when selecting a new list of songs</string>
<string name="could_not_download_album_cover">"Couldn\u2019t download a matching album cover."</string> <string name="could_not_download_album_cover">"Couldn\u2019t download a matching album cover."</string>
<string name="search_hint">Search your library…</string> <string name="search_hint">Search your library…</string>
<string name="favorites">Favorites</string> <string name="favorites">Favorites</string>

View file

@ -15,6 +15,12 @@
android:summary="@string/pref_summary_gapless_playback" android:summary="@string/pref_summary_gapless_playback"
android:title="@string/pref_title_gapless_playback" /> android:title="@string/pref_title_gapless_playback" />
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATESwitchPreference
android:defaultValue="true"
android:key="remember_shuffle"
android:summary="@string/pref_summary_remember_shuffle"
android:title="@string/pref_title_remember_shuffle" />
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreference <com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreference
android:key="equalizer" android:key="equalizer"
android:title="@string/equalizer" /> android:title="@string/equalizer" />