mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-06-05 22:19:17 +02:00
use text_clock at the widget for updating the time
This commit is contained in:
@ -26,7 +26,6 @@ import com.simplemobiletools.clock.models.Alarm
|
||||
import com.simplemobiletools.clock.models.MyTimeZone
|
||||
import com.simplemobiletools.clock.models.Timer
|
||||
import com.simplemobiletools.clock.receivers.AlarmReceiver
|
||||
import com.simplemobiletools.clock.receivers.DateTimeWidgetUpdateReceiver
|
||||
import com.simplemobiletools.clock.receivers.HideAlarmReceiver
|
||||
import com.simplemobiletools.clock.receivers.HideTimerReceiver
|
||||
import com.simplemobiletools.clock.services.SnoozeService
|
||||
@ -189,21 +188,6 @@ fun Context.updateWidgets() {
|
||||
}
|
||||
}
|
||||
|
||||
fun Context.scheduleNextWidgetUpdate() {
|
||||
val widgetsCnt =
|
||||
AppWidgetManager.getInstance(applicationContext)?.getAppWidgetIds(ComponentName(applicationContext, MyWidgetDateTimeProvider::class.java)) ?: return
|
||||
if (widgetsCnt.isEmpty()) {
|
||||
return
|
||||
}
|
||||
|
||||
val intent = Intent(this, DateTimeWidgetUpdateReceiver::class.java)
|
||||
val pendingIntent = PendingIntent.getBroadcast(this, UPDATE_WIDGET_INTENT_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
val triggerAtMillis = System.currentTimeMillis() + getMSTillNextMinute()
|
||||
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC, triggerAtMillis, pendingIntent)
|
||||
}
|
||||
|
||||
fun Context.getFormattedTime(passedSeconds: Int, showSeconds: Boolean, makeAmPmSmaller: Boolean): SpannableString {
|
||||
val use24HourFormat = config.use24HourFormat
|
||||
val hours = (passedSeconds / 3600) % 24
|
||||
|
@ -11,21 +11,17 @@ import android.os.Bundle
|
||||
import android.widget.RemoteViews
|
||||
import com.simplemobiletools.clock.R
|
||||
import com.simplemobiletools.clock.activities.SplashActivity
|
||||
import com.simplemobiletools.clock.extensions.*
|
||||
import com.simplemobiletools.clock.extensions.config
|
||||
import com.simplemobiletools.clock.extensions.formatTo12HourFormat
|
||||
import com.simplemobiletools.clock.extensions.getFormattedDate
|
||||
import com.simplemobiletools.clock.extensions.getNextAlarm
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import java.util.*
|
||||
|
||||
class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
||||
|
||||
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
|
||||
super.onUpdate(context, appWidgetManager, appWidgetIds)
|
||||
performUpdate(context)
|
||||
context.scheduleNextWidgetUpdate()
|
||||
}
|
||||
|
||||
override fun onEnabled(context: Context) {
|
||||
super.onEnabled(context)
|
||||
context.scheduleNextWidgetUpdate()
|
||||
}
|
||||
|
||||
private fun performUpdate(context: Context) {
|
||||
@ -41,10 +37,8 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
||||
}
|
||||
|
||||
private fun updateTexts(context: Context, views: RemoteViews) {
|
||||
val timeText = context.getFormattedTime(getPassedSeconds(), false, false).toString()
|
||||
val nextAlarm = getFormattedNextAlarm(context)
|
||||
views.apply {
|
||||
setText(R.id.widget_time, timeText)
|
||||
setText(R.id.widget_date, context.getFormattedDate(Calendar.getInstance()))
|
||||
setText(R.id.widget_next_alarm, nextAlarm)
|
||||
setVisibleIf(R.id.widget_alarm_holder, nextAlarm.isNotEmpty())
|
||||
@ -57,7 +51,7 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
||||
|
||||
views.apply {
|
||||
applyColorFilter(R.id.widget_background, config.widgetBgColor)
|
||||
setTextColor(R.id.widget_time, widgetTextColor)
|
||||
setTextColor(R.id.widget_text_clock, widgetTextColor)
|
||||
setTextColor(R.id.widget_date, widgetTextColor)
|
||||
setTextColor(R.id.widget_next_alarm, widgetTextColor)
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
package com.simplemobiletools.clock.receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.simplemobiletools.clock.extensions.scheduleNextWidgetUpdate
|
||||
import com.simplemobiletools.clock.extensions.updateWidgets
|
||||
|
||||
class DateTimeWidgetUpdateReceiver : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
context.updateWidgets()
|
||||
context.scheduleNextWidgetUpdate()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user