优化
This commit is contained in:
@@ -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)
|
when {
|
||||||
if (o1bs - o2bs > 0) {
|
o1bs - o2bs > 0 -> -1
|
||||||
return -1
|
o1bs - o2bs < 0 -> 1
|
||||||
} else if (o1bs - o2bs < 0) {
|
else -> {
|
||||||
return 1
|
|
||||||
} 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
|
||||||
|
|||||||
Reference in New Issue
Block a user