mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-04-13 01:42:06 +02:00
53 lines
2.1 KiB
Kotlin
53 lines
2.1 KiB
Kotlin
package com.simplemobiletools.clock.dialogs
|
|
|
|
import com.simplemobiletools.clock.R
|
|
import com.simplemobiletools.clock.activities.SimpleActivity
|
|
import com.simplemobiletools.clock.extensions.config
|
|
import com.simplemobiletools.clock.extensions.getEditedTimeZonesMap
|
|
import com.simplemobiletools.clock.extensions.getModifiedTimeZoneTitle
|
|
import com.simplemobiletools.clock.helpers.EDITED_TIME_ZONE_SEPARATOR
|
|
import com.simplemobiletools.clock.helpers.getDefaultTimeZoneTitle
|
|
import com.simplemobiletools.clock.models.MyTimeZone
|
|
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
|
|
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
|
import com.simplemobiletools.commons.extensions.showKeyboard
|
|
import com.simplemobiletools.commons.extensions.value
|
|
import kotlinx.android.synthetic.main.dialog_edit_time_zone.view.*
|
|
|
|
class EditTimeZoneDialog(val activity: SimpleActivity, val myTimeZone: MyTimeZone, val callback: () -> Unit) {
|
|
|
|
init {
|
|
val view = activity.layoutInflater.inflate(R.layout.dialog_edit_time_zone, null).apply {
|
|
edit_time_zone_title.setText(activity.getModifiedTimeZoneTitle(myTimeZone.id))
|
|
edit_time_zone_value.text = getDefaultTimeZoneTitle(myTimeZone.id)
|
|
}
|
|
|
|
activity.getAlertDialogBuilder()
|
|
.setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed(view.edit_time_zone_title.value) }
|
|
.setNegativeButton(R.string.cancel, null)
|
|
.apply {
|
|
activity.setupDialogStuff(view, this) { alertDialog ->
|
|
alertDialog.showKeyboard(view.edit_time_zone_title)
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun dialogConfirmed(newTitle: String) {
|
|
val editedTitlesMap = activity.getEditedTimeZonesMap()
|
|
|
|
if (newTitle.isEmpty()) {
|
|
editedTitlesMap.remove(myTimeZone.id)
|
|
} else {
|
|
editedTitlesMap[myTimeZone.id] = newTitle
|
|
}
|
|
|
|
val newTitlesSet = HashSet<String>()
|
|
for ((key, value) in editedTitlesMap) {
|
|
newTitlesSet.add("$key$EDITED_TIME_ZONE_SEPARATOR$value")
|
|
}
|
|
|
|
activity.config.editedTimeZoneTitles = newTitlesSet
|
|
callback()
|
|
}
|
|
}
|