diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt index 4962d076..93d2cf29 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt @@ -12,6 +12,7 @@ import com.simplemobiletools.clock.adapters.ViewPagerAdapter import com.simplemobiletools.clock.extensions.config import com.simplemobiletools.clock.extensions.getNextAlarm import com.simplemobiletools.clock.extensions.rescheduleEnabledAlarms +import com.simplemobiletools.clock.extensions.updateWidgets import com.simplemobiletools.clock.helpers.* import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.LICENSE_NUMBER_PICKER @@ -32,6 +33,7 @@ class MainActivity : SimpleActivity() { appLaunched(BuildConfig.APPLICATION_ID) storeStateVariables() initFragments() + updateWidgets() if (getNextAlarm().isEmpty()) { ensureBackgroundThread { diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt index 48ba3ff1..10aa7782 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -177,9 +177,9 @@ fun Context.hideNotification(id: Int) { fun Context.hideTimerNotification(timerId: Int) = hideNotification(timerId) fun Context.updateWidgets() { - val widgetsCnt = - AppWidgetManager.getInstance(applicationContext)?.getAppWidgetIds(ComponentName(applicationContext, MyWidgetDateTimeProvider::class.java)) ?: return - if (widgetsCnt.isNotEmpty()) { + val component = ComponentName(applicationContext, MyWidgetDateTimeProvider::class.java) + val widgetIds = AppWidgetManager.getInstance(applicationContext)?.getAppWidgetIds(component) ?: return + if (widgetIds.isNotEmpty()) { val ids = intArrayOf(R.xml.widget_date_time_info) Intent(applicationContext, MyWidgetDateTimeProvider::class.java).apply { action = AppWidgetManager.ACTION_APPWIDGET_UPDATE diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/MyWidgetDateTimeProvider.kt b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/MyWidgetDateTimeProvider.kt index a33f0d80..ad6feaaa 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/MyWidgetDateTimeProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/MyWidgetDateTimeProvider.kt @@ -8,15 +8,16 @@ import android.content.Context import android.content.Intent import android.graphics.* import android.os.Bundle -import android.text.format.DateFormat import android.widget.RemoteViews import com.simplemobiletools.clock.R import com.simplemobiletools.clock.activities.SplashActivity 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.applyColorFilter +import com.simplemobiletools.commons.extensions.getLaunchIntent +import com.simplemobiletools.commons.extensions.setText +import com.simplemobiletools.commons.extensions.setVisibleIf import java.util.* class MyWidgetDateTimeProvider : AppWidgetProvider() { @@ -38,7 +39,7 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() { } private fun updateTexts(context: Context, views: RemoteViews) { - val nextAlarm = getFormattedNextAlarm(context) + val nextAlarm = context.getNextAlarm() views.apply { setText(R.id.widget_date, context.getFormattedDate(Calendar.getInstance())) 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?) { super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions) performUpdate(context)