fix seconds ticking on Clock fragment

This commit is contained in:
tibbi 2018-03-12 18:20:37 +01:00
parent a542775a84
commit 95a66b8a75
4 changed files with 9 additions and 5 deletions

View File

@ -10,6 +10,7 @@ import com.simplemobiletools.clock.R
import com.simplemobiletools.clock.extensions.config import com.simplemobiletools.clock.extensions.config
import com.simplemobiletools.clock.extensions.getFormattedDate import com.simplemobiletools.clock.extensions.getFormattedDate
import com.simplemobiletools.clock.extensions.getFormattedTime import com.simplemobiletools.clock.extensions.getFormattedTime
import com.simplemobiletools.clock.extensions.getPassedSeconds
import com.simplemobiletools.clock.helpers.MyWidgetDateTimeProvider import com.simplemobiletools.clock.helpers.MyWidgetDateTimeProvider
import com.simplemobiletools.commons.dialogs.ColorPickerDialog import com.simplemobiletools.commons.dialogs.ColorPickerDialog
import com.simplemobiletools.commons.extensions.adjustAlpha import com.simplemobiletools.commons.extensions.adjustAlpha
@ -72,7 +73,7 @@ class WidgetDateTimeConfigureActivity : SimpleActivity() {
private fun updateCurrentDateTime() { private fun updateCurrentDateTime() {
val calendar = Calendar.getInstance() val calendar = Calendar.getInstance()
config_time.text = getFormattedTime(calendar, false) config_time.text = getFormattedTime(getPassedSeconds(), false)
config_date.text = getFormattedDate(calendar) config_date.text = getFormattedDate(calendar)
if (config.useTextShadow) { if (config.useTextShadow) {

View File

@ -38,10 +38,13 @@ fun Context.getFormattedDate(calendar: Calendar): String {
return "$shortDayString, $dayOfMonth $monthString" 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 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 hours = (passedSeconds / 3600) % 24
val minutes = (passedSeconds / 60) % 60 val minutes = (passedSeconds / 60) % 60
val seconds = passedSeconds % 60 val seconds = passedSeconds % 60

View File

@ -76,7 +76,7 @@ class ClockFragment : Fragment() {
val hours = (passedSeconds / 3600) % 24 val hours = (passedSeconds / 3600) % 24
val minutes = (passedSeconds / 60) % 60 val minutes = (passedSeconds / 60) % 60
val seconds = passedSeconds % 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 (seconds == 0) {
if (hours == 0 && minutes == 0) { if (hours == 0 && minutes == 0) {

View File

@ -38,7 +38,7 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
private fun updateTexts(context: Context, views: RemoteViews) { private fun updateTexts(context: Context, views: RemoteViews) {
val calendar = Calendar.getInstance() val calendar = Calendar.getInstance()
views.apply { 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)) setText(R.id.widget_date, context.getFormattedDate(calendar))
} }
} }