remember selected playlist

This commit is contained in:
Bnyro 2022-08-06 18:57:07 +02:00
parent 3b19d9b995
commit 35fc7ddef4
4 changed files with 19 additions and 10 deletions

View File

@ -13,4 +13,7 @@ object Globals {
// for downloads
var IS_DOWNLOAD_RUNNING = false
// for playlists
var SELECTED_PLAYLIST_ID: String? = null
}

View File

@ -8,6 +8,7 @@ import android.widget.Toast
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import com.github.libretube.Globals
import com.github.libretube.R
import com.github.libretube.databinding.DialogAddtoplaylistBinding
import com.github.libretube.obj.PlaylistId
@ -18,7 +19,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
import retrofit2.HttpException
import java.io.IOException
class AddtoPlaylistDialog : DialogFragment() {
class AddToPlaylistDialog : DialogFragment() {
private val TAG = "AddToPlaylistDialog"
private lateinit var binding: DialogAddtoplaylistBinding
@ -59,24 +60,29 @@ class AddtoPlaylistDialog : DialogFragment() {
return@launchWhenCreated
}
if (response.isNotEmpty()) {
var names = emptyList<String>().toMutableList()
for (playlist in response) {
names.add(playlist.name!!)
}
val names = response.map { it.name }
val arrayAdapter =
ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, names)
arrayAdapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item
)
binding.playlistsSpinner.adapter = arrayAdapter
if (Globals.SELECTED_PLAYLIST_ID != null) {
var selectionIndex = 0
response.forEachIndexed { index, playlist ->
if (playlist.id == Globals.SELECTED_PLAYLIST_ID) selectionIndex = index
}
binding.playlistsSpinner.setSelection(selectionIndex)
}
runOnUiThread {
binding.addToPlaylist.setOnClickListener {
val index = binding.playlistsSpinner.selectedItemPosition
Globals.SELECTED_PLAYLIST_ID = response[index].id!!
addToPlaylist(
response[binding.playlistsSpinner.selectedItemPosition].id!!
response[index].id!!
)
}
}
} else {
}
}
}

View File

@ -50,7 +50,7 @@ class VideoOptionsDialog(private val videoId: String, context: Context) : Dialog
context?.getString(R.string.addToPlaylist) -> {
val token = PreferenceHelper.getToken()
if (token != "") {
val newFragment = AddtoPlaylistDialog()
val newFragment = AddToPlaylistDialog()
val bundle = Bundle()
bundle.putString("videoId", videoId)
newFragment.arguments = bundle

View File

@ -46,7 +46,7 @@ import com.github.libretube.adapters.TrendingAdapter
import com.github.libretube.databinding.DoubleTapOverlayBinding
import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding
import com.github.libretube.databinding.FragmentPlayerBinding
import com.github.libretube.dialogs.AddtoPlaylistDialog
import com.github.libretube.dialogs.AddToPlaylistDialog
import com.github.libretube.dialogs.DownloadDialog
import com.github.libretube.dialogs.ShareDialog
import com.github.libretube.obj.ChapterSegment
@ -1097,7 +1097,7 @@ class PlayerFragment : Fragment() {
if (token != "") {
isSubscribed()
binding.relPlayerSave.setOnClickListener {
val newFragment = AddtoPlaylistDialog()
val newFragment = AddToPlaylistDialog()
val bundle = Bundle()
bundle.putString("videoId", videoId)
newFragment.arguments = bundle