Code refactor

This commit is contained in:
T8RIN
2025-04-01 02:23:38 +03:00
parent 547e79e613
commit fad8750bbf
44 changed files with 85 additions and 135 deletions

View File

@ -52,6 +52,7 @@ import androidx.compose.material3.rememberBottomSheetScaffoldState
import androidx.compose.material3.rememberStandardBottomSheetState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@ -66,6 +67,7 @@ import kotlinx.coroutines.launch
import ru.tech.imageresizershrinker.core.resources.R
import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSettingsState
import ru.tech.imageresizershrinker.core.ui.utils.animation.fancySlideTransition
import ru.tech.imageresizershrinker.core.ui.utils.helper.isPortraitOrientationAsState
import ru.tech.imageresizershrinker.core.ui.utils.provider.LocalScreenSize
import ru.tech.imageresizershrinker.core.ui.utils.provider.ProvideContainerDefaults
import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitBackHandler
@ -81,7 +83,6 @@ fun AdaptiveBottomScaffoldLayoutScreen(
title: @Composable () -> Unit,
onGoBack: () -> Unit,
shouldDisableBackHandler: Boolean,
isPortrait: Boolean,
actions: @Composable RowScope.(BottomSheetScaffoldState) -> Unit,
modifier: Modifier = Modifier,
topAppBarPersistentActions: @Composable RowScope.(BottomSheetScaffoldState) -> Unit = {},
@ -96,6 +97,7 @@ fun AdaptiveBottomScaffoldLayoutScreen(
autoClearFocus: Boolean = true,
enableNoDataScroll: Boolean = true
) {
val isPortrait by isPortraitOrientationAsState()
val screenWidthPx = LocalScreenSize.current.widthPx
val settingsState = LocalSettingsState.current

View File

@ -73,6 +73,7 @@ import kotlinx.coroutines.launch
import ru.tech.imageresizershrinker.core.resources.R
import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSettingsState
import ru.tech.imageresizershrinker.core.ui.utils.animation.fancySlideTransition
import ru.tech.imageresizershrinker.core.ui.utils.helper.isPortraitOrientationAsState
import ru.tech.imageresizershrinker.core.ui.utils.provider.LocalScreenSize
import ru.tech.imageresizershrinker.core.ui.widget.dialogs.ExitBackHandler
import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton
@ -97,7 +98,6 @@ fun AdaptiveLayoutScreen(
noDataControls: @Composable () -> Unit = {},
canShowScreenData: Boolean,
forceImagePreviewToMax: Boolean = false,
isPortrait: Boolean,
contentPadding: Dp = 20.dp,
showImagePreviewAsStickyHeader: Boolean = true,
autoClearFocus: Boolean = true,
@ -111,6 +111,7 @@ fun AdaptiveLayoutScreen(
)
)
) {
val isPortrait by isPortraitOrientationAsState()
val settingsState = LocalSettingsState.current
var imageState by rememberImageState()

View File

@ -59,6 +59,7 @@ import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@ -69,14 +70,14 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import ru.tech.imageresizershrinker.core.resources.R
import ru.tech.imageresizershrinker.core.ui.theme.takeColorFromScheme
import ru.tech.imageresizershrinker.core.ui.utils.helper.isPortraitOrientationAsState
import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedFloatingActionButton
import ru.tech.imageresizershrinker.core.ui.widget.modifier.container
import ru.tech.imageresizershrinker.core.ui.widget.modifier.drawHorizontalStroke
//TODO: Refactor from pair
@Composable
fun BottomButtonsBlock(
targetState: Pair<Boolean, Boolean>,
isNoData: Boolean,
onSecondaryButtonClick: () -> Unit,
onSecondaryButtonLongClick: (() -> Unit)? = null,
secondaryButtonIcon: ImageVector = Icons.Rounded.AddPhotoAlternate,
@ -93,13 +94,14 @@ fun BottomButtonsBlock(
isPrimaryButtonEnabled: Boolean = true,
showColumnarFabInRow: Boolean = false,
) {
val isPortrait by isPortraitOrientationAsState()
AnimatedContent(
targetState = targetState,
targetState = isNoData to isPortrait,
transitionSpec = {
fadeIn() + slideInVertically { it / 2 } togetherWith fadeOut() + slideOutVertically { it / 2 }
}
) { (isNull, inside) ->
if (isNull) {
) { (isEmptyState, inside) ->
if (isEmptyState) {
val button = @Composable {
Row(
modifier = Modifier
@ -119,14 +121,19 @@ fun BottomButtonsBlock(
onLongClick = onSecondaryButtonLongClick,
content = {
Spacer(Modifier.width(16.dp))
Icon(secondaryButtonIcon, null)
Icon(
imageVector = secondaryButtonIcon,
contentDescription = null
)
Spacer(Modifier.width(16.dp))
Text(secondaryButtonText)
Spacer(Modifier.width(16.dp))
}
)
if (showColumnarFabInRow && columnarFab != null) {
Column { columnarFab() }
Column(
content = columnarFab
)
}
}
}