From 97641e769218635ebc92061036845182fb5ee1f9 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sun, 11 Sep 2022 23:44:38 -0400 Subject: [PATCH] Handle query search in source feed --- .../kanade/presentation/browse/SourceFeedScreen.kt | 12 ++++++++++++ .../ui/browse/source/feed/SourceFeedController.kt | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourceFeedScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourceFeedScreen.kt index 7814f612d..e174aac84 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourceFeedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourceFeedScreen.kt @@ -11,6 +11,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Search import androidx.compose.material3.CircularProgressIndicator @@ -27,6 +29,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.unit.dp import eu.kanade.domain.manga.model.Manga import eu.kanade.presentation.components.AppBar @@ -103,6 +106,7 @@ fun SourceFeedScreen( onClickSavedSearch: (SavedSearch) -> Unit, onClickDelete: (FeedSavedSearch) -> Unit, onClickManga: (Manga) -> Unit, + onClickSearch: () -> Unit, ) { Scaffold( topBar = { scrollBehavior -> @@ -112,6 +116,7 @@ fun SourceFeedScreen( scrollBehavior = scrollBehavior, incognitoMode = presenter.isIncognitoMode, downloadedOnlyMode = presenter.isDownloadOnly, + onClickSearch = onClickSearch, ) }, floatingActionButton = { @@ -253,6 +258,7 @@ fun SourceFeedToolbar( scrollBehavior: TopAppBarScrollBehavior, incognitoMode: Boolean, downloadedOnlyMode: Boolean, + onClickSearch: () -> Unit, ) { when { state.searchQuery != null -> SearchToolbar( @@ -263,6 +269,12 @@ fun SourceFeedToolbar( scrollBehavior = scrollBehavior, incognitoMode = incognitoMode, downloadedOnlyMode = downloadedOnlyMode, + keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search), + keyboardActions = KeyboardActions( + onSearch = { + onClickSearch() + }, + ), ) else -> AppBar( title = title, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedController.kt index 8c5d4aa71..9ab658438 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedController.kt @@ -173,6 +173,7 @@ open class SourceFeedController : onClickSavedSearch = ::onSavedSearchClick, onClickDelete = ::onRemoveClick, onClickManga = ::onMangaClick, + onClickSearch = ::onSearchClick, ) } @@ -202,6 +203,10 @@ open class SourceFeedController : router.replaceTopController(BrowseSourceController(presenter.source, savedSearch = savedSearch.id).withFadeTransaction()) } + private fun onSearchClick() { + onBrowseClick(presenter.searchQuery?.nullIfBlank()) + } + override fun handleBack(): Boolean { return when { presenter.searchQuery != null -> {