From 95a66b8a756c4a10dd5dc4e600efe5755f8a1d93 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 12 Mar 2018 18:20:37 +0100 Subject: [PATCH] fix seconds ticking on Clock fragment --- .../clock/activities/WidgetDateTimeConfigureActivity.kt | 3 ++- .../com/simplemobiletools/clock/extensions/Context.kt | 7 +++++-- .../com/simplemobiletools/clock/fragments/ClockFragment.kt | 2 +- .../clock/helpers/MyWidgetDateTimeProvider.kt | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/WidgetDateTimeConfigureActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/WidgetDateTimeConfigureActivity.kt index c23127a9..1a229b98 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/WidgetDateTimeConfigureActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/WidgetDateTimeConfigureActivity.kt @@ -10,6 +10,7 @@ import com.simplemobiletools.clock.R import com.simplemobiletools.clock.extensions.config import com.simplemobiletools.clock.extensions.getFormattedDate import com.simplemobiletools.clock.extensions.getFormattedTime +import com.simplemobiletools.clock.extensions.getPassedSeconds import com.simplemobiletools.clock.helpers.MyWidgetDateTimeProvider import com.simplemobiletools.commons.dialogs.ColorPickerDialog import com.simplemobiletools.commons.extensions.adjustAlpha @@ -72,7 +73,7 @@ class WidgetDateTimeConfigureActivity : SimpleActivity() { private fun updateCurrentDateTime() { val calendar = Calendar.getInstance() - config_time.text = getFormattedTime(calendar, false) + config_time.text = getFormattedTime(getPassedSeconds(), false) config_date.text = getFormattedDate(calendar) if (config.useTextShadow) { diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt index 8ba7f01d..86e00d65 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -38,10 +38,13 @@ fun Context.getFormattedDate(calendar: Calendar): String { return "$shortDayString, $dayOfMonth $monthString" } -fun Context.getFormattedTime(calendar: Calendar, showSeconds: Boolean): String { +fun Context.getPassedSeconds(): Int { + val calendar = Calendar.getInstance() val offset = calendar.timeZone.rawOffset - val passedSeconds = ((calendar.timeInMillis + offset) / 1000).toInt() + return ((calendar.timeInMillis + offset) / 1000).toInt() +} +fun Context.getFormattedTime(passedSeconds: Int, showSeconds: Boolean): String { val hours = (passedSeconds / 3600) % 24 val minutes = (passedSeconds / 60) % 60 val seconds = passedSeconds % 60 diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/fragments/ClockFragment.kt b/app/src/main/kotlin/com/simplemobiletools/clock/fragments/ClockFragment.kt index 1ec2f760..944e21d6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/fragments/ClockFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/fragments/ClockFragment.kt @@ -76,7 +76,7 @@ class ClockFragment : Fragment() { val hours = (passedSeconds / 3600) % 24 val minutes = (passedSeconds / 60) % 60 val seconds = passedSeconds % 60 - view.clock_time.text = context!!.getFormattedTime(calendar, context!!.config.showSeconds) + view.clock_time.text = context!!.getFormattedTime(passedSeconds, context!!.config.showSeconds) if (seconds == 0) { if (hours == 0 && minutes == 0) { diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/MyWidgetDateTimeProvider.kt b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/MyWidgetDateTimeProvider.kt index ca4052a9..bf1c2e0a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/MyWidgetDateTimeProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/MyWidgetDateTimeProvider.kt @@ -38,7 +38,7 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() { private fun updateTexts(context: Context, views: RemoteViews) { val calendar = Calendar.getInstance() views.apply { - setText(R.id.widget_time, context.getFormattedTime(calendar, false)) + setText(R.id.widget_time, context.getFormattedTime(context.getPassedSeconds(), false)) setText(R.id.widget_date, context.getFormattedDate(calendar)) } }