Skip to content

Commit 4e044ab

Browse files
committed
메인페이지 디자인 변경
1 parent 93e3642 commit 4e044ab

File tree

4 files changed

+99
-17
lines changed

4 files changed

+99
-17
lines changed

app/src/main/res/values/themes.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<item name="colorSecondaryVariant">@color/teal_700</item>
1111
<item name="colorOnSecondary">@color/black</item>
1212
<!-- Status bar color. -->
13-
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
13+
<item name="android:statusBarColor">@android:color/transparent</item>
1414
<!-- Customize your theme here. -->
1515
</style>
1616
</resources>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.example.presentaion.ui_component
2+
3+
import androidx.compose.material.OutlinedTextField
4+
import androidx.compose.runtime.Composable
5+
import androidx.compose.runtime.State
6+
import androidx.compose.ui.Modifier
7+
8+
@Composable
9+
fun SearchBar(
10+
modifier: Modifier = Modifier,
11+
state: State<String>,
12+
onValueChange: (String) -> Unit,
13+
label: @Composable (() -> Unit)? = null
14+
) {
15+
OutlinedTextField(
16+
modifier = modifier,
17+
value = state.value,
18+
onValueChange = onValueChange,
19+
label = label
20+
)
21+
}
Lines changed: 77 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,96 @@
11
package com.example.presentaion.view
22

3+
import androidx.compose.foundation.Image
4+
import androidx.compose.foundation.layout.Arrangement
35
import androidx.compose.foundation.layout.Column
6+
import androidx.compose.foundation.layout.Spacer
7+
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.fillMaxWidth
9+
import androidx.compose.foundation.layout.height
10+
import androidx.compose.foundation.layout.padding
11+
import androidx.compose.foundation.layout.size
412
import androidx.compose.material.Button
5-
import androidx.compose.material.OutlinedTextField
13+
import androidx.compose.material.ButtonDefaults
14+
import androidx.compose.material.Icon
615
import androidx.compose.material.Text
16+
import androidx.compose.material.icons.Icons
17+
import androidx.compose.material.icons.filled.Send
718
import androidx.compose.runtime.Composable
8-
import androidx.compose.runtime.State
19+
import androidx.compose.runtime.MutableState
920
import androidx.compose.runtime.mutableStateOf
1021
import androidx.compose.runtime.remember
22+
import androidx.compose.ui.Alignment
23+
import androidx.compose.ui.Modifier
24+
import androidx.compose.ui.graphics.Color
25+
import androidx.compose.ui.res.painterResource
26+
import androidx.compose.ui.tooling.preview.Preview
27+
import androidx.compose.ui.unit.dp
28+
import androidx.compose.ui.unit.sp
29+
import androidx.lifecycle.viewmodel.compose.viewModel
30+
import com.example.presentaion.R
31+
import com.example.presentaion.ui_component.SearchBar
1132
import com.example.presentaion.viewmodel.FireStoreViewModel
1233

1334
@Composable
1435
fun MainScreen(viewModel: FireStoreViewModel) {
1536
val roomId = remember { mutableStateOf("") }
16-
Column() {
17-
SearchBar(roomId) {
18-
roomId.value = it
19-
}
20-
Button(onClick = { viewModel.getRoomInfo(roomId.value, false) }) {
21-
Text(text = "Enter")
22-
}
23-
Button(onClick = { viewModel.getRoomInfo(roomId.value, true) }) {
24-
Text(text = "Join")
25-
}
37+
Column(
38+
modifier = Modifier.fillMaxSize(),
39+
horizontalAlignment = Alignment.CenterHorizontally,
40+
verticalArrangement = Arrangement.Center
41+
) {
42+
LogoImage()
43+
Spacer(modifier = Modifier.padding(vertical = 50.dp))
44+
InputContent(roomId, viewModel)
2645
}
2746
}
2847

2948
@Composable
30-
fun SearchBar(
31-
state: State<String>,
32-
onValueChange: (String) -> Unit
49+
fun LogoImage() {
50+
Image(
51+
modifier = Modifier.size(200.dp),
52+
painter = painterResource(id = R.drawable.webrtc),
53+
contentDescription = "Logo"
54+
)
55+
}
56+
57+
@Composable
58+
private fun InputContent(
59+
roomId: MutableState<String>,
60+
viewModel: FireStoreViewModel
3361
) {
34-
OutlinedTextField(value = state.value, onValueChange = onValueChange)
62+
SearchBar(modifier = Modifier
63+
.fillMaxWidth()
64+
.padding(horizontal = 40.dp),
65+
state = roomId,
66+
onValueChange = { roomId.value = it }) {
67+
Text(text = "Room")
68+
}
69+
Spacer(modifier = Modifier.padding(vertical = 20.dp))
70+
Button(
71+
modifier = Modifier
72+
.fillMaxWidth()
73+
.height(50.dp)
74+
.padding(horizontal = 40.dp),
75+
onClick = { viewModel.getRoomInfo(roomId.value, false) },
76+
colors = ButtonDefaults.buttonColors(backgroundColor = Color.Blue)
77+
) {
78+
Icon(imageVector = Icons.Filled.Send, contentDescription = "", tint = Color.White)
79+
Text(text = "Start", color = Color.White, fontSize = 20.sp)
80+
}
81+
Spacer(modifier = Modifier.padding(vertical = 10.dp))
82+
Button(modifier = Modifier
83+
.fillMaxWidth()
84+
.height(50.dp)
85+
.padding(horizontal = 40.dp),
86+
colors = ButtonDefaults.buttonColors(backgroundColor = Color.Blue),
87+
onClick = { viewModel.getRoomInfo(roomId.value, true) }) {
88+
Text(text = "Join", color = Color.White, fontSize = 20.sp)
89+
}
3590
}
91+
92+
@Preview
93+
@Composable
94+
fun MainScreenPreview() {
95+
MainScreen(viewModel = viewModel())
96+
}
15 KB
Loading

0 commit comments

Comments
 (0)