mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 15:30:31 +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 com.github.libretube.databinding.LegacySubscriptionChannelBinding
|
||||
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.util.ImageHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
@ -36,6 +38,12 @@ class LegacySubscriptionAdapter(
|
||||
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.setWatchProgressLength
|
||||
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.VideoOptionsBottomSheet
|
||||
import com.github.libretube.ui.viewholders.SearchViewHolder
|
||||
@ -127,6 +128,12 @@ class SearchAdapter(
|
||||
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())
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,9 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.api.obj.Subscription
|
||||
import com.github.libretube.databinding.ChannelSubscriptionRowBinding
|
||||
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.sheets.ChannelOptionsBottomSheet
|
||||
import com.github.libretube.ui.viewholders.SubscriptionChannelViewHolder
|
||||
import com.github.libretube.util.ImageHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
@ -36,6 +38,12 @@ class SubscriptionChannelAdapter(
|
||||
root.setOnClickListener {
|
||||
NavigationHelper.navigateChannel(root.context, subscription.url)
|
||||
}
|
||||
root.setOnLongClickListener {
|
||||
ChannelOptionsBottomSheet(subscription.url!!.toID(), subscription.name)
|
||||
.show((root.context as BaseActivity).supportFragmentManager)
|
||||
true
|
||||
}
|
||||
|
||||
subscriptionSubscribe.setupSubscriptionButton(
|
||||
subscription.url?.toID(),
|
||||
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