Cleanup MigrationSource

This commit is contained in:
Jobobby04 2021-01-25 21:36:11 -05:00
parent a088e1ffc2
commit 1e2f4fc35e
3 changed files with 15 additions and 14 deletions

View File

@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.ui.browse.migration.advanced.design
import android.os.Bundle
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.source.SourceManager
import uy.kohesive.injekt.injectLazy
@ -13,6 +14,9 @@ class MigrationSourceAdapter(
controllerPre,
true
) {
val preferences: PreferencesHelper by injectLazy()
val sourceManager: SourceManager by injectLazy()
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
@ -27,10 +31,10 @@ class MigrationSourceAdapter(
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
val sourceManager: SourceManager by injectLazy()
savedInstanceState.getParcelableArrayList<MigrationSourceItem.ParcelableSI>(
SELECTED_SOURCES_KEY
)?.let { selectedSources ->
val selectedSources = savedInstanceState
.getParcelableArrayList<MigrationSourceItem.MigrationSource>(SELECTED_SOURCES_KEY)
if (selectedSources != null) {
updateDataSet(selectedSources.map { MigrationSourceItem.fromParcelable(sourceManager, it) })
}

View File

@ -3,11 +3,9 @@ package eu.kanade.tachiyomi.ui.browse.migration.advanced.design
import android.graphics.Paint.STRIKE_THRU_TEXT_FLAG
import android.view.View
import eu.davidea.viewholders.FlexibleViewHolder
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.MigrationSourceItemBinding
import eu.kanade.tachiyomi.source.icon
import eu.kanade.tachiyomi.source.online.HttpSource
import uy.kohesive.injekt.injectLazy
class MigrationSourceHolder(view: View, val adapter: MigrationSourceAdapter) :
FlexibleViewHolder(view, adapter) {
@ -17,8 +15,7 @@ class MigrationSourceHolder(view: View, val adapter: MigrationSourceAdapter) :
}
fun bind(source: HttpSource, sourceEnabled: Boolean) {
val preferences by injectLazy<PreferencesHelper>()
val isMultiLanguage = preferences.enabledLanguages().get().size > 1
val isMultiLanguage = adapter.preferences.enabledLanguages().get().size > 1
// Set capitalized title.
val sourceName = if (isMultiLanguage) source.toString() else source.name.capitalize()
binding.title.text = sourceName

View File

@ -55,19 +55,19 @@ class MigrationSourceItem(val source: HttpSource, var sourceEnabled: Boolean) :
}
@Parcelize
data class ParcelableSI(val sourceId: Long, val sourceEnabled: Boolean) : Parcelable
data class MigrationSource(val sourceId: Long, val sourceEnabled: Boolean) : Parcelable
fun asParcelable(): ParcelableSI {
return ParcelableSI(source.id, sourceEnabled)
fun asParcelable(): MigrationSource {
return MigrationSource(source.id, sourceEnabled)
}
companion object {
fun fromParcelable(sourceManager: SourceManager, si: ParcelableSI): MigrationSourceItem? {
val source = sourceManager.get(si.sourceId) as? HttpSource ?: return null
fun fromParcelable(sourceManager: SourceManager, migrationSource: MigrationSource): MigrationSourceItem? {
val source = sourceManager.get(migrationSource.sourceId) as? HttpSource ?: return null
return MigrationSourceItem(
source,
si.sourceEnabled
migrationSource.sourceEnabled
)
}
}