forked from recloudstream/cloudstream
none fix
This commit is contained in:
parent
fbb7046390
commit
710885a3b7
5 changed files with 136 additions and 83 deletions
|
@ -511,6 +511,9 @@ class HomeFragment : Fragment() {
|
|||
observe(homeViewModel.apiName) { apiName ->
|
||||
currentApiName = apiName
|
||||
home_api_fab?.text = apiName
|
||||
(home_master_recycler?.adapter as? HomeParentItemAdapterPreview?)?.setApiName(
|
||||
apiName
|
||||
)
|
||||
}
|
||||
|
||||
observe(homeViewModel.page) { data ->
|
||||
|
@ -529,6 +532,7 @@ class HomeFragment : Fragment() {
|
|||
|
||||
home_loading?.isVisible = false
|
||||
home_loading_error?.isVisible = false
|
||||
home_master_recycler?.isVisible = true
|
||||
//home_loaded?.isVisible = true
|
||||
if (toggleRandomButton) {
|
||||
//Flatten list
|
||||
|
@ -569,6 +573,7 @@ class HomeFragment : Fragment() {
|
|||
|
||||
home_loading?.isVisible = false
|
||||
home_loading_error?.isVisible = true
|
||||
home_master_recycler?.isVisible = false
|
||||
//home_loaded?.isVisible = false
|
||||
}
|
||||
is Resource.Loading -> {
|
||||
|
@ -576,6 +581,7 @@ class HomeFragment : Fragment() {
|
|||
home_loading_shimmer?.startShimmer()
|
||||
home_loading?.isVisible = true
|
||||
home_loading_error?.isVisible = false
|
||||
home_master_recycler?.isVisible = false
|
||||
//home_loaded?.isVisible = false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.lagradost.cloudstream3.ui.home
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.LinearLayout
|
||||
import androidx.appcompat.widget.SearchView
|
||||
import androidx.core.content.ContextCompat
|
||||
|
@ -38,6 +39,7 @@ import com.lagradost.cloudstream3.utils.UIHelper.setImage
|
|||
import kotlinx.android.synthetic.main.activity_main_tv.view.*
|
||||
import kotlinx.android.synthetic.main.fragment_home_head.view.*
|
||||
import kotlinx.android.synthetic.main.fragment_home_head.view.home_bookmarked_child_recyclerview
|
||||
import kotlinx.android.synthetic.main.fragment_home_head.view.home_header
|
||||
import kotlinx.android.synthetic.main.fragment_home_head_tv.view.*
|
||||
import kotlinx.android.synthetic.main.fragment_home_head_tv.view.home_bookmarked_holder
|
||||
import kotlinx.android.synthetic.main.fragment_home_head_tv.view.home_plan_to_watch_btt
|
||||
|
@ -68,6 +70,7 @@ class HomeParentItemAdapterPreview(
|
|||
private var resumeWatchingData: List<SearchResponse> = listOf()
|
||||
private var bookmarkData: Pair<Boolean, List<SearchResponse>> =
|
||||
false to listOf()
|
||||
private var apiName: String = "NONE"
|
||||
|
||||
val headItems = 1
|
||||
|
||||
|
@ -80,8 +83,8 @@ class HomeParentItemAdapterPreview(
|
|||
}
|
||||
|
||||
companion object {
|
||||
private const val VIEW_TYPE_HEADER = 4815
|
||||
private const val VIEW_TYPE_ITEM = 1623
|
||||
private const val VIEW_TYPE_HEADER = 2
|
||||
private const val VIEW_TYPE_ITEM = 1
|
||||
}
|
||||
|
||||
fun setResumeWatchingData(resumeWatching: List<SearchResponse>) {
|
||||
|
@ -95,6 +98,12 @@ class HomeParentItemAdapterPreview(
|
|||
//notifyItemChanged(0)
|
||||
}
|
||||
|
||||
fun setApiName(name: String) {
|
||||
apiName = name
|
||||
holder?.updateApiName(name)
|
||||
//notifyItemChanged(0)
|
||||
}
|
||||
|
||||
fun setBookmarkData(data: Pair<Boolean, List<SearchResponse>>) {
|
||||
bookmarkData = data
|
||||
holder?.updateBookmarks(data)
|
||||
|
@ -114,6 +123,7 @@ class HomeParentItemAdapterPreview(
|
|||
holder.updateResume(resumeWatchingData)
|
||||
holder.updateBookmarks(bookmarkData)
|
||||
holder.setAvailableWatchStatusTypes(availableWatchStatusTypes)
|
||||
holder.updateApiName(apiName)
|
||||
}
|
||||
else -> super.onBindViewHolder(holder, position - 1)
|
||||
}
|
||||
|
@ -184,7 +194,7 @@ class HomeParentItemAdapterPreview(
|
|||
) : RecyclerView.ViewHolder(itemView) {
|
||||
private var previewAdapter: HomeScrollAdapter? = null
|
||||
private val previewViewpager: ViewPager2? = itemView.home_preview_viewpager
|
||||
private val previewHeader: LinearLayout? = itemView.home_preview
|
||||
private val previewHeader: FrameLayout? = itemView.home_preview
|
||||
private val previewCallback: ViewPager2.OnPageChangeCallback =
|
||||
object : ViewPager2.OnPageChangeCallback() {
|
||||
override fun onPageSelected(position: Int) {
|
||||
|
@ -212,10 +222,6 @@ class HomeParentItemAdapterPreview(
|
|||
itemView.home_preview_description?.text =
|
||||
this.plot ?: ""
|
||||
itemView.home_preview_text?.text = this.name
|
||||
itemView.home_preview_change_api?.text = apiName
|
||||
itemView.home_preview_change_api?.setOnClickListener { view ->
|
||||
changeHomePageCallback(view)
|
||||
}
|
||||
itemView.home_preview_tags?.apply {
|
||||
removeAllViews()
|
||||
tags?.forEach { tag ->
|
||||
|
@ -366,6 +372,13 @@ class HomeParentItemAdapterPreview(
|
|||
)
|
||||
|
||||
init {
|
||||
itemView.home_preview_change_api?.setOnClickListener { view ->
|
||||
changeHomePageCallback(view)
|
||||
}
|
||||
itemView.home_preview_change_api2?.setOnClickListener { view ->
|
||||
changeHomePageCallback(view)
|
||||
}
|
||||
|
||||
previewViewpager?.apply {
|
||||
if (!isTvSettings())
|
||||
setPageTransformer(HomeScrollTransformer())
|
||||
|
@ -538,7 +551,15 @@ class HomeParentItemAdapterPreview(
|
|||
})
|
||||
}
|
||||
|
||||
fun updateApiName(name: String) {
|
||||
itemView.home_preview_change_api2?.text = name
|
||||
itemView.home_preview_change_api?.text = name
|
||||
}
|
||||
|
||||
fun updatePreview(preview: Resource<Pair<Boolean, List<LoadResponse>>>) {
|
||||
itemView.home_header?.isGone = preview is Resource.Loading
|
||||
itemView.home_preview_change_api2?.isGone = preview is Resource.Success
|
||||
|
||||
when (preview) {
|
||||
is Resource.Success -> {
|
||||
previewHeader?.isVisible = true
|
||||
|
@ -570,12 +591,17 @@ class HomeParentItemAdapterPreview(
|
|||
}
|
||||
|
||||
fun setAvailableWatchStatusTypes(availableWatchStatusTypes: Pair<Set<WatchType>, Set<WatchType>>) {
|
||||
var anyVisible = false
|
||||
for ((chip, watch) in toggleList) {
|
||||
chip?.apply {
|
||||
isVisible = availableWatchStatusTypes.second.contains(watch)
|
||||
isVisible = availableWatchStatusTypes.second.contains(watch).also {
|
||||
anyVisible = anyVisible || it
|
||||
}
|
||||
|
||||
isChecked = availableWatchStatusTypes.first.contains(watch)
|
||||
}
|
||||
}
|
||||
itemView.home_bookmarked_holder?.isVisible = anyVisible
|
||||
}
|
||||
}
|
||||
}
|
|
@ -265,7 +265,13 @@ class HomeViewModel : ViewModel() {
|
|||
_apiName.postValue(repo?.name)
|
||||
_randomItems.postValue(listOf())
|
||||
|
||||
if (repo?.hasMainPage == true) {
|
||||
if (repo?.hasMainPage != true) {
|
||||
_page.postValue(Resource.Success(emptyMap()))
|
||||
_preview.postValue(Resource.Failure(false, null, null, "No homepage"))
|
||||
return@ioSafe
|
||||
}
|
||||
|
||||
|
||||
_page.postValue(Resource.Loading())
|
||||
_preview.postValue(Resource.Loading())
|
||||
addJob?.cancel()
|
||||
|
@ -333,13 +339,10 @@ class HomeViewModel : ViewModel() {
|
|||
}
|
||||
is Resource.Failure -> {
|
||||
_page.postValue(data!!)
|
||||
_preview.postValue(data!!)
|
||||
}
|
||||
else -> Unit
|
||||
}
|
||||
} else {
|
||||
_page.postValue(Resource.Success(emptyMap()))
|
||||
_preview.postValue(Resource.Failure(false, null, null, "No homepage"))
|
||||
}
|
||||
}
|
||||
|
||||
fun loadAndCancel(preferredApiName: String?, forceReload: Boolean = true) =
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:orientation="vertical"
|
||||
android:id="@+id/home_preview"
|
||||
android:id="@+id/home_header"
|
||||
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/primaryBlackBackground"
|
||||
|
@ -9,6 +10,7 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/home_preview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="500dp">
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:orientation="vertical"
|
||||
android:id="@+id/home_preview"
|
||||
android:id="@+id/home_header"
|
||||
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/primaryBlackBackground"
|
||||
|
@ -9,6 +10,7 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/home_preview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
|
@ -35,7 +37,6 @@
|
|||
android:minWidth="150dp" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
@ -118,6 +119,21 @@
|
|||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="5dp">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/home_preview_change_api2"
|
||||
style="@style/BlackButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="top|start"
|
||||
android:layout_marginStart="@dimen/navbar_width"
|
||||
android:backgroundTint="@color/semiWhite"
|
||||
android:minWidth="150dp" />
|
||||
</FrameLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/home_watch_holder"
|
||||
android:layout_width="match_parent"
|
||||
|
|
Loading…
Reference in a new issue