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:
@ -97,8 +97,6 @@
|
|||||||
|
|
||||||
<receiver android:name=".receivers.HideAlarmReceiver" />
|
<receiver android:name=".receivers.HideAlarmReceiver" />
|
||||||
|
|
||||||
<receiver android:name=".receivers.DateTimeWidgetUpdateReceiver" />
|
|
||||||
|
|
||||||
<receiver
|
<receiver
|
||||||
android:name=".receivers.BootCompletedReceiver"
|
android:name=".receivers.BootCompletedReceiver"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
@ -26,7 +26,6 @@ import com.simplemobiletools.clock.models.Alarm
|
|||||||
import com.simplemobiletools.clock.models.MyTimeZone
|
import com.simplemobiletools.clock.models.MyTimeZone
|
||||||
import com.simplemobiletools.clock.models.Timer
|
import com.simplemobiletools.clock.models.Timer
|
||||||
import com.simplemobiletools.clock.receivers.AlarmReceiver
|
import com.simplemobiletools.clock.receivers.AlarmReceiver
|
||||||
import com.simplemobiletools.clock.receivers.DateTimeWidgetUpdateReceiver
|
|
||||||
import com.simplemobiletools.clock.receivers.HideAlarmReceiver
|
import com.simplemobiletools.clock.receivers.HideAlarmReceiver
|
||||||
import com.simplemobiletools.clock.receivers.HideTimerReceiver
|
import com.simplemobiletools.clock.receivers.HideTimerReceiver
|
||||||
import com.simplemobiletools.clock.services.SnoozeService
|
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 {
|
fun Context.getFormattedTime(passedSeconds: Int, showSeconds: Boolean, makeAmPmSmaller: Boolean): SpannableString {
|
||||||
val use24HourFormat = config.use24HourFormat
|
val use24HourFormat = config.use24HourFormat
|
||||||
val hours = (passedSeconds / 3600) % 24
|
val hours = (passedSeconds / 3600) % 24
|
||||||
|
@ -11,21 +11,17 @@ import android.os.Bundle
|
|||||||
import android.widget.RemoteViews
|
import android.widget.RemoteViews
|
||||||
import com.simplemobiletools.clock.R
|
import com.simplemobiletools.clock.R
|
||||||
import com.simplemobiletools.clock.activities.SplashActivity
|
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 com.simplemobiletools.commons.extensions.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
||||||
|
|
||||||
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
|
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
|
||||||
super.onUpdate(context, appWidgetManager, appWidgetIds)
|
super.onUpdate(context, appWidgetManager, appWidgetIds)
|
||||||
performUpdate(context)
|
performUpdate(context)
|
||||||
context.scheduleNextWidgetUpdate()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onEnabled(context: Context) {
|
|
||||||
super.onEnabled(context)
|
|
||||||
context.scheduleNextWidgetUpdate()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun performUpdate(context: Context) {
|
private fun performUpdate(context: Context) {
|
||||||
@ -41,10 +37,8 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateTexts(context: Context, views: RemoteViews) {
|
private fun updateTexts(context: Context, views: RemoteViews) {
|
||||||
val timeText = context.getFormattedTime(getPassedSeconds(), false, false).toString()
|
|
||||||
val nextAlarm = getFormattedNextAlarm(context)
|
val nextAlarm = getFormattedNextAlarm(context)
|
||||||
views.apply {
|
views.apply {
|
||||||
setText(R.id.widget_time, timeText)
|
|
||||||
setText(R.id.widget_date, context.getFormattedDate(Calendar.getInstance()))
|
setText(R.id.widget_date, context.getFormattedDate(Calendar.getInstance()))
|
||||||
setText(R.id.widget_next_alarm, nextAlarm)
|
setText(R.id.widget_next_alarm, nextAlarm)
|
||||||
setVisibleIf(R.id.widget_alarm_holder, nextAlarm.isNotEmpty())
|
setVisibleIf(R.id.widget_alarm_holder, nextAlarm.isNotEmpty())
|
||||||
@ -57,7 +51,7 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
|||||||
|
|
||||||
views.apply {
|
views.apply {
|
||||||
applyColorFilter(R.id.widget_background, config.widgetBgColor)
|
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_date, widgetTextColor)
|
||||||
setTextColor(R.id.widget_next_alarm, 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()
|
|
||||||
}
|
|
||||||
}
|
|
@ -24,8 +24,8 @@
|
|||||||
android:paddingBottom="@dimen/small_margin"
|
android:paddingBottom="@dimen/small_margin"
|
||||||
tools:ignore="UnusedAttribute">
|
tools:ignore="UnusedAttribute">
|
||||||
|
|
||||||
<TextView
|
<TextClock
|
||||||
android:id="@+id/widget_time"
|
android:id="@+id/widget_text_clock"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_weight="4"
|
android:layout_weight="4"
|
||||||
@ -33,6 +33,8 @@
|
|||||||
android:autoSizeMinTextSize="2sp"
|
android:autoSizeMinTextSize="2sp"
|
||||||
android:autoSizeStepGranularity="1sp"
|
android:autoSizeStepGranularity="1sp"
|
||||||
android:autoSizeTextType="uniform"
|
android:autoSizeTextType="uniform"
|
||||||
|
android:format12Hour="h:mm"
|
||||||
|
android:format24Hour="k:mm"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:includeFontPadding="false"
|
android:includeFontPadding="false"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
|
Reference in New Issue
Block a user