Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showOptionSelectSt
import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbarMargin
import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbarView
import com.lagradost.cloudstream3.utils.UIHelper.populateChips
import com.lagradost.cloudstream3.utils.UiImage

class HomeParentItemAdapterPreview(
val fragment: LifecycleOwner,
Expand Down Expand Up @@ -350,6 +351,42 @@ class HomeParentItemAdapterPreview(
R.style.ChipFilledSemiTransparent
)


val logoUrl = item.logoUrl?.takeIf { it.isNotBlank() }

homeBackgroundPosterWatermarkBadgeHolder.isVisible = false
homeBackgroundPosterWatermarkBadgeHolder.alpha = 0f
homePreviewText.isVisible = false

if (logoUrl != null) {
homeBackgroundPosterWatermarkBadgeHolder.loadImage(
imageData = UiImage.Image(
logoUrl,
headers = item.posterHeaders
),
builder = {
listener(
onSuccess = { _, _ ->
// logo loaded → show logo only
homeBackgroundPosterWatermarkBadgeHolder.isVisible = true
homeBackgroundPosterWatermarkBadgeHolder.alpha = 1f
homePreviewText.isVisible = false
},
onError = { _, _ ->
// logo failed → show title
homeBackgroundPosterWatermarkBadgeHolder.isVisible = false
homePreviewText.isVisible = true
}
)
}
)
} else {
// no logo → show title immediately
homeBackgroundPosterWatermarkBadgeHolder.isVisible = false
homePreviewText.isVisible = true
}


homePreviewTags.isGone =
item.tags.isNullOrEmpty()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isGone
import androidx.core.view.isVisible
import com.lagradost.cloudstream3.LoadResponse
import com.lagradost.cloudstream3.databinding.HomeScrollViewBinding
import com.lagradost.cloudstream3.databinding.HomeScrollViewTvBinding
Expand All @@ -15,6 +16,7 @@ import com.lagradost.cloudstream3.ui.settings.Globals.TV
import com.lagradost.cloudstream3.ui.settings.Globals.isLandscape
import com.lagradost.cloudstream3.ui.settings.Globals.isLayout
import com.lagradost.cloudstream3.utils.ImageLoader.loadImage
import com.lagradost.cloudstream3.utils.UiImage

class HomeScrollAdapter(
val callback: ((View, Int, LoadResponse) -> Unit)
Expand Down Expand Up @@ -66,6 +68,31 @@ class HomeScrollAdapter(
maxLines = 2
}
binding.homeScrollPreviewTitle.text = item.name

binding.homePreviewLogo.isVisible = false
binding.homeScrollPreviewTitle.isVisible = false

val logoUrl = item.logoUrl?.takeIf { it.isNotBlank() }
if (logoUrl != null) {
binding.homePreviewLogo.loadImage(
imageData = UiImage.Image(logoUrl,item.posterHeaders),
builder = {
listener(
onSuccess = { _, _ ->
// logo really loaded
binding.homePreviewLogo.isVisible = true
binding.homeScrollPreviewTitle.isVisible = false
},
onError = { _, _ ->
// logo failed → show title
binding.homePreviewLogo.isVisible = false
binding.homeScrollPreviewTitle.isVisible = true
}
)
}
)
}

}

is HomeScrollViewTvBinding -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ import com.lagradost.cloudstream3.utils.UIHelper.populateChips
import com.lagradost.cloudstream3.utils.UIHelper.popupMenuNoIconsAndNoStringRes
import com.lagradost.cloudstream3.utils.UIHelper.setListViewHeightBasedOnItems
import com.lagradost.cloudstream3.utils.UIHelper.setNavigationBarColorCompat
import com.lagradost.cloudstream3.utils.UiImage
import com.lagradost.cloudstream3.utils.VideoDownloadHelper
import com.lagradost.cloudstream3.utils.getImageFromDrawable
import com.lagradost.cloudstream3.utils.setText
Expand Down Expand Up @@ -161,6 +162,7 @@ open class ResultFragmentPhone : FullScreenPlayer() {
}

private fun loadTrailer(index: Int? = null) {

val isSuccess =
currentTrailers.getOrNull(index ?: currentTrailerIndex)?.let { (extractedTrailerLink,_) ->
context?.let { ctx ->
Expand Down Expand Up @@ -189,6 +191,7 @@ open class ResultFragmentPhone : FullScreenPlayer() {
// result_trailer_loading?.isVisible = isSuccess
val turnVis = !isSuccess && !isFullScreenPlayer
resultBinding?.apply {
resultTitle.isVisible = isSuccess
resultSmallscreenHolder.isVisible = turnVis
resultPosterBackgroundHolder.apply {
val fadeIn: Animation = AlphaAnimation(alpha, if (turnVis) 1.0f else 0.0f).apply {
Expand Down Expand Up @@ -800,6 +803,32 @@ open class ResultFragmentPhone : FullScreenPlayer() {
}
}

if (!d.logoUrl.isNullOrBlank()) {
backgroundPosterWatermarkBadge.isVisible = true
resultTitle.isVisible = false

backgroundPosterWatermarkBadge.loadImage(
imageData = UiImage.Image(d.logoUrl,headers = d.posterHeaders),
builder = {
listener(
onSuccess = { _, _ ->
backgroundPosterWatermarkBadge.isVisible = true
resultTitle.isVisible = false
},
onError = { _, _ ->
backgroundPosterWatermarkBadge.isVisible = false
resultTitle.isVisible = true
}
)
}
)

} else {
backgroundPosterWatermarkBadge.isVisible = false
resultTitle.isVisible = true
}


var isExpanded = false
resultDescription.apply {
setTextHtml(d.plotText)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,14 @@ import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard
import com.lagradost.cloudstream3.utils.UIHelper.navigate
import com.lagradost.cloudstream3.utils.UIHelper.populateChips
import com.lagradost.cloudstream3.utils.UIHelper.setNavigationBarColorCompat
import com.lagradost.cloudstream3.utils.UiImage
import com.lagradost.cloudstream3.utils.getImageFromDrawable
import com.lagradost.cloudstream3.utils.setText
import com.lagradost.cloudstream3.utils.setTextHtml
import com.lagradost.cloudstream3.utils.txt

class ResultFragmentTv : BaseFragment<FragmentResultTvBinding>(
BaseFragment.BindingCreator.Inflate(FragmentResultTvBinding::inflate)
BindingCreator.Inflate(FragmentResultTvBinding::inflate)
) {

private lateinit var viewModel: ResultViewModel2
Expand Down Expand Up @@ -160,7 +162,7 @@ class ResultFragmentTv : BaseFragment<FragmentResultTvBinding>(
// very dirty selection
resultRecommendationsFilterSelection.isVisible = apiNames.size > 1
resultRecommendationsFilterSelection.update(apiNames.map {
com.lagradost.cloudstream3.utils.txt(
txt(
it
) to it
})
Expand Down Expand Up @@ -605,10 +607,10 @@ class ResultFragmentTv : BaseFragment<FragmentResultTvBinding>(
} else R.string.favorite_removed

val name = (viewModel.page.value as? Resource.Success)?.value?.title
?: com.lagradost.cloudstream3.utils.txt(R.string.no_data)
?: txt(R.string.no_data)
.asStringNull(context) ?: ""
CommonActivity.showToast(
com.lagradost.cloudstream3.utils.txt(
txt(
message,
name
), Toast.LENGTH_SHORT
Expand Down Expand Up @@ -646,10 +648,10 @@ class ResultFragmentTv : BaseFragment<FragmentResultTvBinding>(
} else R.string.subscription_deleted

val name = (viewModel.page.value as? Resource.Success)?.value?.title
?: com.lagradost.cloudstream3.utils.txt(R.string.no_data)
?: txt(R.string.no_data)
.asStringNull(context) ?: ""
CommonActivity.showToast(
com.lagradost.cloudstream3.utils.txt(
txt(
message,
name
), Toast.LENGTH_SHORT
Expand Down Expand Up @@ -909,6 +911,35 @@ class ResultFragmentTv : BaseFragment<FragmentResultTvBinding>(
backgroundPoster.loadImage(d.posterBackgroundImage) {
error { getImageFromDrawable(context ?: return@error null, error) }
}

if (!d.logoUrl.isNullOrBlank()) {

backgroundPosterWatermarkBadgeHolder.isVisible = true
resultTitle.isVisible = false

backgroundPosterWatermarkBadgeHolder.loadImage(
imageData = UiImage.Image(d.logoUrl,headers = d.posterHeaders),
builder = {
listener(
onSuccess = { _, _ ->
backgroundPosterWatermarkBadgeHolder.isVisible = true
resultTitle.isVisible = false
},
onError = { _, _ ->
backgroundPosterWatermarkBadgeHolder.isVisible = false
resultTitle.isVisible = true
}
)
}
)

} else {
backgroundPosterWatermarkBadgeHolder.isVisible = false
resultTitle.isVisible = true
}



comingSoon = d.comingSoon
resultTvComingSoon.isVisible = d.comingSoon

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ data class ResultData(

val posterImage: String?,
val posterBackgroundImage: String?,
val logoUrl: String?,
val plotText: UiText,
val apiName: UiText,
val ratingText: UiText?,
Expand Down Expand Up @@ -245,6 +246,7 @@ fun LoadResponse.toResultData(repo: APIRepository): ResultData {
plot!!
),
backgroundPosterUrl = backgroundPosterUrl,
logoUrl = logoUrl,
title = name,
typeText = txt(
when (type) {
Expand Down Expand Up @@ -1895,6 +1897,7 @@ class ResultViewModel2 : ViewModel() {
// set posters, might fuck up due to headers idk
posterUrl = posterUrl ?: res?.image
backgroundPosterUrl = backgroundPosterUrl ?: res?.cover
logoUrl = logoUrl
},
{
if (meta == null) return@runAllAsync
Expand Down Expand Up @@ -2695,6 +2698,7 @@ class ResultViewModel2 : ViewModel() {
override var syncData: MutableMap<String, String> = mutableMapOf(),
override var posterHeaders: Map<String, String>? = null,
override var backgroundPosterUrl: String? = null,
override var logoUrl: String? = null,
override var contentRating: String? = null,
override var uniqueUrl: String = url,
val id: Int?,
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/layout/fragment_home_head_tv.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,15 @@
android:orientation="vertical"
android:padding="10dp">

<ImageView
android:id="@+id/home_background_poster_watermark_badge_holder"
android:layout_width="wrap_content"
android:layout_height="72dp"
android:minHeight="72dp"
android:maxWidth="220dp"
android:scaleType="fitStart"
android:adjustViewBounds="true" />


<TextView
android:id="@+id/home_preview_text"
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/res/layout/fragment_result.xml
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,21 @@
android:layout_height="60dp"
android:layout_gravity="bottom"
android:background="@drawable/background_shadow" />

<ImageView
android:id="@+id/background_poster_watermark_badge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="220dp"
android:maxHeight="64dp"
android:layout_gravity="bottom|start"
android:layout_marginStart="@dimen/result_padding"
android:layout_marginBottom="12dp"
android:paddingBottom="4dp"
android:adjustViewBounds="true"
android:scaleType="fitStart"
android:contentDescription="@null" />

</FrameLayout>
</FrameLayout>

Expand Down
16 changes: 16 additions & 0 deletions app/src/main/res/layout/fragment_result_tv.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:layout_height="275dp"
android:visibility="visible">


<com.lagradost.cloudstream3.utils.PercentageCropImageView
android:id="@+id/background_poster"
android:layout_width="match_parent"
Expand All @@ -42,6 +43,20 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:layout_height="120dp"
android:layout_gravity="bottom"
android:src="@drawable/background_shadow" />

<ImageView
android:id="@+id/background_poster_watermark_badge_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="220dp"
android:maxHeight="72dp"
android:layout_gravity="bottom|start"
android:layout_marginStart="@dimen/result_padding"
android:layout_marginBottom="56dp"
android:adjustViewBounds="true"
android:scaleType="fitStart"
android:contentDescription="@null" />

</FrameLayout>

<com.facebook.shimmer.ShimmerFrameLayout
Expand Down Expand Up @@ -897,6 +912,7 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:visibility="gone"
app:cardCornerRadius="@dimen/rounded_image_radius">


<ImageView
android:id="@+id/result_poster"
android:layout_width="100dp"
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/layout/home_scroll_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@
android:layout_marginBottom="100dp"
android:orientation="vertical">

<ImageView
android:id="@+id/home_preview_logo"
android:layout_width="260dp"
android:layout_height="80dp"
android:layout_gravity="center_horizontal|bottom"
android:scaleType="fitCenter"
android:paddingBottom="10dp"
android:contentDescription="@null" />

<TextView
android:id="@+id/home_scroll_preview_title"
android:layout_width="wrap_content"
Expand Down
Loading