일회성 알람의 경우 알람이 울리면 날짜를 다음날로 변경하고 isEnable을 false로 변경한다.
This commit is contained in:
parent
4fc39f10b1
commit
a618903f0f
|
@ -40,7 +40,7 @@ android {
|
|||
applicationId "kr.co.vividnext.sodalive"
|
||||
minSdk 23
|
||||
targetSdk 33
|
||||
versionCode 87
|
||||
versionCode 88
|
||||
versionName "1.13.2"
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import androidx.room.PrimaryKey
|
|||
data class Alarm(
|
||||
@PrimaryKey(autoGenerate = true) val id: Int = 0,
|
||||
val title: String,
|
||||
val time: Long,
|
||||
var time: Long,
|
||||
val days: List<String>,
|
||||
val contentId: Long,
|
||||
val contentTitle: String,
|
||||
|
|
|
@ -4,7 +4,6 @@ import android.content.BroadcastReceiver
|
|||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import androidx.lifecycle.Observer
|
||||
import com.orhanobut.logger.Logger
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
@ -14,10 +13,10 @@ import kr.co.vividnext.sodalive.mypage.alarm.AlarmActivity
|
|||
import kr.co.vividnext.sodalive.mypage.alarm.db.Alarm
|
||||
import kr.co.vividnext.sodalive.mypage.alarm.db.AlarmDatabase
|
||||
import kr.co.vividnext.sodalive.mypage.alarm.scheduler.AlarmScheduler
|
||||
import java.util.Calendar
|
||||
|
||||
class AlarmReceiver : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
|
||||
val alarmId = intent.getIntExtra(Constants.EXTRA_ALARM_ID, -1)
|
||||
|
||||
if (alarmId > 0) {
|
||||
|
@ -36,6 +35,18 @@ class AlarmReceiver : BroadcastReceiver() {
|
|||
val scheduler = AlarmScheduler(context)
|
||||
if (value.days.isNotEmpty()) {
|
||||
scheduler.setAlarm(value)
|
||||
} else {
|
||||
scheduler.cancelAlarm(value)
|
||||
|
||||
val calendar = Calendar.getInstance()
|
||||
calendar.timeInMillis = value.time
|
||||
calendar.add(Calendar.DAY_OF_YEAR, 1)
|
||||
|
||||
value.time = calendar.timeInMillis
|
||||
value.isEnabled = false
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
alarmDao.updateAlarm(value)
|
||||
}
|
||||
}
|
||||
alarmLiveData.removeObserver(this)
|
||||
}
|
||||
|
|
|
@ -57,7 +57,6 @@ class AlarmScheduler(private val context: Context) {
|
|||
|
||||
val info = AlarmManager.AlarmClockInfo(calendar.timeInMillis, alarmIntent)
|
||||
alarmManager.setAlarmClock(info, alarmIntent)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue