From e92d0f9bf6dd15c6c26d1133eafdcd5083393161 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 21 Feb 2017 21:55:27 +0100 Subject: [PATCH] allow toggling 24 hour format in settings --- .../calendar/activities/EventActivity.kt | 4 ++-- .../calendar/activities/SettingsActivity.kt | 9 +++++++++ .../calendar/helpers/Config.kt | 8 ++++++++ .../calendar/helpers/Constants.kt | 1 + .../calendar/helpers/Formatter.kt | 4 ++-- app/src/main/res/layout/activity_settings.xml | 20 +++++++++++++++++++ 6 files changed, 42 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt index f2630cfeb..2f417be12 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt @@ -328,7 +328,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { fun setupStartTime() { hideKeyboard() - TimePickerDialog(this, mDialogTheme, startTimeSetListener, mEventStartDateTime.hourOfDay, mEventStartDateTime.minuteOfHour, true).show() + TimePickerDialog(this, mDialogTheme, startTimeSetListener, mEventStartDateTime.hourOfDay, mEventStartDateTime.minuteOfHour, config.use24hourFormat).show() } fun setupEndDate() { @@ -339,7 +339,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener { fun setupEndTime() { hideKeyboard() - TimePickerDialog(this, mDialogTheme, endTimeSetListener, mEventEndDateTime.hourOfDay, mEventEndDateTime.minuteOfHour, true).show() + TimePickerDialog(this, mDialogTheme, endTimeSetListener, mEventEndDateTime.hourOfDay, mEventEndDateTime.minuteOfHour, config.use24hourFormat).show() } private val startDateSetListener = DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth -> diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt index a9701f008..510923dc7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt @@ -41,6 +41,7 @@ class SettingsActivity : SimpleActivity() { setupCustomizeColors() setupManageEventTypes() + setupHourFormat() setupSundayFirst() setupGoogleSync() setupWeeklyStart() @@ -64,6 +65,14 @@ class SettingsActivity : SimpleActivity() { } } + private fun setupHourFormat() { + settings_hour_format.isChecked = config.use24hourFormat + settings_hour_format_holder.setOnClickListener { + settings_hour_format.toggle() + config.use24hourFormat = settings_hour_format.isChecked + } + } + private fun setupGoogleSync() { settings_google_sync.isChecked = config.googleSync settings_google_sync_holder.setOnClickListener { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt index ac871697b..cb4fdeef5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt @@ -2,6 +2,7 @@ package com.simplemobiletools.calendar.helpers import android.content.Context import android.media.RingtoneManager +import android.text.format.DateFormat import com.simplemobiletools.commons.helpers.BaseConfig import java.util.* @@ -17,6 +18,13 @@ class Config(context: Context) : BaseConfig(context) { } set(sundayFirst) = prefs.edit().putBoolean(SUNDAY_FIRST, sundayFirst).apply() + var use24hourFormat: Boolean + get() { + val use24hourFormat = DateFormat.is24HourFormat(context) + return prefs.getBoolean(USE_24_HOUR_FORMAT, use24hourFormat) + } + set(use24hourFormat) = prefs.edit().putBoolean(USE_24_HOUR_FORMAT, use24hourFormat).apply() + var displayWeekNumbers: Boolean get() = prefs.getBoolean(WEEK_NUMBERS, false) set(displayWeekNumbers) = prefs.edit().putBoolean(WEEK_NUMBERS, displayWeekNumbers).apply() diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Constants.kt index 07138f8f7..d6e60df4c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Constants.kt @@ -29,6 +29,7 @@ val DAY_SECONDS = 24 * 60 * 60 val WEEK_SECONDS = 7 * DAY_SECONDS // Shared Preferences +val USE_24_HOUR_FORMAT = "use_24_hour_format" val SUNDAY_FIRST = "sunday_first" val WEEK_NUMBERS = "week_numbers" val START_WEEKLY_AT = "start_weekly_at" diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Formatter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Formatter.kt index 2e2a876a8..da43b1e57 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Formatter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Formatter.kt @@ -1,8 +1,8 @@ package com.simplemobiletools.calendar.helpers import android.content.Context -import android.text.format.DateFormat import com.simplemobiletools.calendar.R +import com.simplemobiletools.calendar.extensions.config import com.simplemobiletools.calendar.extensions.seconds import org.joda.time.DateTime import org.joda.time.DateTimeZone @@ -63,5 +63,5 @@ object Formatter { // use manually translated month names, as DateFormat and Joda have issues with a lot of languages fun getMonthName(context: Context, id: Int) = context.resources.getStringArray(R.array.months)[id - 1] - fun getTimePattern(context: Context) = if (DateFormat.is24HourFormat(context)) PATTERN_TIME_24 else PATTERN_TIME_12 + fun getTimePattern(context: Context) = if (context.config.use24hourFormat) PATTERN_TIME_24 else PATTERN_TIME_12 } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 1d37daba0..fb7a700bb 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -49,6 +49,26 @@ + + + + + +