FLMNORHRXYOOVN35YRKVU2PUTKIBA2MNP7YJRSZ5C7CXVBTU3NTQC if (!showResult) {val buttonMod = modifier.padding(2.dp).height(25.dp).width(35.dp)val scrollState = rememberScrollState()
when (page) {CURRENT_PAGE.ENTRY -> {val buttonMod = modifier.padding(2.dp).height(25.dp).width(35.dp)val scrollState = rememberScrollState()// Auto-scroll to the end whenever the formula changesLaunchedEffect(formula) {scrollState.scrollTo(scrollState.maxValue)}
if (formula.last().isDigit()) {return true
Row(modifier = modifier.fillMaxWidth().background(MaterialTheme.colors.background).padding(top = 24.dp),verticalAlignment = Alignment.CenterVertically) {Box(modifier = Modifier.fillMaxWidth(0.7f).horizontalScroll(scrollState) // allow horizontal growth.clipToBounds(), // clip overflowcontentAlignment = Alignment.CenterEnd,) {Text(text = formula,color = Color.White,fontSize = 30.sp,maxLines = 1,softWrap = false,overflow = TextOverflow.Clip)}Icon(imageVector = Icons.Default.ArrowBack,contentDescription = "delete input",modifier = Modifier.padding(start = 8.dp).clickable {if (!formula.isEmpty()) {formula = formula.substring(0, formula.length - 1)}})}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {Button(onClick = { formula += "7" }, modifier = buttonMod) { Text("7") }Button(onClick = { formula += "8" }, modifier = buttonMod) { Text("8") }Button(onClick = { formula += "9" }, modifier = buttonMod) { Text("9") }Button(onClick = { formula += "+" },modifier = buttonMod,enabled = fullExpression()) { Text("+") }}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {Button(onClick = { formula += "4" }, modifier = buttonMod) { Text("4") }Button(onClick = { formula += "5" }, modifier = buttonMod) { Text("5") }Button(onClick = { formula += "6" }, modifier = buttonMod) { Text("6") }Button(onClick = { formula += "-" },modifier = buttonMod,enabled = fullExpression()) { Text("-") }}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {Button(onClick = { formula += "1" }, modifier = buttonMod) { Text("1") }Button(onClick = { formula += "2" }, modifier = buttonMod) { Text("2") }Button(onClick = { formula += "3" }, modifier = buttonMod) { Text("3") }Button(onClick = { formula += "×" },modifier = buttonMod,enabled = fullExpression()) { Text("×") }}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {var timeout by remember { mutableStateOf<Job?>(null) }Button(onClick = { page = CURRENT_PAGE.DELETE_INPUT_CONFIRMATION },modifier = buttonMod,enabled = !formula.isEmpty()) { Text("C") }Button(onClick = { formula += "0" }, modifier = buttonMod) { Text("0") }Button(onClick = { page = CURRENT_PAGE.RESULT },modifier = buttonMod,enabled = fullExpression()) { Text("=") }Button(onClick = { formula += "÷" },modifier = buttonMod,enabled = fullExpression()) { Text("÷") }
return false
CURRENT_PAGE.DELETE_INPUT_CONFIRMATION -> {var deleted by remember { mutableStateOf(false) }if (!deleted) {Alert(title = { Text("Clear input?") },negativeButton = {Button(onClick = {page = CURRENT_PAGE.ENTRY}) { Icon(Icons.Default.Close, "don't clear") }},positiveButton = {Button(onClick = {formula = ""deleted = true}) { Icon(Icons.Default.Check, "clear input") }},content = {})} else {Confirmation(onTimeout = {deleted = falsepage = CURRENT_PAGE.ENTRY},icon = { Icon(Icons.Default.Check, "success") },durationMillis = 500L,content = { Text("input has been cleared") },//backgroundColor = TODO(),//contentColor = TODO(),//iconColor = TODO(),//verticalArrangement = TODO(),//contentPadding = TODO(),//content = TODO())}
Row(modifier = modifier.fillMaxWidth().background(MaterialTheme.colors.background).padding(top = 24.dp),verticalAlignment = Alignment.CenterVertically) {Box(
CURRENT_PAGE.RESULT -> {Column(verticalArrangement = Arrangement.Center,
.fillMaxWidth(0.7f).horizontalScroll(scrollState) // allow horizontal growth.clipToBounds(), // clip overflowcontentAlignment = Alignment.CenterEnd,
.fillMaxSize().clickable(enabled = true,onClickLabel = "Back to the calculator",onClick = {formula = ""page = CURRENT_PAGE.ENTRY}),
text = formula,color = Color.White,fontSize = 30.sp,maxLines = 1,softWrap = false,overflow = TextOverflow.Clip
FormulaSolver(formula).Solve(),color = MaterialTheme.colors.primary,textAlign = TextAlign.Center,fontSize = 40.sp,modifier = Modifier.fillMaxWidth(),
Icon(imageVector = Icons.Default.ArrowBack,contentDescription = "delete input",modifier = Modifier.padding(start = 8.dp).clickable { if (!formula.isEmpty()) { formula=formula.substring(0,formula.length-1) } })
Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {Button(onClick = { formula += "7" }, modifier = buttonMod) { Text("7") }Button(onClick = { formula += "8" }, modifier = buttonMod) { Text("8") }Button(onClick = { formula += "9" }, modifier = buttonMod) { Text("9") }Button(onClick = { formula += "+" }, modifier = buttonMod, enabled = fullExpression()) { Text("+") }}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {Button(onClick = { formula += "4" }, modifier = buttonMod) { Text("4") }Button(onClick = { formula += "5" }, modifier = buttonMod) { Text("5") }Button(onClick = { formula += "6" }, modifier = buttonMod) { Text("6") }Button(onClick = { formula += "-" }, modifier = buttonMod, enabled = fullExpression()) { Text("-") }}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {Button(onClick = { formula += "1" }, modifier = buttonMod) { Text("1") }Button(onClick = { formula += "2" }, modifier = buttonMod) { Text("2") }Button(onClick = { formula += "3" }, modifier = buttonMod) { Text("3") }Button(onClick = { formula += "×" }, modifier = buttonMod, enabled = fullExpression()) { Text("×") }}Row(modifier = modifier.background(MaterialTheme.colors.background).align(Alignment.CenterHorizontally),) {var timeout by remember { mutableStateOf<Job?>(null) }Button(onClick = { formula = "" }, modifier = buttonMod, enabled = !formula.isEmpty()) { Text("C") }Button(onClick = { formula += "0" }, modifier = buttonMod) { Text("0") }Button(onClick = { showResult = true }, modifier = buttonMod, enabled = fullExpression()) { Text("=") }Button(onClick = { formula += "÷" }, modifier = buttonMod, enabled = fullExpression()) { Text("÷") }}} else {Column(verticalArrangement = Arrangement.Center,modifier = Modifier.fillMaxSize().clickable(enabled = true,onClickLabel = "Back to the calculator",onClick = {formula = ""showResult = false}),) {Text(FormulaSolver(formula).Solve(),color = MaterialTheme.colors.primary,textAlign = TextAlign.Center,fontSize = 40.sp,modifier = Modifier.fillMaxWidth(),)}