Do not crash if source provides bad prefs

This commit is contained in:
NerdNumber9 2019-07-28 03:45:50 -04:00
parent 15bd8e964d
commit b5263a6968

View File

@ -13,6 +13,7 @@ import android.view.ContextThemeWrapper
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.elvishew.xlog.XLog
import com.jakewharton.rxbinding.view.clicks
import eu.kanade.tachiyomi.R
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.setting.preferenceCategory
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.SourceLoginDialog
import kotlinx.android.synthetic.main.extension_detail_controller.*
@ -34,6 +36,10 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
DialogPreference.TargetFragment,
SourceLoginDialog.Listener {
// EXH -->
private val logger = XLog.tag("ExtensionDetailsController")
// EXH <--
private var lastOpenPreferencePosition: Int? = null
private var preferenceScreen: PreferenceScreen? = null
@ -81,7 +87,16 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
for (source in extension.sources) {
if (source is ConfigurableSource) {
// 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 <--
}
}