diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt index 6c41b06..df9712e 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt @@ -270,23 +270,7 @@ class HomeFragment : AppViewsFragment(), OnSwit } override fun ViewBinding.onUiStateCollect(uiState: UiState) { - showCurListInfo("------- before ---------") mViewPagerAdapter.submitList(uiState.playLists?.toList()) - lifecycleScope.launch { - showCurListInfo("------- after ---------") - } - } - - private fun showCurListInfo(tag: String) { - if (BuildConfig.DEBUG) { - val allList = mViewPagerAdapter.getCurrentList() - var allInfos = tag + " Total= ${allList.size}\n" - allList.forEach { - allInfos += (it.id + " / ") - } - - Log.e("hahah", allInfos) - } } override fun onResume() { diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/home/HomeFragmentStateAdapter.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/home/HomeFragmentStateAdapter.kt index 1e60acd..13a06d0 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/home/HomeFragmentStateAdapter.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/home/HomeFragmentStateAdapter.kt @@ -1,15 +1,38 @@ package com.gamedog.vididin.main.fragments.home +import android.util.Log import androidx.fragment.app.Fragment import com.ama.core.architecture.appBase.adapter.AppFragmentStateAdapter import com.gamedog.vididin.beans.YoutubeVideo import com.gamedog.vididin.main.fragments.home.fragment.HomeItemFragment +import com.remax.notification.BuildConfig class HomeFragmentStateAdapter(fragment: Fragment) : AppFragmentStateAdapter(fragment, true) { + + init { + mDiffer.addListListener{ previousList, currentList -> + showCurListInfo(true, previousList) + showCurListInfo(false, previousList) + } + } + + + private fun showCurListInfo(isBefore: Boolean, allList: List) { + if (BuildConfig.DEBUG) { + val tagStr = if (isBefore) "------- before ---------" else "------- after ---------" + var allInfos = tagStr + " Total= ${allList.size}\n" + allList.forEach { + allInfos += (it.id + " / ") + } + + Log.e("hahah", allInfos) + } + } + override fun createFragment(position: Int, item: YoutubeVideo): Fragment { return HomeItemFragment.newInstance(item.getItemId(), item) } diff --git a/core/architecture/src/main/java/com/ama/core/architecture/base/views/adapter/BaseFragmentStateAdapter.kt b/core/architecture/src/main/java/com/ama/core/architecture/base/views/adapter/BaseFragmentStateAdapter.kt index 27aa36d..adf7a42 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/base/views/adapter/BaseFragmentStateAdapter.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/base/views/adapter/BaseFragmentStateAdapter.kt @@ -18,7 +18,7 @@ abstract class BaseFragmentStateAdapter( lifecycle: Lifecycle, private val isFragmentLazyInit: Boolean, ) : FragmentStateAdapter(fragmentManager, lifecycle) { - private var mDiffer: AsyncListDiffer = AsyncListDiffer( + protected var mDiffer: AsyncListDiffer = AsyncListDiffer( AdapterListUpdateCallback(this), AsyncDifferConfig.Builder(BaseDiffItemCallback()).build() ) @@ -32,6 +32,7 @@ abstract class BaseFragmentStateAdapter( fragment: Fragment, isFragmentLazyInit: Boolean, ) : this(fragment.childFragmentManager, fragment.lifecycle, isFragmentLazyInit) + override fun getItemCount(): Int { return mDiffer.currentList.size }