From 58efe901d912a0186db24588fb6bcb99d34fcba6 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Fri, 26 Aug 2022 09:37:28 +0200 Subject: [PATCH] allow toggling share with time code in dialog --- .../github/libretube/dialogs/ShareDialog.kt | 20 ++++++++---- app/src/main/res/layout/dialog_share.xml | 31 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 +- 3 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/layout/dialog_share.xml diff --git a/app/src/main/java/com/github/libretube/dialogs/ShareDialog.kt b/app/src/main/java/com/github/libretube/dialogs/ShareDialog.kt index acd7b4d89..d34ef2d2d 100644 --- a/app/src/main/java/com/github/libretube/dialogs/ShareDialog.kt +++ b/app/src/main/java/com/github/libretube/dialogs/ShareDialog.kt @@ -7,6 +7,7 @@ import androidx.fragment.app.DialogFragment import com.github.libretube.PIPED_FRONTEND_URL import com.github.libretube.R import com.github.libretube.YOUTUBE_FRONTEND_URL +import com.github.libretube.databinding.DialogShareBinding import com.github.libretube.db.DatabaseHolder import com.github.libretube.db.obj.CustomInstance import com.github.libretube.extensions.await @@ -17,8 +18,9 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder class ShareDialog( private val id: String, private val isPlaylist: Boolean, - private val position: Long = 0L + private val position: Long? = null ) : DialogFragment() { + private var binding: DialogShareBinding? = null override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { var shareOptions = arrayOf( @@ -30,6 +32,14 @@ class ShareDialog( // add instanceUrl option if custom instance frontend url available if (instanceUrl != "") shareOptions += getString(R.string.instance) + if (position != null) { + binding = DialogShareBinding.inflate(layoutInflater) + binding!!.timeCodeSwitch.isChecked = PreferenceHelper.getBoolean( + PreferenceKeys.SHARE_WITH_TIME_CODE, + true + ) + } + return MaterialAlertDialogBuilder(requireContext()) .setTitle(context?.getString(R.string.share)) .setItems( @@ -43,11 +53,8 @@ class ShareDialog( } val path = if (!isPlaylist) "/watch?v=$id" else "/playlist?list=$id" var url = "$host$path" - if (PreferenceHelper.getBoolean( - PreferenceKeys.SHARE_WITH_TIME_CODE, - true - ) - ) { + + if (binding != null && binding!!.timeCodeSwitch.isChecked) { url += "?t=$position" } @@ -61,6 +68,7 @@ class ShareDialog( Intent.createChooser(intent, context?.getString(R.string.shareTo)) ) } + .setView(binding?.root) .show() } diff --git a/app/src/main/res/layout/dialog_share.xml b/app/src/main/res/layout/dialog_share.xml new file mode 100644 index 000000000..fe4005185 --- /dev/null +++ b/app/src/main/res/layout/dialog_share.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d33f0b529..f51fca128 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -283,7 +283,7 @@ Error Copied Download succeeded - Share with start time + Share with time code Export Subscriptions Skip buttons Show buttons to skip to the next or previous video.