Add greetings as glance provider
This commit is contained in:
@ -18,7 +18,6 @@ object GlanceProviderHelper {
|
||||
.filter {
|
||||
context.checkIfFitInstalled() || it != Constants.GlanceProviderId.GOOGLE_FIT_STEPS
|
||||
}
|
||||
.filterNot { it.id == Constants.GlanceProviderId.GREETINGS.id }
|
||||
.toTypedArray()
|
||||
|
||||
providers.sortWith(Comparator { p1, p2 ->
|
||||
@ -102,7 +101,8 @@ object GlanceProviderHelper {
|
||||
(MediaPlayerHelper.isSomeonePlaying(context)) ||
|
||||
(Preferences.showBatteryCharging && Preferences.isCharging || Preferences.isBatteryLevelLow) ||
|
||||
(Preferences.customNotes.isNotEmpty()) ||
|
||||
(Preferences.showDailySteps && Preferences.googleFitSteps > 0)
|
||||
(Preferences.showDailySteps && Preferences.googleFitSteps > 0) ||
|
||||
(Preferences.showGreetings && GreetingsHelper.showGreetings())
|
||||
)
|
||||
eventRepository.close()
|
||||
return showGlance
|
||||
|
@ -0,0 +1,110 @@
|
||||
package com.tommasoberlose.anotherwidget.helpers
|
||||
|
||||
import android.app.AlarmManager
|
||||
import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.tommasoberlose.anotherwidget.R
|
||||
import com.tommasoberlose.anotherwidget.global.Actions
|
||||
import com.tommasoberlose.anotherwidget.global.Preferences
|
||||
import com.tommasoberlose.anotherwidget.receivers.UpdatesReceiver
|
||||
import java.util.*
|
||||
|
||||
|
||||
object GreetingsHelper {
|
||||
private const val MORNING_TIME = 36
|
||||
private const val MORNING_TIME_END = 37
|
||||
private const val EVENING_TIME = 38
|
||||
private const val NIGHT_TIME = 39
|
||||
|
||||
fun toggleGreetings(context: Context) {
|
||||
with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
||||
val now = Calendar.getInstance().apply {
|
||||
set(Calendar.SECOND, 0)
|
||||
set(Calendar.MILLISECOND, 0)
|
||||
set(Calendar.MINUTE, 0)
|
||||
set(Calendar.HOUR_OF_DAY, 0)
|
||||
}
|
||||
if (Preferences.showGreetings) {
|
||||
setRepeating(
|
||||
AlarmManager.RTC,
|
||||
now.apply {
|
||||
set(Calendar.HOUR_OF_DAY, 5)
|
||||
}.timeInMillis,
|
||||
1000 * 60 * 60 * 24,
|
||||
PendingIntent.getBroadcast(context,
|
||||
MORNING_TIME,
|
||||
Intent(context, UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_UPDATE_GREETINGS
|
||||
},
|
||||
0)
|
||||
)
|
||||
|
||||
setRepeating(
|
||||
AlarmManager.RTC,
|
||||
now.apply {
|
||||
set(Calendar.HOUR_OF_DAY, 9)
|
||||
}.timeInMillis,
|
||||
1000 * 60 * 60 * 24,
|
||||
PendingIntent.getBroadcast(context,
|
||||
MORNING_TIME_END,
|
||||
Intent(context, UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_UPDATE_GREETINGS
|
||||
},
|
||||
0)
|
||||
)
|
||||
|
||||
setRepeating(
|
||||
AlarmManager.RTC,
|
||||
now.apply {
|
||||
set(Calendar.HOUR_OF_DAY, 19)
|
||||
}.timeInMillis,
|
||||
1000 * 60 * 60 * 24,
|
||||
PendingIntent.getBroadcast(context,
|
||||
EVENING_TIME,
|
||||
Intent(context, UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_UPDATE_GREETINGS
|
||||
},
|
||||
0)
|
||||
)
|
||||
|
||||
setRepeating(
|
||||
AlarmManager.RTC,
|
||||
now.apply {
|
||||
set(Calendar.HOUR_OF_DAY, 22)
|
||||
}.timeInMillis,
|
||||
1000 * 60 * 60 * 24,
|
||||
PendingIntent.getBroadcast(context,
|
||||
NIGHT_TIME,
|
||||
Intent(context, UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_UPDATE_GREETINGS
|
||||
},
|
||||
0)
|
||||
)
|
||||
} else {
|
||||
listOf(MORNING_TIME, MORNING_TIME_END, EVENING_TIME, NIGHT_TIME).forEach {
|
||||
cancel(PendingIntent.getBroadcast(context, it, Intent(context,
|
||||
UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_UPDATE_GREETINGS
|
||||
}, 0))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun showGreetings(): Boolean {
|
||||
val hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY)
|
||||
return hour < 9 || hour >= 19
|
||||
}
|
||||
|
||||
fun getRandomString(context: Context): String {
|
||||
val hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY)
|
||||
val array = when {
|
||||
hour in 5..8 -> context.resources.getStringArray(R.array.morning_greetings)
|
||||
hour in 19..21 -> context.resources.getStringArray(R.array.evening_greetings)
|
||||
hour >= 22 && hour < 5 -> context.resources.getStringArray(R.array.night_greetings)
|
||||
else -> emptyArray()
|
||||
}
|
||||
return if (array.isNotEmpty()) array[Random().nextInt(array.size)] else ""
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user