#65: added an option to select preference towards playback order.

This commit is contained in:
Antoine POPINEAU 2020-09-02 12:45:37 +02:00
parent b87766dad2
commit 9b0c8b0bf6
No known key found for this signature in database
GPG Key ID: A78AC64694F84063
7 changed files with 65 additions and 1 deletions

View File

@ -112,6 +112,14 @@ class SettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedP
}
}
preferenceManager.findPreference<ListPreference>("play_order")?.let {
it.summary = when (it.value) {
"shuffle" -> activity.getString(R.string.settings_play_order_shuffle_summary)
"in_order" -> activity.getString(R.string.settings_play_order_in_order_summary)
else -> activity.getString(R.string.settings_play_order_shuffle_summary)
}
}
preferenceManager.findPreference<ListPreference>("night_mode")?.let {
when (it.value) {
"on" -> {

View File

@ -3,6 +3,7 @@ package com.github.apognu.otter.fragments
import android.os.Bundle
import android.view.Gravity
import android.view.View
import androidx.appcompat.app.AppCompatDelegate
import androidx.appcompat.widget.PopupMenu
import androidx.core.os.bundleOf
import androidx.lifecycle.lifecycleScope
@ -14,6 +15,7 @@ import com.github.apognu.otter.repositories.FavoritesRepository
import com.github.apognu.otter.repositories.TracksRepository
import com.github.apognu.otter.utils.*
import com.google.android.exoplayer2.offline.Download
import com.preference.PowerPreference
import com.squareup.picasso.Picasso
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
import kotlinx.android.synthetic.main.fragment_tracks.*
@ -107,8 +109,16 @@ class TracksFragment : OtterFragment<Track, TracksAdapter>() {
}
}
when (PowerPreference.getDefaultFile().getString("play_order")) {
"in_order" -> play.text = getString(R.string.playback_play)
else -> play.text = getString(R.string.playback_shuffle)
}
play.setOnClickListener {
CommandBus.send(Command.ReplaceQueue(adapter.data.shuffled()))
when (PowerPreference.getDefaultFile().getString("play_order")) {
"in_order" -> CommandBus.send(Command.ReplaceQueue(adapter.data))
else -> CommandBus.send(Command.ReplaceQueue(adapter.data.shuffled()))
}
context.toast("All tracks were added to your queue")
}
@ -118,8 +128,20 @@ class TracksFragment : OtterFragment<Track, TracksAdapter>() {
PopupMenu(context, actions, Gravity.START, R.attr.actionOverflowMenuStyle, 0).apply {
inflate(R.menu.album)
menu.findItem(R.id.play_secondary)?.let { item ->
when (PowerPreference.getDefaultFile().getString("play_order")) {
"in_order" -> item.title = getString(R.string.playback_shuffle)
else -> item.title = getString(R.string.playback_play)
}
}
setOnMenuItemClickListener {
when (it.itemId) {
R.id.play_secondary -> when (PowerPreference.getDefaultFile().getString("play_order")) {
"in_order" -> CommandBus.send(Command.ReplaceQueue(adapter.data.shuffled()))
else -> CommandBus.send(Command.ReplaceQueue(adapter.data))
}
R.id.add_to_queue -> {
CommandBus.send(Command.AddToQueue(adapter.data))

View File

@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/play_secondary"
android:title="@string/playback_shuffle" />
<item
android:id="@+id/add_to_queue"
android:title="@string/playback_queue" />

View File

@ -26,6 +26,11 @@
<string name="settings_media_quality_summary_size">Les pistes les plus légères seront utilisées</string>
<string name="settings_media_cache_size">Taille du cache</string>
<string name="settings_media_cache_size_summary">%d Go seront utilisés pour mettre en cache les pistes pour la lecture hors-ligne</string>
<string name="settings_play_order">Ordre de lecture préféré</string>
<string name="settings_play_order_shuffle">Lecture aléatoire</string>
<string name="settings_play_order_shuffle_summary">Vous préférez écouter les albums aléatoirement</string>
<string name="settings_play_order_in_order">Lecture dans l\'ordre</string>
<string name="settings_play_order_in_order_summary">Vous préférez écouter les albums dans l\'ordre</string>
<string name="settings_other">Autres</string>
<string name="settings_night_mode">Mode nuit</string>
<string name="settings_night_mode_on">Toujours activé (mode sombre)</string>
@ -54,6 +59,7 @@
<string name="playlists">Playlists</string>
<string name="radios">Radios</string>
<string name="favorites">Favoris</string>
<string name="playback_play">Jouer</string>
<string name="playback_media_controls">Contrôle de lecture</string>
<string name="playback_media_controls_description">Contrôler la lecture musicale</string>
<string name="playback_shuffle">Lecture aléatoire</string>

View File

@ -10,6 +10,16 @@
<item>size</item>
</array>
<array name="play_orders">
<item>@string/settings_play_order_shuffle</item>
<item>@string/settings_play_order_in_order</item>
</array>
<array name="play_orders_values">
<item>shuffle</item>
<item>in_order</item>
</array>
<array name="night_mode">
<item>@string/settings_night_mode_on</item>
<item>@string/settings_night_mode_off</item>

View File

@ -27,6 +27,11 @@
<string name="settings_media_quality_summary_size">Smallest available track will be played</string>
<string name="settings_media_cache_size">Media cache size</string>
<string name="settings_media_cache_size_summary">%d GB will be used to store tracks for offline playback</string>
<string name="settings_play_order">Preferred playback order</string>
<string name="settings_play_order_shuffle">Shuffle albums</string>
<string name="settings_play_order_shuffle_summary">You prefer shuffling album tracks</string>
<string name="settings_play_order_in_order">Play albums in order</string>
<string name="settings_play_order_in_order_summary">You prefer playing albums in order</string>
<string name="settings_other">Other</string>
<string name="settings_night_mode">Dark mode</string>
<string name="settings_night_mode_on">Always on (dark mode)</string>
@ -57,6 +62,7 @@
<string name="favorites">Favorites</string>
<string name="playback_media_controls">Media controls</string>
<string name="playback_media_controls_description">Control media playback</string>
<string name="playback_play">Play</string>
<string name="playback_shuffle">Shuffle</string>
<string name="playback_queue">Queue</string>
<string name="playback_queue_empty">Your queue is empty</string>

View File

@ -22,6 +22,14 @@
app:showSeekBarValue="true"
app:updatesContinuously="true" />
<ListPreference
android:defaultValue="shuffle"
android:entries="@array/play_orders"
android:entryValues="@array/play_orders_values"
android:icon="@drawable/play"
android:key="play_order"
android:title="@string/settings_play_order" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_other">