diff --git a/Code/StopwatchServiceApp/app/src/main/java/com/istudio/app/MainScreen.kt b/Code/StopwatchServiceApp/app/src/main/java/com/istudio/app/MainScreen.kt index c6ea2d0..69ffc29 100644 --- a/Code/StopwatchServiceApp/app/src/main/java/com/istudio/app/MainScreen.kt +++ b/Code/StopwatchServiceApp/app/src/main/java/com/istudio/app/MainScreen.kt @@ -4,22 +4,16 @@ import android.annotation.SuppressLint import androidx.compose.animation.* import androidx.compose.foundation.background import androidx.compose.foundation.layout.* +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import androidx.compose.animation.ExperimentalAnimationApi -import androidx.compose.material3.Button -import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable import com.istudio.app.service.ServiceHelper import com.istudio.app.service.StopwatchService +import com.istudio.app.ui.composables.AppButton import com.istudio.app.ui.composables.AppText import com.istudio.app.util.Constants.ACTION_SERVICE_CANCEL import com.istudio.app.util.Constants.ACTION_SERVICE_START @@ -62,42 +56,39 @@ fun MainScreen(stopwatchService: StopwatchService) { AppText(text = seconds) } Row(modifier = Modifier.weight(weight = 1f)) { - Button( + AppButton( modifier = Modifier .weight(1f) .fillMaxHeight(0.8f), + text = leftButtonTextAction(currentState), onClick = { ServiceHelper.triggerForegroundService( context = context, action = if (currentState == StopwatchState.Started) ACTION_SERVICE_STOP else ACTION_SERVICE_START ) - }, colors = ButtonDefaults.buttonColors( - containerColor = if (currentState == StopwatchState.Started) Color.Red else Color.Blue, - contentColor = Color.White - ) - ) { - Text( - text = if (currentState == StopwatchState.Started) "Stop" - else if ((currentState == StopwatchState.Stopped)) "Resume" - else "Start" - ) - } + }) + Spacer(modifier = Modifier.width(30.dp)) - Button( + + AppButton( modifier = Modifier .weight(1f) .fillMaxHeight(0.8f), + enabled = seconds != "00" && currentState != StopwatchState.Started, + text = "Cancel", onClick = { ServiceHelper.triggerForegroundService( context = context, action = ACTION_SERVICE_CANCEL ) }, - enabled = seconds != "00" && currentState != StopwatchState.Started, - colors = ButtonDefaults.buttonColors(containerColor = Color.Gray) - ) { - Text(text = "Cancel") - } + ) } } -} \ No newline at end of file +} + +@Composable +private fun leftButtonTextAction(currentState: StopwatchState) = + if (currentState == StopwatchState.Started) "Stop" + else if ((currentState == StopwatchState.Stopped)) "Resume" + else "Start" \ No newline at end of file diff --git a/Code/StopwatchServiceApp/app/src/main/java/com/istudio/app/ui/composables/ComposableUtils.kt b/Code/StopwatchServiceApp/app/src/main/java/com/istudio/app/ui/composables/ComposableUtils.kt index 0d6627c..1abdebb 100644 --- a/Code/StopwatchServiceApp/app/src/main/java/com/istudio/app/ui/composables/ComposableUtils.kt +++ b/Code/StopwatchServiceApp/app/src/main/java/com/istudio/app/ui/composables/ComposableUtils.kt @@ -1,11 +1,25 @@ package com.istudio.app.ui.composables +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp @Composable @@ -18,4 +32,24 @@ fun AppText(text : String){ color = Color.White ) ) +} + + + +@Composable +fun AppButton( + modifier: Modifier = Modifier, + text: String, + enabled : Boolean = true, + onClick: () -> Unit +) { + + TextButton( + modifier = modifier, + onClick =onClick, + enabled = enabled + ) { + Text(text = text) + } + } \ No newline at end of file