Browse Source

Cancel scope in SettingsControllers properly

arkon 3 years ago
parent
commit
284c019b32

+ 5 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsController.kt

@@ -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.RootController
 import eu.kanade.tachiyomi.util.system.getResourceColor
+import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.MainScope
+import kotlinx.coroutines.cancel
 import uy.kohesive.injekt.Injekt
 import uy.kohesive.injekt.api.get
 
@@ -31,10 +33,11 @@ abstract class SettingsController : PreferenceController() {
 
     var preferenceKey: String? = null
     val preferences: PreferencesHelper = Injekt.get()
-    val viewScope = MainScope()
+    lateinit var viewScope: CoroutineScope
     private var themedContext: Context? = null
 
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle?): View {
+        viewScope = MainScope()
         val view = super.onCreateView(inflater, container, savedInstanceState)
 
         if (this is RootController) {
@@ -79,6 +82,7 @@ abstract class SettingsController : PreferenceController() {
 
     override fun onDestroyView(view: View) {
         super.onDestroyView(view)
+        viewScope.cancel()
         themedContext = null
     }
 

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt

@@ -35,7 +35,7 @@ class SettingsReaderController : SettingsController() {
                 R.string.vertical_plus_viewer
             )
             entryValues = ReadingModeType.values().drop(1)
-                    .map { value -> "${value.flagValue}" }.toTypedArray()
+                .map { value -> "${value.flagValue}" }.toTypedArray()
             defaultValue = "${ReadingModeType.RIGHT_TO_LEFT.flagValue}"
             summary = "%s"
         }