From 6c9235ff359e843a20c53148d8b7ed98dc78e569 Mon Sep 17 00:00:00 2001
From: shen <978622005@qq.com>
Date: Mon, 29 Aug 2022 09:59:56 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AB=A0=E8=8A=82=E6=8D=A2=E6=BA=90=E7=82=B9?=
=?UTF-8?q?=E8=B5=9E=EF=BC=8CUI=E5=BE=AE=E8=B0=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../changesource/ChangeBookSourceAdapter.kt | 24 +++++----
.../ChangeChapterSourceAdapter.kt | 54 +++++++++++++++++++
.../changesource/ChangeChapterSourceDialog.kt | 8 +++
.../main/res/layout/item_change_source.xml | 12 ++---
4 files changed, 81 insertions(+), 17 deletions(-)
diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceAdapter.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceAdapter.kt
index 0ccfe3e41..e94f8671b 100644
--- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceAdapter.kt
+++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceAdapter.kt
@@ -6,6 +6,7 @@ import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.widget.PopupMenu
+import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.view.isVisible
import androidx.recyclerview.widget.DiffUtil
import io.legado.app.R
@@ -13,9 +14,8 @@ import io.legado.app.base.adapter.DiffRecyclerAdapter
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.data.entities.SearchBook
import io.legado.app.databinding.ItemChangeSourceBinding
-import io.legado.app.utils.gone
-import io.legado.app.utils.invisible
-import io.legado.app.utils.visible
+import io.legado.app.utils.*
+import splitties.init.appCtx
import splitties.views.onLongClick
@@ -75,16 +75,18 @@ class ChangeBookSourceAdapter(
if (score > 0) {
binding.ivBad.gone()
binding.ivGood.visible()
- binding.ivGood.drawable.setTint(Color.parseColor("#D50000"))
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_A200))
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_100))
} else if (score < 0) {
binding.ivGood.gone()
binding.ivBad.visible()
- binding.ivBad.drawable.setTint(Color.parseColor("#2962FF"))
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_100))
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_A200))
} else {
binding.ivGood.visible()
binding.ivBad.visible()
- binding.ivGood.drawable.setTint(Color.parseColor("#FF8A80"))
- binding.ivBad.drawable.setTint(Color.parseColor("#82B1FF"))
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_100))
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_100))
}
}
}
@@ -92,13 +94,13 @@ class ChangeBookSourceAdapter(
override fun registerListener(holder: ItemViewHolder, binding: ItemChangeSourceBinding) {
binding.ivGood.setOnClickListener {
if (binding.ivBad.isVisible) {
- binding.ivGood.drawable.setTint(Color.parseColor("#D50000"))
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_A200))
binding.ivBad.gone()
getItem(holder.layoutPosition)?.let {
callBack.setBookScore(it, 1)
}
} else {
- binding.ivGood.drawable.setTint(Color.parseColor("#FF8A80"))
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_100))
binding.ivBad.visible()
getItem(holder.layoutPosition)?.let {
callBack.setBookScore(it, 0)
@@ -107,13 +109,13 @@ class ChangeBookSourceAdapter(
}
binding.ivBad.setOnClickListener {
if (binding.ivGood.isVisible) {
- binding.ivBad.drawable.setTint(Color.parseColor("#2962FF"))
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_A200))
binding.ivGood.gone()
getItem(holder.layoutPosition)?.let {
callBack.setBookScore(it, -1)
}
} else {
- binding.ivBad.drawable.setTint(Color.parseColor("#82B1FF"))
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_100))
binding.ivGood.visible()
getItem(holder.layoutPosition)?.let {
callBack.setBookScore(it, 0)
diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceAdapter.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceAdapter.kt
index 7e1bef5a3..7a3ae7daf 100644
--- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceAdapter.kt
+++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceAdapter.kt
@@ -5,14 +5,19 @@ import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.widget.PopupMenu
+import androidx.core.graphics.drawable.DrawableCompat
+import androidx.core.view.isVisible
import androidx.recyclerview.widget.DiffUtil
import io.legado.app.R
import io.legado.app.base.adapter.DiffRecyclerAdapter
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.data.entities.SearchBook
import io.legado.app.databinding.ItemChangeSourceBinding
+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.views.onLongClick
@@ -68,10 +73,57 @@ class ChangeChapterSourceAdapter(
}
}
}
+ val score = callBack.getBookScore(item)
+ if (score > 0) {
+ binding.ivBad.gone()
+ binding.ivGood.visible()
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_A200))
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_100))
+ } else if (score < 0) {
+ binding.ivGood.gone()
+ binding.ivBad.visible()
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_100))
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_A200))
+ } else {
+ binding.ivGood.visible()
+ binding.ivBad.visible()
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_100))
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_100))
+ }
}
}
override fun registerListener(holder: ItemViewHolder, binding: ItemChangeSourceBinding) {
+ binding.ivGood.setOnClickListener {
+ if (binding.ivBad.isVisible) {
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_A200))
+ binding.ivBad.gone()
+ getItem(holder.layoutPosition)?.let {
+ callBack.setBookScore(it, 1)
+ }
+ } else {
+ DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_100))
+ binding.ivBad.visible()
+ getItem(holder.layoutPosition)?.let {
+ callBack.setBookScore(it, 0)
+ }
+ }
+ }
+ binding.ivBad.setOnClickListener {
+ if (binding.ivGood.isVisible) {
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_A200))
+ binding.ivGood.gone()
+ getItem(holder.layoutPosition)?.let {
+ callBack.setBookScore(it, -1)
+ }
+ } else {
+ DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_100))
+ binding.ivGood.visible()
+ getItem(holder.layoutPosition)?.let {
+ callBack.setBookScore(it, 0)
+ }
+ }
+ }
holder.itemView.setOnClickListener {
getItem(holder.layoutPosition)?.let {
callBack.openToc(it)
@@ -118,5 +170,7 @@ class ChangeChapterSourceAdapter(
fun editSource(searchBook: SearchBook)
fun disableSource(searchBook: SearchBook)
fun deleteSource(searchBook: SearchBook)
+ fun setBookScore(searchBook: SearchBook, score: Int)
+ fun getBookScore(searchBook: SearchBook): Int
}
}
\ No newline at end of file
diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt
index aeafb27ba..f745b5c0b 100644
--- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt
+++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt
@@ -314,6 +314,14 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c
}
}
+ override fun setBookScore(searchBook: SearchBook, score: Int) {
+ viewModel.setBookScore(searchBook, score)
+ }
+
+ override fun getBookScore(searchBook: SearchBook): Int {
+ return viewModel.getBookScore(searchBook)
+ }
+
override fun clickChapter(bookChapter: BookChapter, nextChapterUrl: String?) {
searchBook?.let {
binding.loadingToc.show()
diff --git a/app/src/main/res/layout/item_change_source.xml b/app/src/main/res/layout/item_change_source.xml
index 1338fbae8..4be15d5b3 100644
--- a/app/src/main/res/layout/item_change_source.xml
+++ b/app/src/main/res/layout/item_change_source.xml
@@ -9,7 +9,7 @@
+ app:tint="@color/md_red_A200" />
+ app:tint="@color/md_blue_A200" />