diff --git a/app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/ModuleRvItem.kt b/app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/ModuleRvItem.kt index ae60ba776..767e44440 100644 --- a/app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/ModuleRvItem.kt +++ b/app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/ModuleRvItem.kt @@ -2,8 +2,6 @@ package com.topjohnwu.magisk.model.entity.recycler import androidx.databinding.Bindable import androidx.databinding.Observable -import androidx.databinding.ViewDataBinding -import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.topjohnwu.magisk.BR import com.topjohnwu.magisk.R import com.topjohnwu.magisk.core.model.module.Module @@ -16,12 +14,6 @@ import com.topjohnwu.magisk.utils.set object InstallModule : ComparableRvItem() { override val layoutRes = R.layout.item_module_download - override fun onBindingBound(binding: ViewDataBinding) { - super.onBindingBound(binding) - val params = binding.root.layoutParams as? StaggeredGridLayoutManager.LayoutParams - params?.isFullSpan = true - } - override fun contentSameAs(other: InstallModule) = this == other override fun itemSameAs(other: InstallModule) = this === other } @@ -45,12 +37,6 @@ class SectionTitle( var hasButton = _button != 0 && _icon != 0 set(value) = set(value, field, { field = it }, BR.hasButton) - override fun onBindingBound(binding: ViewDataBinding) { - super.onBindingBound(binding) - val params = binding.root.layoutParams as? StaggeredGridLayoutManager.LayoutParams - params?.isFullSpan = true - } - override fun itemSameAs(other: SectionTitle): Boolean = this === other override fun contentSameAs(other: SectionTitle): Boolean = this === other } diff --git a/app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/PolicyRvItem.kt b/app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/PolicyRvItem.kt index dbe007880..a2eae7721 100644 --- a/app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/PolicyRvItem.kt +++ b/app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/PolicyRvItem.kt @@ -2,8 +2,6 @@ package com.topjohnwu.magisk.model.entity.recycler import android.graphics.drawable.Drawable import androidx.databinding.Bindable -import androidx.databinding.ViewDataBinding -import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.topjohnwu.magisk.BR import com.topjohnwu.magisk.R import com.topjohnwu.magisk.core.model.MagiskPolicy @@ -60,12 +58,6 @@ class PolicyItem(val item: MagiskPolicy, val icon: Drawable) : ObservableItem() { override val layoutRes = R.layout.item_text - override fun onBindingBound(binding: ViewDataBinding) { - super.onBindingBound(binding) - val params = binding.root.layoutParams as? StaggeredGridLayoutManager.LayoutParams - params?.isFullSpan = true - } - override fun contentSameAs(other: TextItem) = text == other.text override fun itemSameAs(other: TextItem) = contentSameAs(other) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleFragment.kt b/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleFragment.kt index 418a56068..aad0c5475 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleFragment.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleFragment.kt @@ -8,15 +8,14 @@ import android.view.MenuItem import android.view.View import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView -import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.topjohnwu.magisk.R import com.topjohnwu.magisk.databinding.FragmentModuleMd2Binding import com.topjohnwu.magisk.ktx.hideKeyboard import com.topjohnwu.magisk.model.events.InstallExternalModuleEvent import com.topjohnwu.magisk.model.events.ViewEvent import com.topjohnwu.magisk.ui.MainActivity -import com.topjohnwu.magisk.ui.base.ReselectionTarget import com.topjohnwu.magisk.ui.base.BaseUIFragment +import com.topjohnwu.magisk.ui.base.ReselectionTarget import com.topjohnwu.magisk.utils.EndlessRecyclerScrollListener import com.topjohnwu.magisk.utils.MotionRevealHelper import org.koin.androidx.viewmodel.ext.android.viewModel @@ -112,12 +111,7 @@ class ModuleFragment : BaseUIFragment override fun onReselected() { binding.moduleList - .takeIf { - (it.layoutManager as? StaggeredGridLayoutManager)?.let { - it.findFirstVisibleItemPositions(IntArray(it.spanCount)).min() - } ?: 0 > 10 - } - ?.also { it.scrollToPosition(10) } + .also { it.scrollToPosition(10) } .let { binding.moduleList } .also { it.post { it.smoothScrollToPosition(0) } } } diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/EndlessRecyclerScrollListener.kt b/app/src/main/java/com/topjohnwu/magisk/utils/EndlessRecyclerScrollListener.kt index 624e40a7d..97e8e7f77 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/EndlessRecyclerScrollListener.kt +++ b/app/src/main/java/com/topjohnwu/magisk/utils/EndlessRecyclerScrollListener.kt @@ -54,8 +54,8 @@ class EndlessRecyclerScrollListener( val visibleItemPosition = if (direction == Direction.BOTTOM) { when (layoutManager) { - is StaggeredGridLayoutManager -> layoutManager.findLastVisibleItemPositions(null).max() - ?: 0 + is StaggeredGridLayoutManager -> + layoutManager.findLastVisibleItemPositions(null).max() ?: 0 is GridLayoutManager -> layoutManager.findLastVisibleItemPosition() is LinearLayoutManager -> layoutManager.findLastVisibleItemPosition() else -> throw IllegalArgumentException("Only LinearLayoutManager, GridLayoutManager and StaggeredGridLayoutManager are supported") @@ -113,4 +113,4 @@ class EndlessRecyclerScrollListener( } class ResetState : ViewEvent() -} \ No newline at end of file +} diff --git a/app/src/main/res/layout/fragment_superuser_md2.xml b/app/src/main/res/layout/fragment_superuser_md2.xml index 25f8da3da..8928b83ee 100644 --- a/app/src/main/res/layout/fragment_superuser_md2.xml +++ b/app/src/main/res/layout/fragment_superuser_md2.xml @@ -32,7 +32,7 @@ android:paddingStart="@dimen/l1" android:paddingTop="@{viewModel.insets.top + (int) @dimen/internal_action_bar_size + (int) @dimen/l1}" android:paddingBottom="@{viewModel.insets.bottom + (int) @dimen/l2}" - app:layoutManager="androidx.recyclerview.widget.StaggeredGridLayoutManager" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:spanCount="2" tools:layout_marginTop="24dp" tools:listitem="@layout/item_policy_md2"