File tree Expand file tree Collapse file tree 5 files changed +111
-0
lines changed
data/src/main/java/com/yapp/data/local
domain/src/main/java/com/yapp/domain Expand file tree Collapse file tree 5 files changed +111
-0
lines changed Original file line number Diff line number Diff line change 1+ package com.yapp.data.local.di
2+
3+ import com.yapp.data.local.repositoryimpl.AlarmRepositoryImpl
4+ import com.yapp.domain.repository.AlarmRepository
5+ import dagger.Binds
6+ import dagger.Module
7+ import dagger.hilt.InstallIn
8+ import dagger.hilt.components.SingletonComponent
9+ import javax.inject.Singleton
10+
11+ @Module
12+ @InstallIn(SingletonComponent ::class )
13+ abstract class RepositoryModule {
14+ @Binds
15+ @Singleton
16+ abstract fun bindsAlarmRepository (
17+ alarmRepository : AlarmRepositoryImpl ,
18+ ): AlarmRepository
19+ }
Original file line number Diff line number Diff line change 1+ package com.yapp.data.local.repositoryimpl
2+
3+ import com.yapp.data.local.datasource.AlarmLocalDataSource
4+ import com.yapp.data.local.toEntity
5+ import com.yapp.domain.model.Alarm
6+ import com.yapp.domain.repository.AlarmRepository
7+ import javax.inject.Inject
8+
9+ class AlarmRepositoryImpl @Inject constructor(
10+ private val alarmLocalDataSource : AlarmLocalDataSource
11+ ) : AlarmRepository {
12+ override suspend fun getPagedAlarms (limit : Int , offset : Int ): List <Alarm > {
13+ return alarmLocalDataSource.getPagedAlarms(limit, offset)
14+ }
15+
16+ override suspend fun getAlarmCount (): Int {
17+ return alarmLocalDataSource.getAlarmCount()
18+ }
19+
20+ override suspend fun insertAlarm (alarm : Alarm ): Alarm ? {
21+ val alarmId = alarmLocalDataSource.insertAlarm(alarm.toEntity())
22+ return getAlarm(alarmId)
23+ }
24+
25+ override suspend fun updateAlarm (alarm : Alarm ): Alarm ? {
26+ val alarmId = alarmLocalDataSource.updateAlarm(alarm.toEntity())
27+ return getAlarm(alarmId)
28+ }
29+
30+ override suspend fun getAlarm (id : Long ): Alarm ? {
31+ return alarmLocalDataSource.getAlarm(id)
32+ }
33+
34+ override suspend fun deleteAlarm (id : Long ): Long? {
35+ return alarmLocalDataSource.deleteAlarm(id)
36+ }
37+ }
Original file line number Diff line number Diff line change 1+ package com.yapp.domain.model
2+
3+ data class Alarm (
4+ val id : Long = 0 ,
5+
6+ val isAm : Boolean = true ,
7+
8+ val hour : Int = 6 ,
9+ val minute : Int = 0 ,
10+
11+ // ๋ฐ๋ณต ์์ผ (bitmask ๋ฅผ ํตํด ์ค์ )
12+ val repeatDays : Int = 0 ,
13+
14+ val isHolidayAlarmOff : Boolean = false ,
15+ val isSnoozeEnabled : Boolean = false ,
16+
17+ val snoozeInterval : Int = 5 ,
18+ val snoozeCount : Int = 1 ,
19+
20+ val isVibrationEnabled : Boolean = true ,
21+ val isSoundEnabled : Boolean = true ,
22+
23+ val soundUri : String = " " ,
24+ val soundVolume : Int = 70 ,
25+
26+ val isAlarmActive : Boolean = true
27+ )
Original file line number Diff line number Diff line change 1+ package com.yapp.domain.repository
2+
3+ import com.yapp.domain.model.Alarm
4+
5+ interface AlarmRepository {
6+ suspend fun getPagedAlarms (limit : Int , offset : Int ): List <Alarm >
7+ suspend fun getAlarmCount (): Int
8+ suspend fun insertAlarm (alarm : Alarm ): Alarm ?
9+ suspend fun updateAlarm (alarm : Alarm ): Alarm ?
10+ suspend fun getAlarm (id : Long ): Alarm ?
11+ suspend fun deleteAlarm (id : Long ): Long?
12+ }
Original file line number Diff line number Diff line change 1+ package com.yapp.domain.usecase
2+
3+ import com.yapp.domain.model.Alarm
4+ import com.yapp.domain.repository.AlarmRepository
5+ import javax.inject.Inject
6+
7+ class AlarmUseCase @Inject constructor(
8+ private val alarmRepository : AlarmRepository
9+ ) {
10+ suspend fun getPagedAlarms (limit : Int , offset : Int ): List <Alarm > = alarmRepository.getPagedAlarms(limit, offset)
11+ suspend fun getAlarmCount (): Int = alarmRepository.getAlarmCount()
12+ suspend fun insertAlarm (alarm : Alarm ): Alarm ? = alarmRepository.insertAlarm(alarm)
13+ suspend fun updateAlarm (alarm : Alarm ): Alarm ? = alarmRepository.updateAlarm(alarm)
14+ suspend fun getAlarm (id : Long ): Alarm ? = alarmRepository.getAlarm(id)
15+ suspend fun deleteAlarm (id : Long ): Long? = alarmRepository.deleteAlarm(id)
16+ }
You canโt perform that action at this time.
0 commit comments