Skip to content

Commit dff2b66

Browse files
committed
Simplify sample.
1 parent 891c7d8 commit dff2b66

File tree

4 files changed

+35
-41
lines changed

4 files changed

+35
-41
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
package dev.pinkroom.peanuts
22

33
import android.os.Bundle
4-
import android.util.Log
54
import androidx.activity.ComponentActivity
65
import androidx.activity.compose.setContent
76
import androidx.compose.foundation.layout.*
87
import androidx.compose.material.*
98
import androidx.compose.runtime.Composable
10-
import androidx.compose.runtime.LaunchedEffect
119
import androidx.compose.runtime.getValue
12-
import androidx.compose.runtime.remember
1310
import androidx.compose.ui.Alignment
1411
import androidx.compose.ui.Modifier
1512
import androidx.compose.ui.unit.dp
@@ -39,41 +36,36 @@ class MainActivity : ComponentActivity() {
3936
@Composable
4037
private fun HelloWorld(viewModel: MainViewModel = viewModel()) {
4138
val state by viewModel.state.collectAsStateWithLifecycle()
42-
Row(
43-
modifier = Modifier.padding(top = 24.dp),
44-
horizontalArrangement = Arrangement.Center,
45-
) {
46-
if (state.showHelloWorld) Text(text = "Hello World!")
47-
}
48-
Column(
49-
modifier = Modifier.fillMaxSize(),
50-
verticalArrangement = Arrangement.Center,
51-
horizontalAlignment = Alignment.CenterHorizontally,
52-
) {
53-
Button(onClick = viewModel::onShowButtonClicked) {
54-
Text(text = "Show")
55-
}
56-
Button(onClick = viewModel::onHideButtonClicked) {
57-
Text(text = "Hide")
39+
if (state.isLoading) {
40+
LoadingView()
41+
} else {
42+
Row(
43+
modifier = Modifier.padding(top = 24.dp),
44+
horizontalArrangement = Arrangement.Center,
45+
) {
46+
if (state.showHelloWorld) Text(text = "Hello World!")
5847
}
59-
Button(onClick = viewModel::onShowMessageClicked) {
60-
Text(text = "Show Message")
48+
Column(
49+
modifier = Modifier.fillMaxSize(),
50+
verticalArrangement = Arrangement.Center,
51+
horizontalAlignment = Alignment.CenterHorizontally,
52+
) {
53+
Button(onClick = viewModel::onShowButtonClicked) {
54+
Text(text = "Show")
55+
}
56+
Button(onClick = viewModel::onHideButtonClicked) {
57+
Text(text = "Hide")
58+
}
59+
Button(onClick = viewModel::onLoadingClicked) {
60+
Text(text = "Loading")
61+
}
6162
}
6263
}
63-
SnackBar(message = state.message)
6464
}
6565

6666
@Composable
67-
private fun SnackBar(message: Message?) {
68-
Log.i("CENAS", "CENAS: $message")
69-
val snackbarHostState = remember { SnackbarHostState() }
70-
LaunchedEffect(message) {
71-
message?.let { snackbarHostState.showSnackbar(it.text) }
72-
}
73-
Box(modifier = Modifier.fillMaxSize()) {
74-
SnackbarHost(
75-
hostState = snackbarHostState,
76-
modifier = Modifier.align(Alignment.BottomCenter),
77-
)
78-
}
79-
}
67+
private fun LoadingView() = Column(
68+
modifier = Modifier.fillMaxSize(),
69+
verticalArrangement = Arrangement.Center,
70+
horizontalAlignment = Alignment.CenterHorizontally
71+
) { CircularProgressIndicator() }

sample/src/main/java/dev/pinkroom/peanuts/MainState.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ package dev.pinkroom.peanuts
22

33
@PeanutState
44
data class MainState(
5+
val isLoading: Boolean = false,
56
val showHelloWorld: Boolean = false,
6-
val message: Message? = null,
77
)

sample/src/main/java/dev/pinkroom/peanuts/MainViewModel.kt

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package dev.pinkroom.peanuts
22

33
import androidx.lifecycle.ViewModel
4+
import androidx.lifecycle.viewModelScope
5+
import kotlinx.coroutines.delay
46
import kotlinx.coroutines.flow.MutableStateFlow
57
import kotlinx.coroutines.flow.asStateFlow
8+
import kotlinx.coroutines.launch
69

710
class MainViewModel : ViewModel() {
811

@@ -17,7 +20,9 @@ class MainViewModel : ViewModel() {
1720
_state.update(showHelloWorld = false)
1821
}
1922

20-
fun onShowMessageClicked() {
21-
_state.update(message = Message("Hello!"))
23+
fun onLoadingClicked() = viewModelScope.launch {
24+
_state.update(isLoading = true)
25+
delay(1000)
26+
_state.update(isLoading = false)
2227
}
2328
}

sample/src/main/java/dev/pinkroom/peanuts/Message.kt

-3
This file was deleted.

0 commit comments

Comments
 (0)