Reindex Downloads through library overflow (#780)

* Reindex Downloads through library

* Update LibraryToolbar.kt

* Update LibraryTab.kt
This commit is contained in:
Tsukuyoumii 2025-07-17 05:23:11 -03:00 committed by GitHub
parent 737bec70f0
commit cc8c6be5fc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 17 additions and 0 deletions

View file

@ -1,5 +1,6 @@
package eu.kanade.presentation.library.components
import android.content.Context
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Row
import androidx.compose.material.icons.Icons
@ -14,6 +15,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.sp
import eu.kanade.presentation.components.AppBar
@ -46,6 +48,7 @@ fun LibraryToolbar(
searchQuery: String?,
onSearchQueryChange: (String?) -> Unit,
scrollBehavior: TopAppBarScrollBehavior?,
onInvalidateDownloadCache: (Context) -> Unit,
) = when {
selectedCount > 0 -> LibrarySelectionToolbar(
selectedCount = selectedCount,
@ -68,6 +71,7 @@ fun LibraryToolbar(
isSyncEnabled = isSyncEnabled,
// SY <--
scrollBehavior = scrollBehavior,
onInvalidateDownloadCache = onInvalidateDownloadCache,
)
}
@ -87,7 +91,9 @@ private fun LibraryRegularToolbar(
isSyncEnabled: Boolean,
// SY <--
scrollBehavior: TopAppBarScrollBehavior?,
onInvalidateDownloadCache: (Context) -> Unit,
) {
val context = LocalContext.current
val pillAlpha = if (isSystemInDarkTheme()) 0.12f else 0.08f
SearchToolbar(
titleContent = {
@ -131,6 +137,12 @@ private fun LibraryRegularToolbar(
title = stringResource(MR.strings.action_open_random_manga),
onClick = onClickOpenRandomManga,
),
AppBar.OverflowAction(
title = stringResource(MR.strings.pref_invalidate_download_cache),
onClick = {
onInvalidateDownloadCache(context)
},
),
).builder().apply {
// SY -->
if (onClickSyncExh != null) {

View file

@ -41,6 +41,7 @@ import eu.kanade.presentation.manga.components.LibraryBottomActionMenu
import eu.kanade.presentation.more.onboarding.GETTING_STARTED_URL
import eu.kanade.presentation.util.Tab
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.download.DownloadCache
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.sync.SyncDataJob
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen
@ -184,6 +185,10 @@ data object LibraryTab : Tab {
// SY <--
searchQuery = state.searchQuery,
onSearchQueryChange = screenModel::search,
onInvalidateDownloadCache = { context ->
Injekt.get<DownloadCache>().invalidateCache()
context.toast(MR.strings.download_cache_invalidated)
},
scrollBehavior = scrollBehavior.takeIf { !tabVisible }, // For scroll overlay when no tab
)
},