Archived
Added database persistence ability
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Insert
|
||||
import androidx.room.Query
|
||||
import com.denizk0461.studip.data.StudIPEvent
|
||||
|
||||
@Dao
|
||||
interface EventDAO {
|
||||
|
||||
@get:Query("SELECT * FROM events ORDER BY id")
|
||||
val allEvents: LiveData<List<StudIPEvent>>
|
||||
|
||||
@Insert
|
||||
fun insertEvent(event: StudIPEvent)
|
||||
|
||||
@Query("DELETE FROM events")
|
||||
fun nukeEvents()
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.Database
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import com.denizk0461.studip.data.StudIPEvent
|
||||
|
||||
@Database(entities = [StudIPEvent::class], version = 1)
|
||||
abstract class EventDatabase : RoomDatabase() {
|
||||
|
||||
abstract fun dao(): EventDAO
|
||||
|
||||
companion object {
|
||||
private var instance: EventDatabase? = null
|
||||
|
||||
fun getInstance(context: Context): EventDatabase {
|
||||
if (instance == null) {
|
||||
synchronized(EventDatabase::class) {
|
||||
instance = Room.databaseBuilder(
|
||||
context.applicationContext,
|
||||
EventDatabase::class.java,
|
||||
"event_db"
|
||||
).build()
|
||||
}
|
||||
}
|
||||
return instance!!
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import android.app.Application
|
||||
import androidx.lifecycle.LiveData
|
||||
import com.denizk0461.studip.data.StudIPEvent
|
||||
|
||||
class EventRepository(app: Application) {
|
||||
|
||||
private val dao: EventDAO = EventDatabase.getInstance(app.applicationContext).dao()
|
||||
|
||||
val allEvents: LiveData<List<StudIPEvent>> = dao.allEvents
|
||||
|
||||
fun nukeEvents() { dao.nukeEvents() }
|
||||
fun insertEvent(event: StudIPEvent) { dao.insertEvent(event) }
|
||||
}
|
||||
Reference in New Issue
Block a user