diff --git a/app/src/main/java/io/legado/app/model/ReadManga.kt b/app/src/main/java/io/legado/app/model/ReadManga.kt index 8631c5e16..60fc6dbe8 100644 --- a/app/src/main/java/io/legado/app/model/ReadManga.kt +++ b/app/src/main/java/io/legado/app/model/ReadManga.kt @@ -20,7 +20,6 @@ import io.legado.app.help.config.AppConfig import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.globalExecutor import io.legado.app.model.webBook.WebBook -import io.legado.app.ui.book.manga.config.MangaColorFilterConfig import io.legado.app.ui.book.manga.entities.MangaChapter import io.legado.app.ui.book.manga.entities.MangaContent import io.legado.app.ui.book.manga.entities.MangaContentData @@ -589,6 +588,5 @@ object ReadManga : CoroutineScope by MainScope() { fun loadFail(msg: String) fun sureNewProgress(progress: BookProgress) fun showLoading() - fun colorFilter(config: MangaColorFilterConfig) } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt index 0ec197924..5e560a043 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt @@ -71,7 +71,8 @@ import kotlinx.coroutines.withContext import java.text.DecimalFormat class ReadMangaActivity : VMBaseActivity(), - ReadManga.Callback, ChangeBookSourceDialog.CallBack, MangaMenu.CallBack { + ReadManga.Callback, ChangeBookSourceDialog.CallBack, MangaMenu.CallBack, + MangaColorFilterDialog.Callback { private val mLayoutManager by lazy { LinearLayoutManager( @@ -428,11 +429,6 @@ class ReadMangaActivity : VMBaseActivity(AppConfig.mangaColorFilter).getOrNull() ?: MangaColorFilterConfig() + private val callback get() = activity as? Callback override fun onStart() { super.onStart() @@ -46,30 +46,34 @@ class MangaColorFilterDialog : BaseDialogFragment(R.layout.dialog_manga_color_fi binding.run { dsbBrightness.onChanged = { mConfig.l = it - ReadManga.mCallback?.colorFilter(mConfig) + callback?.updateColorFilter(mConfig) } dsbR.onChanged = { mConfig.r = it - ReadManga.mCallback?.colorFilter(mConfig) + callback?.updateColorFilter(mConfig) } dsbG.onChanged = { mConfig.g = it - ReadManga.mCallback?.colorFilter(mConfig) + callback?.updateColorFilter(mConfig) } dsbB.onChanged = { mConfig.b = it - ReadManga.mCallback?.colorFilter(mConfig) + callback?.updateColorFilter(mConfig) } dsbA.onChanged = { mConfig.a = it - ReadManga.mCallback?.colorFilter(mConfig) + callback?.updateColorFilter(mConfig) } } } override fun onDismiss(dialog: DialogInterface) { super.onDismiss(dialog) - AppConfig.mangaColorFilter = GSON.toJson(mConfig) + AppConfig.mangaColorFilter = mConfig.toJson() + } + + interface Callback { + fun updateColorFilter(config: MangaColorFilterConfig) } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/manga/recyclerview/MangaAdapter.kt b/app/src/main/java/io/legado/app/ui/book/manga/recyclerview/MangaAdapter.kt index 5799e4870..d3de4d586 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/recyclerview/MangaAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/recyclerview/MangaAdapter.kt @@ -105,23 +105,21 @@ class MangaAdapter(private val context: Context) : } fun setImageColorFilter() { - binding.image.run { - require( - mConfig.r in 0..255 && - mConfig.g in 0..255 && - mConfig.b in 0..255 && - mConfig.a in 0..255 - ) { - "ARGB values must be between 0-255" - } - val matrix = floatArrayOf( - (255 - mConfig.r) / 255f, 0f, 0f, 0f, 0f, - 0f, (255 - mConfig.g) / 255f, 0f, 0f, 0f, - 0f, 0f, (255 - mConfig.b) / 255f, 0f, 0f, - 0f, 0f, 0f, (255 - mConfig.a) / 255f, 0f - ) - colorFilter = ColorMatrixColorFilter(ColorMatrix(matrix)) + require( + mConfig.r in 0..255 && + mConfig.g in 0..255 && + mConfig.b in 0..255 && + mConfig.a in 0..255 + ) { + "ARGB values must be between 0-255" } + val matrix = floatArrayOf( + (255 - mConfig.r) / 255f, 0f, 0f, 0f, 0f, + 0f, (255 - mConfig.g) / 255f, 0f, 0f, 0f, + 0f, 0f, (255 - mConfig.b) / 255f, 0f, 0f, + 0f, 0f, 0f, (255 - mConfig.a) / 255f, 0f + ) + binding.image.colorFilter = ColorMatrixColorFilter(ColorMatrix(matrix)) } }