mirror of
https://github.com/mihonapp/mihon.git
synced 2025-10-28 04:47:56 +01:00
Custom color filter for reader (#434)
* [WIP] Custom color filter for reader * Improvements * temp image to prevent build error * Shift all the bits * Some improvements. Removed DiscreteSeekBar * Improvements * API 16 + fixes * Reduced lag. Fixed brightness value being reset to 0 * Small fixes
This commit is contained in:
committed by
inorichi
parent
58a2f7a874
commit
8be67a4431
@@ -0,0 +1,61 @@
|
||||
package eu.kanade.tachiyomi.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.widget.SeekBar
|
||||
import eu.kanade.tachiyomi.R
|
||||
|
||||
|
||||
class NegativeSeekBar @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||
SeekBar(context, attrs) {
|
||||
|
||||
private var minValue: Int = 0
|
||||
private var maxValue: Int = 0
|
||||
private var listener: OnSeekBarChangeListener? = null
|
||||
|
||||
init {
|
||||
val styledAttributes = context.obtainStyledAttributes(
|
||||
attrs,
|
||||
R.styleable.NegativeSeekBar, 0, 0)
|
||||
|
||||
try {
|
||||
setMinSeek(styledAttributes.getInt(R.styleable.NegativeSeekBar_min_seek, 0))
|
||||
setMaxSeek(styledAttributes.getInt(R.styleable.NegativeSeekBar_max_seek, 0))
|
||||
} finally {
|
||||
styledAttributes.recycle()
|
||||
}
|
||||
|
||||
super.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
|
||||
override fun onProgressChanged(seekBar: SeekBar?, value: Int, fromUser: Boolean) {
|
||||
listener?.let { it.onProgressChanged(seekBar, minValue + value, fromUser) }
|
||||
}
|
||||
|
||||
override fun onStartTrackingTouch(p0: SeekBar?) {
|
||||
listener?.let { it.onStartTrackingTouch(p0) }
|
||||
}
|
||||
|
||||
override fun onStopTrackingTouch(p0: SeekBar?) {
|
||||
listener?.let { it.onStopTrackingTouch(p0) }
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun setProgress(progress: Int) {
|
||||
super.setProgress(Math.abs(minValue) + progress)
|
||||
}
|
||||
|
||||
fun setMinSeek(minValue: Int) {
|
||||
this.minValue = minValue
|
||||
max = (this.maxValue - this.minValue)
|
||||
}
|
||||
|
||||
fun setMaxSeek(maxValue: Int) {
|
||||
this.maxValue = maxValue
|
||||
max = (this.maxValue - this.minValue)
|
||||
}
|
||||
|
||||
override fun setOnSeekBarChangeListener(listener: OnSeekBarChangeListener?) {
|
||||
this.listener = listener
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
package eu.kanade.tachiyomi.widget
|
||||
|
||||
import android.widget.SeekBar
|
||||
|
||||
open class SimpleSeekBarListener : SeekBar.OnSeekBarChangeListener {
|
||||
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {}
|
||||
override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
|
||||
}
|
||||
|
||||
override fun onStartTrackingTouch(seekBar: SeekBar) {}
|
||||
override fun onStartTrackingTouch(seekBar: SeekBar) {
|
||||
}
|
||||
|
||||
override fun onStopTrackingTouch(seekBar: SeekBar) {}
|
||||
override fun onStopTrackingTouch(seekBar: SeekBar) {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user