Simple-Calendar/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/CustomEventRepeatIntervalDi...

47 lines
1.9 KiB
Kotlin

package com.simplemobiletools.calendar.pro.dialogs
import android.app.Activity
import androidx.appcompat.app.AlertDialog
import com.simplemobiletools.calendar.pro.R
import com.simplemobiletools.calendar.pro.databinding.DialogCustomEventRepeatIntervalBinding
import com.simplemobiletools.calendar.pro.helpers.DAY
import com.simplemobiletools.calendar.pro.helpers.MONTH
import com.simplemobiletools.calendar.pro.helpers.WEEK
import com.simplemobiletools.calendar.pro.helpers.YEAR
import com.simplemobiletools.commons.extensions.*
class CustomEventRepeatIntervalDialog(val activity: Activity, val callback: (seconds: Int) -> Unit) {
private var dialog: AlertDialog? = null
private val binding by activity.viewBinding(DialogCustomEventRepeatIntervalBinding::inflate)
init {
binding.dialogRadioView.check(R.id.dialog_radio_days)
activity.getAlertDialogBuilder()
.setPositiveButton(com.simplemobiletools.commons.R.string.ok) { _, _ -> confirmRepeatInterval() }
.setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null)
.apply {
activity.setupDialogStuff(binding.root, this) { alertDialog ->
dialog = alertDialog
alertDialog.showKeyboard(binding.dialogCustomRepeatIntervalValue)
}
}
}
private fun confirmRepeatInterval() {
val value = binding.dialogCustomRepeatIntervalValue.value
val multiplier = getMultiplier(binding.dialogRadioView.checkedRadioButtonId)
val days = Integer.valueOf(value.ifEmpty { "0" })
callback(days * multiplier)
activity.hideKeyboard()
dialog?.dismiss()
}
private fun getMultiplier(id: Int) = when (id) {
R.id.dialog_radio_weeks -> WEEK
R.id.dialog_radio_months -> MONTH
R.id.dialog_radio_years -> YEAR
else -> DAY
}
}