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.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) {

View File

@ -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

View File

@ -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) {

View File

@ -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))
}
}