diff --git a/app/build.gradle b/app/build.gradle index 6a3f9b0..a1bb9c2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,8 +40,8 @@ android { applicationId "kr.co.vividnext.sodalive" minSdk 23 targetSdk 33 - versionCode 90 - versionName "1.14.0" + versionCode 92 + versionName "1.14.1" } buildTypes { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/AlarmRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/AlarmRepository.kt index 62ee4a7..eb77188 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/AlarmRepository.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/AlarmRepository.kt @@ -1,19 +1,17 @@ package kr.co.vividnext.sodalive.mypage.alarm -import android.content.Context import androidx.lifecycle.LiveData import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import kr.co.vividnext.sodalive.mypage.alarm.db.Alarm import kr.co.vividnext.sodalive.mypage.alarm.db.AlarmDao -import kr.co.vividnext.sodalive.mypage.alarm.db.AlarmDatabase class AlarmRepository(private val alarmDao: AlarmDao) { val allAlarms = alarmDao.getAllAlarms() - suspend fun insert(alarm: Alarm) { - withContext(Dispatchers.IO) { - alarmDao.insertAlarm(alarm) + suspend fun insert(alarm: Alarm): Alarm { + return withContext(Dispatchers.IO) { + alarmDao.insertAndReturnAlarm(alarm) } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/AlarmViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/AlarmViewModel.kt index 5c83b4b..77ee5b5 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/AlarmViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/AlarmViewModel.kt @@ -23,9 +23,9 @@ class AlarmViewModel(application: Application) : AndroidViewModel(application) { var allAlarms = repository.allAlarms.asLiveData() fun insert(alarm: Alarm) = viewModelScope.launch { - repository.insert(alarm) - if (alarm.isEnabled) { - scheduler.setAlarm(alarm) + val insertedUser = repository.insert(alarm) + if (insertedUser.isEnabled) { + scheduler.setAlarm(insertedUser) } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/db/AlarmDao.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/db/AlarmDao.kt index ebf57d0..4879bc6 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/db/AlarmDao.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/alarm/db/AlarmDao.kt @@ -25,7 +25,7 @@ interface AlarmDao { fun resetAutoIncrement() @Insert(onConflict = OnConflictStrategy.REPLACE) - fun insertAlarm(alarm: Alarm) + fun insertAlarm(alarm: Alarm): Long @Update fun updateAlarm(alarm: Alarm) @@ -33,6 +33,12 @@ interface AlarmDao { @Delete fun deleteAlarm(alarm: Alarm) + @Transaction + fun insertAndReturnAlarm(alarm: Alarm): Alarm { + val id = insertAlarm(alarm) + return alarm.copy(id = id.toInt()) + } + @Transaction fun truncateTable() { deleteAllAlarms()