pull/78/head
parent
7b080b9f16
commit
ecaac00432
@ -1,12 +1,13 @@ |
|||||||
package io.legado.app.help |
package io.legado.app.help |
||||||
|
|
||||||
import android.content.Context |
import android.content.Context |
||||||
|
import io.legado.app.constant.PreferKey |
||||||
import io.legado.app.utils.getPrefBoolean |
import io.legado.app.utils.getPrefBoolean |
||||||
import io.legado.app.utils.getPrefInt |
import io.legado.app.utils.getPrefInt |
||||||
|
|
||||||
|
|
||||||
val Context.isShowRSS: Boolean |
val Context.isShowRSS: Boolean |
||||||
get() = getPrefBoolean("showRss", true) |
get() = getPrefBoolean(PreferKey.showRss, true) |
||||||
|
|
||||||
val Context.threadCount: Int |
val Context.threadCount: Int |
||||||
get() = getPrefInt("threadCount", 16) |
get() = getPrefInt(PreferKey.threadCount, 16) |
@ -0,0 +1,66 @@ |
|||||||
|
package io.legado.app.ui.widget.number |
||||||
|
|
||||||
|
import android.content.Context |
||||||
|
import android.widget.NumberPicker |
||||||
|
import androidx.appcompat.app.AlertDialog |
||||||
|
import io.legado.app.R |
||||||
|
import io.legado.app.utils.applyTint |
||||||
|
import io.legado.app.utils.hideSoftInput |
||||||
|
import kotlinx.android.synthetic.main.dialog_number_picker.* |
||||||
|
|
||||||
|
|
||||||
|
class NumberPickerDialog(context: Context) { |
||||||
|
private val builder = AlertDialog.Builder(context) |
||||||
|
private var numberPicker: NumberPicker? = null |
||||||
|
private var maxValue: Int? = null |
||||||
|
private var minValue: Int? = null |
||||||
|
private var value: Int? = null |
||||||
|
|
||||||
|
init { |
||||||
|
builder.setView(R.layout.dialog_number_picker) |
||||||
|
} |
||||||
|
|
||||||
|
fun setTitle(title: String): NumberPickerDialog { |
||||||
|
builder.setTitle(title) |
||||||
|
return this |
||||||
|
} |
||||||
|
|
||||||
|
fun setMaxValue(value: Int): NumberPickerDialog { |
||||||
|
maxValue = value |
||||||
|
return this |
||||||
|
} |
||||||
|
|
||||||
|
fun setMinValue(value: Int): NumberPickerDialog { |
||||||
|
minValue = value |
||||||
|
return this |
||||||
|
} |
||||||
|
|
||||||
|
fun setValue(value: Int): NumberPickerDialog { |
||||||
|
this.value = value |
||||||
|
return this |
||||||
|
} |
||||||
|
|
||||||
|
fun show(callBack: ((value: Int) -> Unit)?) { |
||||||
|
builder.setPositiveButton(R.string.ok) { _, _ -> |
||||||
|
numberPicker?.let { |
||||||
|
it.clearFocus() |
||||||
|
it.hideSoftInput() |
||||||
|
callBack?.invoke(it.value) |
||||||
|
} |
||||||
|
} |
||||||
|
builder.setNegativeButton(R.string.cancel, null) |
||||||
|
val dialog = builder.show().applyTint() |
||||||
|
numberPicker = dialog.number_picker |
||||||
|
numberPicker?.let { np -> |
||||||
|
minValue?.let { |
||||||
|
np.minValue = it |
||||||
|
} |
||||||
|
maxValue?.let { |
||||||
|
np.maxValue = it |
||||||
|
} |
||||||
|
value?.let { |
||||||
|
np.value = it |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:tools="http://schemas.android.com/tools" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:background="@color/background"> |
||||||
|
|
||||||
|
<LinearLayout |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_gravity="center" |
||||||
|
android:gravity="center" |
||||||
|
tools:ignore="UselessParent"> |
||||||
|
|
||||||
|
<NumberPicker |
||||||
|
android:id="@+id/number_picker" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content"> |
||||||
|
|
||||||
|
</NumberPicker> |
||||||
|
|
||||||
|
</LinearLayout> |
||||||
|
|
||||||
|
</LinearLayout> |
Loading…
Reference in new issue