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

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

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

View 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>

View 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>

View 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"/>

View 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>

View File

@ -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"

View File

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

View File

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

View File

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

View File

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