diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/PaddingConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/PaddingConfigDialog.kt
index c1a9e5e8f..0d16229b0 100644
--- a/app/src/main/java/io/legado/app/ui/book/read/config/PaddingConfigDialog.kt
+++ b/app/src/main/java/io/legado/app/ui/book/read/config/PaddingConfigDialog.kt
@@ -5,16 +5,13 @@ import android.util.DisplayMetrics
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.SeekBar
import androidx.fragment.app.DialogFragment
import io.legado.app.R
import io.legado.app.constant.EventBus
import io.legado.app.help.ReadBookConfig
import io.legado.app.ui.book.read.Help
import io.legado.app.utils.postEvent
-import io.legado.app.utils.progressAdd
import kotlinx.android.synthetic.main.dialog_read_padding.*
-import org.jetbrains.anko.sdk27.listeners.onClick
class PaddingConfigDialog : DialogFragment() {
@@ -48,98 +45,29 @@ class PaddingConfigDialog : DialogFragment() {
}
private fun initData() = with(ReadBookConfig.getConfig()) {
- seek_padding_top.progress = paddingTop
- seek_padding_bottom.progress = paddingBottom
- seek_padding_left.progress = paddingLeft
- seek_padding_right.progress = paddingRight
- tv_padding_top.text = paddingTop.toString()
- tv_padding_bottom.text = paddingBottom.toString()
- tv_padding_left.text = paddingLeft.toString()
- tv_padding_right.text = paddingRight.toString()
+ dsb_padding_top.progress = paddingTop
+ dsb_padding_bottom.progress = paddingBottom
+ dsb_padding_left.progress = paddingLeft
+ dsb_padding_right.progress = paddingRight
}
private fun initView() = with(ReadBookConfig.getConfig()) {
- iv_padding_top_add.onClick {
- seek_padding_top.progressAdd(1)
+ dsb_padding_top.onChanged = {
+ paddingTop = it
postEvent(EventBus.UP_CONFIG, true)
}
- iv_padding_top_remove.onClick {
- seek_padding_top.progressAdd(-1)
+ dsb_padding_bottom.onChanged = {
+ paddingBottom = it
postEvent(EventBus.UP_CONFIG, true)
}
- iv_padding_bottom_add.onClick {
- seek_padding_bottom.progressAdd(1)
+ dsb_padding_left.onChanged = {
+ paddingLeft = it
postEvent(EventBus.UP_CONFIG, true)
}
- iv_padding_bottom_remove.onClick {
- seek_padding_bottom.progressAdd(-1)
+ dsb_padding_right.onChanged = {
+ paddingRight = it
postEvent(EventBus.UP_CONFIG, true)
}
- iv_padding_left_add.onClick {
- seek_padding_left.progressAdd(1)
- postEvent(EventBus.UP_CONFIG, true)
- }
- iv_padding_left_remove.onClick {
- seek_padding_left.progressAdd(-1)
- postEvent(EventBus.UP_CONFIG, true)
- }
- iv_padding_right_add.onClick {
- seek_padding_right.progressAdd(1)
- postEvent(EventBus.UP_CONFIG, true)
- }
- iv_padding_right_remove.onClick {
- seek_padding_right.progressAdd(-1)
- postEvent(EventBus.UP_CONFIG, true)
- }
-
- seek_padding_top.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
- override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
- paddingTop = progress
- tv_padding_top.text = paddingTop.toString()
- }
-
- override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
-
- override fun onStopTrackingTouch(seekBar: SeekBar?) {
- postEvent(EventBus.UP_CONFIG, true)
- }
- })
- seek_padding_bottom.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
- override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
- paddingBottom = progress
- tv_padding_bottom.text = paddingBottom.toString()
- }
-
- override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
-
- override fun onStopTrackingTouch(seekBar: SeekBar?) {
- postEvent(EventBus.UP_CONFIG, true)
- }
- })
- seek_padding_left.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
- override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
- paddingLeft = progress
- tv_padding_left.text = paddingLeft.toString()
- }
-
- override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
-
- override fun onStopTrackingTouch(seekBar: SeekBar?) {
- postEvent(EventBus.UP_CONFIG, true)
- }
- })
- seek_padding_right.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
- override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
- paddingRight = progress
- tv_padding_right.text = paddingRight.toString()
- }
-
- override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
-
- override fun onStopTrackingTouch(seekBar: SeekBar?) {
- postEvent(EventBus.UP_CONFIG, true)
- }
- })
}
}
diff --git a/app/src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt b/app/src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt
index 53ca79375..9d956def5 100644
--- a/app/src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt
+++ b/app/src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt
@@ -14,10 +14,18 @@ import org.jetbrains.anko.sdk27.listeners.onClick
class DetailSeekBar(context: Context, attrs: AttributeSet?) : LinearLayoutCompat(context, attrs),
SeekBar.OnSeekBarChangeListener {
- private var valueFormat: String? = null
- private var onChanged: ((progress: Int) -> Unit)? = null
- val progress: Int
+ var valueFormat: ((progress: Int) -> String)? = null
+ var onChanged: ((progress: Int) -> Unit)? = null
+ var progress: Int
get() = seek_bar.progress
+ set(value) {
+ seek_bar.progress = value
+ }
+ var max: Int
+ get() = seek_bar.max
+ set(value) {
+ seek_bar.max = value
+ }
init {
gravity = Gravity.CENTER_VERTICAL
@@ -25,6 +33,7 @@ class DetailSeekBar(context: Context, attrs: AttributeSet?) : LinearLayoutCompat
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.DetailSeekBar)
tv_seek_title.text = typedArray.getText(R.styleable.DetailSeekBar_title)
+ seek_bar.max = typedArray.getInteger(R.styleable.DetailSeekBar_max, 0)
typedArray.recycle()
iv_seek_add.onClick {
@@ -40,7 +49,7 @@ class DetailSeekBar(context: Context, attrs: AttributeSet?) : LinearLayoutCompat
private fun upValue(progress: Int = seek_bar.progress) {
valueFormat?.let {
- tv_seek_value.text = String.format(it, progress)
+ tv_seek_value.text = it.invoke(progress)
} ?: let {
tv_seek_value.text = progress.toString()
}
diff --git a/app/src/main/res/layout/dialog_read_padding.xml b/app/src/main/res/layout/dialog_read_padding.xml
index 22bb10e50..7b878a442 100644
--- a/app/src/main/res/layout/dialog_read_padding.xml
+++ b/app/src/main/res/layout/dialog_read_padding.xml
@@ -1,206 +1,38 @@
-
+ app:title="@string/padding_top"
+ app:max="100" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:title="@string/padding_bottom"
+ app:max="100" />
-
+ app:title="@string/padding_left"
+ app:max="100" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:title="@string/padding_right"
+ app:max="100" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_detail_seek_bar.xml b/app/src/main/res/layout/view_detail_seek_bar.xml
index 1af90c9e0..3bfed2f06 100644
--- a/app/src/main/res/layout/view_detail_seek_bar.xml
+++ b/app/src/main/res/layout/view_detail_seek_bar.xml
@@ -10,8 +10,9 @@
\ No newline at end of file
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index e3ca97f5a..485e8ef20 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -67,6 +67,7 @@
+