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