diff --git a/app/build.gradle b/app/build.gradle index d576cba..4624b89 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,7 +40,7 @@ android { applicationId "kr.co.vividnext.sodalive" minSdk 23 targetSdk 33 - versionCode 87 + versionCode 88 versionName "1.13.2" } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/db/Alarm.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/db/Alarm.kt index 335e24b..847c87a 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/db/Alarm.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/db/Alarm.kt @@ -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, val contentId: Long, val contentTitle: String, diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/receiver/AlarmReceiver.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/receiver/AlarmReceiver.kt index ed4c3e6..73976d7 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/receiver/AlarmReceiver.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/receiver/AlarmReceiver.kt @@ -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) } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/scheduler/AlarmScheduler.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/scheduler/AlarmScheduler.kt index 045163c..be6b829 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/scheduler/AlarmScheduler.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/scheduler/AlarmScheduler.kt @@ -57,7 +57,6 @@ class AlarmScheduler(private val context: Context) { val info = AlarmManager.AlarmClockInfo(calendar.timeInMillis, alarmIntent) alarmManager.setAlarmClock(info, alarmIntent) - } }