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 {
|
||||
implementation 'com.simplemobiletools:commons:3.14.13'
|
||||
implementation 'com.simplemobiletools:commons:3.14.17'
|
||||
implementation 'com.facebook.stetho:stetho:1.5.0'
|
||||
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.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) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
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:paddingTop="@dimen/normal_margin"
|
||||
android:textSize="@dimen/alarm_text_size"
|
||||
tools:text="7:00"/>
|
||||
tools:text="07:00"/>
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/alarm_days"
|
||||
|
@ -2,6 +2,8 @@
|
||||
<string name="app_name">Simple Clock</string>
|
||||
<string name="app_launcher_name">Relógio</string>
|
||||
<string name="time_zone">Fuso horário</string>
|
||||
<string name="vibrate">Vibrate</string>
|
||||
<string name="label">Label</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="clock_tab">Relógio</string>
|
||||
|
@ -2,6 +2,8 @@
|
||||
<string name="app_name">Jednoduché hodinky</string>
|
||||
<string name="app_launcher_name">Hodinky</string>
|
||||
<string name="time_zone">Časové pásmo</string>
|
||||
<string name="vibrate">Vibrovanie</string>
|
||||
<string name="label">Štítok</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="clock_tab">Okno s časom</string>
|
||||
|
@ -1,4 +1,6 @@
|
||||
<resources>
|
||||
<dimen name="alarm_day_size">38dp</dimen>
|
||||
|
||||
<dimen name="clock_text_size">70sp</dimen>
|
||||
<dimen name="alarm_text_size">46sp</dimen>
|
||||
</resources>
|
||||
|
@ -2,6 +2,8 @@
|
||||
<string name="app_name">Simple Clock</string>
|
||||
<string name="app_launcher_name">Clock</string>
|
||||
<string name="time_zone">Time zone</string>
|
||||
<string name="vibrate">Vibrate</string>
|
||||
<string name="label">Label</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="clock_tab">Clock tab</string>
|
||||
|
Reference in New Issue
Block a user