diff --git a/app/src/main/java/com/pomo/myapplication/timerroom/Database.kt b/app/src/main/java/com/pomo/myapplication/timerroom/Database.kt new file mode 100644 index 0000000000000000000000000000000000000000..afa3c3d82abfa5b32ec2907ae1d9a6596cef4ae5 --- /dev/null +++ b/app/src/main/java/com/pomo/myapplication/timerroom/Database.kt @@ -0,0 +1,28 @@ +package com.pomo.myapplication.timerroom + +import android.content.Context +import androidx.room.Database +import androidx.room.Room +import androidx.room.RoomDatabase + +@Database(entities = [Task::class], version = 1) +abstract class TaskDatabase : RoomDatabase() { + abstract fun taskDao(): TaskDao + + companion object { + @Volatile + private var INSTANCE: TaskDatabase? = null + + fun getDatabase(context: Context): TaskDatabase { + return INSTANCE ?: synchronized(this) { + val instance = Room.databaseBuilder( + context.applicationContext, + TaskDatabase::class.java, + "task_database" + ).build() + INSTANCE = instance + instance + } + } + } +} diff --git a/app/src/main/java/com/pomo/myapplication/timerroom/TaskDao.kt b/app/src/main/java/com/pomo/myapplication/timerroom/TaskDao.kt new file mode 100644 index 0000000000000000000000000000000000000000..3abd6db36ce356f75e46ecf36080e25216dc69ae --- /dev/null +++ b/app/src/main/java/com/pomo/myapplication/timerroom/TaskDao.kt @@ -0,0 +1,23 @@ +package com.pomo.myapplication.timerroom + +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.Update +import com.pomo.myapplication.Task +import androidx.room.* + +@Dao +interface TaskDao { + @Query("SELECT * FROM tasks") + suspend fun getAllTasks(): List<Task> + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertTask(task: Task) + + @Delete + suspend fun deleteTask(task: Task) + + @Update + suspend fun updateTask(task: Task) +} diff --git a/app/src/main/java/com/pomo/myapplication/timerroom/TaskEntity.kt b/app/src/main/java/com/pomo/myapplication/timerroom/TaskEntity.kt new file mode 100644 index 0000000000000000000000000000000000000000..e973a09d0b1a6fd5ebc9a2afd147c394ca94d775 --- /dev/null +++ b/app/src/main/java/com/pomo/myapplication/timerroom/TaskEntity.kt @@ -0,0 +1,13 @@ +package com.pomo.myapplication.timerroom + +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "tasks") +data class Task( + @PrimaryKey(autoGenerate = true) + val id: Int = 0, + val description: String, + val time: String, + val isCompleted: Boolean +)