diff --git a/androidApp/src/main/java/bou/amine/apps/readerforselfossv2/android/HomeActivity.kt b/androidApp/src/main/java/bou/amine/apps/readerforselfossv2/android/HomeActivity.kt index 5217411..d399951 100644 --- a/androidApp/src/main/java/bou/amine/apps/readerforselfossv2/android/HomeActivity.kt +++ b/androidApp/src/main/java/bou/amine/apps/readerforselfossv2/android/HomeActivity.kt @@ -317,50 +317,44 @@ class HomeActivity : private fun reloadLayoutManager() { val currentManager = binding.recyclerView.layoutManager - val layoutManager: RecyclerView.LayoutManager - // This will only update the layout manager if settings changed + fun gridLayoutManager() { + val layoutManager = + GridLayoutManager( + this, + calculateNoOfColumns(), + ) + binding.recyclerView.layoutManager = layoutManager + } + + fun staggererdGridLayoutManager() { + var layoutManager = + StaggeredGridLayoutManager( + calculateNoOfColumns(), + StaggeredGridLayoutManager.VERTICAL, + ) + layoutManager.gapStrategy = + StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS + binding.recyclerView.layoutManager = layoutManager + } + when (currentManager) { is StaggeredGridLayoutManager -> if (!appSettingsService.isCardViewEnabled()) { - layoutManager = - GridLayoutManager( - this, - calculateNoOfColumns(), - ) - binding.recyclerView.layoutManager = layoutManager + gridLayoutManager() } is GridLayoutManager -> if (appSettingsService.isCardViewEnabled()) { - layoutManager = - StaggeredGridLayoutManager( - calculateNoOfColumns(), - StaggeredGridLayoutManager.VERTICAL, - ) - layoutManager.gapStrategy = - StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS - binding.recyclerView.layoutManager = layoutManager + staggererdGridLayoutManager() } else -> if (currentManager == null) { if (!appSettingsService.isCardViewEnabled()) { - layoutManager = - GridLayoutManager( - this, - calculateNoOfColumns(), - ) - binding.recyclerView.layoutManager = layoutManager + gridLayoutManager() } else { - layoutManager = - StaggeredGridLayoutManager( - calculateNoOfColumns(), - StaggeredGridLayoutManager.VERTICAL, - ) - layoutManager.gapStrategy = - StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS - binding.recyclerView.layoutManager = layoutManager + staggererdGridLayoutManager() } } } @@ -485,8 +479,8 @@ class HomeActivity : } private fun handleListResult(appendResults: Boolean = false) { + val oldManager = binding.recyclerView.layoutManager if (appendResults) { - val oldManager = binding.recyclerView.layoutManager firstVisible = when (oldManager) { is StaggeredGridLayoutManager -> @@ -499,7 +493,13 @@ class HomeActivity : } } - if (recyclerAdapter == null) { + @Suppress("detekt:ComplexCondition") + if (recyclerAdapter == null || + ( + (recyclerAdapter is ItemListAdapter && appSettingsService.isCardViewEnabled()) || + (recyclerAdapter is ItemCardAdapter && !appSettingsService.isCardViewEnabled()) + ) + ) { if (appSettingsService.isCardViewEnabled()) { recyclerAdapter = ItemCardAdapter(