From 93a06aef593922b61d1f5e9208be1f09a2035445 Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Tue, 11 Feb 2025 11:59:19 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Always=20show=20refresh?= =?UTF-8?q?=20indicator=20in=20Browse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Shows when searching, refreshing and adding --- .../book_story/ui/browse/BrowseEvent.kt | 2 +- .../book_story/ui/browse/BrowseModel.kt | 50 +++++++++++++++---- .../book_story/ui/browse/BrowseScreen.kt | 2 +- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseEvent.kt b/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseEvent.kt index 0e310697..54dde992 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseEvent.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseEvent.kt @@ -20,7 +20,7 @@ import ua.acclorite.book_story.domain.library.book.SelectableNullableBook @Immutable sealed class BrowseEvent { data class OnRefreshList( - val showIndicator: Boolean, + val loading: Boolean, val hideSearch: Boolean ) : BrowseEvent() diff --git a/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseModel.kt b/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseModel.kt index 8778c4bd..9f537abb 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseModel.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseModel.kt @@ -57,7 +57,7 @@ class BrowseModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { onEvent( BrowseEvent.OnRefreshList( - showIndicator = true, + loading = true, hideSearch = true ) ) @@ -66,7 +66,12 @@ class BrowseModel @Inject constructor( /* Observe channel - - - - - - - - - - - */ viewModelScope.launch(Dispatchers.IO) { BrowseScreen.refreshListChannel.receiveAsFlow().collectLatest { - onEvent(BrowseEvent.OnRefreshList(showIndicator = false, hideSearch = false)) + onEvent( + BrowseEvent.OnRefreshList( + loading = false, + hideSearch = false + ) + ) } } /* - - - - - - - - - - - - - - - - - - - */ @@ -85,8 +90,8 @@ class BrowseModel @Inject constructor( refreshJob = viewModelScope.launch(Dispatchers.IO) { _state.update { it.copy( - isRefreshing = event.showIndicator, - isLoading = !event.showIndicator, + isRefreshing = true, + isLoading = event.loading, showSearch = if (event.hideSearch) false else it.showSearch ) } @@ -94,7 +99,7 @@ class BrowseModel @Inject constructor( yield() getFilesFromDownloads() - if (event.showIndicator) delay(500) + delay(500) _state.update { it.copy( isRefreshing = false, @@ -107,7 +112,12 @@ class BrowseModel @Inject constructor( is BrowseEvent.OnSearchVisibility -> { viewModelScope.launch(Dispatchers.IO) { if (!event.show) { - getFilesFromDownloads("") + onEvent( + BrowseEvent.OnRefreshList( + loading = false, + hideSearch = true + ) + ) } else { _state.update { it.copy( @@ -156,7 +166,12 @@ class BrowseModel @Inject constructor( is BrowseEvent.OnSearch -> { viewModelScope.launch(Dispatchers.IO) { - getFilesFromDownloads() + onEvent( + BrowseEvent.OnRefreshList( + loading = false, + hideSearch = false + ) + ) } } @@ -292,7 +307,7 @@ class BrowseModel @Inject constructor( } onEvent( BrowseEvent.OnRefreshList( - showIndicator = true, + loading = true, hideSearch = false ) ) @@ -318,7 +333,12 @@ class BrowseModel @Inject constructor( if (permissionGranted) { viewModelScope.launch(Dispatchers.IO) { - getFilesFromDownloads() + onEvent( + BrowseEvent.OnRefreshList( + loading = true, + hideSearch = false + ) + ) } } } @@ -412,7 +432,10 @@ class BrowseModel @Inject constructor( ) } onEvent( - BrowseEvent.OnRefreshList(showIndicator = false, hideSearch = false) + BrowseEvent.OnRefreshList( + loading = false, + hideSearch = false + ) ) onEvent(BrowseEvent.OnClearSelectedFiles) @@ -440,7 +463,12 @@ class BrowseModel @Inject constructor( dialog = null ) } - onEvent(BrowseEvent.OnRefreshList(showIndicator = false, hideSearch = false)) + onEvent( + BrowseEvent.OnRefreshList( + loading = false, + hideSearch = false + ) + ) onEvent(BrowseEvent.OnClearSelectedFiles) } } diff --git a/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseScreen.kt b/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseScreen.kt index 7e30a10a..4d7b10b5 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseScreen.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/browse/BrowseScreen.kt @@ -87,7 +87,7 @@ object BrowseScreen : Screen, Parcelable { onRefresh = { screenModel.onEvent( BrowseEvent.OnRefreshList( - showIndicator = true, + loading = false, hideSearch = true ) )