diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 9b9ee9889fb6f6e120f186aa6d332af475d49b48..c1d371b6f985c06990b39633c6c2a4d34ba944f1 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,6 +1,7 @@
 plugins {
     alias(libs.plugins.androidApplication)
     alias(libs.plugins.jetbrainsKotlinAndroid)
+    id("kotlin-kapt")
 }
 
 android {
@@ -75,9 +76,9 @@ dependencies {
 
 
     val roomVersion = "2.6.1"
-    implementation("androidx.room:room-runtime:$roomVersion")
-    annotationProcessor("androidx.room:room-compiler:$roomVersion")
-
 
-}
+    implementation("androidx.room:room-runtime:$roomVersion")
+    kapt("androidx.room:room-compiler:$roomVersion")
+    implementation("androidx.room:room-ktx:$roomVersion")
 
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/pomo/myapplication/MainActivity.kt b/app/src/main/java/com/pomo/myapplication/MainActivity.kt
index 04b0f9c3ff1532cbd10504f36e4f2a86e3754308..1d2b52149a2f4d554071e640349054924f4e3871 100644
--- a/app/src/main/java/com/pomo/myapplication/MainActivity.kt
+++ b/app/src/main/java/com/pomo/myapplication/MainActivity.kt
@@ -36,17 +36,29 @@ class MainActivity : ComponentActivity() {
         permissionsHelper = PermissionsHelper(this)
 
         // Register individual permission launchers and pass them to PermissionsHelper
-        val postNotificationLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
-            permissionsHelper.handlePermissionResult(Manifest.permission.POST_NOTIFICATIONS, isGranted)
-        }
+        val postNotificationLauncher =
+            registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
+                permissionsHelper.handlePermissionResult(
+                    Manifest.permission.POST_NOTIFICATIONS,
+                    isGranted
+                )
+            }
 
-        val accessNotificationPolicyLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
-            permissionsHelper.handlePermissionResult(Manifest.permission.ACCESS_NOTIFICATION_POLICY, isGranted)
-        }
+        val accessNotificationPolicyLauncher =
+            registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
+                permissionsHelper.handlePermissionResult(
+                    Manifest.permission.ACCESS_NOTIFICATION_POLICY,
+                    isGranted
+                )
+            }
 
