adding the core of Edit Alarm Dialog

This commit is contained in:
tibbi
2018-03-05 17:11:04 +01:00
parent d6c621c07d
commit e6e8039284
12 changed files with 234 additions and 5 deletions

View File

@ -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)
}
}

View File

@ -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) {
}
}
}