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 3eb0300c467d..8aee4b632248 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 f178ebecfa72..62505a7fac2f 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -22,6 +22,7 @@ import eu.kanade.domain.base.BasePreferences import eu.kanade.domain.chapter.interactor.SetReadStatus 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 @@ -151,6 +152,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 <-- ) : StateScreenModel(State()) { @@ -274,6 +276,13 @@ class LibraryScreenModel( } } .launchIn(screenModelScope) + syncPreferences.syncService() + .changes() + .distinctUntilChanged() + .onEach { syncService -> + mutableState.update { it.copy(isSyncEnabled = syncService != 0) } + } + .launchIn(screenModelScope) // SY <-- } @@ -1360,6 +1369,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 95a3da3f3a96..145494c30dc7 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 @@ -172,6 +172,7 @@ object LibraryTab : Tab { }, // SY --> onClickSyncExh = screenModel::openFavoritesSyncDialog.takeIf { state.showSyncExh }, + isSyncEnabled = state.isSyncEnabled, // SY <-- searchQuery = state.searchQuery, onSearchQueryChange = screenModel::search,