mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-06-05 22:19:17 +02:00
adding the core of Edit Alarm Dialog
This commit is contained in:
@ -0,0 +1,80 @@
|
||||
package com.simplemobiletools.clock.dialogs
|
||||
|
||||
import android.support.v7.app.AlertDialog
|
||||
import android.widget.TextView
|
||||
import com.simplemobiletools.clock.R
|
||||
import com.simplemobiletools.clock.activities.SimpleActivity
|
||||
import com.simplemobiletools.clock.extensions.config
|
||||
import com.simplemobiletools.clock.extensions.formatAlarmTime
|
||||
import com.simplemobiletools.clock.models.Alarm
|
||||
import com.simplemobiletools.commons.extensions.applyColorFilter
|
||||
import com.simplemobiletools.commons.extensions.moveLastItemToFront
|
||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||
import kotlinx.android.synthetic.main.dialog_edit_alarm.view.*
|
||||
|
||||
class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callback: () -> Unit) {
|
||||
val view = activity.layoutInflater.inflate(R.layout.dialog_edit_alarm, null)
|
||||
|
||||
init {
|
||||
val textColor = activity.config.textColor
|
||||
view.apply {
|
||||
edit_alarm_time.text = alarm.timeInMinutes.formatAlarmTime()
|
||||
edit_alarm_time.setOnClickListener {
|
||||
|
||||
}
|
||||
|
||||
colorLeftDrawable(edit_alarm_sound, textColor)
|
||||
edit_alarm_sound.text = "Default alarm"
|
||||
edit_alarm_sound.setOnClickListener {
|
||||
|
||||
}
|
||||
|
||||
colorLeftDrawable(edit_alarm_vibrate, textColor)
|
||||
edit_alarm_vibrate.isChecked = alarm.vibrate
|
||||
edit_alarm_vibrate_holder.setOnClickListener {
|
||||
edit_alarm_vibrate.toggle()
|
||||
}
|
||||
|
||||
edit_alarm_label_image.applyColorFilter(textColor)
|
||||
|
||||
val dayLetters = activity.resources.getStringArray(R.array.week_day_letters).toList() as ArrayList<String>
|
||||
if (activity.config.isSundayFirst) {
|
||||
dayLetters.moveLastItemToFront()
|
||||
}
|
||||
|
||||
for (i in 0..6) {
|
||||
val pow = Math.pow(2.0, i.toDouble()).toInt()
|
||||
val day = activity.layoutInflater.inflate(R.layout.alarm_day, edit_alarm_days_holder, false) as TextView
|
||||
day.text = dayLetters[i]
|
||||
|
||||
val isDayChecked = alarm.days and pow != 0
|
||||
val drawableId = if (isDayChecked) R.drawable.circle_background_filled else R.drawable.circle_background_stroke
|
||||
val drawable = activity.resources.getDrawable(drawableId)
|
||||
drawable.applyColorFilter(textColor)
|
||||
day.background = drawable
|
||||
|
||||
day.setTextColor(if (isDayChecked) context.config.backgroundColor else textColor)
|
||||
edit_alarm_days_holder.addView(day)
|
||||
}
|
||||
}
|
||||
|
||||
AlertDialog.Builder(activity)
|
||||
.setPositiveButton(R.string.ok, { dialog, which -> dialogConfirmed() })
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.create().apply {
|
||||
activity.setupDialogStuff(view, this) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun dialogConfirmed() {
|
||||
callback()
|
||||
}
|
||||
|
||||
private fun colorLeftDrawable(textView: TextView, color: Int) {
|
||||
val leftImage = textView.compoundDrawables.first()
|
||||
leftImage.applyColorFilter(color)
|
||||
textView.setCompoundDrawables(leftImage, null, null, null)
|
||||
}
|
||||
}
|
@ -8,11 +8,15 @@ import android.view.ViewGroup
|
||||
import com.simplemobiletools.clock.R
|
||||
import com.simplemobiletools.clock.activities.SimpleActivity
|
||||
import com.simplemobiletools.clock.adapters.AlarmsAdapter
|
||||
import com.simplemobiletools.clock.dialogs.EditAlarmDialog
|
||||
import com.simplemobiletools.clock.extensions.dbHelper
|
||||
import com.simplemobiletools.clock.models.Alarm
|
||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||
import kotlinx.android.synthetic.main.fragment_alarm.view.*
|
||||
|
||||
class AlarmFragment : Fragment() {
|
||||
private val DEFAULT_ALARM_MINUTES = 480
|
||||
|
||||
lateinit var view: ViewGroup
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||
@ -29,7 +33,8 @@ class AlarmFragment : Fragment() {
|
||||
view.apply {
|
||||
context!!.updateTextColors(alarm_fragment)
|
||||
alarm_fab.setOnClickListener {
|
||||
fabClicked()
|
||||
val newAlarm = Alarm(0, DEFAULT_ALARM_MINUTES, 0, false, false, "", "")
|
||||
openEditAlarm(newAlarm)
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,7 +46,7 @@ class AlarmFragment : Fragment() {
|
||||
val currAdapter = view.alarms_list.adapter
|
||||
if (currAdapter == null) {
|
||||
val alarmsAdapter = AlarmsAdapter(activity as SimpleActivity, alarms, view.alarms_list) {
|
||||
|
||||
openEditAlarm(it as Alarm)
|
||||
}
|
||||
view.alarms_list.adapter = alarmsAdapter
|
||||
} else {
|
||||
@ -49,7 +54,9 @@ class AlarmFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun fabClicked() {
|
||||
private fun openEditAlarm(alarm: Alarm) {
|
||||
EditAlarmDialog(activity as SimpleActivity, alarm) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user