mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-05-09 14:29:05 +02:00
simplify alarm time updating at widget
This commit is contained in:
parent
ec508c46db
commit
2fc937d25d
@ -12,6 +12,7 @@ import com.simplemobiletools.clock.adapters.ViewPagerAdapter
|
|||||||
import com.simplemobiletools.clock.extensions.config
|
import com.simplemobiletools.clock.extensions.config
|
||||||
import com.simplemobiletools.clock.extensions.getNextAlarm
|
import com.simplemobiletools.clock.extensions.getNextAlarm
|
||||||
import com.simplemobiletools.clock.extensions.rescheduleEnabledAlarms
|
import com.simplemobiletools.clock.extensions.rescheduleEnabledAlarms
|
||||||
|
import com.simplemobiletools.clock.extensions.updateWidgets
|
||||||
import com.simplemobiletools.clock.helpers.*
|
import com.simplemobiletools.clock.helpers.*
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.LICENSE_NUMBER_PICKER
|
import com.simplemobiletools.commons.helpers.LICENSE_NUMBER_PICKER
|
||||||
@ -32,6 +33,7 @@ class MainActivity : SimpleActivity() {
|
|||||||
appLaunched(BuildConfig.APPLICATION_ID)
|
appLaunched(BuildConfig.APPLICATION_ID)
|
||||||
storeStateVariables()
|
storeStateVariables()
|
||||||
initFragments()
|
initFragments()
|
||||||
|
updateWidgets()
|
||||||
|
|
||||||
if (getNextAlarm().isEmpty()) {
|
if (getNextAlarm().isEmpty()) {
|
||||||
ensureBackgroundThread {
|
ensureBackgroundThread {
|
||||||
|
@ -177,9 +177,9 @@ fun Context.hideNotification(id: Int) {
|
|||||||
fun Context.hideTimerNotification(timerId: Int) = hideNotification(timerId)
|
fun Context.hideTimerNotification(timerId: Int) = hideNotification(timerId)
|
||||||
|
|
||||||
fun Context.updateWidgets() {
|
fun Context.updateWidgets() {
|
||||||
val widgetsCnt =
|
val component = ComponentName(applicationContext, MyWidgetDateTimeProvider::class.java)
|
||||||
AppWidgetManager.getInstance(applicationContext)?.getAppWidgetIds(ComponentName(applicationContext, MyWidgetDateTimeProvider::class.java)) ?: return
|
val widgetIds = AppWidgetManager.getInstance(applicationContext)?.getAppWidgetIds(component) ?: return
|
||||||
if (widgetsCnt.isNotEmpty()) {
|
if (widgetIds.isNotEmpty()) {
|
||||||
val ids = intArrayOf(R.xml.widget_date_time_info)
|
val ids = intArrayOf(R.xml.widget_date_time_info)
|
||||||
Intent(applicationContext, MyWidgetDateTimeProvider::class.java).apply {
|
Intent(applicationContext, MyWidgetDateTimeProvider::class.java).apply {
|
||||||
action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
|
action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
|
||||||
|
@ -8,15 +8,16 @@ import android.content.Context
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.*
|
import android.graphics.*
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.format.DateFormat
|
|
||||||
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.config
|
import com.simplemobiletools.clock.extensions.config
|
||||||
import com.simplemobiletools.clock.extensions.formatTo12HourFormat
|
|
||||||
import com.simplemobiletools.clock.extensions.getFormattedDate
|
import com.simplemobiletools.clock.extensions.getFormattedDate
|
||||||
import com.simplemobiletools.clock.extensions.getNextAlarm
|
import com.simplemobiletools.clock.extensions.getNextAlarm
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.applyColorFilter
|
||||||
|
import com.simplemobiletools.commons.extensions.getLaunchIntent
|
||||||
|
import com.simplemobiletools.commons.extensions.setText
|
||||||
|
import com.simplemobiletools.commons.extensions.setVisibleIf
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
||||||
@ -38,7 +39,7 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateTexts(context: Context, views: RemoteViews) {
|
private fun updateTexts(context: Context, views: RemoteViews) {
|
||||||
val nextAlarm = getFormattedNextAlarm(context)
|
val nextAlarm = context.getNextAlarm()
|
||||||
views.apply {
|
views.apply {
|
||||||
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)
|
||||||
@ -71,40 +72,6 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getFormattedNextAlarm(context: Context): String {
|
|
||||||
val nextAlarm = context.getNextAlarm()
|
|
||||||
if (nextAlarm.isEmpty()) {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
val isIn24HoursFormat = !nextAlarm.endsWith(".")
|
|
||||||
return when {
|
|
||||||
DateFormat.is24HourFormat(context) && !isIn24HoursFormat -> {
|
|
||||||
val dayTime = nextAlarm.split(" ")
|
|
||||||
val times = dayTime[1].split(":")
|
|
||||||
val hours = times[0].toInt()
|
|
||||||
val minutes = times[1].toInt()
|
|
||||||
val seconds = 0
|
|
||||||
val isAM = dayTime[2].startsWith("a", true)
|
|
||||||
val newHours = when {
|
|
||||||
hours == 12 && isAM -> 0
|
|
||||||
hours == 12 && !isAM -> 12
|
|
||||||
!isAM -> hours + 12
|
|
||||||
else -> hours
|
|
||||||
}
|
|
||||||
formatTime(false, true, newHours, minutes, seconds)
|
|
||||||
}
|
|
||||||
!DateFormat.is24HourFormat(context) && isIn24HoursFormat -> {
|
|
||||||
val times = nextAlarm.split(" ")[1].split(":")
|
|
||||||
val hours = times[0].toInt()
|
|
||||||
val minutes = times[1].toInt()
|
|
||||||
val seconds = 0
|
|
||||||
context.formatTo12HourFormat(false, hours, minutes, seconds)
|
|
||||||
}
|
|
||||||
else -> nextAlarm
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onAppWidgetOptionsChanged(context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int, newOptions: Bundle?) {
|
override fun onAppWidgetOptionsChanged(context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int, newOptions: Bundle?) {
|
||||||
super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions)
|
super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions)
|
||||||
performUpdate(context)
|
performUpdate(context)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user