SubwayTooter-Android-App/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostPoll.kt

35 lines
1.2 KiB
Kotlin
Raw Normal View History

2021-06-28 09:09:00 +02:00
package jp.juggler.subwaytooter.actpost
2021-06-23 06:14:25 +02:00
2021-06-28 09:09:00 +02:00
import jp.juggler.subwaytooter.ActPost
import jp.juggler.util.data.notEmpty
import jp.juggler.util.ui.vg
2021-06-23 06:14:25 +02:00
2021-06-27 20:25:21 +02:00
private fun Double?.finiteOrZero(): Double = if (this?.isFinite() == true) this else 0.0
2021-06-23 06:14:25 +02:00
fun ActPost.showPoll() {
val i = views.spPollType.selectedItemPosition
views.llEnquete.vg(i != 0)
views.llExpire.vg(i == 1)
views.cbHideTotals.vg(i == 1)
views.cbMultipleChoice.vg(i == 1)
2021-06-23 06:14:25 +02:00
}
// 投票が有効で何か入力済みなら真
2021-06-24 04:31:34 +02:00
fun ActPost.hasPoll(): Boolean {
if (views.spPollType.selectedItemPosition <= 0) return false
2021-06-24 04:31:34 +02:00
return etChoices.any { it.text.toString().isNotBlank() }
2021-06-23 06:14:25 +02:00
}
fun ActPost.pollChoiceList() = ArrayList<String>().apply {
for (et in etChoices) {
et.text.toString().trim { it <= ' ' }.notEmpty()?.let { add(it) }
}
}
fun ActPost.pollExpireSeconds(): Int {
val d = views.etExpireDays.text.toString().trim().toDoubleOrNull().finiteOrZero()
val h = views.etExpireHours.text.toString().trim().toDoubleOrNull().finiteOrZero()
val m = views.etExpireMinutes.text.toString().trim().toDoubleOrNull().finiteOrZero()
2021-06-23 06:14:25 +02:00
return (d * 86400.0 + h * 3600.0 + m * 60.0).toInt()
}