reuse bulkSelectionButton as AppBar.Action
This commit is contained in:
parent
722ebe757e
commit
56cabe3c22
8 changed files with 47 additions and 45 deletions
|
|
@ -3,8 +3,6 @@ package eu.kanade.presentation.browse
|
|||
import androidx.compose.animation.Crossfade
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.Checklist
|
||||
import androidx.compose.material3.TopAppBarScrollBehavior
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.ReadOnlyComposable
|
||||
|
|
@ -18,12 +16,12 @@ import eu.kanade.presentation.browse.components.GlobalSearchErrorResultItem
|
|||
import eu.kanade.presentation.browse.components.GlobalSearchLoadingResultItem
|
||||
import eu.kanade.presentation.browse.components.GlobalSearchResultItem
|
||||
import eu.kanade.presentation.browse.components.SourceSettingsButton
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.components.AppBarActions
|
||||
import eu.kanade.presentation.components.AppBarTitle
|
||||
import eu.kanade.presentation.components.SearchToolbar
|
||||
import eu.kanade.presentation.components.SelectionToolbar
|
||||
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
|
||||
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.domain.manga.model.Manga
|
||||
|
|
@ -282,11 +280,7 @@ fun SourceFeedToolbar(
|
|||
actions = {
|
||||
AppBarActions(
|
||||
actions = persistentListOf(
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_bulk_select),
|
||||
icon = Icons.Outlined.Checklist,
|
||||
onClick = toggleSelectionMode,
|
||||
),
|
||||
bulkSelectionButton(toggleSelectionMode),
|
||||
)
|
||||
)
|
||||
persistentListOf(
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package eu.kanade.presentation.browse.components
|
|||
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.Check
|
||||
import androidx.compose.material.icons.outlined.Checklist
|
||||
import androidx.compose.material.icons.outlined.ViewModule
|
||||
import androidx.compose.material3.DropdownMenuItem
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -16,6 +15,7 @@ import androidx.compose.runtime.setValue
|
|||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.components.AppBarActions
|
||||
import eu.kanade.presentation.components.DropdownMenu
|
||||
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
import tachiyomi.i18n.MR
|
||||
|
|
@ -46,11 +46,7 @@ fun BrowseSourceSimpleToolbar(
|
|||
onClick = { selectingDisplayMode = true },
|
||||
),
|
||||
// KMK -->
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_bulk_select),
|
||||
icon = Icons.Outlined.Checklist,
|
||||
onClick = toggleSelectionMode,
|
||||
),
|
||||
bulkSelectionButton(toggleSelectionMode),
|
||||
// KMK <--
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import androidx.compose.material.icons.Icons
|
|||
import androidx.compose.material.icons.automirrored.filled.ViewList
|
||||
import androidx.compose.material.icons.automirrored.outlined.Help
|
||||
import androidx.compose.material.icons.filled.ViewModule
|
||||
import androidx.compose.material.icons.outlined.Checklist
|
||||
import androidx.compose.material.icons.outlined.Public
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBarScrollBehavior
|
||||
|
|
@ -21,6 +20,7 @@ import eu.kanade.presentation.components.RadioMenuItem
|
|||
import eu.kanade.presentation.components.SearchToolbar
|
||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
|
||||
import exh.source.anyIs
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
|
|
@ -77,13 +77,7 @@ fun BrowseSourceToolbar(
|
|||
)
|
||||
}
|
||||
// KMK -->
|
||||
add(
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_bulk_select),
|
||||
icon = Icons.Outlined.Checklist,
|
||||
onClick = toggleSelectionMode,
|
||||
),
|
||||
)
|
||||
add(bulkSelectionButton(toggleSelectionMode))
|
||||
// KMK <--
|
||||
if (isLocalSource) {
|
||||
if (isConfigurableSource && displayMode != null) {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import androidx.compose.foundation.layout.padding
|
|||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.Checklist
|
||||
import androidx.compose.material.icons.outlined.DoneAll
|
||||
import androidx.compose.material.icons.outlined.FilterList
|
||||
import androidx.compose.material.icons.outlined.PushPin
|
||||
|
|
@ -27,9 +26,9 @@ import androidx.compose.material3.VerticalDivider
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.components.AppBarActions
|
||||
import eu.kanade.presentation.components.SearchToolbar
|
||||
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
|
||||
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.SourceFilter
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.i18n.MR
|
||||
|
|
@ -66,11 +65,7 @@ fun GlobalSearchToolbar(
|
|||
actions = {
|
||||
AppBarActions(
|
||||
actions = persistentListOf(
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_bulk_select),
|
||||
icon = Icons.Outlined.Checklist,
|
||||
onClick = toggleSelectionMode,
|
||||
),
|
||||
bulkSelectionButton(toggleSelectionMode),
|
||||
)
|
||||
)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import androidx.compose.material3.TextButton
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
|
@ -153,4 +154,18 @@ fun DuplicateMangasDialog(
|
|||
},
|
||||
)
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun DuplicateMangasDialogPreview() {
|
||||
DuplicateMangasDialog(
|
||||
onDismissRequest = { },
|
||||
onAllowAllDuplicate = { },
|
||||
onSkipAllDuplicate = { },
|
||||
onOpenManga = { },
|
||||
onAllowDuplicate = { },
|
||||
onSkipDuplicate = { },
|
||||
duplicatedName = "Berserk",
|
||||
)
|
||||
}
|
||||
// KMK <--
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
package eu.kanade.tachiyomi.ui.browse
|
||||
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.Checklist
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.util.fastAny
|
||||
import androidx.compose.ui.util.fastForEach
|
||||
import androidx.compose.ui.util.fastForEachIndexed
|
||||
|
|
@ -15,6 +18,7 @@ import eu.kanade.domain.manga.interactor.UpdateManga
|
|||
import eu.kanade.domain.track.interactor.AddTracks
|
||||
import eu.kanade.presentation.browse.components.RemoveMangaDialog
|
||||
import eu.kanade.presentation.category.components.ChangeCategoryDialog
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.manga.DuplicateMangaDialog
|
||||
import eu.kanade.presentation.manga.DuplicateMangasDialog
|
||||
import eu.kanade.tachiyomi.data.cache.CoverCache
|
||||
|
|
@ -42,6 +46,8 @@ import tachiyomi.domain.manga.interactor.GetDuplicateLibraryManga
|
|||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.domain.manga.model.toMangaUpdate
|
||||
import tachiyomi.domain.source.service.SourceManager
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.time.Instant
|
||||
|
|
@ -441,3 +447,17 @@ fun AllowDuplicateDialog(bulkFavoriteScreenModel: BulkFavoriteScreenModel) {
|
|||
duplicatedName = dialog.duplicatedManga.second.title,
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun bulkSelectionButton(toggleSelectionMode: () -> Unit) =
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_bulk_select),
|
||||
icon = Icons.Outlined.Checklist,
|
||||
onClick = toggleSelectionMode,
|
||||
)
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun BulkSelectionButtonPreview() {
|
||||
bulkSelectionButton { }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.ui.browse.feed
|
|||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.Add
|
||||
import androidx.compose.material.icons.outlined.Checklist
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.DisposableEffect
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
|
|
@ -29,6 +28,7 @@ import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
|
|||
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||
import eu.kanade.tachiyomi.ui.browse.RemoveMangaDialog
|
||||
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen
|
||||
import eu.kanade.tachiyomi.ui.home.HomeScreen
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaScreen
|
||||
|
|
@ -91,11 +91,7 @@ fun Screen.feedTab(
|
|||
},
|
||||
),
|
||||
// KMK -->
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_bulk_select),
|
||||
icon = Icons.Outlined.Checklist,
|
||||
onClick = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||
),
|
||||
bulkSelectionButton(bulkFavoriteScreenModel::toggleSelectionMode),
|
||||
// KMK <--
|
||||
),
|
||||
content = { contentPadding, snackbarHostState ->
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
package eu.kanade.tachiyomi.ui.browse.migration.search
|
||||
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.Checklist
|
||||
import androidx.compose.material3.SnackbarHost
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.runtime.Composable
|
||||
|
|
@ -17,7 +15,6 @@ import cafe.adriel.voyager.navigator.LocalNavigator
|
|||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import eu.kanade.presentation.browse.BrowseSourceContent
|
||||
import eu.kanade.presentation.browse.components.BrowseSourceFloatingActionButton
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.components.AppBarActions
|
||||
import eu.kanade.presentation.components.SearchToolbar
|
||||
import eu.kanade.presentation.components.SelectionToolbar
|
||||
|
|
@ -26,6 +23,7 @@ import eu.kanade.tachiyomi.source.online.HttpSource
|
|||
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
|
||||
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
|
||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
|
||||
import eu.kanade.tachiyomi.ui.browse.migration.advanced.process.MigrationListScreen
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreenModel
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.SourceFilterDialog
|
||||
|
|
@ -34,9 +32,7 @@ import eu.kanade.tachiyomi.ui.webview.WebViewScreen
|
|||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.core.common.Constants
|
||||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
import tachiyomi.source.local.LocalSource
|
||||
|
||||
data class SourceSearchScreen(
|
||||
|
|
@ -85,11 +81,7 @@ data class SourceSearchScreen(
|
|||
actions = {
|
||||
AppBarActions(
|
||||
actions = persistentListOf(
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_bulk_select),
|
||||
icon = Icons.Outlined.Checklist,
|
||||
onClick = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||
),
|
||||
bulkSelectionButton(bulkFavoriteScreenModel::toggleSelectionMode),
|
||||
)
|
||||
)
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in a new issue