Do not crash if source provides bad prefs
This commit is contained in:
parent
15bd8e964d
commit
b5263a6968
@ -13,6 +13,7 @@ import android.view.ContextThemeWrapper
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import com.elvishew.xlog.XLog
|
||||||
import com.jakewharton.rxbinding.view.clicks
|
import com.jakewharton.rxbinding.view.clicks
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.preference.EmptyPreferenceDataStore
|
import eu.kanade.tachiyomi.data.preference.EmptyPreferenceDataStore
|
||||||
@ -23,6 +24,7 @@ import eu.kanade.tachiyomi.source.online.LoginSource
|
|||||||
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
||||||
import eu.kanade.tachiyomi.ui.setting.preferenceCategory
|
import eu.kanade.tachiyomi.ui.setting.preferenceCategory
|
||||||
import eu.kanade.tachiyomi.util.LocaleHelper
|
import eu.kanade.tachiyomi.util.LocaleHelper
|
||||||
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import eu.kanade.tachiyomi.widget.preference.LoginPreference
|
import eu.kanade.tachiyomi.widget.preference.LoginPreference
|
||||||
import eu.kanade.tachiyomi.widget.preference.SourceLoginDialog
|
import eu.kanade.tachiyomi.widget.preference.SourceLoginDialog
|
||||||
import kotlinx.android.synthetic.main.extension_detail_controller.*
|
import kotlinx.android.synthetic.main.extension_detail_controller.*
|
||||||
@ -34,6 +36,10 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
|
|||||||
DialogPreference.TargetFragment,
|
DialogPreference.TargetFragment,
|
||||||
SourceLoginDialog.Listener {
|
SourceLoginDialog.Listener {
|
||||||
|
|
||||||
|
// EXH -->
|
||||||
|
private val logger = XLog.tag("ExtensionDetailsController")
|
||||||
|
// EXH <--
|
||||||
|
|
||||||
private var lastOpenPreferencePosition: Int? = null
|
private var lastOpenPreferencePosition: Int? = null
|
||||||
|
|
||||||
private var preferenceScreen: PreferenceScreen? = null
|
private var preferenceScreen: PreferenceScreen? = null
|
||||||
@ -81,7 +87,16 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
|
|||||||
|
|
||||||
for (source in extension.sources) {
|
for (source in extension.sources) {
|
||||||
if (source is ConfigurableSource) {
|
if (source is ConfigurableSource) {
|
||||||
addPreferencesForSource(screen, source, multiSource)
|
// EXH -->
|
||||||
|
try {
|
||||||
|
// EXH <--
|
||||||
|
addPreferencesForSource(screen, source, multiSource)
|
||||||
|
// EXH -->
|
||||||
|
} catch(e: Exception) {
|
||||||
|
logger.e("Failed to load preferences for source: ${source.name}!", e)
|
||||||
|
context.toast("Failed to load preferences for this source!")
|
||||||
|
}
|
||||||
|
// EXH <--
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user