Cancel scope in SettingsControllers properly
Cette révision appartient à :
Parent
32434471e5
révision
284c019b32
2 fichiers modifiés avec 6 ajouts et 2 suppressions
|
@ -23,7 +23,9 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.BaseController
|
import eu.kanade.tachiyomi.ui.base.controller.BaseController
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.RootController
|
import eu.kanade.tachiyomi.ui.base.controller.RootController
|
||||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.MainScope
|
import kotlinx.coroutines.MainScope
|
||||||
|
import kotlinx.coroutines.cancel
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
|
||||||
|
@ -31,10 +33,11 @@ abstract class SettingsController : PreferenceController() {
|
||||||
|
|
||||||
var preferenceKey: String? = null
|
var preferenceKey: String? = null
|
||||||
val preferences: PreferencesHelper = Injekt.get()
|
val preferences: PreferencesHelper = Injekt.get()
|
||||||
val viewScope = MainScope()
|
lateinit var viewScope: CoroutineScope
|
||||||
private var themedContext: Context? = null
|
private var themedContext: Context? = null
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle?): View {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle?): View {
|
||||||
|
viewScope = MainScope()
|
||||||
val view = super.onCreateView(inflater, container, savedInstanceState)
|
val view = super.onCreateView(inflater, container, savedInstanceState)
|
||||||
|
|
||||||
if (this is RootController) {
|
if (this is RootController) {
|
||||||
|
@ -79,6 +82,7 @@ abstract class SettingsController : PreferenceController() {
|
||||||
|
|
||||||
override fun onDestroyView(view: View) {
|
override fun onDestroyView(view: View) {
|
||||||
super.onDestroyView(view)
|
super.onDestroyView(view)
|
||||||
|
viewScope.cancel()
|
||||||
themedContext = null
|
themedContext = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ class SettingsReaderController : SettingsController() {
|
||||||
R.string.vertical_plus_viewer
|
R.string.vertical_plus_viewer
|
||||||
)
|
)
|
||||||
entryValues = ReadingModeType.values().drop(1)
|
entryValues = ReadingModeType.values().drop(1)
|
||||||
.map { value -> "${value.flagValue}" }.toTypedArray()
|
.map { value -> "${value.flagValue}" }.toTypedArray()
|
||||||
defaultValue = "${ReadingModeType.RIGHT_TO_LEFT.flagValue}"
|
defaultValue = "${ReadingModeType.RIGHT_TO_LEFT.flagValue}"
|
||||||
summary = "%s"
|
summary = "%s"
|
||||||
}
|
}
|
||||||
|
|
Référencer dans un nouveau ticket