mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-06-05 22:19:17 +02:00
properly update widget date and time
This commit is contained in:
@ -2,7 +2,16 @@ package com.simplemobiletools.clock.helpers
|
||||
|
||||
import android.appwidget.AppWidgetManager
|
||||
import android.appwidget.AppWidgetProvider
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.widget.RemoteViews
|
||||
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.commons.extensions.setBackgroundColor
|
||||
import com.simplemobiletools.commons.extensions.setText
|
||||
import java.util.*
|
||||
|
||||
class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
||||
|
||||
@ -11,6 +20,35 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
||||
}
|
||||
|
||||
private fun performUpdate(context: Context) {
|
||||
|
||||
val appWidgetManager = AppWidgetManager.getInstance(context)
|
||||
appWidgetManager.getAppWidgetIds(getComponentName(context)).forEach {
|
||||
RemoteViews(context.packageName, R.layout.widget_date_time).apply {
|
||||
updateTexts(context, this)
|
||||
updateColors(context, this)
|
||||
appWidgetManager.updateAppWidget(it, this)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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_date, context.getFormattedDate(calendar))
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateColors(context: Context, views: RemoteViews) {
|
||||
val config = context.config
|
||||
val widgetBgColor = config.widgetBgColor
|
||||
val widgetTextColor = config.widgetTextColor
|
||||
|
||||
views.apply {
|
||||
setBackgroundColor(R.id.widget_date_time_holder, widgetBgColor)
|
||||
setTextColor(R.id.widget_time, widgetTextColor)
|
||||
setTextColor(R.id.widget_date, widgetTextColor)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getComponentName(context: Context) = ComponentName(context, this::class.java)
|
||||
}
|
||||
|
Reference in New Issue
Block a user