#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 { preferenceManager.findPreference<ListPreference>("night_mode")?.let {
when (it.value) { when (it.value) {
"on" -> { "on" -> {

View File

@ -3,6 +3,7 @@ package com.github.apognu.otter.fragments
import android.os.Bundle import android.os.Bundle
import android.view.Gravity import android.view.Gravity
import android.view.View import android.view.View
import androidx.appcompat.app.AppCompatDelegate
import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.PopupMenu
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.lifecycle.lifecycleScope 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.repositories.TracksRepository
import com.github.apognu.otter.utils.* import com.github.apognu.otter.utils.*
import com.google.android.exoplayer2.offline.Download import com.google.android.exoplayer2.offline.Download
import com.preference.PowerPreference
import com.squareup.picasso.Picasso import com.squareup.picasso.Picasso
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
import kotlinx.android.synthetic.main.fragment_tracks.* 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 { 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") 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 { PopupMenu(context, actions, Gravity.START, R.attr.actionOverflowMenuStyle, 0).apply {
inflate(R.menu.album) 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 { setOnMenuItemClickListener {
when (it.itemId) { 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 -> { R.id.add_to_queue -> {
CommandBus.send(Command.AddToQueue(adapter.data)) CommandBus.send(Command.AddToQueue(adapter.data))

View File

@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/play_secondary"
android:title="@string/playback_shuffle" />
<item <item
android:id="@+id/add_to_queue" android:id="@+id/add_to_queue"
android:title="@string/playback_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_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">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_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_other">Autres</string>
<string name="settings_night_mode">Mode nuit</string> <string name="settings_night_mode">Mode nuit</string>
<string name="settings_night_mode_on">Toujours activé (mode sombre)</string> <string name="settings_night_mode_on">Toujours activé (mode sombre)</string>
@ -54,6 +59,7 @@
<string name="playlists">Playlists</string> <string name="playlists">Playlists</string>
<string name="radios">Radios</string> <string name="radios">Radios</string>
<string name="favorites">Favoris</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">Contrôle de lecture</string>
<string name="playback_media_controls_description">Contrôler la lecture musicale</string> <string name="playback_media_controls_description">Contrôler la lecture musicale</string>
<string name="playback_shuffle">Lecture aléatoire</string> <string name="playback_shuffle">Lecture aléatoire</string>

View File

@ -10,6 +10,16 @@
<item>size</item> <item>size</item>
</array> </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"> <array name="night_mode">
<item>@string/settings_night_mode_on</item> <item>@string/settings_night_mode_on</item>
<item>@string/settings_night_mode_off</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_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">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_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_other">Other</string>
<string name="settings_night_mode">Dark mode</string> <string name="settings_night_mode">Dark mode</string>
<string name="settings_night_mode_on">Always on (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="favorites">Favorites</string>
<string name="playback_media_controls">Media controls</string> <string name="playback_media_controls">Media controls</string>
<string name="playback_media_controls_description">Control media playback</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_shuffle">Shuffle</string>
<string name="playback_queue">Queue</string> <string name="playback_queue">Queue</string>
<string name="playback_queue_empty">Your queue is empty</string> <string name="playback_queue_empty">Your queue is empty</string>

View File

@ -22,6 +22,14 @@
app:showSeekBarValue="true" app:showSeekBarValue="true"
app:updatesContinuously="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>
<PreferenceCategory android:title="@string/settings_other"> <PreferenceCategory android:title="@string/settings_other">