Skip to content

Instantly share code, notes, and snippets.

@garg-lucifer
Created September 24, 2022 09:11
Show Gist options
  • Save garg-lucifer/8ea919d261c45678206c986a097078ea to your computer and use it in GitHub Desktop.
Save garg-lucifer/8ea919d261c45678206c986a097078ea to your computer and use it in GitHub Desktop.
@AndroidEntryPoint
class RebootBroadcastReceiver : BroadcastReceiver(){
@Inject
lateinit var repository: TaskCategoryRepositoryImpl
override fun onReceive(context: Context?, p1: Intent?) {
val time = Date()
CoroutineScope(Main).launch {
val list = repository.getActiveAlarms(time)
for(taskInfo in list) setAlarm(taskInfo, context)
}
}
private fun setAlarm(taskInfo: TaskInfo, context: Context?){
val alarmManager = context?.getSystemService(Context.ALARM_SERVICE) as AlarmManager
val intent = Intent(context, AlarmReceiver::class.java)
intent.putExtra("task_info", taskInfo)
val pendingIntent = PendingIntent.getBroadcast(context, taskInfo.id, intent, PendingIntent.FLAG_IMMUTABLE)
val mainActivityIntent = Intent(context, MainActivity::class.java)
val basicPendingIntent = PendingIntent.getActivity(context, taskInfo.id, mainActivityIntent, PendingIntent.FLAG_IMMUTABLE)
val clockInfo = AlarmManager.AlarmClockInfo(taskInfo.date.time, basicPendingIntent)
alarmManager.setAlarmClock(clockInfo, pendingIntent)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment