mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
redirected downloadbutton longclick
This commit is contained in:
parent
3ae44d5675
commit
9755bbacb9
2 changed files with 80 additions and 42 deletions
|
@ -13,6 +13,7 @@ import com.lagradost.cloudstream3.R
|
|||
import com.lagradost.cloudstream3.databinding.ResultEpisodeBinding
|
||||
import com.lagradost.cloudstream3.databinding.ResultEpisodeLargeBinding
|
||||
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_ACTION_DOWNLOAD
|
||||
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_ACTION_LONG_CLICK
|
||||
import com.lagradost.cloudstream3.ui.download.DownloadClickEvent
|
||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings
|
||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
||||
|
@ -113,20 +114,30 @@ class EpisodeAdapter(
|
|||
return when (viewType) {
|
||||
0 -> {
|
||||
EpisodeCardViewHolderSmall(
|
||||
ResultEpisodeBinding.inflate(LayoutInflater.from(parent.context), parent, false),
|
||||
ResultEpisodeBinding.inflate(
|
||||
LayoutInflater.from(parent.context),
|
||||
parent,
|
||||
false
|
||||
),
|
||||
hasDownloadSupport,
|
||||
clickCallback,
|
||||
downloadClickCallback
|
||||
)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
EpisodeCardViewHolderLarge(
|
||||
ResultEpisodeLargeBinding.inflate(LayoutInflater.from(parent.context), parent, false),
|
||||
ResultEpisodeLargeBinding.inflate(
|
||||
LayoutInflater.from(parent.context),
|
||||
parent,
|
||||
false
|
||||
),
|
||||
hasDownloadSupport,
|
||||
clickCallback,
|
||||
downloadClickCallback
|
||||
)
|
||||
}
|
||||
|
||||
else -> throw NotImplementedError()
|
||||
}
|
||||
}
|
||||
|
@ -136,6 +147,7 @@ class EpisodeAdapter(
|
|||
is EpisodeCardViewHolderLarge -> {
|
||||
holder.bind(getItem(position))
|
||||
}
|
||||
|
||||
is EpisodeCardViewHolderSmall -> {
|
||||
holder.bind(getItem(position))
|
||||
}
|
||||
|
@ -159,7 +171,8 @@ class EpisodeAdapter(
|
|||
fun bind(card: ResultEpisode) {
|
||||
localCard = card
|
||||
|
||||
val setWidth = if(isTvSettings()) ViewGroup.LayoutParams.WRAP_CONTENT else ViewGroup.LayoutParams.MATCH_PARENT
|
||||
val setWidth =
|
||||
if (isTvSettings()) ViewGroup.LayoutParams.WRAP_CONTENT else ViewGroup.LayoutParams.MATCH_PARENT
|
||||
|
||||
binding.episodeLinHolder.layoutParams.width = setWidth
|
||||
binding.episodeHolderLarge.layoutParams.width = setWidth
|
||||
|
@ -169,7 +182,8 @@ class EpisodeAdapter(
|
|||
|
||||
binding.apply {
|
||||
downloadButton.isVisible = hasDownloadSupport
|
||||
downloadButton.setDefaultClickListener(VideoDownloadHelper.DownloadEpisodeCached(
|
||||
downloadButton.setDefaultClickListener(
|
||||
VideoDownloadHelper.DownloadEpisodeCached(
|
||||
card.name,
|
||||
card.poster,
|
||||
card.episode,
|
||||
|
@ -179,13 +193,22 @@ class EpisodeAdapter(
|
|||
card.rating,
|
||||
card.description,
|
||||
System.currentTimeMillis(),
|
||||
), null) {
|
||||
if (it.action == DOWNLOAD_ACTION_DOWNLOAD) {
|
||||
), null
|
||||
) {
|
||||
when (it.action) {
|
||||
DOWNLOAD_ACTION_DOWNLOAD -> {
|
||||
clickCallback.invoke(EpisodeClickEvent(ACTION_DOWNLOAD_EPISODE, card))
|
||||
} else {
|
||||
}
|
||||
|
||||
DOWNLOAD_ACTION_LONG_CLICK -> {
|
||||
clickCallback.invoke(EpisodeClickEvent(ACTION_DOWNLOAD_MIRROR, card))
|
||||
}
|
||||
|
||||
else -> {
|
||||
downloadClickCallback.invoke(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val name =
|
||||
if (card.name == null) "${episodeText.context.getString(R.string.episode)} ${card.episode}" else "${card.episode}. ${card.name}"
|
||||
|
@ -269,12 +292,14 @@ class EpisodeAdapter(
|
|||
val isTrueTv = isTrueTvSettings()
|
||||
|
||||
binding.episodeHolder.layoutParams.apply {
|
||||
width = if(isTvSettings()) ViewGroup.LayoutParams.WRAP_CONTENT else ViewGroup.LayoutParams.MATCH_PARENT
|
||||
width =
|
||||
if (isTvSettings()) ViewGroup.LayoutParams.WRAP_CONTENT else ViewGroup.LayoutParams.MATCH_PARENT
|
||||
}
|
||||
|
||||
binding.apply {
|
||||
downloadButton.isVisible = hasDownloadSupport
|
||||
downloadButton.setDefaultClickListener(VideoDownloadHelper.DownloadEpisodeCached(
|
||||
downloadButton.setDefaultClickListener(
|
||||
VideoDownloadHelper.DownloadEpisodeCached(
|
||||
card.name,
|
||||
card.poster,
|
||||
card.episode,
|
||||
|
@ -284,13 +309,22 @@ class EpisodeAdapter(
|
|||
card.rating,
|
||||
card.description,
|
||||
System.currentTimeMillis(),
|
||||
), null) {
|
||||
if (it.action == DOWNLOAD_ACTION_DOWNLOAD) {
|
||||
), null
|
||||
) {
|
||||
when (it.action) {
|
||||
DOWNLOAD_ACTION_DOWNLOAD -> {
|
||||
clickCallback.invoke(EpisodeClickEvent(ACTION_DOWNLOAD_EPISODE, card))
|
||||
} else {
|
||||
}
|
||||
|
||||
DOWNLOAD_ACTION_LONG_CLICK -> {
|
||||
clickCallback.invoke(EpisodeClickEvent(ACTION_DOWNLOAD_MIRROR, card))
|
||||
}
|
||||
|
||||
else -> {
|
||||
downloadClickCallback.invoke(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val name =
|
||||
if (card.name == null) "${episodeText.context.getString(R.string.episode)} ${card.episode}" else "${card.episode}. ${card.name}"
|
||||
|
|
|
@ -50,6 +50,7 @@ import com.lagradost.cloudstream3.mvvm.observeNullable
|
|||
import com.lagradost.cloudstream3.services.SubscriptionWorkManager
|
||||
import com.lagradost.cloudstream3.ui.WatchType
|
||||
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_ACTION_DOWNLOAD
|
||||
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_ACTION_LONG_CLICK
|
||||
import com.lagradost.cloudstream3.ui.download.DownloadButtonSetup
|
||||
import com.lagradost.cloudstream3.ui.player.CSPlayerEvent
|
||||
import com.lagradost.cloudstream3.ui.player.FullScreenPlayer
|
||||
|
@ -594,6 +595,9 @@ open class ResultFragmentPhone : FullScreenPlayer(),
|
|||
EpisodeClickEvent(ACTION_DOWNLOAD_EPISODE, ep)
|
||||
)
|
||||
}
|
||||
DOWNLOAD_ACTION_LONG_CLICK -> {
|
||||
viewModel.handleAction(EpisodeClickEvent(ACTION_DOWNLOAD_MIRROR, ep))
|
||||
}
|
||||
|
||||
else -> DownloadButtonSetup.handleDownloadClick(click)
|
||||
}
|
||||
|
@ -912,11 +916,11 @@ open class ResultFragmentPhone : FullScreenPlayer(),
|
|||
}
|
||||
|
||||
|
||||
observe(viewModel.loadedLinks) { load ->
|
||||
observeNullable(viewModel.loadedLinks) { load ->
|
||||
if (load == null) {
|
||||
loadingDialog?.dismissSafe(activity)
|
||||
loadingDialog = null
|
||||
return@observe
|
||||
return@observeNullable
|
||||
}
|
||||
if (loadingDialog?.isShowing != true) {
|
||||
loadingDialog?.dismissSafe(activity)
|
||||
|
|
Loading…
Reference in a new issue