From 0cf3f33529480de3d84537fe8f9b98f21f7d1441 Mon Sep 17 00:00:00 2001 From: Khaleeq <khaleeq.khan@hotmail.de> Date: Sat, 14 Sep 2024 14:33:03 +0200 Subject: [PATCH] Task ViewModel, --- .../pomo/myapplication/timerroom/Database.kt | 28 +++++++++++++++++++ .../pomo/myapplication/timerroom/TaskDao.kt | 23 +++++++++++++++ .../myapplication/timerroom/TaskEntity.kt | 13 +++++++++ 3 files changed, 64 insertions(+) create mode 100644 app/src/main/java/com/pomo/myapplication/timerroom/Database.kt create mode 100644 app/src/main/java/com/pomo/myapplication/timerroom/TaskDao.kt create mode 100644 app/src/main/java/com/pomo/myapplication/timerroom/TaskEntity.kt 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 0000000..afa3c3d --- /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 0000000..3abd6db --- /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 0000000..e973a09 --- /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 +) -- GitLab