aboutsummaryrefslogtreecommitdiff
path: root/kpref-activity/src/main/kotlin/ca/allanwang/kau/kpref/activity/items/KPrefTimePicker.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-12-26 04:01:23 -0500
committerGitHub <noreply@github.com>2017-12-26 04:01:23 -0500
commit7a3165ac7404381eb85ea40525db1a7a7d980761 (patch)
tree2341ea4ef0488b9abeea1fbe70697705d295aeb2 /kpref-activity/src/main/kotlin/ca/allanwang/kau/kpref/activity/items/KPrefTimePicker.kt
parentfb9ca21757068c0fb4123a5e30b1471ae4c32cf3 (diff)
downloadkau-7a3165ac7404381eb85ea40525db1a7a7d980761.tar.gz
kau-7a3165ac7404381eb85ea40525db1a7a7d980761.tar.bz2
kau-7a3165ac7404381eb85ea40525db1a7a7d980761.zip
Update/kpref activity (#113)
* Revamp kpref * Clean up data * Fix script * Test emulator * Test google api * Test again * Test gpg * Update dependencies
Diffstat (limited to 'kpref-activity/src/main/kotlin/ca/allanwang/kau/kpref/activity/items/KPrefTimePicker.kt')
-rw-r--r--kpref-activity/src/main/kotlin/ca/allanwang/kau/kpref/activity/items/KPrefTimePicker.kt32
1 files changed, 16 insertions, 16 deletions
diff --git a/kpref-activity/src/main/kotlin/ca/allanwang/kau/kpref/activity/items/KPrefTimePicker.kt b/kpref-activity/src/main/kotlin/ca/allanwang/kau/kpref/activity/items/KPrefTimePicker.kt
index d4f854b..f6fc40a 100644
--- a/kpref-activity/src/main/kotlin/ca/allanwang/kau/kpref/activity/items/KPrefTimePicker.kt
+++ b/kpref-activity/src/main/kotlin/ca/allanwang/kau/kpref/activity/items/KPrefTimePicker.kt
@@ -1,9 +1,9 @@
package ca.allanwang.kau.kpref.activity.items
import android.app.TimePickerDialog
-import android.view.View
import android.widget.TimePicker
import ca.allanwang.kau.kpref.activity.GlobalOptions
+import ca.allanwang.kau.kpref.activity.KClick
import ca.allanwang.kau.kpref.activity.R
import java.util.*
@@ -17,19 +17,24 @@ import java.util.*
*/
open class KPrefTimePicker(override val builder: KPrefTimeContract) : KPrefText<Int>(builder) {
- interface KPrefTimeContract : KPrefText.KPrefTextContract<Int> {
+ interface KPrefTimeContract : KPrefText.KPrefTextContract<Int>, TimePickerDialog.OnTimeSetListener {
var use24HourFormat: Boolean
}
+ override fun KClick<Int>.defaultOnClick() {
+ val (hour, min) = pref.splitTime
+ TimePickerDialog(itemView.context, builder, hour, min, builder.use24HourFormat).show()
+ }
+
/**
* Default implementation of [KPrefTimeContract]
*/
class KPrefTimeBuilder(
globalOptions: GlobalOptions,
- titleRes: Int,
+ titleId: Int,
getter: () -> Int,
setter: (value: Int) -> Unit
- ) : KPrefTimeContract, BaseContract<Int> by BaseBuilder<Int>(globalOptions, titleRes, getter, setter), TimePickerDialog.OnTimeSetListener {
+ ) : KPrefTimeContract, BaseContract<Int> by BaseBuilder<Int>(globalOptions, titleId, getter, setter) {
override var use24HourFormat: Boolean = false
@@ -46,19 +51,14 @@ open class KPrefTimePicker(override val builder: KPrefTimeContract) : KPrefText<
String.format(Locale.CANADA, "%d:%02d %s", hour % 12, min, if (hour >= 12) "PM" else "AM")
}
- override var onClick: ((itemView: View, innerContent: View?, item: KPrefItemBase<Int>) -> Boolean)? = { itemView, _, item ->
- val (hour, min) = item.pref.splitTime
- TimePickerDialog(itemView.context, this, hour, min, use24HourFormat).show()
- true
- }
-
- private val Int.splitTime: Pair<Int, Int>
- get() = Pair(this / 100, this % 100)
-
- private val Pair<Int, Int>.mergeTime: Int
- get() = first * 100 + second
}
override fun getType(): Int = R.id.kau_item_pref_time_picker
-} \ No newline at end of file
+}
+
+private val Int.splitTime: Pair<Int, Int>
+ get() = Pair(this / 100, this % 100)
+
+private val Pair<Int, Int>.mergeTime: Int
+ get() = first * 100 + second \ No newline at end of file