diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index c39e076a2..bc6426dce 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -19,7 +19,6 @@ import android.view.View import android.view.WindowManager import android.view.animation.Animation import android.view.animation.AnimationUtils -import android.widget.SeekBar import androidx.core.view.ViewCompat import com.afollestad.materialdialogs.MaterialDialog import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView @@ -59,7 +58,6 @@ import eu.kanade.tachiyomi.util.view.isDefaultBar import eu.kanade.tachiyomi.util.view.showBar import eu.kanade.tachiyomi.util.view.visible import eu.kanade.tachiyomi.widget.SimpleAnimationListener -import eu.kanade.tachiyomi.widget.SimpleSeekBarListener import java.io.File import java.util.concurrent.TimeUnit import kotlin.math.abs @@ -72,6 +70,7 @@ import kotlinx.coroutines.flow.sample import nucleus.factory.RequiresPresenter import reactivecircus.flowbinding.android.view.clicks import reactivecircus.flowbinding.android.widget.checkedChanges +import reactivecircus.flowbinding.android.widget.progressChanges import reactivecircus.flowbinding.android.widget.textChanges import rx.Observable import rx.Subscription @@ -352,13 +351,13 @@ class ReaderActivity : BaseRxActivity() } // Init listeners on bottom menu - binding.pageSeekbar.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { - override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { - if (viewer != null && fromUser) { - moveToPageIndex(value) + binding.pageSeekbar.progressChanges() + .onEach { + if (viewer != null) { + moveToPageIndex(it) } } - }) + .launchIn(scope) binding.leftChapter.setOnClickListener { if (viewer != null) { if (viewer is R2LPagerViewer) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderColorFilterSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderColorFilterSheet.kt index d4d064eda..a67278fc3 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderColorFilterSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderColorFilterSheet.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.ui.reader import android.graphics.Color import android.view.View import android.view.ViewGroup -import android.widget.SeekBar import androidx.annotation.ColorInt import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog @@ -12,7 +11,6 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.util.view.gone import eu.kanade.tachiyomi.util.view.visible import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener -import eu.kanade.tachiyomi.widget.SimpleSeekBarListener import kotlin.math.abs import kotlinx.android.synthetic.main.reader_color_filter.brightness_seekbar import kotlinx.android.synthetic.main.reader_color_filter.color_filter_mode @@ -29,9 +27,13 @@ import kotlinx.android.synthetic.main.reader_color_filter.txt_color_filter_green import kotlinx.android.synthetic.main.reader_color_filter.txt_color_filter_red_value import kotlinx.android.synthetic.main.reader_color_filter_sheet.brightness_overlay import kotlinx.android.synthetic.main.reader_color_filter_sheet.color_overlay +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.sample +import reactivecircus.flowbinding.android.widget.progressChanges import uy.kohesive.injekt.injectLazy /** @@ -39,6 +41,8 @@ import uy.kohesive.injekt.injectLazy */ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheetDialog(activity) { + private val scope = CoroutineScope(Job() + Dispatchers.Main) + private val preferences by injectLazy() private var sheetBehavior: BottomSheetBehavior<*>? = null @@ -93,45 +97,25 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet } color_filter_mode.setSelection(preferences.colorFilterMode().get(), false) - seekbar_color_filter_alpha.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { - override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { - if (fromUser) { - setColorValue(value, ALPHA_MASK, 24) - } - } - }) + seekbar_color_filter_alpha.progressChanges() + .onEach { setColorValue(it, ALPHA_MASK, 24) } + .launchIn(scope) - seekbar_color_filter_red.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { - override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { - if (fromUser) { - setColorValue(value, RED_MASK, 16) - } - } - }) + seekbar_color_filter_red.progressChanges() + .onEach { setColorValue(it, RED_MASK, 16) } + .launchIn(scope) - seekbar_color_filter_green.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { - override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { - if (fromUser) { - setColorValue(value, GREEN_MASK, 8) - } - } - }) + seekbar_color_filter_green.progressChanges() + .onEach { setColorValue(it, GREEN_MASK, 8) } + .launchIn(scope) - seekbar_color_filter_blue.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { - override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { - if (fromUser) { - setColorValue(value, BLUE_MASK, 0) - } - } - }) + seekbar_color_filter_blue.progressChanges() + .onEach { setColorValue(it, BLUE_MASK, 0) } + .launchIn(scope) - brightness_seekbar.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { - override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { - if (fromUser) { - preferences.customBrightnessValue().set(value) - } - } - }) + brightness_seekbar.progressChanges() + .onEach { preferences.customBrightnessValue().set(it) } + .launchIn(scope) } override fun onStart() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/DialogCustomDownloadView.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/DialogCustomDownloadView.kt index 60af36113..d4bcfca15 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/DialogCustomDownloadView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/DialogCustomDownloadView.kt @@ -28,6 +28,8 @@ class DialogCustomDownloadView @JvmOverloads constructor(context: Context, attrs private val scope = CoroutineScope(Job() + Dispatchers.Main) + private val scope = CoroutineScope(Job() + Dispatchers.Main) + /** * Current amount of custom download chooser. */ diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/SimpleSeekBarListener.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/SimpleSeekBarListener.kt deleted file mode 100755 index fdade75f1..000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/SimpleSeekBarListener.kt +++ /dev/null @@ -1,14 +0,0 @@ -package eu.kanade.tachiyomi.widget - -import android.widget.SeekBar - -open class SimpleSeekBarListener : SeekBar.OnSeekBarChangeListener { - override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { - } - - override fun onStartTrackingTouch(seekBar: SeekBar) { - } - - override fun onStopTrackingTouch(seekBar: SeekBar) { - } -}