1
+ package com.jetbrains.simplelogin.kotlinmultiplatformsandbox
2
+
3
+ import android.os.Bundle
4
+ import androidx.activity.ComponentActivity
5
+ import androidx.activity.compose.setContent
6
+ import androidx.activity.viewModels
7
+ import androidx.compose.foundation.layout.Arrangement
8
+ import androidx.compose.foundation.layout.PaddingValues
9
+ import androidx.compose.foundation.layout.fillMaxSize
10
+ import androidx.compose.foundation.lazy.LazyColumn
11
+ import androidx.compose.foundation.lazy.items
12
+ import androidx.compose.material3.Divider
13
+ import androidx.compose.material3.MaterialTheme
14
+ import androidx.compose.material3.Surface
15
+ import androidx.compose.material3.Text
16
+ import androidx.compose.runtime.Composable
17
+ import androidx.compose.ui.Modifier
18
+ import androidx.compose.ui.tooling.preview.Preview
19
+ import androidx.compose.ui.unit.dp
20
+ import androidx.lifecycle.compose.collectAsStateWithLifecycle
21
+
22
+ class MainActivity : ComponentActivity () {
23
+ private val mainViewModel: MainViewModel by viewModels()
24
+
25
+ override fun onCreate (savedInstanceState : Bundle ? ) {
26
+ super .onCreate(savedInstanceState)
27
+ setContent {
28
+ MyApplicationTheme {
29
+ Surface (
30
+ modifier = Modifier .fillMaxSize(),
31
+ color = MaterialTheme .colorScheme.background
32
+ ) {
33
+ val greetings = mainViewModel.greetingList.collectAsStateWithLifecycle()
34
+ GreetingView (phrases = greetings.value)
35
+ }
36
+ }
37
+ }
38
+ }
39
+ }
40
+
41
+ @Composable
42
+ fun GreetingView (phrases : List <String >) {
43
+ LazyColumn (
44
+ contentPadding = PaddingValues (20 .dp),
45
+ verticalArrangement = Arrangement .spacedBy(8 .dp),
46
+ ) {
47
+ items(phrases) { phrase ->
48
+ Text (phrase)
49
+ Divider ()
50
+ }
51
+ }
52
+ }
53
+
54
+
55
+ @Preview
56
+ @Composable
57
+ fun DefaultPreview () {
58
+ MyApplicationTheme {
59
+ GreetingView (listOf (" Hello, Android!" ))
60
+ }
61
+ }
0 commit comments