From fce3844ed5bf41806efa04079d6457f1ed5d081c Mon Sep 17 00:00:00 2001 From: Omar Date: Thu, 17 Mar 2022 21:15:46 +0200 Subject: [PATCH 1/3] Show toast when adding songs to an existing playlist --- .../retromusic/dialogs/AddToPlaylistDialog.kt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt index 1dab03d46..ad0a445f4 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt @@ -17,6 +17,7 @@ package code.name.monkey.retromusic.dialogs import android.app.Dialog import android.os.Bundle import android.widget.ArrayAdapter +import android.widget.Toast import androidx.core.os.bundleOf import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope @@ -33,6 +34,7 @@ import code.name.monkey.retromusic.fragments.ReloadType.Playlists import code.name.monkey.retromusic.model.Song import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.koin.androidx.viewmodel.ext.android.sharedViewModel class AddToPlaylistDialog : DialogFragment() { @@ -78,8 +80,18 @@ class AddToPlaylistDialog : DialogFragment() { } else { lifecycleScope.launch(Dispatchers.IO) { val songEntities = songs.toSongsEntity(playlistEntities[which - 1]) - libraryViewModel.insertSongs(songEntities) - libraryViewModel.forceReload(Playlists) + if (songEntities.isNotEmpty()) { + libraryViewModel.insertSongs(songEntities) + libraryViewModel.forceReload(Playlists) + + withContext(Dispatchers.Main) { + Toast.makeText( + requireContext(), getString(R.string.added_song_count_to_playlist, + songEntities.size, + playlistEntities[which - 1].playlistName + ), Toast.LENGTH_SHORT).show() + } + } } } dialog.dismiss() From 94275e372596b8d7786e3dd56387dda56f540da1 Mon Sep 17 00:00:00 2001 From: Omar Date: Sat, 19 Mar 2022 21:51:52 +0200 Subject: [PATCH 2/3] Code cleanup --- .../retromusic/dialogs/AddToPlaylistDialog.kt | 25 +++---------------- .../retromusic/fragments/LibraryViewModel.kt | 2 +- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt index ad0a445f4..1557e0212 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt @@ -17,24 +17,19 @@ package code.name.monkey.retromusic.dialogs import android.app.Dialog import android.os.Bundle import android.widget.ArrayAdapter -import android.widget.Toast import androidx.core.os.bundleOf import androidx.fragment.app.DialogFragment -import androidx.lifecycle.lifecycleScope import code.name.monkey.retromusic.EXTRA_PLAYLISTS import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R import code.name.monkey.retromusic.db.PlaylistEntity +import code.name.monkey.retromusic.db.toSongs import code.name.monkey.retromusic.db.toSongsEntity import code.name.monkey.retromusic.extensions.colorButtons import code.name.monkey.retromusic.extensions.extraNotNull import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.fragments.LibraryViewModel -import code.name.monkey.retromusic.fragments.ReloadType.Playlists import code.name.monkey.retromusic.model.Song -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import org.koin.androidx.viewmodel.ext.android.sharedViewModel class AddToPlaylistDialog : DialogFragment() { @@ -78,21 +73,9 @@ class AddToPlaylistDialog : DialogFragment() { if (which == 0) { showCreateDialog(songs) } else { - lifecycleScope.launch(Dispatchers.IO) { - val songEntities = songs.toSongsEntity(playlistEntities[which - 1]) - if (songEntities.isNotEmpty()) { - libraryViewModel.insertSongs(songEntities) - libraryViewModel.forceReload(Playlists) - - withContext(Dispatchers.Main) { - Toast.makeText( - requireContext(), getString(R.string.added_song_count_to_playlist, - songEntities.size, - playlistEntities[which - 1].playlistName - ), Toast.LENGTH_SHORT).show() - } - } - } + val playlistName = playlistEntities[which - 1].playlistName + val songEntities = songs.toSongsEntity(playlistEntities[which - 1]) + libraryViewModel.addToPlaylist(playlistName, songEntities.toSongs()) } dialog.dismiss() } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt index 016e4bc0a..2ca92ef72 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt @@ -378,7 +378,6 @@ class LibraryViewModel( val playlistId: Long = createPlaylist(PlaylistEntity(playlistName = playlistName)) insertSongs(songs.map { it.toSongEntity(playlistId) }) - forceReload(Playlists) withContext(Main) { Toast.makeText( App.getContext(), @@ -395,6 +394,7 @@ class LibraryViewModel( }) } } + forceReload(Playlists) withContext(Main) { Toast.makeText(App.getContext(), App.getContext().getString( R.string.added_song_count_to_playlist, From 0509686fd90e938b97d15b9d1a16e81f12f6441c Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Sun, 20 Mar 2022 12:46:21 +0530 Subject: [PATCH 3/3] Code cleanup --- .../name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt index 1557e0212..1440270c0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt @@ -23,8 +23,6 @@ import code.name.monkey.retromusic.EXTRA_PLAYLISTS import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R import code.name.monkey.retromusic.db.PlaylistEntity -import code.name.monkey.retromusic.db.toSongs -import code.name.monkey.retromusic.db.toSongsEntity import code.name.monkey.retromusic.extensions.colorButtons import code.name.monkey.retromusic.extensions.extraNotNull import code.name.monkey.retromusic.extensions.materialDialog @@ -73,12 +71,11 @@ class AddToPlaylistDialog : DialogFragment() { if (which == 0) { showCreateDialog(songs) } else { - val playlistName = playlistEntities[which - 1].playlistName - val songEntities = songs.toSongsEntity(playlistEntities[which - 1]) - libraryViewModel.addToPlaylist(playlistName, songEntities.toSongs()) + libraryViewModel.addToPlaylist(playlistNames[which], songs) } dialog.dismiss() } + .setNegativeButton(R.string.action_cancel, null) .create().colorButtons() }