mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-03-03 19:19:00 +01:00
use text_clock at the widget for updating the time
This commit is contained in:
parent
ee09b59cda
commit
980c81466b
@ -97,8 +97,6 @@
|
||||
|
||||
<receiver android:name=".receivers.HideAlarmReceiver" />
|
||||
|
||||
<receiver android:name=".receivers.DateTimeWidgetUpdateReceiver" />
|
||||
|
||||
<receiver
|
||||
android:name=".receivers.BootCompletedReceiver"
|
||||
android:exported="true">
|
||||
|
@ -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()
|
||||
}
|
||||
}
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user