From fa6790856d295307e4d2e6a327c55e3a297b2223 Mon Sep 17 00:00:00 2001 From: NerdNumber9 Date: Thu, 9 Mar 2017 18:49:52 -0500 Subject: [PATCH] Fixed SourceManager creating sources multiple times on app launch. --- .../kanade/tachiyomi/source/SourceManager.kt | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt b/app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt index d55039906..b7a7ee4e7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt @@ -23,7 +23,7 @@ import eu.kanade.tachiyomi.source.online.russian.Readmanga import eu.kanade.tachiyomi.util.hasPermission import exh.* import org.yaml.snakeyaml.Yaml -import rx.functions.Action1 +import rx.Observable import timber.log.Timber import uy.kohesive.injekt.injectLazy import java.io.File @@ -35,21 +35,20 @@ open class SourceManager(private val context: Context) { private val sourcesMap = mutableMapOf() init { - createSources() + //Recreate sources when they change + val prefEntries = arrayOf( + prefs.enableExhentai(), + prefs.imageQuality(), + prefs.useHentaiAtHome(), + prefs.useJapaneseTitle(), + prefs.ehSearchSize(), + prefs.thumbnailRows() + ).map { it.asObservable() } - //Rebuild sources when settings change - val action: Action1 = Action1 { + Observable.merge(prefEntries).skip(prefEntries.size - 1).subscribe { sourcesMap.clear() createSources() } - prefs.enableExhentai().asObservable().subscribe(action) - prefs.imageQuality().asObservable().subscribe (action) - prefs.useHentaiAtHome().asObservable().subscribe(action) - prefs.useJapaneseTitle().asObservable().subscribe { - action.call(null) - } - prefs.ehSearchSize().asObservable().subscribe (action) - prefs.thumbnailRows().asObservable().subscribe(action) } open fun get(sourceKey: Long): Source? {