Skip to content

Commit 22d86f9

Browse files
committed
use a more modern timepicker with material theme
1 parent 2542d6f commit 22d86f9

File tree

2 files changed

+36
-10
lines changed

2 files changed

+36
-10
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ android {
6464
}
6565

6666
dependencies {
67-
implementation 'com.github.SimpleMobileTools:Simple-Commons:971e86fcd2'
67+
implementation 'com.github.SimpleMobileTools:Simple-Commons:0eb2785498'
6868
implementation 'com.facebook.stetho:stetho:1.5.1'
6969
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
7070
implementation 'com.shawnlin:number-picker:2.4.6'

app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import android.media.RingtoneManager
77
import android.text.format.DateFormat
88
import android.widget.TextView
99
import androidx.appcompat.app.AlertDialog
10+
import com.google.android.material.timepicker.MaterialTimePicker
11+
import com.google.android.material.timepicker.TimeFormat
1012
import com.simplemobiletools.clock.R
1113
import com.simplemobiletools.clock.activities.SimpleActivity
1214
import com.simplemobiletools.clock.extensions.*
@@ -31,14 +33,34 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callba
3133

3234
view.apply {
3335
edit_alarm_time.setOnClickListener {
34-
TimePickerDialog(
35-
context,
36-
context.getTimePickerDialogTheme(),
37-
timeSetListener,
38-
alarm.timeInMinutes / 60,
39-
alarm.timeInMinutes % 60,
40-
DateFormat.is24HourFormat(activity)
41-
).show()
36+
if (activity.config.isUsingSystemTheme) {
37+
val timeFormat = if (DateFormat.is24HourFormat(activity)) {
38+
TimeFormat.CLOCK_24H
39+
} else {
40+
TimeFormat.CLOCK_12H
41+
}
42+
43+
val timePicker = MaterialTimePicker.Builder()
44+
.setTimeFormat(timeFormat)
45+
.setHour(alarm.timeInMinutes / 60)
46+
.setMinute(alarm.timeInMinutes % 60)
47+
.build()
48+
49+
timePicker.addOnPositiveButtonClickListener {
50+
timePicked(timePicker.hour, timePicker.minute)
51+
}
52+
53+
timePicker.show(activity.supportFragmentManager, "")
54+
} else {
55+
TimePickerDialog(
56+
context,
57+
context.getTimePickerDialogTheme(),
58+
timeSetListener,
59+
alarm.timeInMinutes / 60,
60+
alarm.timeInMinutes % 60,
61+
DateFormat.is24HourFormat(activity)
62+
).show()
63+
}
4264
}
4365

4466
edit_alarm_sound.colorCompoundDrawable(textColor)
@@ -169,7 +191,11 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callba
169191
}
170192

171193
private val timeSetListener = TimePickerDialog.OnTimeSetListener { view, hourOfDay, minute ->
172-
alarm.timeInMinutes = hourOfDay * 60 + minute
194+
timePicked(hourOfDay, minute)
195+
}
196+
197+
private fun timePicked(hours: Int, minutes: Int) {
198+
alarm.timeInMinutes = hours * 60 + minutes
173199
updateAlarmTime()
174200
}
175201

0 commit comments

Comments
 (0)