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:
@ -41,7 +41,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.simplemobiletools:commons:3.14.13'
|
implementation 'com.simplemobiletools:commons:3.14.17'
|
||||||
implementation 'com.facebook.stetho:stetho:1.5.0'
|
implementation 'com.facebook.stetho:stetho:1.5.0'
|
||||||
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
|
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
|
||||||
}
|
}
|
||||||
|
@ -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.R
|
||||||
import com.simplemobiletools.clock.activities.SimpleActivity
|
import com.simplemobiletools.clock.activities.SimpleActivity
|
||||||
import com.simplemobiletools.clock.adapters.AlarmsAdapter
|
import com.simplemobiletools.clock.adapters.AlarmsAdapter
|
||||||
|
import com.simplemobiletools.clock.dialogs.EditAlarmDialog
|
||||||
import com.simplemobiletools.clock.extensions.dbHelper
|
import com.simplemobiletools.clock.extensions.dbHelper
|
||||||
|
import com.simplemobiletools.clock.models.Alarm
|
||||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||||
import kotlinx.android.synthetic.main.fragment_alarm.view.*
|
import kotlinx.android.synthetic.main.fragment_alarm.view.*
|
||||||
|
|
||||||
class AlarmFragment : Fragment() {
|
class AlarmFragment : Fragment() {
|
||||||
|
private val DEFAULT_ALARM_MINUTES = 480
|
||||||
|
|
||||||
lateinit var view: ViewGroup
|
lateinit var view: ViewGroup
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||||
@ -29,7 +33,8 @@ class AlarmFragment : Fragment() {
|
|||||||
view.apply {
|
view.apply {
|
||||||
context!!.updateTextColors(alarm_fragment)
|
context!!.updateTextColors(alarm_fragment)
|
||||||
alarm_fab.setOnClickListener {
|
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
|
val currAdapter = view.alarms_list.adapter
|
||||||
if (currAdapter == null) {
|
if (currAdapter == null) {
|
||||||
val alarmsAdapter = AlarmsAdapter(activity as SimpleActivity, alarms, view.alarms_list) {
|
val alarmsAdapter = AlarmsAdapter(activity as SimpleActivity, alarms, view.alarms_list) {
|
||||||
|
openEditAlarm(it as Alarm)
|
||||||
}
|
}
|
||||||
view.alarms_list.adapter = alarmsAdapter
|
view.alarms_list.adapter = alarmsAdapter
|
||||||
} else {
|
} else {
|
||||||
@ -49,7 +54,9 @@ class AlarmFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun fabClicked() {
|
private fun openEditAlarm(alarm: Alarm) {
|
||||||
|
EditAlarmDialog(activity as SimpleActivity, alarm) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
16
app/src/main/res/drawable/circle_background_filled.xml
Normal file
16
app/src/main/res/drawable/circle_background_filled.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="oval">
|
||||||
|
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="@android:color/white"/>
|
||||||
|
|
||||||
|
<solid
|
||||||
|
android:color="@android:color/white"/>
|
||||||
|
|
||||||
|
<size
|
||||||
|
android:width="@dimen/alarm_day_size"
|
||||||
|
android:height="@dimen/alarm_day_size"/>
|
||||||
|
</shape>
|
16
app/src/main/res/drawable/circle_background_stroke.xml
Normal file
16
app/src/main/res/drawable/circle_background_stroke.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="oval">
|
||||||
|
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="@android:color/white"/>
|
||||||
|
|
||||||
|
<solid
|
||||||
|
android:color="@android:color/transparent"/>
|
||||||
|
|
||||||
|
<size
|
||||||
|
android:width="@dimen/alarm_day_size"
|
||||||
|
android:height="@dimen/alarm_day_size"/>
|
||||||
|
</shape>
|
12
app/src/main/res/layout/alarm_day.xml
Normal file
12
app/src/main/res/layout/alarm_day.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TextView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/alarm_day_textview"
|
||||||
|
android:layout_width="@dimen/alarm_day_size"
|
||||||
|
android:layout_height="@dimen/alarm_day_size"
|
||||||
|
android:layout_marginRight="@dimen/small_margin"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:gravity="center"
|
||||||
|
tools:text="M"/>
|
90
app/src/main/res/layout/dialog_edit_alarm.xml
Normal file
90
app/src/main/res/layout/dialog_edit_alarm.xml
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/edit_alarm_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="@dimen/activity_margin">
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
|
android:id="@+id/edit_alarm_time"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:textSize="@dimen/alarm_text_size"
|
||||||
|
tools:text="07:00"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/edit_alarm_days_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/alarm_day_size"
|
||||||
|
android:layout_below="@+id/edit_alarm_time"
|
||||||
|
android:layout_marginBottom="@dimen/medium_margin"
|
||||||
|
android:layout_marginTop="@dimen/medium_margin"
|
||||||
|
android:orientation="horizontal"/>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/edit_alarm_vibrate_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/edit_alarm_days_holder"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:paddingBottom="@dimen/normal_margin"
|
||||||
|
android:paddingLeft="@dimen/tiny_margin"
|
||||||
|
android:paddingTop="@dimen/normal_margin">
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MySwitchCompat
|
||||||
|
android:id="@+id/edit_alarm_vibrate"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@null"
|
||||||
|
android:clickable="false"
|
||||||
|
android:drawableLeft="@drawable/ic_vibrate"
|
||||||
|
android:drawablePadding="@dimen/normal_margin"
|
||||||
|
android:text="@string/vibrate"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
|
android:id="@+id/edit_alarm_sound"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/edit_alarm_vibrate_holder"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:drawableLeft="@drawable/ic_bell"
|
||||||
|
android:drawablePadding="@dimen/normal_margin"
|
||||||
|
android:paddingBottom="@dimen/normal_margin"
|
||||||
|
android:paddingLeft="@dimen/tiny_margin"
|
||||||
|
android:paddingTop="@dimen/normal_margin"
|
||||||
|
android:textSize="@dimen/normal_text_size"
|
||||||
|
tools:text="Default alarm"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/edit_alarm_label_image"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignBottom="@+id/edit_alarm_label"
|
||||||
|
android:layout_alignTop="@+id/edit_alarm_label"
|
||||||
|
android:layout_below="@+id/edit_alarm_sound"
|
||||||
|
android:layout_marginLeft="@dimen/tiny_margin"
|
||||||
|
android:layout_marginRight="@dimen/tiny_margin"
|
||||||
|
android:scaleType="fitCenter"
|
||||||
|
android:src="@drawable/ic_label"/>
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyEditText
|
||||||
|
android:id="@+id/edit_alarm_label"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/edit_alarm_sound"
|
||||||
|
android:layout_marginLeft="@dimen/medium_margin"
|
||||||
|
android:layout_marginTop="@dimen/small_margin"
|
||||||
|
android:layout_toRightOf="@+id/edit_alarm_label_image"
|
||||||
|
android:hint="@string/label"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textCursorDrawable="@null"
|
||||||
|
android:textSize="@dimen/normal_text_size"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
@ -24,7 +24,7 @@
|
|||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:paddingTop="@dimen/normal_margin"
|
android:paddingTop="@dimen/normal_margin"
|
||||||
android:textSize="@dimen/alarm_text_size"
|
android:textSize="@dimen/alarm_text_size"
|
||||||
tools:text="7:00"/>
|
tools:text="07:00"/>
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
android:id="@+id/alarm_days"
|
android:id="@+id/alarm_days"
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
<string name="app_name">Simple Clock</string>
|
<string name="app_name">Simple Clock</string>
|
||||||
<string name="app_launcher_name">Relógio</string>
|
<string name="app_launcher_name">Relógio</string>
|
||||||
<string name="time_zone">Fuso horário</string>
|
<string name="time_zone">Fuso horário</string>
|
||||||
|
<string name="vibrate">Vibrate</string>
|
||||||
|
<string name="label">Label</string>
|
||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="clock_tab">Relógio</string>
|
<string name="clock_tab">Relógio</string>
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
<string name="app_name">Jednoduché hodinky</string>
|
<string name="app_name">Jednoduché hodinky</string>
|
||||||
<string name="app_launcher_name">Hodinky</string>
|
<string name="app_launcher_name">Hodinky</string>
|
||||||
<string name="time_zone">Časové pásmo</string>
|
<string name="time_zone">Časové pásmo</string>
|
||||||
|
<string name="vibrate">Vibrovanie</string>
|
||||||
|
<string name="label">Štítok</string>
|
||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="clock_tab">Okno s časom</string>
|
<string name="clock_tab">Okno s časom</string>
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
<dimen name="alarm_day_size">38dp</dimen>
|
||||||
|
|
||||||
<dimen name="clock_text_size">70sp</dimen>
|
<dimen name="clock_text_size">70sp</dimen>
|
||||||
<dimen name="alarm_text_size">46sp</dimen>
|
<dimen name="alarm_text_size">46sp</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
<string name="app_name">Simple Clock</string>
|
<string name="app_name">Simple Clock</string>
|
||||||
<string name="app_launcher_name">Clock</string>
|
<string name="app_launcher_name">Clock</string>
|
||||||
<string name="time_zone">Time zone</string>
|
<string name="time_zone">Time zone</string>
|
||||||
|
<string name="vibrate">Vibrate</string>
|
||||||
|
<string name="label">Label</string>
|
||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="clock_tab">Clock tab</string>
|
<string name="clock_tab">Clock tab</string>
|
||||||
|
Reference in New Issue
Block a user