mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-10 17:00:43 +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.view.inputmethod.EditorInfo
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.RelativeLayout
|
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.Gson
|
||||||
import com.google.gson.reflect.TypeToken
|
import com.google.gson.reflect.TypeToken
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
@ -1359,6 +1361,25 @@ class EventActivity : SimpleActivity() {
|
|||||||
|
|
||||||
private fun setupStartTime() {
|
private fun setupStartTime() {
|
||||||
hideKeyboard()
|
hideKeyboard()
|
||||||
|
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(
|
TimePickerDialog(
|
||||||
this,
|
this,
|
||||||
getTimePickerDialogTheme(),
|
getTimePickerDialogTheme(),
|
||||||
@ -1368,6 +1389,7 @@ class EventActivity : SimpleActivity() {
|
|||||||
config.use24HourFormat
|
config.use24HourFormat
|
||||||
).show()
|
).show()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupEndDate() {
|
private fun setupEndDate() {
|
||||||
hideKeyboard()
|
hideKeyboard()
|
||||||
@ -1382,6 +1404,25 @@ class EventActivity : SimpleActivity() {
|
|||||||
|
|
||||||
private fun setupEndTime() {
|
private fun setupEndTime() {
|
||||||
hideKeyboard()
|
hideKeyboard()
|
||||||
|
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(
|
TimePickerDialog(
|
||||||
this,
|
this,
|
||||||
getTimePickerDialogTheme(),
|
getTimePickerDialogTheme(),
|
||||||
@ -1391,6 +1432,7 @@ class EventActivity : SimpleActivity() {
|
|||||||
config.use24HourFormat
|
config.use24HourFormat
|
||||||
).show()
|
).show()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private val startDateSetListener = DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth ->
|
private val startDateSetListener = DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth ->
|
||||||
dateSet(year, monthOfYear, dayOfMonth, true)
|
dateSet(year, monthOfYear, dayOfMonth, true)
|
||||||
|
@ -8,12 +8,15 @@ import android.media.AudioManager
|
|||||||
import android.media.RingtoneManager
|
import android.media.RingtoneManager
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.widget.Toast
|
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.R
|
||||||
import com.simplemobiletools.calendar.pro.dialogs.SelectCalendarsDialog
|
import com.simplemobiletools.calendar.pro.dialogs.SelectCalendarsDialog
|
||||||
import com.simplemobiletools.calendar.pro.dialogs.SelectEventTypeDialog
|
import com.simplemobiletools.calendar.pro.dialogs.SelectEventTypeDialog
|
||||||
import com.simplemobiletools.calendar.pro.dialogs.SelectQuickFilterEventTypesDialog
|
import com.simplemobiletools.calendar.pro.dialogs.SelectQuickFilterEventTypesDialog
|
||||||
import com.simplemobiletools.calendar.pro.extensions.*
|
import com.simplemobiletools.calendar.pro.extensions.*
|
||||||
import com.simplemobiletools.calendar.pro.helpers.*
|
import com.simplemobiletools.calendar.pro.helpers.*
|
||||||
|
import com.simplemobiletools.calendar.pro.helpers.Formatter
|
||||||
import com.simplemobiletools.calendar.pro.models.EventType
|
import com.simplemobiletools.calendar.pro.models.EventType
|
||||||
import com.simplemobiletools.commons.dialogs.*
|
import com.simplemobiletools.commons.dialogs.*
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
@ -24,6 +27,7 @@ import kotlinx.android.synthetic.main.activity_settings.*
|
|||||||
import org.joda.time.DateTime
|
import org.joda.time.DateTime
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.system.exitProcess
|
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() {
|
private fun setupDisplayPastEvents() {
|
||||||
var displayPastEvents = config.displayPastEvents
|
var displayPastEvents = config.displayPastEvents
|
||||||
@ -715,6 +729,27 @@ class SettingsActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val currentDateTime = DateTime.now()
|
val currentDateTime = DateTime.now()
|
||||||
|
|
||||||
|
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(
|
TimePickerDialog(
|
||||||
this,
|
this,
|
||||||
getTimePickerDialogTheme(),
|
getTimePickerDialogTheme(),
|
||||||
@ -727,6 +762,7 @@ class SettingsActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun updateDefaultStartTimeText() {
|
private fun updateDefaultStartTimeText() {
|
||||||
when (config.defaultStartTime) {
|
when (config.defaultStartTime) {
|
||||||
@ -735,7 +771,8 @@ class SettingsActivity : SimpleActivity() {
|
|||||||
else -> {
|
else -> {
|
||||||
val hours = config.defaultStartTime / 60
|
val hours = config.defaultStartTime / 60
|
||||||
val minutes = 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.os.Bundle
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import androidx.core.content.ContextCompat
|
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.R
|
||||||
import com.simplemobiletools.calendar.pro.dialogs.*
|
import com.simplemobiletools.calendar.pro.dialogs.*
|
||||||
import com.simplemobiletools.calendar.pro.extensions.*
|
import com.simplemobiletools.calendar.pro.extensions.*
|
||||||
@ -538,10 +540,35 @@ class TaskActivity : SimpleActivity() {
|
|||||||
|
|
||||||
private fun setupTime() {
|
private fun setupTime() {
|
||||||
hideKeyboard()
|
hideKeyboard()
|
||||||
|
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(
|
TimePickerDialog(
|
||||||
this, getTimePickerDialogTheme(), timeSetListener, mTaskDateTime.hourOfDay, mTaskDateTime.minuteOfHour, config.use24HourFormat
|
this,
|
||||||
|
getTimePickerDialogTheme(),
|
||||||
|
timeSetListener,
|
||||||
|
mTaskDateTime.hourOfDay,
|
||||||
|
mTaskDateTime.minuteOfHour,
|
||||||
|
config.use24HourFormat
|
||||||
).show()
|
).show()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private val dateSetListener = DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth ->
|
private val dateSetListener = DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth ->
|
||||||
dateSet(year, monthOfYear, dayOfMonth)
|
dateSet(year, monthOfYear, dayOfMonth)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user