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 753625439..0ec197924 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 @@ -430,7 +430,6 @@ class ReadMangaActivity : VMBaseActivity { + binding.mangaMenu.runMenuOut() MangaColorFilterDialog().show(supportFragmentManager, "MangaColorFilterDialog") } } diff --git a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaColorFilterConfig.kt b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaColorFilterConfig.kt index 2a24b8457..40202c8df 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaColorFilterConfig.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaColorFilterConfig.kt @@ -10,5 +10,4 @@ data class MangaColorFilterConfig( var b: Int = 0, var a: Int = 0, var l: Int = 0 -) : - Parcelable \ No newline at end of file +) : Parcelable \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaColorFilterDialog.kt b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaColorFilterDialog.kt index 4a8216bb1..77c1b5d19 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaColorFilterDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaColorFilterDialog.kt @@ -4,7 +4,7 @@ import android.content.DialogInterface import android.os.Bundle import android.view.View import android.view.ViewGroup -import android.widget.SeekBar +import android.view.WindowManager import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogMangaColorFilterBinding @@ -23,100 +23,48 @@ class MangaColorFilterDialog : BaseDialogFragment(R.layout.dialog_manga_color_fi override fun onStart() { super.onStart() + dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.seekA.progress = mConfig.a - binding.seekBrightness.progress = mConfig.l - binding.seekB.progress = mConfig.b - binding.seekG.progress = mConfig.g - binding.seekR.progress = mConfig.r - binding.seekBrightness.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { - override fun onProgressChanged( - seekBar: SeekBar?, - progress: Int, - fromUser: Boolean - ) { - mConfig.l = progress + initData() + initView() + } + + private fun initData() { + binding.run { + dsbBrightness.progress = mConfig.l + dsbR.progress = mConfig.r + dsbG.progress = mConfig.g + dsbB.progress = mConfig.b + dsbA.progress = mConfig.a + } + } + + private fun initView() { + binding.run { + dsbBrightness.onChanged = { + mConfig.l = it ReadManga.mCallback?.colorFilter(mConfig) } - - override fun onStartTrackingTouch(seekBar: SeekBar?) { - } - - override fun onStopTrackingTouch(seekBar: SeekBar?) { - } - - }) - binding.seekR.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { - override fun onProgressChanged( - seekBar: SeekBar?, - progress: Int, - fromUser: Boolean - ) { - mConfig.r = progress + dsbR.onChanged = { + mConfig.r = it ReadManga.mCallback?.colorFilter(mConfig) } - - override fun onStartTrackingTouch(seekBar: SeekBar?) { - } - - override fun onStopTrackingTouch(seekBar: SeekBar?) { - } - - }) - binding.seekG.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { - override fun onProgressChanged( - seekBar: SeekBar?, - progress: Int, - fromUser: Boolean - ) { - mConfig.g = progress + dsbG.onChanged = { + mConfig.g = it ReadManga.mCallback?.colorFilter(mConfig) } - - override fun onStartTrackingTouch(seekBar: SeekBar?) { - } - - override fun onStopTrackingTouch(seekBar: SeekBar?) { - } - - }) - binding.seekB.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { - override fun onProgressChanged( - seekBar: SeekBar?, - progress: Int, - fromUser: Boolean - ) { - mConfig.b = progress + dsbB.onChanged = { + mConfig.b = it ReadManga.mCallback?.colorFilter(mConfig) } - - override fun onStartTrackingTouch(seekBar: SeekBar?) { - } - - override fun onStopTrackingTouch(seekBar: SeekBar?) { - } - - }) - binding.seekA.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { - override fun onProgressChanged( - seekBar: SeekBar?, - progress: Int, - fromUser: Boolean - ) { - mConfig.a = progress + dsbA.onChanged = { + mConfig.a = it ReadManga.mCallback?.colorFilter(mConfig) } - - override fun onStartTrackingTouch(seekBar: SeekBar?) { - } - - override fun onStopTrackingTouch(seekBar: SeekBar?) { - } - - }) + } } override fun onDismiss(dialog: DialogInterface) { 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 59f4946bc..206ffe0b4 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 @@ -1,5 +1,6 @@ package io.legado.app.ui.book.manga.recyclerview +import android.annotation.SuppressLint import android.content.Context import android.graphics.ColorMatrix import android.graphics.ColorMatrixColorFilter @@ -230,7 +231,9 @@ class MangaAdapter(private val context: Context) : return null } + @SuppressLint("NotifyDataSetChanged") fun setMangaImageColorFilter(config: MangaColorFilterConfig) { mConfig = config + notifyDataSetChanged() } } \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_manga_color_filter.xml b/app/src/main/res/layout/dialog_manga_color_filter.xml index 29f80d326..9c5b77e40 100644 --- a/app/src/main/res/layout/dialog_manga_color_filter.xml +++ b/app/src/main/res/layout/dialog_manga_color_filter.xml @@ -1,5 +1,6 @@ @@ -12,104 +13,44 @@ - - - - - + app:max="255" + app:title="@string/brightness" /> - - - + app:max="255" + app:title="R" /> - - - + app:max="255" + app:title="G" /> - - - + app:max="255" + app:title="B" /> - - + android:layout_height="wrap_content" + app:max="255" + app:title="A" />