diff --git a/app/src/main/java/com/github/libretube/constants/ShareObjectType.kt b/app/src/main/java/com/github/libretube/constants/ShareObjectType.kt new file mode 100644 index 000000000..175585f65 --- /dev/null +++ b/app/src/main/java/com/github/libretube/constants/ShareObjectType.kt @@ -0,0 +1,7 @@ +package com.github.libretube.constants + +object ShareObjectType { + const val VIDEO = 0 + const val PLAYLIST = 1 + const val CHANNEL = 2 +} diff --git a/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt index 1aca3e56a..f8dcf4668 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt @@ -49,7 +49,7 @@ class ChannelAdapter( videoInfo.text = video.views.formatShort() + " " + - ContextUtils.getApplicationContext().resources.getString(R.string.views_placeholder) + + root.context.getString(R.string.views_placeholder) + " • " + DateUtils.getRelativeTimeSpanString(video.uploaded!!) thumbnailDuration.text = diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/ShareDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/ShareDialog.kt index 1295d02b8..3c39f4670 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/ShareDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/ShareDialog.kt @@ -7,6 +7,7 @@ import androidx.fragment.app.DialogFragment import com.github.libretube.R import com.github.libretube.constants.PIPED_FRONTEND_URL import com.github.libretube.constants.PreferenceKeys +import com.github.libretube.constants.ShareObjectType import com.github.libretube.constants.YOUTUBE_FRONTEND_URL import com.github.libretube.databinding.DialogShareBinding import com.github.libretube.db.DatabaseHolder.Companion.Database @@ -16,8 +17,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder class ShareDialog( private val id: String, - private val isPlaylist: Boolean, - private val isChannel: Boolean, + private val shareObjectType: Int, private val position: Long? = null ) : DialogFragment() { private var binding: DialogShareBinding? = null @@ -51,14 +51,10 @@ class ShareDialog( // only available for custom instances else -> instanceUrl } - var path = if (!isChannel) { - if (!isPlaylist) { - "/watch?v=$id" - } else { - "/playlist?list=$id" - } - } else { - "/c/$id" + var path = when (shareObjectType) { + ShareObjectType.VIDEO -> "/watch?v=$id" + ShareObjectType.PLAYLIST -> "/playlist?list=$id" + else -> "/c/$id" } var url = "$host$path" diff --git a/app/src/main/java/com/github/libretube/ui/fragments/ChannelFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/ChannelFragment.kt index 7c8d6864d..3cc22c92c 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/ChannelFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/ChannelFragment.kt @@ -11,6 +11,7 @@ import com.github.libretube.R import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.SubscriptionHelper import com.github.libretube.constants.IntentData +import com.github.libretube.constants.ShareObjectType import com.github.libretube.databinding.FragmentChannelBinding import com.github.libretube.extensions.TAG import com.github.libretube.extensions.formatShort @@ -126,7 +127,7 @@ class ChannelFragment : BaseFragment() { } binding.channelShare.setOnClickListener { - val shareDialog = ShareDialog(response.name!!, false, true) + val shareDialog = ShareDialog(response.name!!, ShareObjectType.CHANNEL) shareDialog.show(childFragmentManager, ShareDialog::class.java.name) } } diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt index 86835bedc..131e2c2f8 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt @@ -40,6 +40,7 @@ import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.SubscriptionHelper import com.github.libretube.constants.IntentData import com.github.libretube.constants.PreferenceKeys +import com.github.libretube.constants.ShareObjectType import com.github.libretube.databinding.DoubleTapOverlayBinding import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding import com.github.libretube.databinding.FragmentPlayerBinding @@ -425,7 +426,7 @@ class PlayerFragment : BaseFragment() { // share button binding.relPlayerShare.setOnClickListener { - val shareDialog = ShareDialog(videoId!!, false, false, exoPlayer.currentPosition / 1000) + val shareDialog = ShareDialog(videoId!!, ShareObjectType.VIDEO, exoPlayer.currentPosition / 1000) shareDialog.show(childFragmentManager, ShareDialog::class.java.name) } diff --git a/app/src/main/java/com/github/libretube/ui/sheets/PlaylistOptionsBottomSheet.kt b/app/src/main/java/com/github/libretube/ui/sheets/PlaylistOptionsBottomSheet.kt index 803d53414..8c50750c1 100644 --- a/app/src/main/java/com/github/libretube/ui/sheets/PlaylistOptionsBottomSheet.kt +++ b/app/src/main/java/com/github/libretube/ui/sheets/PlaylistOptionsBottomSheet.kt @@ -6,6 +6,7 @@ import android.util.Log import android.widget.Toast import com.github.libretube.R import com.github.libretube.api.RetrofitInstance +import com.github.libretube.constants.ShareObjectType import com.github.libretube.databinding.DialogTextPreferenceBinding import com.github.libretube.extensions.TAG import com.github.libretube.extensions.toID @@ -74,7 +75,7 @@ class PlaylistOptionsBottomSheet( } // share the playlist context?.getString(R.string.share) -> { - val shareDialog = ShareDialog(playlistId, true, false) + val shareDialog = ShareDialog(playlistId, ShareObjectType.PLAYLIST) // using parentFragmentManager, childFragmentManager doesn't work here shareDialog.show(parentFragmentManager, ShareDialog::class.java.name) } diff --git a/app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt b/app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt index f54509045..f174e2a33 100644 --- a/app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt +++ b/app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.widget.Toast import com.github.libretube.R import com.github.libretube.constants.IntentData +import com.github.libretube.constants.ShareObjectType import com.github.libretube.ui.dialogs.AddToPlaylistDialog import com.github.libretube.ui.dialogs.DownloadDialog import com.github.libretube.ui.dialogs.ShareDialog @@ -73,7 +74,7 @@ class VideoOptionsBottomSheet( downloadDialog.show(parentFragmentManager, DownloadDialog::class.java.name) } context?.getString(R.string.share) -> { - val shareDialog = ShareDialog(videoId, false, false) + val shareDialog = ShareDialog(videoId, ShareObjectType.VIDEO) // using parentFragmentManager is important here shareDialog.show(parentFragmentManager, ShareDialog::class.java.name) }