From c37fd7b06fcceacb4955e23b10657432231371f3 Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:06:00 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Hide=20systemBars=20onl?= =?UTF-8?q?y=20after=20successfully=20loading=20a=20book=20in=20Reader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book_story/ui/reader/ReaderEvent.kt | 5 +++- .../book_story/ui/reader/ReaderModel.kt | 28 +++++++++---------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderEvent.kt b/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderEvent.kt index c1b08781..1c6c6e7d 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderEvent.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderEvent.kt @@ -7,7 +7,10 @@ import ua.acclorite.book_story.domain.reader.ReaderText.Chapter @Immutable sealed class ReaderEvent { - data object OnLoadText : ReaderEvent() + data class OnLoadText( + val activity: ComponentActivity, + val fullscreenMode: Boolean + ) : ReaderEvent() data class OnMenuVisibility( val show: Boolean, diff --git a/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderModel.kt b/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderModel.kt index 7e2f4c00..be1721e8 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderModel.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderModel.kt @@ -80,14 +80,21 @@ class ReaderModel @Inject constructor( errorMessage = UIText.StringResource(R.string.error_could_not_get_text) ) } + systemBarsVisibility(show = true, activity = event.activity) return@launch } + systemBarsVisibility( + show = !event.fullscreenMode, + activity = event.activity + ) + val lastOpened = getLatestHistory.execute(_state.value.book.id)?.time yield() _state.update { it.copy( + showMenu = false, book = it.book.copy( lastOpened = lastOpened ), @@ -131,23 +138,19 @@ class ReaderModel @Inject constructor( is ReaderEvent.OnMenuVisibility -> { launch { - if (_state.value.lockMenu) { - return@launch - } - - val shouldShow = event.show + if (_state.value.lockMenu) return@launch yield() systemBarsVisibility( - show = shouldShow || !event.fullscreenMode, + show = event.show || !event.fullscreenMode, activity = event.activity ) _state.update { it.copy( - showMenu = shouldShow, + showMenu = event.show, checkpoint = _state.value.listState.run { - if (!shouldShow || !event.saveCheckpoint) return@run it.checkpoint + if (!event.show || !event.saveCheckpoint) return@run it.checkpoint Checkpoint(firstVisibleItemIndex, firstVisibleItemScrollOffset) } @@ -475,14 +478,11 @@ class ReaderModel @Inject constructor( } onEvent( - ReaderEvent.OnMenuVisibility( - show = false, - fullscreenMode = fullscreenMode, - saveCheckpoint = false, - activity = activity + ReaderEvent.OnLoadText( + activity = activity, + fullscreenMode = fullscreenMode ) ) - onEvent(ReaderEvent.OnLoadText) } }