Merge branch 'feature/playlist-play-last' into 'develop'

#1287 Added "Play Last" option to playlist context menu

See merge request ultrasonic/ultrasonic!1178
This commit is contained in:
Paul Reichert 2025-04-04 13:01:44 +00:00
commit a32a1192dd
2 changed files with 19 additions and 1 deletions

View File

@ -39,6 +39,8 @@ import org.moire.ultrasonic.R
import org.moire.ultrasonic.data.ActiveServerProvider.Companion.isOffline
import org.moire.ultrasonic.domain.Playlist
import org.moire.ultrasonic.fragment.FragmentTitle.setTitle
import org.moire.ultrasonic.service.MediaPlayerManager
import org.moire.ultrasonic.service.MusicServiceFactory
import org.moire.ultrasonic.service.MusicServiceFactory.getMusicService
import org.moire.ultrasonic.util.CacheCleaner
import org.moire.ultrasonic.util.ConfirmationDialog
@ -61,6 +63,7 @@ class PlaylistsFragment : ScopeFragment(), KoinScopeComponent, RefreshableFragme
private var playlistsListView: ListView? = null
private var emptyTextView: View? = null
private var playlistAdapter: ArrayAdapter<Playlist>? = null
private val mediaPlayerManager: MediaPlayerManager by inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -186,6 +189,17 @@ class PlaylistsFragment : ScopeFragment(), KoinScopeComponent, RefreshableFragme
findNavController().navigate(action)
}
R.id.playlist_menu_play_last -> {
val service = MusicServiceFactory.getMusicService()
val directory = service.getPlaylist(playlist.id, playlist.name)
mediaPlayerManager.addToPlaylist(
songs = directory.getTracks(),
insertionMode = MediaPlayerManager.InsertionMode.APPEND,
autoPlay = false,
shuffle = false
)
}
R.id.playlist_menu_delete -> {
deletePlaylist(playlist)
}

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/playlist_info"
@ -10,6 +11,9 @@
<item
android:id="@+id/playlist_menu_play_shuffled"
android:title="@string/common.play_shuffled"/>
<item
android:id="@+id/playlist_menu_play_last"
android:title="@string/common.play_last" />
<item
android:id="@+id/playlist_menu_pin"
android:title="@string/common.pin"/>