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.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,

View File

@ -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 -> {