Sync Follows sync status choice

This commit is contained in:
Jobobby04 2021-03-12 18:10:58 -05:00
parent d255ee805b
commit a989426d95
5 changed files with 26 additions and 6 deletions

View File

@ -539,11 +539,12 @@ class LibraryUpdateService(
private suspend fun syncFollows() {
val count = AtomicInteger(0)
val mangaDex = MdUtil.getEnabledMangaDex(preferences, sourceManager) ?: return
val syncFollowStatusInts = preferences.mangadexSyncToLibraryIndexes().get().map { it.toInt() }
val size: Int
mangaDex.fetchAllFollows(true)
.filter { (_, metadata) ->
metadata.follow_status == FollowStatus.RE_READING.int || metadata.follow_status == FollowStatus.READING.int
syncFollowStatusInts.contains(metadata.follow_status)
}
.also { size = it.size }
.forEach { (networkManga, metadata) ->

View File

@ -323,6 +323,8 @@ object PreferenceKeys {
const val mangadexSimilarOnlyOverWifi = "pref_simular_only_over_wifi_key"
const val mangadexSyncToLibraryIndexes = "pref_mangadex_sync_to_library_indexes"
const val preferredMangaDexId = "preferred_mangaDex_id"
const val dataSaver = "data_saver"

View File

@ -433,6 +433,8 @@ class PreferencesHelper(val context: Context) {
fun mangadexSimilarOnlyOverWifi() = flowPrefs.getBoolean(Keys.mangadexSimilarOnlyOverWifi, true)
fun mangadexSyncToLibraryIndexes() = flowPrefs.getStringSet(Keys.mangadexSyncToLibraryIndexes, emptySet())
fun mangadexSimilarUpdateInterval() = flowPrefs.getInt(Keys.mangadexSimilarUpdateInterval, 2)
fun dataSaver() = flowPrefs.getBoolean(Keys.dataSaver, false)

View File

@ -1,6 +1,8 @@
package eu.kanade.tachiyomi.ui.setting
import androidx.preference.PreferenceScreen
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.list.listItemsMultiChoice
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
@ -76,10 +78,22 @@ class SettingsMangaDexController :
summaryRes = R.string.mangadex_sync_follows_to_library_summary
onClick {
LibraryUpdateService.start(
context,
target = LibraryUpdateService.Target.SYNC_FOLLOWS
)
MaterialDialog(context)
.title(R.string.mangadex_sync_follows_to_library)
.message(R.string.mangadex_sync_follows_to_library_message)
.listItemsMultiChoice(
items = context.resources.getStringArray(R.array.md_follows_options).toList().let { it.subList(1, it.size) },
initialSelection = intArrayOf(0, 5)
) { _, indices, _ ->
preferences.mangadexSyncToLibraryIndexes().set(indices.map { (it + 1).toString() }.toSet())
LibraryUpdateService.start(
context,
target = LibraryUpdateService.Target.SYNC_FOLLOWS
)
}
.positiveButton(android.R.string.ok)
.negativeButton(android.R.string.cancel)
.show()
}
}

View File

@ -577,7 +577,8 @@
<string name="md_follows_unfollowed">Unfollowed</string>
<string name="mangadex_specific_settings">MangaDex settings</string>
<string name="mangadex_sync_follows_to_library">Sync Mangadex manga to your library</string>
<string name="mangadex_sync_follows_to_library_summary">Pulls reading/rereading manga from MangaDex into your library if they are not already added.</string>
<string name="mangadex_sync_follows_to_library_summary">Pulls manga from MangaDex into your library if they are not already added.</string>
<string name="mangadex_sync_follows_to_library_message">Select the status of manga to be pulled from Mangadex</string>
<string name="mangadex_low_quality_covers">Use low quality thumbnails</string>
<string name="mangadex_use_latest_cover">Use latest uploaded cover</string>
<string name="mangadex_use_latest_cover_summary">When enabled, it uses the latest uploaded manga cover under the /covers url instead of using the cover on MangaDex\'s manga page</string>