TIP CALCULATOR

PHOTO EMBED

Sun Nov 03 2024 14:10:18 GMT+0000 (Coordinated Universal Time)

Saved by @sem

package com.example.tipcalculator

import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.width
import androidx.compose.material3.Button
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
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.tooling.preview.Preview
import androidx.compose.ui.unit.dp

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            TipCal()
        }
    }
}

@Composable
fun TipCal() {
    var billAmount by remember {
        mutableStateOf("")
    }
    var tipPercentage by remember {
        mutableStateOf("")
    }
    var tipAmount by remember {
        mutableStateOf("")
    }
    var totalAmount by remember {
        mutableStateOf("")
    }
    Column(
        modifier = Modifier.fillMaxSize(),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        OutlinedTextField(value = billAmount, onValueChange = {
            billAmount = it
        }, label = {
            Text(text = "Enter bill amount")
        })
        Spacer(modifier = Modifier.height(4.dp))
        OutlinedTextField(value = tipPercentage, onValueChange = {
            tipPercentage  = it
        }, label = {
            Text(text = "Enter tip percentage")
        })
        Spacer(modifier = Modifier.height(4.dp))
        OutlinedTextField(enabled=false,value = tipAmount, onValueChange = {
            tipAmount  = it
        }, label = {
            Text(text = "Tip Amount")
        })
        Spacer(modifier = Modifier.height(4.dp))
        OutlinedTextField(enabled = false, value = totalAmount, onValueChange = {
            tipPercentage  = it
        }, label = {
            Text(text = "Total Amount")
        })
        Spacer(modifier = Modifier.height(4.dp))
        Button(modifier = Modifier.width(270.dp), onClick = {
            Log.i("Bill","Bill amount: ${billAmount}, Tip Percentage: ${tipPercentage}")
            val bill = billAmount.toDoubleOrNull() ?: 0.0
            val percentage = tipPercentage.toDoubleOrNull() ?: 0.0
            val tp = bill * (percentage / 100)
            tipAmount = tp.toString()
            totalAmount = (bill+tp).toString()
        }) {
            Text(text = "Pay Bill")
        }
    }
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
    TipCal()
}
content_copyCOPY