|
@@ -6,10 +6,8 @@ import androidx.compose.animation.AnimatedContent
|
|
|
import androidx.compose.animation.AnimatedVisibility
|
|
import androidx.compose.animation.AnimatedVisibility
|
|
|
import androidx.compose.animation.SizeTransform
|
|
import androidx.compose.animation.SizeTransform
|
|
|
import androidx.compose.animation.animateContentSize
|
|
import androidx.compose.animation.animateContentSize
|
|
|
-import androidx.compose.animation.core.LinearOutSlowInEasing
|
|
|
|
|
import androidx.compose.animation.core.animateDpAsState
|
|
import androidx.compose.animation.core.animateDpAsState
|
|
|
import androidx.compose.animation.core.animateFloatAsState
|
|
import androidx.compose.animation.core.animateFloatAsState
|
|
|
-import androidx.compose.animation.core.tween
|
|
|
|
|
import androidx.compose.animation.fadeIn
|
|
import androidx.compose.animation.fadeIn
|
|
|
import androidx.compose.animation.fadeOut
|
|
import androidx.compose.animation.fadeOut
|
|
|
import androidx.compose.animation.slideInHorizontally
|
|
import androidx.compose.animation.slideInHorizontally
|
|
@@ -79,6 +77,7 @@ import androidx.compose.runtime.mutableIntStateOf
|
|
|
import androidx.compose.runtime.mutableStateOf
|
|
import androidx.compose.runtime.mutableStateOf
|
|
|
import androidx.compose.runtime.remember
|
|
import androidx.compose.runtime.remember
|
|
|
import androidx.compose.runtime.rememberCoroutineScope
|
|
import androidx.compose.runtime.rememberCoroutineScope
|
|
|
|
|
+import androidx.compose.runtime.saveable.rememberSaveable
|
|
|
import androidx.compose.runtime.setValue
|
|
import androidx.compose.runtime.setValue
|
|
|
import androidx.compose.runtime.snapshotFlow
|
|
import androidx.compose.runtime.snapshotFlow
|
|
|
import androidx.compose.ui.Alignment
|
|
import androidx.compose.ui.Alignment
|
|
@@ -101,6 +100,7 @@ import androidx.compose.ui.input.pointer.pointerInput
|
|
|
import androidx.compose.ui.layout.ContentScale
|
|
import androidx.compose.ui.layout.ContentScale
|
|
|
import androidx.compose.ui.layout.layout
|
|
import androidx.compose.ui.layout.layout
|
|
|
import androidx.compose.ui.layout.onSizeChanged
|
|
import androidx.compose.ui.layout.onSizeChanged
|
|
|
|
|
+import androidx.compose.ui.platform.LocalConfiguration
|
|
|
import androidx.compose.ui.platform.LocalContext
|
|
import androidx.compose.ui.platform.LocalContext
|
|
|
import androidx.compose.ui.platform.LocalDensity
|
|
import androidx.compose.ui.platform.LocalDensity
|
|
|
import androidx.compose.ui.platform.LocalLayoutDirection
|
|
import androidx.compose.ui.platform.LocalLayoutDirection
|
|
@@ -411,7 +411,13 @@ private fun ReadBookMenuSurface(
|
|
|
560.dp
|
|
560.dp
|
|
|
}
|
|
}
|
|
|
val isFloating = state.menuConfig.readMenuFloatingBottomBar
|
|
val isFloating = state.menuConfig.readMenuFloatingBottomBar
|
|
|
- val navBarHeight = with(density) { WindowInsets.navigationBars.getBottom(this).toDp() }
|
|
|
|
|
|
|
+ val orientation = LocalConfiguration.current.orientation
|
|
|
|
|
+ val currentNavBarHeight = with(density) { WindowInsets.navigationBars.getBottom(this).toDp() }
|
|
|
|
|
+ var lastValidNavBarHeightValue by rememberSaveable(orientation) { mutableFloatStateOf(currentNavBarHeight.value) }
|
|
|
|
|
+ if (currentNavBarHeight.value > 0f && lastValidNavBarHeightValue != currentNavBarHeight.value) {
|
|
|
|
|
+ lastValidNavBarHeightValue = currentNavBarHeight.value
|
|
|
|
|
+ }
|
|
|
|
|
+ val navBarHeight = if (currentNavBarHeight.value > 0f) currentNavBarHeight else lastValidNavBarHeightValue.dp
|
|
|
val floatingHorizontalMargin = if (isFloating) 16.dp else 0.dp
|
|
val floatingHorizontalMargin = if (isFloating) 16.dp else 0.dp
|
|
|
val floatingBottomMargin = if (isFloating) 16.dp + navBarHeight else 0.dp
|
|
val floatingBottomMargin = if (isFloating) 16.dp + navBarHeight else 0.dp
|
|
|
val mainHorizontalMargin =
|
|
val mainHorizontalMargin =
|