mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 00:10:32 +05:30
Merge pull request #3261 from Isira-Seneviratne/Dialog_bindings
Move dialog bindings to onCreateDialog() methods.
This commit is contained in:
commit
938dca2c9f
@ -12,7 +12,7 @@ import androidx.lifecycle.lifecycleScope
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.api.PlaylistsHelper
|
||||
import com.github.libretube.api.RetrofitInstance
|
||||
import com.github.libretube.databinding.DialogAddtoplaylistBinding
|
||||
import com.github.libretube.databinding.DialogAddToPlaylistBinding
|
||||
import com.github.libretube.extensions.TAG
|
||||
import com.github.libretube.extensions.toastFromMainThread
|
||||
import com.github.libretube.ui.models.PlaylistViewModel
|
||||
@ -27,26 +27,25 @@ import kotlinx.coroutines.launch
|
||||
class AddToPlaylistDialog(
|
||||
private val videoId: String? = null
|
||||
) : DialogFragment() {
|
||||
private lateinit var binding: DialogAddtoplaylistBinding
|
||||
private val viewModel: PlaylistViewModel by activityViewModels()
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
binding = DialogAddtoplaylistBinding.inflate(layoutInflater)
|
||||
val binding = DialogAddToPlaylistBinding.inflate(layoutInflater)
|
||||
|
||||
binding.createPlaylist.setOnClickListener {
|
||||
CreatePlaylistDialog {
|
||||
fetchPlaylists()
|
||||
fetchPlaylists(binding)
|
||||
}.show(childFragmentManager, null)
|
||||
}
|
||||
|
||||
fetchPlaylists()
|
||||
fetchPlaylists(binding)
|
||||
|
||||
return MaterialAlertDialogBuilder(requireContext())
|
||||
.setView(binding.root)
|
||||
.show()
|
||||
}
|
||||
|
||||
private fun fetchPlaylists() {
|
||||
private fun fetchPlaylists(binding: DialogAddToPlaylistBinding) {
|
||||
lifecycleScope.launchWhenCreated {
|
||||
val response = try {
|
||||
PlaylistsHelper.getPlaylists()
|
||||
|
@ -18,10 +18,8 @@ import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
class CreatePlaylistDialog(
|
||||
private val onSuccess: () -> Unit = {}
|
||||
) : DialogFragment() {
|
||||
private lateinit var binding: DialogCreatePlaylistBinding
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
binding = DialogCreatePlaylistBinding.inflate(layoutInflater)
|
||||
val binding = DialogCreatePlaylistBinding.inflate(layoutInflater)
|
||||
|
||||
binding.clonePlaylist.setOnClickListener {
|
||||
val playlistUrl = binding.playlistUrl.text.toString().toHttpUrlOrNull()
|
||||
|
@ -17,10 +17,8 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
class DeleteAccountDialog(
|
||||
private val onLogout: () -> Unit
|
||||
) : DialogFragment() {
|
||||
private lateinit var binding: DialogDeleteAccountBinding
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
binding = DialogDeleteAccountBinding.inflate(layoutInflater)
|
||||
val binding = DialogDeleteAccountBinding.inflate(layoutInflater)
|
||||
|
||||
binding.cancelButton.setOnClickListener {
|
||||
dialog?.dismiss()
|
||||
|
@ -27,12 +27,10 @@ import retrofit2.HttpException
|
||||
class DownloadDialog(
|
||||
private val videoId: String
|
||||
) : DialogFragment() {
|
||||
private lateinit var binding: DialogDownloadBinding
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
binding = DialogDownloadBinding.inflate(layoutInflater)
|
||||
val binding = DialogDownloadBinding.inflate(layoutInflater)
|
||||
|
||||
fetchAvailableSources()
|
||||
fetchAvailableSources(binding)
|
||||
|
||||
binding.fileName.filters += InputFilter { source, start, end, _, _, _ ->
|
||||
if (source.isNullOrBlank()) {
|
||||
@ -58,7 +56,7 @@ class DownloadDialog(
|
||||
.show()
|
||||
}
|
||||
|
||||
private fun fetchAvailableSources() {
|
||||
private fun fetchAvailableSources(binding: DialogDownloadBinding) {
|
||||
lifecycleScope.launchWhenCreated {
|
||||
val response = try {
|
||||
RetrofitInstance.api.getStreams(videoId)
|
||||
@ -72,11 +70,11 @@ class DownloadDialog(
|
||||
Toast.makeText(context, R.string.server_error, Toast.LENGTH_SHORT).show()
|
||||
return@launchWhenCreated
|
||||
}
|
||||
initDownloadOptions(response)
|
||||
initDownloadOptions(binding, response)
|
||||
}
|
||||
}
|
||||
|
||||
private fun initDownloadOptions(streams: Streams) {
|
||||
private fun initDownloadOptions(binding: DialogDownloadBinding, streams: Streams) {
|
||||
binding.fileName.setText(streams.title)
|
||||
|
||||
val videoStreams = streams.videoStreams.filter {
|
||||
@ -126,7 +124,7 @@ class DownloadDialog(
|
||||
binding.audioSpinner.adapter = audioArrayAdapter
|
||||
binding.subtitleSpinner.adapter = subtitleArrayAdapter
|
||||
|
||||
restorePreviousSelections(videoStreams, audioStreams, subtitles)
|
||||
restorePreviousSelections(binding, videoStreams, audioStreams, subtitles)
|
||||
|
||||
binding.download.setOnClickListener {
|
||||
if (binding.fileName.text.toString().isEmpty()) {
|
||||
@ -185,6 +183,7 @@ class DownloadDialog(
|
||||
* Restore the download selections from a previous session
|
||||
*/
|
||||
private fun restorePreviousSelections(
|
||||
binding: DialogDownloadBinding,
|
||||
videoStreams: List<PipedStream>,
|
||||
audioStreams: List<PipedStream>,
|
||||
subtitles: List<Subtitle>
|
||||
|
@ -22,10 +22,8 @@ import retrofit2.HttpException
|
||||
class LoginDialog(
|
||||
private val onLogin: () -> Unit
|
||||
) : DialogFragment() {
|
||||
private lateinit var binding: DialogLoginBinding
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
binding = DialogLoginBinding.inflate(layoutInflater)
|
||||
val binding = DialogLoginBinding.inflate(layoutInflater)
|
||||
|
||||
binding.login.setOnClickListener {
|
||||
val email = binding.username.text?.toString()
|
||||
|
@ -13,11 +13,9 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
class LogoutDialog(
|
||||
private val onLogout: () -> Unit
|
||||
) : DialogFragment() {
|
||||
private lateinit var binding: DialogLogoutBinding
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
binding = DialogLogoutBinding.inflate(layoutInflater)
|
||||
val binding = DialogLogoutBinding.inflate(layoutInflater)
|
||||
|
||||
val user = PreferenceHelper.getUsername()
|
||||
|
||||
|
@ -13,13 +13,9 @@ import com.github.libretube.ui.adapters.NavBarOptionsAdapter
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
|
||||
class NavBarOptionsDialog : DialogFragment() {
|
||||
private lateinit var binding: DialogNavbarOptionsBinding
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
binding = DialogNavbarOptionsBinding.inflate(layoutInflater)
|
||||
|
||||
val binding = DialogNavbarOptionsBinding.inflate(layoutInflater)
|
||||
val options = NavBarHelper.getNavBarItems(requireContext())
|
||||
|
||||
val adapter = NavBarOptionsAdapter(
|
||||
options.toMutableList(),
|
||||
NavBarHelper.getStartFragmentId(requireContext())
|
||||
|
Loading…
x
Reference in New Issue
Block a user