use text_clock at the widget for updating the time

This commit is contained in:
tibbi 2022-04-21 13:33:11 +02:00
parent ee09b59cda
commit 980c81466b
5 changed files with 9 additions and 45 deletions

View File

@ -97,8 +97,6 @@
<receiver android:name=".receivers.HideAlarmReceiver" />
<receiver android:name=".receivers.DateTimeWidgetUpdateReceiver" />
<receiver
android:name=".receivers.BootCompletedReceiver"
android:exported="true">

View File

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

View File

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

View File

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

View File

@ -24,8 +24,8 @@
android:paddingBottom="@dimen/small_margin"
tools:ignore="UnusedAttribute">
<TextView
android:id="@+id/widget_time"
<TextClock
android:id="@+id/widget_text_clock"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
@ -33,6 +33,8 @@
android:autoSizeMinTextSize="2sp"
android:autoSizeStepGranularity="1sp"
android:autoSizeTextType="uniform"
android:format12Hour="h:mm"
android:format24Hour="k:mm"
android:gravity="center"
android:includeFontPadding="false"
android:maxLines="1"