fix crash on early loading

Changelog: changed
This commit is contained in:
Kai 2025-04-08 18:58:56 -05:00
parent c7c3ddfc96
commit 81162c5df2
No known key found for this signature in database

View File

@ -42,7 +42,7 @@ class ShortsFragment : MainFragment() {
private lateinit var overlayLoading: FrameLayout private lateinit var overlayLoading: FrameLayout
private lateinit var overlayLoadingSpinner: ImageView private lateinit var overlayLoadingSpinner: ImageView
private lateinit var overlayQualityContainer: FrameLayout private lateinit var overlayQualityContainer: FrameLayout
private lateinit var customViewAdapter: CustomViewAdapter private var customViewAdapter: CustomViewAdapter? = null
init { init {
loadPager() loadPager()
@ -68,25 +68,27 @@ class ShortsFragment : MainFragment() {
loadPager() loadPager()
} }
loadPagerJob!!.invokeOnCompletion { Logger.i(TAG, "Creating adapter")
Logger.i(TAG, "Creating adapter") val customViewAdapter =
customViewAdapter = CustomViewAdapter(videos, layoutInflater, this@ShortsFragment, overlayQualityContainer) {
CustomViewAdapter(videos, layoutInflater, this@ShortsFragment, overlayQualityContainer) { if (!shortsPager!!.hasMorePages()) {
if (!shortsPager!!.hasMorePages()) { return@CustomViewAdapter
return@CustomViewAdapter
}
nextPage()
}
customViewAdapter.onResetTriggered.subscribe {
setLoading(true)
loadPager()
loadPagerJob!!.invokeOnCompletion {
setLoading(false)
} }
nextPage()
} }
val viewPager = viewPager!! customViewAdapter.onResetTriggered.subscribe {
viewPager.adapter = customViewAdapter setLoading(true)
loadPager()
loadPagerJob!!.invokeOnCompletion {
setLoading(false)
}
}
val viewPager = viewPager!!
viewPager.adapter = customViewAdapter
this.customViewAdapter = customViewAdapter
loadPagerJob!!.invokeOnCompletion {
viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
@OptIn(UnstableApi::class) @OptIn(UnstableApi::class)
override fun onPageSelected(position: Int) { override fun onPageSelected(position: Int) {
@ -133,9 +135,9 @@ class ShortsFragment : MainFragment() {
val newVideos = shortsPager!!.getResults() val newVideos = shortsPager!!.getResults()
CoroutineScope(Dispatchers.Main).launch { CoroutineScope(Dispatchers.Main).launch {
val prevCount = customViewAdapter.itemCount val prevCount = customViewAdapter!!.itemCount
videos.addAll(newVideos) videos.addAll(newVideos)
customViewAdapter.notifyItemRangeInserted(prevCount, newVideos.size) customViewAdapter!!.notifyItemRangeInserted(prevCount, newVideos.size)
} }
} }
} }
@ -185,7 +187,7 @@ class ShortsFragment : MainFragment() {
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
customViewAdapter.previousShownView?.pause() customViewAdapter?.previousShownView?.pause()
} }
override fun onResume() { override fun onResume() {
@ -194,7 +196,7 @@ class ShortsFragment : MainFragment() {
override fun onStop() { override fun onStop() {
super.onStop() super.onStop()
customViewAdapter.previousShownView?.stop() customViewAdapter?.previousShownView?.stop()
} }
companion object { companion object {