diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderUpdateDialog.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderUpdateDialog.kt index 921766e5..a5ee05be 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderUpdateDialog.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderUpdateDialog.kt @@ -1,14 +1,15 @@ package ua.acclorite.book_story.presentation.screens.reader.components +import androidx.activity.ComponentActivity import androidx.compose.material.icons.Icons import androidx.compose.material.icons.rounded.Upgrade import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import ua.acclorite.book_story.R import ua.acclorite.book_story.presentation.core.components.LocalReaderViewModel import ua.acclorite.book_story.presentation.core.components.custom_dialog.CustomDialogWithContent import ua.acclorite.book_story.presentation.core.navigation.LocalOnNavigate -import ua.acclorite.book_story.presentation.core.navigation.Screen import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent /** @@ -17,9 +18,9 @@ import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent */ @Composable fun ReaderUpdateDialog() { - val state = LocalReaderViewModel.current.state val onEvent = LocalReaderViewModel.current.onEvent val onNavigate = LocalOnNavigate.current + val context = LocalContext.current CustomDialogWithContent( title = stringResource(id = R.string.update_book), @@ -31,16 +32,12 @@ fun ReaderUpdateDialog() { isActionEnabled = true, onDismiss = { onEvent(ReaderEvent.OnShowHideUpdateDialog(false)) }, onAction = { - onNavigate { - navigate( - Screen.BookInfo( - bookId = state.value.book.id, - startUpdate = true - ), - useBackAnimation = true, - saveInBackStack = false + onEvent( + ReaderEvent.OnUpdateText( + activity = context as ComponentActivity, + onNavigate = onNavigate ) - } + ) }, withDivider = false ) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderEvent.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderEvent.kt index 0f1458c1..7b15f01e 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderEvent.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderEvent.kt @@ -4,6 +4,7 @@ import androidx.activity.ComponentActivity import androidx.compose.foundation.pager.PagerState import androidx.compose.runtime.Immutable import ua.acclorite.book_story.domain.model.Book +import ua.acclorite.book_story.domain.util.OnNavigate import ua.acclorite.book_story.domain.util.UIText @Immutable @@ -97,4 +98,9 @@ sealed class ReaderEvent { ) : ReaderEvent() data object OnCancelCheckTextForUpdate : ReaderEvent() + + data class OnUpdateText( + val activity: ComponentActivity, + val onNavigate: OnNavigate + ) : ReaderEvent() } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt index 8810ab8a..3a172f3b 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt @@ -498,6 +498,25 @@ class ReaderViewModel @Inject constructor( ) } } + + is ReaderEvent.OnUpdateText -> { + launch { + showSystemBars( + show = true, + activity = event.activity + ) + event.onNavigate { + navigate( + Screen.BookInfo( + bookId = _state.value.book.id, + startUpdate = true + ), + useBackAnimation = true, + saveInBackStack = false + ) + } + } + } } } } @@ -656,7 +675,7 @@ class ReaderViewModel @Inject constructor( private fun showSystemBars( show: Boolean, - fullscreenMode: Boolean, + fullscreenMode: Boolean = true, activity: ComponentActivity ): Boolean { WindowCompat.getInsetsController(