Restore old strategy of grid column count

This commit is contained in:
FooIbar authored and tarsin committed 2023-04-05 10:05:16 +08:00
1 parent 29214b58c0
commit ec027d3d98
4 files changed
+14 -10

No files matched your search

@@ -19,8 +19,6 @@ import android.content.SharedPreferences
import android.net.Uri
import android.util.Log
import androidx.annotation.DimenRes
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.preference.PreferenceManager
import com.hippo.ehviewer.EhApplication.Companion.application
import com.hippo.ehviewer.client.data.FavListUrlBuilder
@@ -368,10 +366,10 @@ object Settings {
else -> throw IllegalStateException("Unexpected value: $detailSize")
}
val thumbSize: Int
get() = dp2pix(application, getInt(KEY_THUMB_SIZE, DEFAULT_THUMB_SIZE).toFloat())
get() = dp2pix(application, thumbSizeDp.toFloat())
val thumbSizeDp: Dp
get() = (getInt(KEY_THUMB_SIZE, DEFAULT_THUMB_SIZE) - 8).dp
val thumbSizeDp: Int
get() = getInt(KEY_THUMB_SIZE, DEFAULT_THUMB_SIZE)
val thumbResolution: Int
get() = getIntFromStr(KEY_THUMB_RESOLUTION, DEFAULT_THUMB_RESOLUTION)
@@ -31,6 +31,7 @@ import com.hippo.ehviewer.databinding.ItemGalleryGridBinding
import com.hippo.ehviewer.databinding.ItemGalleryListBinding
import com.hippo.widget.recyclerview.AutoStaggeredGridLayoutManager
import com.hippo.widget.recyclerview.STRATEGY_MIN_SIZE
import com.hippo.widget.recyclerview.STRATEGY_SUITABLE_SIZE
import com.hippo.yorozuya.ViewUtils
internal abstract class GalleryAdapter(
@@ -85,7 +86,7 @@ internal abstract class GalleryAdapter(
TYPE_GRID -> {
val columnWidth = Settings.thumbSize
mLayoutManager.setColumnSize(columnWidth)
mLayoutManager.setStrategy(STRATEGY_MIN_SIZE)
mLayoutManager.setStrategy(STRATEGY_SUITABLE_SIZE)
if (null != mListDecoration) {
recyclerView.removeItemDecoration(mListDecoration!!)
}
@@ -99,6 +99,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@@ -169,6 +170,7 @@ import com.hippo.util.ReadableTime
import com.hippo.util.addTextToClipboard
import com.hippo.util.getParcelableCompat
import com.hippo.widget.ObservedTextView
import com.hippo.widget.recyclerview.getSpanCountForSuitableSize
import com.hippo.yorozuya.FileUtils
import com.hippo.yorozuya.ViewUtils
import com.hippo.yorozuya.collect.IntList
@@ -516,9 +518,12 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener {
modifier: Modifier,
) {
val windowSizeClass = calculateWindowSizeClass(requireActivity())
// Padding is not subtracted here to have the same column count as gallery list and preview
val totalSpace = LocalConfiguration.current.screenWidthDp
val columnCount = getSpanCountForSuitableSize(totalSpace, Settings.thumbSizeDp)
when (windowSizeClass.widthSizeClass) {
WindowWidthSizeClass.Medium, WindowWidthSizeClass.Compact -> LazyVerticalGrid(
columns = GridCells.Adaptive(Settings.thumbSizeDp),
columns = GridCells.Fixed(columnCount),
contentPadding = contentPadding,
modifier = modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)),
horizontalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.strip_item_padding)),
@@ -573,7 +578,7 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener {
}
WindowWidthSizeClass.Expanded -> LazyVerticalGrid(
columns = GridCells.Adaptive(Settings.thumbSizeDp),
columns = GridCells.Fixed(columnCount),
contentPadding = contentPadding,
modifier = modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)),
horizontalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.strip_item_padding)),
@@ -40,7 +40,7 @@ import com.hippo.ehviewer.databinding.SceneGalleryPreviewsBinding
import com.hippo.util.getParcelableCompat
import com.hippo.widget.ContentLayout.ContentHelper
import com.hippo.widget.recyclerview.AutoGridLayoutManager
import com.hippo.widget.recyclerview.STRATEGY_MIN_SIZE
import com.hippo.widget.recyclerview.STRATEGY_SUITABLE_SIZE
import eu.kanade.tachiyomi.util.lang.launchIO
import java.util.Locale
@@ -98,7 +98,7 @@ class GalleryPreviewsScene : BaseToolbarScene() {
binding.contentLayout.recyclerView.adapter = mAdapter
val columnWidth = Settings.thumbSize
val layoutManager = AutoGridLayoutManager(context, columnWidth)
layoutManager.setStrategy(STRATEGY_MIN_SIZE)
layoutManager.setStrategy(STRATEGY_SUITABLE_SIZE)
binding.contentLayout.recyclerView.layoutManager = layoutManager
binding.contentLayout.recyclerView.clipToPadding = false
val padding = resources.getDimensionPixelSize(R.dimen.gallery_grid_margin_h)