From 7e0e903a5cbde3d55525dab156253e5c56d5103e Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Tue, 24 Sep 2024 22:23:09 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Show=20bars=20before=20?= =?UTF-8?q?update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed visual bug, where bars being shown after navigating to BookInfo screen for text update --- .../reader/components/ReaderUpdateDialog.kt | 19 +++++++---------- .../screens/reader/data/ReaderEvent.kt | 6 ++++++ .../screens/reader/data/ReaderViewModel.kt | 21 ++++++++++++++++++- 3 files changed, 34 insertions(+), 12 deletions(-) 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(