mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-09 08:28:39 +01:00
use a nicer time picker with material theme
This commit is contained in:
parent
b8296fbe58
commit
fd6d03db6f
@ -20,6 +20,8 @@ import android.view.WindowManager
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.ImageView
|
||||
import android.widget.RelativeLayout
|
||||
import com.google.android.material.timepicker.MaterialTimePicker
|
||||
import com.google.android.material.timepicker.TimeFormat
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.simplemobiletools.calendar.pro.R
|
||||
@ -1359,14 +1361,34 @@ class EventActivity : SimpleActivity() {
|
||||
|
||||
private fun setupStartTime() {
|
||||
hideKeyboard()
|
||||
TimePickerDialog(
|
||||
this,
|
||||
getTimePickerDialogTheme(),
|
||||
startTimeSetListener,
|
||||
mEventStartDateTime.hourOfDay,
|
||||
mEventStartDateTime.minuteOfHour,
|
||||
config.use24HourFormat
|
||||
).show()
|
||||
if (config.isUsingSystemTheme) {
|
||||
val timeFormat = if (config.use24HourFormat) {
|
||||
TimeFormat.CLOCK_24H
|
||||
} else {
|
||||
TimeFormat.CLOCK_12H
|
||||
}
|
||||
|
||||
val timePicker = MaterialTimePicker.Builder()
|
||||
.setTimeFormat(timeFormat)
|
||||
.setHour(mEventStartDateTime.hourOfDay)
|
||||
.setMinute(mEventStartDateTime.minuteOfHour)
|
||||
.build()
|
||||
|
||||
timePicker.addOnPositiveButtonClickListener {
|
||||
timeSet(timePicker.hour, timePicker.minute, true)
|
||||
}
|
||||
|
||||
timePicker.show(supportFragmentManager, "")
|
||||
} else {
|
||||
TimePickerDialog(
|
||||
this,
|
||||
getTimePickerDialogTheme(),
|
||||
startTimeSetListener,
|
||||
mEventStartDateTime.hourOfDay,
|
||||
mEventStartDateTime.minuteOfHour,
|
||||
config.use24HourFormat
|
||||
).show()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupEndDate() {
|
||||
@ -1382,14 +1404,34 @@ class EventActivity : SimpleActivity() {
|
||||
|
||||
private fun setupEndTime() {
|
||||
hideKeyboard()
|
||||
TimePickerDialog(
|
||||
this,
|
||||
getTimePickerDialogTheme(),
|
||||
endTimeSetListener,
|
||||
mEventEndDateTime.hourOfDay,
|
||||
mEventEndDateTime.minuteOfHour,
|
||||
config.use24HourFormat
|
||||
).show()
|
||||
if (config.isUsingSystemTheme) {
|
||||
val timeFormat = if (config.use24HourFormat) {
|
||||
TimeFormat.CLOCK_24H
|
||||
} else {
|
||||
TimeFormat.CLOCK_12H
|
||||
}
|
||||
|
||||
val timePicker = MaterialTimePicker.Builder()
|
||||
.setTimeFormat(timeFormat)
|
||||
.setHour(mEventEndDateTime.hourOfDay)
|
||||
.setMinute(mEventEndDateTime.minuteOfHour)
|
||||
.build()
|
||||
|
||||
timePicker.addOnPositiveButtonClickListener {
|
||||
timeSet(timePicker.hour, timePicker.minute, false)
|
||||
}
|
||||
|
||||
timePicker.show(supportFragmentManager, "")
|
||||
} else {
|
||||
TimePickerDialog(
|
||||
this,
|
||||
getTimePickerDialogTheme(),
|
||||
endTimeSetListener,
|
||||
mEventEndDateTime.hourOfDay,
|
||||
mEventEndDateTime.minuteOfHour,
|
||||
config.use24HourFormat
|
||||
).show()
|
||||
}
|
||||
}
|
||||
|
||||
private val startDateSetListener = DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth ->
|
||||
|
@ -8,12 +8,15 @@ import android.media.AudioManager
|
||||
import android.media.RingtoneManager
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import com.google.android.material.timepicker.MaterialTimePicker
|
||||
import com.google.android.material.timepicker.TimeFormat
|
||||
import com.simplemobiletools.calendar.pro.R
|
||||
import com.simplemobiletools.calendar.pro.dialogs.SelectCalendarsDialog
|
||||
import com.simplemobiletools.calendar.pro.dialogs.SelectEventTypeDialog
|
||||
import com.simplemobiletools.calendar.pro.dialogs.SelectQuickFilterEventTypesDialog
|
||||
import com.simplemobiletools.calendar.pro.extensions.*
|
||||
import com.simplemobiletools.calendar.pro.helpers.*
|
||||
import com.simplemobiletools.calendar.pro.helpers.Formatter
|
||||
import com.simplemobiletools.calendar.pro.models.EventType
|
||||
import com.simplemobiletools.commons.dialogs.*
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
@ -24,6 +27,7 @@ import kotlinx.android.synthetic.main.activity_settings.*
|
||||
import org.joda.time.DateTime
|
||||
import java.io.File
|
||||
import java.io.InputStream
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
@ -579,7 +583,17 @@ class SettingsActivity : SimpleActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun getHoursString(hours: Int) = String.format("%02d:00", hours)
|
||||
private fun getHoursString(hours: Int): String {
|
||||
return if (config.use24HourFormat) {
|
||||
String.format("%02d:00", hours)
|
||||
} else {
|
||||
val calendar = Calendar.getInstance()
|
||||
calendar.set(Calendar.HOUR_OF_DAY, hours)
|
||||
calendar.set(Calendar.MINUTE, 0)
|
||||
val format = SimpleDateFormat("hh.mm aa")
|
||||
format.format(calendar.time)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupDisplayPastEvents() {
|
||||
var displayPastEvents = config.displayPastEvents
|
||||
@ -715,14 +729,36 @@ class SettingsActivity : SimpleActivity() {
|
||||
}
|
||||
|
||||
val currentDateTime = DateTime.now()
|
||||
TimePickerDialog(
|
||||
this,
|
||||
getTimePickerDialogTheme(),
|
||||
timeListener,
|
||||
currentDateTime.hourOfDay,
|
||||
currentDateTime.minuteOfHour,
|
||||
config.use24HourFormat
|
||||
).show()
|
||||
|
||||
if (config.isUsingSystemTheme) {
|
||||
val timeFormat = if (config.use24HourFormat) {
|
||||
TimeFormat.CLOCK_24H
|
||||
} else {
|
||||
TimeFormat.CLOCK_12H
|
||||
}
|
||||
|
||||
val timePicker = MaterialTimePicker.Builder()
|
||||
.setTimeFormat(timeFormat)
|
||||
.setHour(currentDateTime.hourOfDay)
|
||||
.setMinute(currentDateTime.minuteOfHour)
|
||||
.build()
|
||||
|
||||
timePicker.addOnPositiveButtonClickListener {
|
||||
config.defaultStartTime = timePicker.hour * 60 + timePicker.minute
|
||||
updateDefaultStartTimeText()
|
||||
}
|
||||
|
||||
timePicker.show(supportFragmentManager, "")
|
||||
} else {
|
||||
TimePickerDialog(
|
||||
this,
|
||||
getTimePickerDialogTheme(),
|
||||
timeListener,
|
||||
currentDateTime.hourOfDay,
|
||||
currentDateTime.minuteOfHour,
|
||||
config.use24HourFormat
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -735,7 +771,8 @@ class SettingsActivity : SimpleActivity() {
|
||||
else -> {
|
||||
val hours = config.defaultStartTime / 60
|
||||
val minutes = config.defaultStartTime % 60
|
||||
settings_default_start_time.text = String.format("%02d:%02d", hours, minutes)
|
||||
val dateTime = DateTime.now().withHourOfDay(hours).withMinuteOfHour(minutes)
|
||||
settings_default_start_time.text = Formatter.getTime(this, dateTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,8 @@ import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.google.android.material.timepicker.MaterialTimePicker
|
||||
import com.google.android.material.timepicker.TimeFormat
|
||||
import com.simplemobiletools.calendar.pro.R
|
||||
import com.simplemobiletools.calendar.pro.dialogs.*
|
||||
import com.simplemobiletools.calendar.pro.extensions.*
|
||||
@ -538,9 +540,34 @@ class TaskActivity : SimpleActivity() {
|
||||
|
||||
private fun setupTime() {
|
||||
hideKeyboard()
|
||||
TimePickerDialog(
|
||||
this, getTimePickerDialogTheme(), timeSetListener, mTaskDateTime.hourOfDay, mTaskDateTime.minuteOfHour, config.use24HourFormat
|
||||
).show()
|
||||
if (config.isUsingSystemTheme) {
|
||||
val timeFormat = if (config.use24HourFormat) {
|
||||
TimeFormat.CLOCK_24H
|
||||
} else {
|
||||
TimeFormat.CLOCK_12H
|
||||
}
|
||||
|
||||
val timePicker = MaterialTimePicker.Builder()
|
||||
.setTimeFormat(timeFormat)
|
||||
.setHour(mTaskDateTime.hourOfDay)
|
||||
.setMinute(mTaskDateTime.minuteOfHour)
|
||||
.build()
|
||||
|
||||
timePicker.addOnPositiveButtonClickListener {
|
||||
timeSet(timePicker.hour, timePicker.minute)
|
||||
}
|
||||
|
||||
timePicker.show(supportFragmentManager, "")
|
||||
} else {
|
||||
TimePickerDialog(
|
||||
this,
|
||||
getTimePickerDialogTheme(),
|
||||
timeSetListener,
|
||||
mTaskDateTime.hourOfDay,
|
||||
mTaskDateTime.minuteOfHour,
|
||||
config.use24HourFormat
|
||||
).show()
|
||||
}
|
||||
}
|
||||
|
||||
private val dateSetListener = DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth ->
|
||||
|
Loading…
x
Reference in New Issue
Block a user