Handle query search in source feed
This commit is contained in:
parent
10d3df5b6c
commit
97641e7692
@ -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,
|
||||||
|
@ -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 -> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user