From c5222016977cc339523e9fb8f464ef6461ad6cee Mon Sep 17 00:00:00 2001
From: hasretyilmazturk <hasret.yilmaztuerk@smail.th-koeln.de>
Date: Sun, 11 Aug 2024 23:01:10 +0200
Subject: [PATCH] Floating Button erstellt

---
 .../com/pomo/myapplication/MainActivity.kt    | 225 +++++++++---------
 1 file changed, 115 insertions(+), 110 deletions(-)

diff --git a/app/src/main/java/com/pomo/myapplication/MainActivity.kt b/app/src/main/java/com/pomo/myapplication/MainActivity.kt
index 387aa48..14714d9 100644
--- a/app/src/main/java/com/pomo/myapplication/MainActivity.kt
+++ b/app/src/main/java/com/pomo/myapplication/MainActivity.kt
@@ -7,6 +7,8 @@ import androidx.activity.ComponentActivity
 import androidx.activity.compose.setContent
 import androidx.compose.foundation.layout.*
 import androidx.compose.foundation.text.KeyboardOptions
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.List
 import androidx.compose.material3.*
 import androidx.compose.runtime.*
 import androidx.compose.ui.Alignment
@@ -26,13 +28,11 @@ import kotlinx.coroutines.launch
 class MainActivity : ComponentActivity() {
 
     private val postNotificationsPermission = POST_NOTIFICATIONS
-
     private lateinit var notificationHelper: NotificationHelper
     private var timeLeftForNotification: String? = null
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-
         notificationHelper = NotificationHelper(this)
 
         setContent {
@@ -82,9 +82,9 @@ class MainActivity : ComponentActivity() {
 
     @Composable
     fun TimerScreen(onToDoListClick: () -> Unit) {
-        var timeLeftInMillis by remember { mutableLongStateOf(25 * 60 * 1000L) }
+        var timeLeftInMillis by remember { mutableStateOf(25 * 60 * 1000L) }
         var timerRunning by remember { mutableStateOf(false) }
-        var customMinutes by remember { mutableIntStateOf(0) }
+        var customMinutes by remember { mutableStateOf(0) }
         val timeFormatted = remember(timeLeftInMillis) {
             val minutes = (timeLeftInMillis / 1000) / 60
             val seconds = (timeLeftInMillis / 1000) % 60
@@ -147,134 +147,138 @@ class MainActivity : ComponentActivity() {
                 showDialog = false
             }
         }
-        // Holen des Motivationsspruchs aus der neuen Datei
-        val motivationalQuote = remember { MotivationalQuotes.getRandomQuote() }
 
+        val motivationalQuote = remember { MotivationalQuotes.getRandomQuote() }
 
-        Column(
-            modifier = Modifier.fillMaxSize(),
-            horizontalAlignment = Alignment.CenterHorizontally,
-            verticalArrangement = Arrangement.Center
+        Box(
+            modifier = Modifier.fillMaxSize()
         ) {
+            Column(
+                modifier = Modifier
+                    .fillMaxSize()
+                    .padding(bottom = 80.dp), // Padding für den Floating Action Button
+                horizontalAlignment = Alignment.CenterHorizontally,
+                verticalArrangement = Arrangement.Center
+            ) {
+                Text(
+                    text = motivationalQuote,
+                    style = MaterialTheme.typography.titleLarge,
+                    color = Color.Gray,
+                    modifier = Modifier.padding(16.dp)
+                )
 
-            // Motivational Quote
-            Text(
-                text = motivationalQuote,
-                style = MaterialTheme.typography.titleLarge,
-                color = Color.Gray,
-                modifier = Modifier.padding(16.dp)
-            )
+                TimerDisplay(time = timeFormatted)
+                Spacer(modifier = Modifier.height(20.dp))
+                Row {
+                    Button(
+                        onClick = {
+                            if (ActivityCompat.checkSelfPermission(
+                                    this@MainActivity,
+                                    postNotificationsPermission
+                                ) == PackageManager.PERMISSION_GRANTED
+                            ) {
+                                startTimer()
+                            } else {
+                                ActivityCompat.requestPermissions(
+                                    this@MainActivity,
+                                    arrayOf(postNotificationsPermission),
+                                    PERMISSION_REQUEST_CODE
+                                )
+                            }
+                        },
+                        colors = ButtonDefaults.buttonColors(
+                            containerColor = Color(0xFF00AA07),
+                            contentColor = Color.White
+                        ),
+                        enabled = !timerRunning
+                    ) {
+                        Text(text = "Start")
+                    }
+                    Spacer(modifier = Modifier.width(8.dp))
+                    Button(
+                        onClick = { stopTimer() },
+                        colors = ButtonDefaults.buttonColors(
+                            containerColor = Color(0xFFD32F2F),
+                            contentColor = Color.White
+                        ),
+                        enabled = timerRunning
+                    ) {
+                        Text(text = "Pause")
+                    }
+                    Spacer(modifier = Modifier.width(8.dp))
+                    Button(onClick = { resetTimer() }) {
+                        Text(text = "Reset")
+                    }
+                }
 
+                Spacer(modifier = Modifier.height(20.dp))
+                Row {
+                    Button(
+                        onClick = { setTimer(5) },
+                        colors = ButtonDefaults.buttonColors(
+                            containerColor = Color(0xFF6650a4),
+                            contentColor = Color.White
+                        )
+                    ) {
+                        Text(text = "5 min")
+                    }
 
-            TimerDisplay(time = timeFormatted)
-            Spacer(modifier = Modifier.height(20.dp))
-            Row {
-                Button(
-                    onClick = {
-                        if (ActivityCompat.checkSelfPermission(
-                                this@MainActivity,
-                                postNotificationsPermission
-                            ) == PackageManager.PERMISSION_GRANTED
-                        ) {
-                            startTimer()
-                        } else {
-                            ActivityCompat.requestPermissions(
-                                this@MainActivity,
-                                arrayOf(postNotificationsPermission),
-                                PERMISSION_REQUEST_CODE
-                            )
-                        }
-                    },
-                    colors = ButtonDefaults.buttonColors(
-                        containerColor = Color(0xFF00AA07),
-                        contentColor = Color.White
-                    ),
-                    enabled = !timerRunning
-                ) {
-                    Text(text = "Start")
-                }
-                Spacer(modifier = Modifier.width(8.dp))
-                Button(
-                    onClick = { stopTimer() },
-                    colors = ButtonDefaults.buttonColors(
-                        containerColor = Color(0xFFD32F2F),
-                        contentColor = Color.White
-                    ),
-                    enabled = timerRunning
-                ) {
-                    Text(text = "Pause")
-                }
-                Spacer(modifier = Modifier.width(8.dp))
-                Button(onClick = { resetTimer() }) {
-                    Text(text = "Reset")
-                }
-            }
+                    Spacer(modifier = Modifier.width(8.dp))
+                    Button(
+                        onClick = { setTimer(15) },
+                        colors = ButtonDefaults.buttonColors(
+                            containerColor = Color(0xFF6650a4),
+                            contentColor = Color.White
+                        )
+                    ) {
+                        Text(text = "15 min")
+                    }
 
-            Spacer(modifier = Modifier.height(20.dp))
-            Row {
-                Button(
-                    onClick = { setTimer(5) },
-                    colors = ButtonDefaults.buttonColors(
-                        containerColor = Color(0xFF6650a4),
-                        contentColor = Color.White
-                    )
-                ) {
-                    Text(text = "5 min")
+                    Spacer(modifier = Modifier.width(8.dp))
+                    Button(
+                        onClick = { setTimer(25) },
+                        colors = ButtonDefaults.buttonColors(
+                            containerColor = Color(0xFF6650a4),
+                            contentColor = Color.White
+                        )
+                    ) {
+                        Text(text = "25 min")
+                    }
                 }
 
-                Spacer(modifier = Modifier.width(8.dp))
-                Button(
-                    onClick = { setTimer(15) },
+                Spacer(modifier = Modifier.height(20.dp))
+
+                Spacer(modifier = Modifier.height(8.dp))
+                Button(onClick = { showDialog = true },
                     colors = ButtonDefaults.buttonColors(
-                        containerColor = Color(0xFF6650a4),
+                        containerColor = Color.Magenta,
                         contentColor = Color.White
                     )
                 ) {
-                    Text(text = "15 min")
+                    Text(text = "Set Custom Timer")
                 }
 
-                Spacer(modifier = Modifier.width(8.dp))
-                Button(
-                    onClick = { setTimer(25) },
-                    colors = ButtonDefaults.buttonColors(
-                        containerColor = Color(0xFF6650a4),
-                        contentColor = Color.White
+                if (showDialog) {
+                    CustomTimerDialog(
+                        inputMinutes = inputMinutes,
+                        onMinutesChange = { inputMinutes = it },
+                        onConfirm = { setCustomTimer() },
+                        onDismiss = { showDialog = false }
                     )
-                ) {
-                    Text(text = "25 min")
                 }
             }
 
-            Spacer(modifier = Modifier.height(20.dp))
-
-            Spacer(modifier = Modifier.height(8.dp))
-            Button(onClick = { showDialog = true },
-                colors = ButtonDefaults.buttonColors(
-                    containerColor = Color.Blue, // Hintergrundfarbe des Buttons
-                    contentColor = Color.White // Textfarbe des Buttons
-                )
+            FloatingActionButton(
+                onClick = onToDoListClick,
+                modifier = Modifier
+                    .align(Alignment.BottomEnd)
+                    .padding(16.dp)
             ) {
-                Text(text = "Set Custom Timer")
-            }
-
-            if (showDialog) {
-                CustomTimerDialog(
-                    inputMinutes = inputMinutes,
-                    onMinutesChange = { inputMinutes = it },
-                    onConfirm = { setCustomTimer() },
-                    onDismiss = { showDialog = false }
+                Icon(
+                    imageVector = Icons.Filled.List,
+                    contentDescription = "To-Do List"
                 )
             }
-
-            Spacer(modifier = Modifier.height(20.dp))
-            Button(onClick = onToDoListClick,
-                colors = ButtonDefaults.buttonColors(
-                    containerColor = Color.Green, // Hintergrundfar
-                    contentColor = Color.Black // Textfarbe
-                )
-            ) {
-                Text(text = "Go to To-Do List")
-            }
         }
     }
 
@@ -322,3 +326,4 @@ class MainActivity : ComponentActivity() {
         )
     }
 }
+
-- 
GitLab