mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 23:40:33 +05:30
add a channel share bottom sheet
This commit is contained in:
parent
7923347d91
commit
9294df32d8
@ -5,6 +5,8 @@ import android.view.ViewGroup
|
|||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.github.libretube.databinding.LegacySubscriptionChannelBinding
|
import com.github.libretube.databinding.LegacySubscriptionChannelBinding
|
||||||
import com.github.libretube.extensions.toID
|
import com.github.libretube.extensions.toID
|
||||||
|
import com.github.libretube.ui.base.BaseActivity
|
||||||
|
import com.github.libretube.ui.sheets.ChannelOptionsBottomSheet
|
||||||
import com.github.libretube.ui.viewholders.LegacySubscriptionViewHolder
|
import com.github.libretube.ui.viewholders.LegacySubscriptionViewHolder
|
||||||
import com.github.libretube.util.ImageHelper
|
import com.github.libretube.util.ImageHelper
|
||||||
import com.github.libretube.util.NavigationHelper
|
import com.github.libretube.util.NavigationHelper
|
||||||
@ -36,6 +38,12 @@ class LegacySubscriptionAdapter(
|
|||||||
subscription.url!!.toID()
|
subscription.url!!.toID()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
root.setOnLongClickListener {
|
||||||
|
ChannelOptionsBottomSheet(subscription.url!!.toID(), subscription.name)
|
||||||
|
.show((root.context as BaseActivity).supportFragmentManager)
|
||||||
|
true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import com.github.libretube.ui.base.BaseActivity
|
|||||||
import com.github.libretube.ui.extensions.setFormattedDuration
|
import com.github.libretube.ui.extensions.setFormattedDuration
|
||||||
import com.github.libretube.ui.extensions.setWatchProgressLength
|
import com.github.libretube.ui.extensions.setWatchProgressLength
|
||||||
import com.github.libretube.ui.extensions.setupSubscriptionButton
|
import com.github.libretube.ui.extensions.setupSubscriptionButton
|
||||||
|
import com.github.libretube.ui.sheets.ChannelOptionsBottomSheet
|
||||||
import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet
|
import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet
|
||||||
import com.github.libretube.ui.sheets.VideoOptionsBottomSheet
|
import com.github.libretube.ui.sheets.VideoOptionsBottomSheet
|
||||||
import com.github.libretube.ui.viewholders.SearchViewHolder
|
import com.github.libretube.ui.viewholders.SearchViewHolder
|
||||||
@ -127,6 +128,12 @@ class SearchAdapter(
|
|||||||
NavigationHelper.navigateChannel(root.context, item.url)
|
NavigationHelper.navigateChannel(root.context, item.url)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
root.setOnLongClickListener {
|
||||||
|
ChannelOptionsBottomSheet(item.url!!.toID(), item.name)
|
||||||
|
.show((root.context as BaseActivity).supportFragmentManager)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
binding.searchSubButton.setupSubscriptionButton(item.url?.toID(), item.name?.toID())
|
binding.searchSubButton.setupSubscriptionButton(item.url?.toID(), item.name?.toID())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,9 @@ import androidx.recyclerview.widget.RecyclerView
|
|||||||
import com.github.libretube.api.obj.Subscription
|
import com.github.libretube.api.obj.Subscription
|
||||||
import com.github.libretube.databinding.ChannelSubscriptionRowBinding
|
import com.github.libretube.databinding.ChannelSubscriptionRowBinding
|
||||||
import com.github.libretube.extensions.toID
|
import com.github.libretube.extensions.toID
|
||||||
|
import com.github.libretube.ui.base.BaseActivity
|
||||||
import com.github.libretube.ui.extensions.setupSubscriptionButton
|
import com.github.libretube.ui.extensions.setupSubscriptionButton
|
||||||
|
import com.github.libretube.ui.sheets.ChannelOptionsBottomSheet
|
||||||
import com.github.libretube.ui.viewholders.SubscriptionChannelViewHolder
|
import com.github.libretube.ui.viewholders.SubscriptionChannelViewHolder
|
||||||
import com.github.libretube.util.ImageHelper
|
import com.github.libretube.util.ImageHelper
|
||||||
import com.github.libretube.util.NavigationHelper
|
import com.github.libretube.util.NavigationHelper
|
||||||
@ -36,6 +38,12 @@ class SubscriptionChannelAdapter(
|
|||||||
root.setOnClickListener {
|
root.setOnClickListener {
|
||||||
NavigationHelper.navigateChannel(root.context, subscription.url)
|
NavigationHelper.navigateChannel(root.context, subscription.url)
|
||||||
}
|
}
|
||||||
|
root.setOnLongClickListener {
|
||||||
|
ChannelOptionsBottomSheet(subscription.url!!.toID(), subscription.name)
|
||||||
|
.show((root.context as BaseActivity).supportFragmentManager)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
subscriptionSubscribe.setupSubscriptionButton(
|
subscriptionSubscribe.setupSubscriptionButton(
|
||||||
subscription.url?.toID(),
|
subscription.url?.toID(),
|
||||||
subscription.name,
|
subscription.name,
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package com.github.libretube.ui.sheets
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import com.github.libretube.R
|
||||||
|
import com.github.libretube.enums.ShareObjectType
|
||||||
|
import com.github.libretube.obj.ShareData
|
||||||
|
import com.github.libretube.ui.dialogs.ShareDialog
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dialog with different options for a selected video.
|
||||||
|
*
|
||||||
|
* Needs the [videoId] to load the content from the right video.
|
||||||
|
*/
|
||||||
|
class ChannelOptionsBottomSheet(
|
||||||
|
private val channelId: String,
|
||||||
|
private val channelName: String?
|
||||||
|
) : BaseBottomSheet() {
|
||||||
|
private val shareData = ShareData(currentChannel = channelName)
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
// List that stores the different menu options. In the future could be add more options here.
|
||||||
|
val optionsList = mutableListOf(
|
||||||
|
context?.getString(R.string.share)!!
|
||||||
|
)
|
||||||
|
|
||||||
|
setSimpleItems(optionsList) { which ->
|
||||||
|
when (optionsList[which]) {
|
||||||
|
getString(R.string.share) -> {
|
||||||
|
ShareDialog(channelId, ShareObjectType.CHANNEL, shareData)
|
||||||
|
.show(parentFragmentManager, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user