Address deprecations
This commit is contained in:
1 parent
4ef7707736
commit
7286c81885
6 files changed
+23
-20
No files matched your search
@@ -79,7 +79,7 @@ import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.compositionLocalOf
|
||||
import androidx.compose.runtime.currentCompositeKeyHash
|
||||
import androidx.compose.runtime.currentCompositeKeyHashCode
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableFloatStateOf
|
||||
import androidx.compose.runtime.mutableStateListOf
|
||||
@@ -370,7 +370,7 @@ class MainActivity : EhActivity() {
|
||||
onPauseOrDispose { job.cancel() }
|
||||
}
|
||||
val currentDestination by navController.currentDestinationAsState()
|
||||
val drawerHandle = remember { mutableStateListOf<Int>() }
|
||||
val drawerHandle = remember { mutableStateListOf<Long>() }
|
||||
var snackbarFabPadding by remember { mutableStateOf(0.dp) }
|
||||
val drawerEnabled = drawerHandle.isNotEmpty()
|
||||
val density = LocalDensity.current
|
||||
@@ -563,7 +563,7 @@ class MainActivity : EhActivity() {
|
||||
|
||||
val LocalNavDrawerState = compositionLocalOf<DrawerState> { error("CompositionLocal LocalNavDrawerState not present!") }
|
||||
val LocalSideSheetState = compositionLocalOf<DrawerState2> { error("CompositionLocal LocalSideSheetState not present!") }
|
||||
val LocalDrawerHandle = compositionLocalOf<SnapshotStateList<Int>> { error("CompositionLocal LocalDrawerHandle not present!") }
|
||||
val LocalDrawerHandle = compositionLocalOf<SnapshotStateList<Long>> { error("CompositionLocal LocalDrawerHandle not present!") }
|
||||
val LocalSnackBarHostState = compositionLocalOf<SnackbarHostState> { error("CompositionLocal LocalSnackBarHostState not present!") }
|
||||
val LocalSnackBarFabPadding = compositionLocalOf<State<Dp>> { error("CompositionLocal LocalSnackBarFabPadding not present!") }
|
||||
val LocalSharedTransitionScope = compositionLocalOf<SharedTransitionScope> { error("CompositionLocal LocalSharedTransitionScope not present!") }
|
||||
@@ -571,7 +571,7 @@ val LocalSharedTransitionScope = compositionLocalOf<SharedTransitionScope> { err
|
||||
@Composable
|
||||
fun DrawerHandle(enabled: Boolean) {
|
||||
if (enabled) {
|
||||
val current = currentCompositeKeyHash
|
||||
val current = currentCompositeKeyHashCode
|
||||
val handle = LocalDrawerHandle.current
|
||||
DisposableEffect(current) {
|
||||
handle.add(current)
|
||||
|
||||
@@ -56,7 +56,6 @@ import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.text.style.TextDecoration
|
||||
import androidx.compose.ui.text.withStyle
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.window.core.layout.WindowWidthSizeClass
|
||||
import com.hippo.ehviewer.R
|
||||
import com.hippo.ehviewer.Settings
|
||||
import com.hippo.ehviewer.client.EhEngine
|
||||
@@ -66,6 +65,7 @@ import com.hippo.ehviewer.ui.Screen
|
||||
import com.hippo.ehviewer.ui.destinations.WebViewSignInScreenDestination
|
||||
import com.hippo.ehviewer.ui.openBrowser
|
||||
import com.hippo.ehviewer.ui.tools.LocalWindowSizeClass
|
||||
import com.hippo.ehviewer.ui.tools.isExpanded
|
||||
import com.hippo.ehviewer.ui.tools.thenIf
|
||||
import com.hippo.ehviewer.util.displayString
|
||||
import com.jamal.composeprefs3.ui.ifTrueThen
|
||||
@@ -173,8 +173,8 @@ fun AnimatedVisibilityScope.SignInScreen(navigator: DestinationsNavigator) = Scr
|
||||
}
|
||||
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
when (windowSizeClass.windowWidthSizeClass) {
|
||||
WindowWidthSizeClass.COMPACT, WindowWidthSizeClass.MEDIUM -> {
|
||||
when {
|
||||
!windowSizeClass.isExpanded -> {
|
||||
Column(
|
||||
modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).systemBarsPadding().padding(dimensionResource(id = R.dimen.keyline_margin)),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
@@ -245,7 +245,7 @@ fun AnimatedVisibilityScope.SignInScreen(navigator: DestinationsNavigator) = Scr
|
||||
}
|
||||
}
|
||||
}
|
||||
WindowWidthSizeClass.EXPANDED -> {
|
||||
else -> {
|
||||
Row(
|
||||
modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).systemBarsPadding().padding(dimensionResource(id = R.dimen.keyline_margin)),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
|
||||
@@ -62,7 +62,6 @@ import androidx.paging.cachedIn
|
||||
import androidx.paging.compose.LazyPagingItems
|
||||
import androidx.paging.compose.collectAsLazyPagingItems
|
||||
import androidx.paging.compose.itemKey
|
||||
import androidx.window.core.layout.WindowWidthSizeClass
|
||||
import arrow.core.partially1
|
||||
import arrow.fx.coroutines.parMap
|
||||
import arrow.fx.coroutines.parZip
|
||||
@@ -129,6 +128,7 @@ import com.hippo.ehviewer.ui.tools.foldToLoadResult
|
||||
import com.hippo.ehviewer.ui.tools.getClippedRefreshKey
|
||||
import com.hippo.ehviewer.ui.tools.getLimit
|
||||
import com.hippo.ehviewer.ui.tools.getOffset
|
||||
import com.hippo.ehviewer.ui.tools.isExpanded
|
||||
import com.hippo.ehviewer.ui.tools.rememberInVM
|
||||
import com.hippo.ehviewer.util.FavouriteStatusRouter
|
||||
import com.hippo.ehviewer.util.addTextToClipboard
|
||||
@@ -246,8 +246,8 @@ fun GalleryDetailContent(
|
||||
}
|
||||
|
||||
val previews = galleryDetail?.collectPreviewItems()
|
||||
when (windowSizeClass.windowWidthSizeClass) {
|
||||
WindowWidthSizeClass.MEDIUM, WindowWidthSizeClass.COMPACT -> FastScrollLazyVerticalGrid(
|
||||
when {
|
||||
!windowSizeClass.isExpanded -> FastScrollLazyVerticalGrid(
|
||||
columns = GridCells.Fixed(thumbColumns),
|
||||
contentPadding = contentPadding,
|
||||
modifier = modifier.padding(horizontal = keylineMargin),
|
||||
@@ -308,7 +308,7 @@ fun GalleryDetailContent(
|
||||
}
|
||||
}
|
||||
|
||||
WindowWidthSizeClass.EXPANDED -> FastScrollLazyVerticalGrid(
|
||||
else -> FastScrollLazyVerticalGrid(
|
||||
columns = GridCells.Fixed(thumbColumns),
|
||||
contentPadding = contentPadding,
|
||||
modifier = modifier.padding(horizontal = keylineMargin),
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.hippo.ehviewer.ui.tools
|
||||
|
||||
import androidx.collection.mutableIntObjectMapOf
|
||||
import androidx.collection.mutableLongObjectMapOf
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.DisallowComposableCalls
|
||||
import androidx.compose.runtime.DisposableEffect
|
||||
import androidx.compose.runtime.MutableState
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.compose.runtime.currentCompositeKeyHash
|
||||
import androidx.compose.runtime.currentCompositeKeyHashCode
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
@@ -30,14 +30,14 @@ import kotlinx.coroutines.launch
|
||||
inline fun <T : Any> nonNullState(block: MutableState<T>.() -> Unit) = (mutableStateOf<T?>(null) as MutableState<T>).apply(block) as State<T>
|
||||
|
||||
class StateMapViewModel : ViewModel() {
|
||||
val statesMap = mutableIntObjectMapOf<ArrayDeque<Any>>()
|
||||
val statesMap = mutableLongObjectMapOf<ArrayDeque<Any>>()
|
||||
}
|
||||
|
||||
@Composable
|
||||
inline fun <reified T : Any> rememberInVM(
|
||||
crossinline init: @DisallowComposableCalls ViewModel.() -> T,
|
||||
) = with(viewModel<StateMapViewModel>()) {
|
||||
val compositeKey = currentCompositeKeyHash
|
||||
val compositeKey = currentCompositeKeyHashCode
|
||||
remember {
|
||||
val states = statesMap.getOrPut(compositeKey, ::ArrayDeque)
|
||||
states.removeLastOrNull() as T? ?: init()
|
||||
@@ -56,7 +56,7 @@ inline fun <T : Any, K : Any> rememberInVM(
|
||||
key: K,
|
||||
crossinline init: @DisallowComposableCalls ViewModel.() -> T,
|
||||
) = with(viewModel<StateMapViewModel>()) {
|
||||
val compositeKey = currentCompositeKeyHash
|
||||
val compositeKey = currentCompositeKeyHashCode
|
||||
remember(key) {
|
||||
val states = statesMap.getOrPut(compositeKey, ::ArrayDeque)
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
|
||||
+4
@@ -2,5 +2,9 @@ package com.hippo.ehviewer.ui.tools
|
||||
|
||||
import androidx.compose.runtime.compositionLocalOf
|
||||
import androidx.window.core.layout.WindowSizeClass
|
||||
import androidx.window.core.layout.WindowSizeClass.Companion.WIDTH_DP_EXPANDED_LOWER_BOUND
|
||||
|
||||
val LocalWindowSizeClass = compositionLocalOf<WindowSizeClass> { error("CompositionLocal LocalWindowSizeClass not present!") }
|
||||
|
||||
val WindowSizeClass.isExpanded
|
||||
get() = isWidthAtLeastBreakpoint(WIDTH_DP_EXPANDED_LOWER_BOUND)
|
||||
@@ -26,9 +26,9 @@ import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.LocalLayoutDirection
|
||||
import androidx.compose.ui.unit.LayoutDirection
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.window.core.layout.WindowWidthSizeClass
|
||||
import com.hippo.ehviewer.ui.tools.HapticFeedbackType
|
||||
import com.hippo.ehviewer.ui.tools.LocalWindowSizeClass
|
||||
import com.hippo.ehviewer.ui.tools.isExpanded
|
||||
import com.hippo.ehviewer.ui.tools.rememberHapticFeedback
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
@@ -40,8 +40,7 @@ fun ChapterNavigator(
|
||||
onSliderValueChange: (Int) -> Unit,
|
||||
) {
|
||||
val windowSizeClass = LocalWindowSizeClass.current
|
||||
val isTabletUi = windowSizeClass.windowWidthSizeClass == WindowWidthSizeClass.EXPANDED
|
||||
val horizontalPadding = if (isTabletUi) 24.dp else 16.dp
|
||||
val horizontalPadding = if (windowSizeClass.isExpanded) 24.dp else 16.dp
|
||||
val layoutDirection = if (isRtl) LayoutDirection.Rtl else LayoutDirection.Ltr
|
||||
val configuration = LocalConfiguration.current
|
||||
val maxTickCount = configuration.screenWidthDp / (SliderDefaults.TickSize.value * 2.5f).roundToInt()
|
||||
|
||||
Reference in new issue
Block a user