move some reminder related things to context extensions

This commit is contained in:
tibbi 2017-01-25 23:05:30 +01:00
parent 326015c03a
commit 7e491869bc
2 changed files with 43 additions and 35 deletions

View File

@ -11,7 +11,12 @@ import android.widget.AdapterView
import android.widget.ArrayAdapter
import com.simplemobiletools.calendar.R
import com.simplemobiletools.calendar.extensions.config
import com.simplemobiletools.calendar.helpers.*
import com.simplemobiletools.calendar.extensions.getDefaultReminderTypeIndex
import com.simplemobiletools.calendar.extensions.getDefaultReminderValue
import com.simplemobiletools.calendar.extensions.setupReminderPeriod
import com.simplemobiletools.calendar.helpers.DAY_MINS
import com.simplemobiletools.calendar.helpers.HOUR_MINS
import com.simplemobiletools.calendar.helpers.REMINDER_CUSTOM
import com.simplemobiletools.commons.extensions.*
import kotlinx.android.synthetic.main.activity_settings.*
@ -132,9 +137,9 @@ class SettingsActivity : SimpleActivity() {
private fun setupEventReminder() {
val reminderType = config.defaultReminderType
val reminderMinutes = config.defaultReminderMinutes
settings_default_reminder.setSelection(getDefaultReminderTypeIndex(reminderType))
settings_default_reminder.setSelection(getDefaultReminderTypeIndex())
custom_reminder_save.setTextColor(custom_reminder_other_val.currentTextColor)
setupReminderPeriod(reminderMinutes)
setupReminderPeriod(reminderMinutes, custom_reminder_other_period, custom_reminder_value)
settings_custom_reminder_holder.beVisibleIf(reminderType == REMINDER_CUSTOM)
custom_reminder_save.setOnClickListener { saveReminder() }
@ -157,22 +162,6 @@ class SettingsActivity : SimpleActivity() {
}
}
private fun getDefaultReminderTypeIndex(type: Int): Int {
return when (type) {
REMINDER_OFF -> 0
REMINDER_AT_START -> 1
else -> 2
}
}
private fun getDefaultReminderValue(index: Int): Int {
return when (index) {
0 -> REMINDER_OFF
1 -> REMINDER_AT_START
else -> REMINDER_CUSTOM
}
}
private fun saveReminder() {
val value = custom_reminder_value.value
val multiplier = when (custom_reminder_other_period.selectedItemPosition) {
@ -187,22 +176,6 @@ class SettingsActivity : SimpleActivity() {
hideKeyboard()
}
private fun setupReminderPeriod(mins: Int) {
var value = mins
if (mins == 0) {
custom_reminder_other_period.setSelection(0)
} else if (mins % DAY_MINS == 0) {
value = mins / DAY_MINS
custom_reminder_other_period.setSelection(2)
} else if (mins % HOUR_MINS == 0) {
value = mins / HOUR_MINS
custom_reminder_other_period.setSelection(1)
} else {
custom_reminder_other_period.setSelection(0)
}
custom_reminder_value.setText(value.toString())
}
private fun getWeeklyAdapter(): ArrayAdapter<String> {
val adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item)
for (i in 0..24) {

View File

@ -9,6 +9,8 @@ import android.content.Intent
import android.graphics.Color
import android.os.Build
import android.os.SystemClock
import android.support.v7.widget.AppCompatSpinner
import android.widget.EditText
import com.simplemobiletools.calendar.R
import com.simplemobiletools.calendar.helpers.*
import com.simplemobiletools.calendar.models.Event
@ -98,6 +100,39 @@ fun Context.getAppropriateTheme(): Int {
return if (config.backgroundColor.getContrastColor() == Color.WHITE) R.style.MyDialogTheme_Dark else R.style.MyDialogTheme
}
fun Context.getDefaultReminderTypeIndex(): Int {
val reminderType = config.defaultReminderType
return when (reminderType) {
REMINDER_OFF -> 0
REMINDER_AT_START -> 1
else -> 2
}
}
fun Context.getDefaultReminderValue(index: Int): Int {
return when (index) {
0 -> REMINDER_OFF
1 -> REMINDER_AT_START
else -> REMINDER_CUSTOM
}
}
fun Context.setupReminderPeriod(mins: Int, otherPeriod: AppCompatSpinner, otherValue: EditText) {
var value = mins
if (mins == 0) {
otherPeriod.setSelection(0)
} else if (mins % DAY_MINS == 0) {
value = mins / DAY_MINS
otherPeriod.setSelection(2)
} else if (mins % HOUR_MINS == 0) {
value = mins / HOUR_MINS
otherPeriod.setSelection(1)
} else {
otherPeriod.setSelection(0)
}
otherValue.setText(value.toString())
}
fun Context.getNewEventTimestampFromCode(dayCode: String) = Formatter.getLocalDateTimeFromCode(dayCode).withTime(13, 0, 0, 0).seconds()
val Context.config: Config get() = Config.newInstance(this)