pull/2215/head
kunfei 2 years ago
parent 0aa493f57c
commit ade207b2d6
  1. 6
      app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceAdapter.kt
  2. 24
      app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt

@ -1,7 +1,6 @@
package io.legado.app.ui.book.changesource package io.legado.app.ui.book.changesource
import android.content.Context import android.content.Context
import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -14,7 +13,10 @@ import io.legado.app.base.adapter.DiffRecyclerAdapter
import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.data.entities.SearchBook import io.legado.app.data.entities.SearchBook
import io.legado.app.databinding.ItemChangeSourceBinding import io.legado.app.databinding.ItemChangeSourceBinding
import io.legado.app.utils.* import io.legado.app.utils.getCompatColor
import io.legado.app.utils.gone
import io.legado.app.utils.invisible
import io.legado.app.utils.visible
import splitties.init.appCtx import splitties.init.appCtx
import splitties.views.onLongClick import splitties.views.onLongClick

@ -83,27 +83,23 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a
searchCallback = null searchCallback = null
} }
}.map { }.map {
searchBooks.sortedWith(object : Comparator<SearchBook> { searchBooks.sortedWith { o1, o2 ->
override fun compare(o1: SearchBook, o2: SearchBook): Int {
val o1bs = SourceConfig.getBookScore(o1.origin, o1.name, o1.author) val o1bs = SourceConfig.getBookScore(o1.origin, o1.name, o1.author)
val o2bs = SourceConfig.getBookScore(o2.origin, o2.name, o2.author) val o2bs = SourceConfig.getBookScore(o2.origin, o2.name, o2.author)
if (o1bs - o2bs > 0) { when {
return -1 o1bs - o2bs > 0 -> -1
} else if (o1bs - o2bs < 0) { o1bs - o2bs < 0 -> 1
return 1 else -> {
} else {
val o1ss = SourceConfig.getSourceScore(o1.origin) val o1ss = SourceConfig.getSourceScore(o1.origin)
val o2ss = SourceConfig.getSourceScore(o2.origin) val o2ss = SourceConfig.getSourceScore(o2.origin)
if (o1ss - o2ss > 0) { when {
return -1 o1ss - o2ss > 0 -> -1
} else if (o1ss - o2ss < 0) { o1ss - o2ss < 0 -> 1
return 1 else -> o1.originOrder - o2.originOrder
} else { }
return o1.originOrder - o2.originOrder
} }
} }
} }
})
}.flowOn(IO) }.flowOn(IO)
@Volatile @Volatile

Loading…
Cancel
Save