Skip to content

Commit 93e3642

Browse files
committed
메인 페이지 compose 적용
1 parent 3682fef commit 93e3642

File tree

5 files changed

+46
-64
lines changed

5 files changed

+46
-64
lines changed

app/src/main/java/com/example/webrtc/MainActivity.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,31 @@ package com.example.webrtc
33
import android.Manifest
44
import android.content.Intent
55
import android.content.pm.PackageManager
6-
import androidx.appcompat.app.AppCompatActivity
76
import android.os.Bundle
87
import android.util.Log
98
import android.widget.Toast
9+
import androidx.activity.compose.setContent
1010
import androidx.activity.viewModels
1111
import androidx.appcompat.app.AlertDialog
12+
import androidx.appcompat.app.AppCompatActivity
1213
import androidx.core.app.ActivityCompat
1314
import androidx.core.content.ContextCompat
1415
import androidx.lifecycle.lifecycleScope
1516
import com.example.domain.state.FireStoreState
17+
import com.example.presentaion.view.MainScreen
1618
import com.example.presentaion.viewmodel.FireStoreViewModel
17-
import com.example.webrtc.databinding.ActivityMainBinding
18-
import com.google.android.material.snackbar.Snackbar
19-
import com.google.firebase.firestore.ktx.firestore
20-
import com.google.firebase.ktx.Firebase
2119
import dagger.hilt.android.AndroidEntryPoint
2220
import kotlinx.coroutines.launch
2321

2422
@AndroidEntryPoint
2523
class MainActivity : AppCompatActivity() {
26-
private lateinit var binding: ActivityMainBinding
2724
private val viewModel: FireStoreViewModel by viewModels()
2825
override fun onCreate(savedInstanceState: Bundle?) {
2926
super.onCreate(savedInstanceState)
30-
binding = ActivityMainBinding.inflate(layoutInflater)
31-
binding.viewModel = viewModel
32-
setContentView(binding.root)
3327
checkCameraAndAudioPermission()
28+
setContent {
29+
MainScreen(viewModel = viewModel)
30+
}
3431
collectState()
3532
}
3633

@@ -50,7 +47,7 @@ class MainActivity : AppCompatActivity() {
5047
}
5148

5249
is FireStoreState.RoomAlreadyEnded -> {
53-
Snackbar.make(binding.root, "이미 사용된 방입니다.", Snackbar.LENGTH_SHORT).show()
50+
Toast.makeText(this@MainActivity,"이미 사용된 방입니다.",Toast.LENGTH_SHORT).show()
5451
}
5552

5653
is FireStoreState.Idle -> {

app/src/main/res/layout/activity_main.xml

Lines changed: 0 additions & 49 deletions
This file was deleted.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<resources xmlns:tools="http://schemas.android.com/tools">
22
<!-- Base application theme. -->
3-
<style name="Theme.WebRTC" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
3+
<style name="Theme.WebRTC" parent="Theme.MaterialComponents.DayNight.NoActionBar">
44
<!-- Primary brand color. -->
55
<item name="colorPrimary">@color/purple_500</item>
66
<item name="colorPrimaryVariant">@color/purple_700</item>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.example.presentaion.view
2+
3+
import androidx.compose.foundation.layout.Column
4+
import androidx.compose.material.Button
5+
import androidx.compose.material.OutlinedTextField
6+
import androidx.compose.material.Text
7+
import androidx.compose.runtime.Composable
8+
import androidx.compose.runtime.State
9+
import androidx.compose.runtime.mutableStateOf
10+
import androidx.compose.runtime.remember
11+
import com.example.presentaion.viewmodel.FireStoreViewModel
12+
13+
@Composable
14+
fun MainScreen(viewModel: FireStoreViewModel) {
15+
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+
}
26+
}
27+
}
28+
29+
@Composable
30+
fun SearchBar(
31+
state: State<String>,
32+
onValueChange: (String) -> Unit
33+
) {
34+
OutlinedTextField(value = state.value, onValueChange = onValueChange)
35+
}

presentaion/src/main/java/com/example/presentaion/viewmodel/FireStoreViewModel.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@ class FireStoreViewModel @Inject constructor(
1717
) : ViewModel() {
1818
private val _state = MutableStateFlow<FireStoreState>(FireStoreState.Idle)
1919
val state = _state.asStateFlow()
20-
val roomId = MutableStateFlow("")
21-
fun getRoomInfo(isJoin: Boolean) = viewModelScope.launch {
22-
getRoomInfoUseCase(roomId.value).collect { snapshot ->
20+
fun getRoomInfo(roomId: String, isJoin: Boolean) = viewModelScope.launch {
21+
getRoomInfoUseCase(roomId).collect { snapshot ->
2322
if (snapshot["type"] == "END_CALL") {
2423
_state.emit(FireStoreState.RoomAlreadyEnded)
2524
} else {
26-
_state.emit(FireStoreState.EnterRoom(roomId.value, isJoin))
25+
_state.emit(FireStoreState.EnterRoom(roomId, isJoin))
2726
}
2827
}
2928
}

0 commit comments

Comments
 (0)