-        val useExactAlarmLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
-            permissionsHelper.handlePermissionResult(Manifest.permission.USE_EXACT_ALARM, isGranted)
-        }
+        val useExactAlarmLauncher =
+            registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
+                permissionsHelper.handlePermissionResult(
+                    Manifest.permission.USE_EXACT_ALARM,
+                    isGranted
+                )
+            }
 
         // Initialize permission launchers with the registered launchers
         permissionsHelper.initializePermissionLaunchers(
@@ -74,7 +86,10 @@ class MainActivity : ComponentActivity() {
 
 
     @Composable
-    private fun SetupNavGraph(navController: NavHostController) {
+    fun SetupNavGraph(navController: NavHostController) {
+        // ViewModel einmalig für beide Screens
+        val taskViewModel: TaskViewModel = viewModel()  // Verwende viewModel() hier
+
         NavHost(
             navController = navController,
             startDestination = "timer_screen"
@@ -82,17 +97,21 @@ class MainActivity : ComponentActivity() {
             composable("timer_screen") {
                 TimerScreen(
                     onToDoListClick = {
-                        // Navigate to the to-do screen and request pending permissions
+                        // Navigiere zum To-Do-Screen und fordere ausstehende Berechtigungen an
                         navController.navigate("todo_screen")
                         permissionsHelper.requestPendingPermissions()
                     },
                     notificationHelper = notificationHelper,
                     activity = this@MainActivity,
-                    viewModel = viewModel()  // Use viewModel to provide the SharedViewModel
+                    viewModel = viewModel()  // ViewModel bereitstellen
                 )
             }
             composable("todo_screen") {
-                ToDoScreen(onBackClick = { navController.navigateUp() })
+                // Übergib den ViewModel an die ToDoScreen
+                ToDoScreen(
+                    onBackClick = { navController.navigateUp() },
+                    taskViewModel = taskViewModel // ViewModel weitergeben
+                )
             }
         }
     }
diff --git a/app/src/main/java/com/pomo/myapplication/TaskRepos.kt b/app/src/main/java/com/pomo/myapplication/TaskRepos.kt
new file mode 100644
index 0000000000000000000000000000000000000000..ef0861226e0b09aa2607a63026ede1127f352d9f
--- /dev/null
+++ b/app/src/main/java/com/pomo/myapplication/TaskRepos.kt
@@ -0,0 +1,21 @@
+package com.pomo.myapplication
+
+import com.pomo.myapplication.timerroom.TaskDao
+import com.pomo.myapplication.timerroom.TaskEntity
+import kotlinx.coroutines.flow.Flow
+
+class TaskRepository(private val taskDao: TaskDao) {
+    val allTasks: Flow<List<TaskEntity>> = taskDao.getAllTasks()
+
+    suspend fun insertTask(task: TaskEntity) {
+        taskDao.insertTask(task)
+    }
+
+    suspend fun deleteTask(task: TaskEntity) {
+        taskDao.deleteTask(task)
+    }
+
+    suspend fun updateTask(task: TaskEntity) {
+        taskDao.updateTask(task)
+    }
+}
diff --git a/app/src/main/java/com/pomo/myapplication/TaskViewModel.kt b/app/src/main/java/com/pomo/myapplication/TaskViewModel.kt
new file mode 100644
index 0000000000000000000000000000000000000000..36eb9441b8aee6c793e98f8e78c6dfb03f3c5192
--- /dev/null
+++ b/app/src/main/java/com/pomo/myapplication/TaskViewModel.kt
@@ -0,0 +1,32 @@
+package com.pomo.myapplication
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.viewModelScope
+import com.pomo.myapplication.timerroom.AppDatabase
+import com.pomo.myapplication.timerroom.TaskEntity
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.flow.Flow
+
+class TaskViewModel(application: Application) : AndroidViewModel(application) {
+    private val repository: TaskRepository
+    val allTasks: Flow<List<TaskEntity>>
+
+    init {
+        val taskDao = AppDatabase.getDatabase(application).taskDao()
+        repository = TaskRepository(taskDao)
+        allTasks = repository.allTasks
+    }
+
+    fun insertTask(task: TaskEntity) = viewModelScope.launch {
+        repository.insertTask(task)
+    }
+
+    fun deleteTask(task: TaskEntity) = viewModelScope.launch {
+        repository.deleteTask(task)
+    }
+
+    fun updateTask(task: TaskEntity) = viewModelScope.launch {
+        repository.updateTask(task)
+    }
+}
diff --git a/app/src/main/java/com/pomo/myapplication/ToDoList.kt b/app/src/main/java/com/pomo/myapplication/ToDoList.kt
index a5b717be0181b5ac986a47150b7c48d7f68863ef..dbe4949e856902359c02a3c92250197f9d84963a 100644
--- a/app/src/main/java/com/pomo/myapplication/ToDoList.kt
+++ b/app/src/main/java/com/pomo/myapplication/ToDoList.kt
@@ -28,72 +28,57 @@ import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Surface
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.collectAsState
 import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableStateListOf
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.tooling.preview.Preview
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.window.Dialog
+import com.pomo.myapplication.timerroom.TaskEntity
+
 
 @Composable
-fun ToDoScreen(onBackClick: () -> Unit) {
-    val tasks = remember { mutableStateListOf<Task>() }
+fun ToDoScreen(onBackClick: () -> Unit, taskViewModel: TaskViewModel) {
+    val tasks by taskViewModel.allTasks.collectAsState(initial = emptyList())  // Flow als State beobachten
     var showDialog by remember { mutableStateOf(false) }
 
-    Surface(
-        modifier = Modifier.fillMaxSize(),
-        color = MaterialTheme.colorScheme.background
-    ) {
+    Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
         Column(
-            modifier = Modifier
-                .fillMaxSize()
-                .padding(16.dp),
+            modifier = Modifier.fillMaxSize().padding(16.dp),
             horizontalAlignment = Alignment.CenterHorizontally,
             verticalArrangement = Arrangement.Top
         ) {
             Row(
-                modifier = Modifier
-                    .fillMaxWidth(),
+                modifier = Modifier.fillMaxWidth(),
                 verticalAlignment = Alignment.CenterVertically
             ) {
                 IconButton(onClick = onBackClick) {
-                    Icon(
-                        imageVector = Icons.AutoMirrored.Filled.ArrowBack,
-                        contentDescription = "Back"
-                    )
+                    Icon(imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back")
                 }
                 Spacer(modifier = Modifier.weight(1f))
-                Text(
-                    text = "To-Do",
-                    style = MaterialTheme.typography.headlineLarge,
-                    modifier = Modifier.align(Alignment.CenterVertically)
-                )
+                Text(text = "To-Do", style = MaterialTheme.typography.headlineLarge, modifier = Modifier.align(Alignment.CenterVertically))
                 Spacer(modifier = Modifier.weight(1f))
                 IconButton(onClick = { showDialog = true }) {
-                    Icon(
-                        imageVector = Icons.Default.Add,
-                        contentDescription = "Add Task"
-                    )
+                    Icon(imageVector = Icons.Default.Add, contentDescription = "Add Task")
                 }
             }
 
             Spacer(modifier = Modifier.height(20.dp))
 
-            // Display the list of tasks
             LazyColumn {
-                items(tasks) { task ->
+                items(tasks) { taskEntity ->
+                    val task = Task(taskEntity.description, taskEntity.time, taskEntity.isCompleted)
                     TaskItem(
                         task = task,
                         onComplete = { completedTask ->
-                            tasks[tasks.indexOf(completedTask)] = completedTask.copy(isCompleted = !completedTask.isCompleted)
+                            taskViewModel.updateTask(taskEntity.copy(isCompleted = !completedTask.isCompleted))
                         },
-                        onRemove = { removedTask ->
-                            tasks.remove(removedTask)
+                        onRemove = {
+                            taskViewModel.deleteTask(taskEntity)
                         }
                     )
                 }
@@ -104,7 +89,8 @@ fun ToDoScreen(onBackClick: () -> Unit) {
             TaskInputDialog(
                 onDismiss = { showDialog = false },
                 onAddTask = { taskText, taskTime ->
-                    tasks.add(Task(taskText, taskTime, isCompleted = false))
+                    val newTaskEntity = TaskEntity(description = taskText, time = taskTime, isCompleted = false)
+                    taskViewModel.insertTask(newTaskEntity)
                     showDialog = false
                 }
             )
@@ -112,6 +98,8 @@ fun ToDoScreen(onBackClick: () -> Unit) {
     }
 }
 
+
+
 @Composable
 fun TaskItem(task: Task, onComplete: (Task) -> Unit, onRemove: (Task) -> Unit) {
     Row(
@@ -152,7 +140,6 @@ fun TaskItem(task: Task, onComplete: (Task) -> Unit, onRemove: (Task) -> Unit) {
     }
 }
 
-
 @Composable
 fun TaskInputDialog(onDismiss: () -> Unit, onAddTask: (String, String) -> Unit) {
     var taskText by remember { mutableStateOf("") }
@@ -240,10 +227,4 @@ data class Task(
     val description: String,
     val time: String,
     val isCompleted: Boolean
-)
-
-@Preview(showBackground = true)
-@Composable
-fun PreviewToDoScreen() {
-    ToDoScreen(onBackClick = {})
-}
+)
\ No newline at end of file