package code.name.monkey.retromusic.dialogs import android.app.Dialog import android.os.Bundle import android.widget.Toast import androidx.core.os.bundleOf import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope import code.name.monkey.retromusic.App import code.name.monkey.retromusic.EXTRA_PLAYLIST import code.name.monkey.retromusic.R import code.name.monkey.retromusic.db.PlaylistWithSongs 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.util.PlaylistsUtil import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class SavePlaylistDialog : DialogFragment() { companion object { fun create(playlistWithSongs: PlaylistWithSongs): SavePlaylistDialog { return SavePlaylistDialog().apply { arguments = bundleOf( EXTRA_PLAYLIST to playlistWithSongs ) } } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) lifecycleScope.launch(Dispatchers.IO) { val playlistWithSongs: PlaylistWithSongs = extraNotNull(EXTRA_PLAYLIST).value val file = PlaylistsUtil.savePlaylistWithSongs(requireContext(), playlistWithSongs) withContext(Dispatchers.Main) { Toast.makeText( requireContext(), String.format(App.getContext().getString(R.string.saved_playlist_to), file), Toast.LENGTH_LONG ).show() dismiss() } } } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { return materialDialog(R.string.save_playlist_title) .setView(R.layout.loading) .create().colorButtons() } }