diff --git a/app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt b/app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt index 3eb0300c4..8aee4b632 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt @@ -41,6 +41,7 @@ fun LibraryToolbar( onClickSyncNow: () -> Unit, // SY --> onClickSyncExh: (() -> Unit)?, + isSyncEnabled: Boolean, // SY <-- searchQuery: String?, onSearchQueryChange: (String?) -> Unit, @@ -64,6 +65,7 @@ fun LibraryToolbar( onClickSyncNow = onClickSyncNow, // SY --> onClickSyncExh = onClickSyncExh, + isSyncEnabled = isSyncEnabled, // SY <-- scrollBehavior = scrollBehavior, ) @@ -82,6 +84,7 @@ private fun LibraryRegularToolbar( onClickSyncNow: () -> Unit, // SY --> onClickSyncExh: (() -> Unit)?, + isSyncEnabled: Boolean, // SY <-- scrollBehavior: TopAppBarScrollBehavior?, ) { @@ -128,10 +131,6 @@ private fun LibraryRegularToolbar( title = stringResource(MR.strings.action_open_random_manga), onClick = onClickOpenRandomManga, ), - AppBar.OverflowAction( - title = stringResource(SYMR.strings.sync_library), - onClick = onClickSyncNow, - ), ).builder().apply { // SY --> if (onClickSyncExh != null) { @@ -142,6 +141,14 @@ private fun LibraryRegularToolbar( ), ) } + if (isSyncEnabled) { + add( + AppBar.OverflowAction( + title = stringResource(SYMR.strings.sync_library), + onClick = onClickSyncNow, + ), + ) + } // SY <-- }.build(), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index da44d0c8c..df454f095 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -23,6 +23,7 @@ import eu.kanade.domain.chapter.interactor.SetReadStatus import eu.kanade.domain.manga.interactor.SmartSearchMerge import eu.kanade.domain.manga.interactor.UpdateManga import eu.kanade.domain.source.service.SourcePreferences +import eu.kanade.domain.sync.SyncPreferences import eu.kanade.presentation.components.SEARCH_DEBOUNCE_MILLIS import eu.kanade.presentation.library.components.LibraryToolbarTitle import eu.kanade.presentation.manga.DownloadAction @@ -154,6 +155,7 @@ class LibraryScreenModel( private val searchEngine: SearchEngine = Injekt.get(), private val setCustomMangaInfo: SetCustomMangaInfo = Injekt.get(), private val getMergedChaptersByMangaId: GetMergedChaptersByMangaId = Injekt.get(), + private val syncPreferences: SyncPreferences = Injekt.get(), // SY <-- // KMK --> private val smartSearchMerge: SmartSearchMerge = Injekt.get(), @@ -284,6 +286,13 @@ class LibraryScreenModel( } } .launchIn(screenModelScope) + syncPreferences.syncService() + .changes() + .distinctUntilChanged() + .onEach { syncService -> + mutableState.update { it.copy(isSyncEnabled = syncService != 0) } + } + .launchIn(screenModelScope) // SY <-- } @@ -1444,6 +1453,7 @@ class LibraryScreenModel( val dialog: Dialog? = null, // SY --> val showSyncExh: Boolean = false, + val isSyncEnabled: Boolean = false, val ogCategories: List = emptyList(), val groupType: Int = LibraryGroup.BY_DEFAULT, // SY <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt index ef60d5bdb..cfb69a6f7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt @@ -176,6 +176,7 @@ object LibraryTab : Tab { }, // SY --> onClickSyncExh = screenModel::openFavoritesSyncDialog.takeIf { state.showSyncExh }, + isSyncEnabled = state.isSyncEnabled, // SY <-- searchQuery = state.searchQuery, onSearchQueryChange = screenModel::search,