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,9 +68,8 @@ class ShortsFragment : MainFragment() {
loadPager() loadPager()
} }
loadPagerJob!!.invokeOnCompletion {
Logger.i(TAG, "Creating adapter") Logger.i(TAG, "Creating adapter")
customViewAdapter = val customViewAdapter =
CustomViewAdapter(videos, layoutInflater, this@ShortsFragment, overlayQualityContainer) { CustomViewAdapter(videos, layoutInflater, this@ShortsFragment, overlayQualityContainer) {
if (!shortsPager!!.hasMorePages()) { if (!shortsPager!!.hasMorePages()) {
return@CustomViewAdapter return@CustomViewAdapter
@ -87,6 +86,9 @@ class ShortsFragment : MainFragment() {
val viewPager = viewPager!! val viewPager = viewPager!!
viewPager.adapter = customViewAdapter 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 {