Handle query search in source feed

This commit is contained in:
Jobobby04 2022-09-11 23:44:38 -04:00
parent 10d3df5b6c
commit 97641e7692
2 changed files with 17 additions and 0 deletions

View File

@ -11,6 +11,8 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items 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.Icons
import androidx.compose.material.icons.outlined.Search import androidx.compose.material.icons.outlined.Search
import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.CircularProgressIndicator
@ -27,6 +29,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.domain.manga.model.Manga import eu.kanade.domain.manga.model.Manga
import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBar
@ -103,6 +106,7 @@ fun SourceFeedScreen(
onClickSavedSearch: (SavedSearch) -> Unit, onClickSavedSearch: (SavedSearch) -> Unit,
onClickDelete: (FeedSavedSearch) -> Unit, onClickDelete: (FeedSavedSearch) -> Unit,
onClickManga: (Manga) -> Unit, onClickManga: (Manga) -> Unit,
onClickSearch: () -> Unit,
) { ) {
Scaffold( Scaffold(
topBar = { scrollBehavior -> topBar = { scrollBehavior ->
@ -112,6 +116,7 @@ fun SourceFeedScreen(
scrollBehavior = scrollBehavior, scrollBehavior = scrollBehavior,
incognitoMode = presenter.isIncognitoMode, incognitoMode = presenter.isIncognitoMode,
downloadedOnlyMode = presenter.isDownloadOnly, downloadedOnlyMode = presenter.isDownloadOnly,
onClickSearch = onClickSearch,
) )
}, },
floatingActionButton = { floatingActionButton = {
@ -253,6 +258,7 @@ fun SourceFeedToolbar(
scrollBehavior: TopAppBarScrollBehavior, scrollBehavior: TopAppBarScrollBehavior,
incognitoMode: Boolean, incognitoMode: Boolean,
downloadedOnlyMode: Boolean, downloadedOnlyMode: Boolean,
onClickSearch: () -> Unit,
) { ) {
when { when {
state.searchQuery != null -> SearchToolbar( state.searchQuery != null -> SearchToolbar(
@ -263,6 +269,12 @@ fun SourceFeedToolbar(
scrollBehavior = scrollBehavior, scrollBehavior = scrollBehavior,
incognitoMode = incognitoMode, incognitoMode = incognitoMode,
downloadedOnlyMode = downloadedOnlyMode, downloadedOnlyMode = downloadedOnlyMode,
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search),
keyboardActions = KeyboardActions(
onSearch = {
onClickSearch()
},
),
) )
else -> AppBar( else -> AppBar(
title = title, title = title,

View File

@ -173,6 +173,7 @@ open class SourceFeedController :
onClickSavedSearch = ::onSavedSearchClick, onClickSavedSearch = ::onSavedSearchClick,
onClickDelete = ::onRemoveClick, onClickDelete = ::onRemoveClick,
onClickManga = ::onMangaClick, onClickManga = ::onMangaClick,
onClickSearch = ::onSearchClick,
) )
} }
@ -202,6 +203,10 @@ open class SourceFeedController :
router.replaceTopController(BrowseSourceController(presenter.source, savedSearch = savedSearch.id).withFadeTransaction()) router.replaceTopController(BrowseSourceController(presenter.source, savedSearch = savedSearch.id).withFadeTransaction())
} }
private fun onSearchClick() {
onBrowseClick(presenter.searchQuery?.nullIfBlank())
}
override fun handleBack(): Boolean { override fun handleBack(): Boolean {
return when { return when {
presenter.searchQuery != null -> { presenter.searchQuery != null -> {