diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapter.kt index 8b7832e2..e6999c9e 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapter.kt @@ -184,9 +184,8 @@ open class ParentItemAdapter( private val expandCallback: ((String) -> Unit)? = null, ) : RecyclerView.ViewHolder(itemView) { - val title: TextView = itemView.home_parent_item_title + val title: TextView = itemView.home_child_more_info val recyclerView: RecyclerView = itemView.home_child_recyclerview - private val moreInfo: FrameLayout? = itemView.home_child_more_info fun update(expand: HomeViewModel.ExpandableHomepageList) { val info = expand.list @@ -248,9 +247,10 @@ open class ParentItemAdapter( }) //(recyclerView.adapter as HomeChildItemAdapter).notifyDataSetChanged() - - moreInfo?.setOnClickListener { - moreInfoClickCallback.invoke(expand) + if (!isTvSettings()) { + title.setOnClickListener { + moreInfoClickCallback.invoke(expand) + } } } } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapterPreview.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapterPreview.kt index 7564a9de..94a1a526 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapterPreview.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapterPreview.kt @@ -14,6 +14,7 @@ import com.google.android.material.chip.Chip import com.google.android.material.chip.ChipDrawable import com.lagradost.cloudstream3.APIHolder.getId import com.lagradost.cloudstream3.AcraApplication.Companion.getActivity +import com.lagradost.cloudstream3.HomePageList import com.lagradost.cloudstream3.LoadResponse import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.SearchResponse @@ -31,9 +32,10 @@ import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showOptionSelectSt import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbarView import com.lagradost.cloudstream3.utils.UIHelper.setImage -import kotlinx.android.synthetic.main.activity_main_tv.view.* +import kotlinx.android.synthetic.main.activity_main.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_watch_parent_item_title 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_none_padding @@ -46,11 +48,12 @@ import kotlinx.android.synthetic.main.fragment_home_head_tv.view.home_type_on_ho import kotlinx.android.synthetic.main.fragment_home_head_tv.view.home_type_watching_btt import kotlinx.android.synthetic.main.fragment_home_head_tv.view.home_watch_child_recyclerview import kotlinx.android.synthetic.main.fragment_home_head_tv.view.home_watch_holder +import kotlinx.android.synthetic.main.toast.view.* class HomeParentItemAdapterPreview( items: MutableList, val clickCallback: (SearchClickCallback) -> Unit, - moreInfoClickCallback: (HomeViewModel.ExpandableHomepageList) -> Unit, + private val moreInfoClickCallback: (HomeViewModel.ExpandableHomepageList) -> Unit, expandCallback: ((String) -> Unit)? = null, private val loadCallback: (LoadClickCallback) -> Unit, private val loadMoreCallback: (() -> Unit), @@ -136,7 +139,8 @@ class HomeParentItemAdapterPreview( clickCallback, reloadStored, loadStoredData, - searchQueryCallback + searchQueryCallback, + moreInfoClickCallback ).also { this.holder = it } @@ -182,7 +186,8 @@ class HomeParentItemAdapterPreview( private val searchClickCallback: (SearchClickCallback) -> Unit, private val reloadStored: () -> Unit, private val loadStoredData: ((Set) -> Unit), - private val searchQueryCallback: ((Pair) -> Unit) + private val searchQueryCallback: ((Pair) -> Unit), + private val moreInfoClickCallback: (HomeViewModel.ExpandableHomepageList) -> Unit ) : RecyclerView.ViewHolder(itemView) { private var previewAdapter: HomeScrollAdapter? = null private val previewViewpager: ViewPager2? = itemView.home_preview_viewpager @@ -602,11 +607,43 @@ class HomeParentItemAdapterPreview( fun updateResume(resumeWatching: List) { resumeHolder?.isVisible = resumeWatching.isNotEmpty() resumeAdapter?.updateList(resumeWatching) + + if (!isTvSettings()) { + itemView.home_watch_parent_item_title?.setOnClickListener { + moreInfoClickCallback.invoke( + HomeViewModel.ExpandableHomepageList( + HomePageList( + itemView.home_watch_parent_item_title?.text.toString(), + resumeWatching, + false + ), 1, false + ) + ) + } + } } fun updateBookmarks(data: Pair>) { bookmarkHolder?.isVisible = data.first bookmarkAdapter?.updateList(data.second) + if (!isTvSettings()) { + itemView.home_bookmark_parent_item_title?.setOnClickListener { + val items = toggleList.mapNotNull { it.first }.filter { it.isChecked } + if (items.isEmpty()) return@setOnClickListener // we don't want to show an empty dialog + val textSum = items + .mapNotNull { it.text }.joinToString() + + moreInfoClickCallback.invoke( + HomeViewModel.ExpandableHomepageList( + HomePageList( + textSum, + data.second, + false + ), 1, false + ) + ) + } + } } fun setAvailableWatchStatusTypes(availableWatchStatusTypes: Pair, Set>) { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt index 4bc7bc48..6e249aa4 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt @@ -421,7 +421,6 @@ class ResultViewModel2 : ViewModel() { fun updateWatchStatus(currentResponse: LoadResponse, status: WatchType) { val currentId = currentResponse.getId() - val resultPage = currentResponse DataStoreHelper.setResultWatchState(currentId, status.internalId) val current = DataStoreHelper.getBookmarkedData(currentId) @@ -432,12 +431,12 @@ class ResultViewModel2 : ViewModel() { currentId, current?.bookmarkedTime ?: currentTime, currentTime, - resultPage.name, - resultPage.url, - resultPage.apiName, - resultPage.type, - resultPage.posterUrl, - resultPage.year + currentResponse.name, + currentResponse.url, + currentResponse.apiName, + currentResponse.type, + currentResponse.posterUrl, + currentResponse.year ) ) } @@ -1628,7 +1627,7 @@ class ResultViewModel2 : ViewModel() { if (ranges?.contains(range) != true) { // if the current ranges does not include the range then select the range with the closest matching start episode // this usually happends when dub has less episodes then sub -> the range does not exist - ranges?.minByOrNull { abs(it.startEpisode - range.startEpisode) }?.let { r -> + ranges?.minByOrNull { kotlin.math.abs(it.startEpisode - range.startEpisode) }?.let { r -> postEpisodeRange(indexer, r) return } diff --git a/app/src/main/res/layout/fragment_home_head.xml b/app/src/main/res/layout/fragment_home_head.xml index 28d7ca2f..da3a3bbd 100644 --- a/app/src/main/res/layout/fragment_home_head.xml +++ b/app/src/main/res/layout/fragment_home_head.xml @@ -1,13 +1,13 @@ - + android:orientation="vertical"> + android:layout_height="500dp" + tools:visibility="gone"> @@ -80,7 +82,6 @@ --> + android:text="@string/continue_watching" + app:drawableRightCompat="@drawable/ic_baseline_arrow_forward_24" + app:drawableTint="?attr/white" + android:background="?android:attr/selectableItemBackground" + android:contentDescription="@string/home_more_info"/> - - android:foreground="?android:attr/selectableItemBackgroundBorderless" - android:nextFocusLeft="@id/nav_rail_view" - android:nextFocusUp="@id/home_watch_child_recyclerview" - android:nextFocusForward="@id/home_bookmarked_child_recyclerview" - android:paddingStart="12dp" - android:paddingTop="5dp" - android:paddingEnd="12dp" - - android:paddingBottom="5dp" - android:requiresFadingEdge="horizontal"> - - + android:layout_marginEnd="50dp" + android:fadingEdge="horizontal" - + + - android:nextFocusLeft="@id/nav_rail_view" - android:nextFocusRight="@id/home_plan_to_watch_btt" - android:text="@string/type_watching" /> + - android:nextFocusLeft="@id/home_type_watching_btt" - android:nextFocusRight="@id/home_type_on_hold_btt" - android:text="@string/type_plan_to_watch" /> + - android:nextFocusLeft="@id/home_plan_to_watch_btt" - android:nextFocusRight="@id/home_type_dropped_btt" - android:text="@string/type_on_hold" /> + - android:nextFocusLeft="@id/home_type_on_hold_btt" - android:nextFocusRight="@id/home_type_completed_btt" - android:text="@string/type_dropped" /> + - android:layout_height="wrap_content" - android:nextFocusLeft="@id/home_type_dropped_btt" - android:text="@string/type_completed" /> - - + + + + + + + - - - - - - +