class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
CountupTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
val activity = LocalContext.current as? Activity
val sharedPref = remember { activity?.getPreferences(Context.MODE_PRIVATE) }
var count by remember {
val countValue = sharedPref?.getInt("counter", 0) ?: 0
mutableStateOf(countValue)
}
Box(
modifier = Modifier.fillMaxSize()
) {
Column(
modifier = Modifier.align(Alignment.Center),
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(
onClick = { count++ },
modifier = Modifier
.size(200.dp, 200.dp)
.padding(40.dp),
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xffcc99ff),
contentColor = Color.White
)
) {
Text(
text = "${count}",
color = Color.White,
fontWeight = FontWeight.Bold,
fontSize = 50.sp
)
}
MyButton(text = "zero") {
count = 0
sharedPref?.edit {
putInt("counter", count)
apply()
}
}
MyButton(text = "decrease") {
count--
sharedPref?.edit {
putInt("counter", count)
apply()
}
}
MyButton(text = "double") {
count += 2
sharedPref?.edit {
putInt("counter", count)
apply()
}
}
MyButton(text = "half") {
count /= 2
sharedPref?.edit {
putInt("counter", count)
apply()
}
}
}
}
}
}
}
}
}
@Composable
fun MyButton(text: String, onClick: () -> Unit) {
Button(
onClick = onClick,
modifier = Modifier
.size(200.dp, 80.dp)
.padding(10.dp),
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xff75bbcf),
contentColor = Color.White
)
)
{
Text(
text = "$text",
color = Color.White,
fontWeight = FontWeight.Bold,
fontSize = 30.sp
)
}
}