Skip to content

Commit 5d57ded

Browse files
committed
fix camera screen [#29]
1 parent fa8fcc3 commit 5d57ded

File tree

1 file changed

+37
-32
lines changed

1 file changed

+37
-32
lines changed

presenter/src/main/java/com/foke/together/presenter/screen/CameraScreen.kt

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,21 @@ package com.foke.together.presenter.screen
22

33
import android.graphics.Bitmap
44
import android.graphics.Rect
5-
import androidx.compose.foundation.clickable
5+
import androidx.compose.foundation.layout.Box
66
import androidx.compose.foundation.layout.aspectRatio
77
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.height
9+
import androidx.compose.foundation.layout.padding
810
import androidx.compose.material3.LinearProgressIndicator
911
import androidx.compose.material3.MaterialTheme
1012
import androidx.compose.material3.Surface
1113
import androidx.compose.material3.Text
1214
import androidx.compose.runtime.Composable
13-
import androidx.compose.runtime.collectAsState
14-
import androidx.compose.runtime.getValue
15-
import androidx.compose.runtime.remember
1615
import androidx.compose.ui.Modifier
1716
import androidx.compose.ui.draw.drawWithContent
1817
import androidx.compose.ui.graphics.layer.drawLayer
1918
import androidx.compose.ui.graphics.rememberGraphicsLayer
20-
import androidx.compose.ui.platform.LocalContext
19+
import androidx.compose.ui.res.stringResource
2120
import androidx.compose.ui.text.font.FontWeight
2221
import androidx.compose.ui.tooling.preview.Preview
2322
import androidx.compose.ui.unit.dp
@@ -30,12 +29,12 @@ import com.longdo.mjpegviewer.MjpegView
3029
import androidx.hilt.navigation.compose.hiltViewModel
3130
import androidx.lifecycle.Lifecycle
3231
import androidx.lifecycle.compose.LifecycleEventEffect
32+
import com.foke.together.presenter.R
3333
import com.foke.together.presenter.viewmodel.CameraViewModel
3434
import com.foke.together.util.AppLog
3535
import com.foke.together.util.AppPolicy
3636
import com.longdo.mjpegviewer.MjpegViewError
3737
import com.longdo.mjpegviewer.MjpegViewStateChangeListener
38-
import kotlinx.coroutines.flow.map
3938

4039
@Composable
4140
fun CameraScreen(
@@ -56,26 +55,34 @@ fun CameraScreen(
5655
LinearProgressIndicator(
5756
// TODO: progress State를 Flow로 구현하기
5857
progress = { viewModel.progressState },
59-
modifier = Modifier.constrainAs(progress){
60-
start.linkTo(parent.start, margin = 24.dp)
61-
end.linkTo(parent.end, margin = 24.dp)
62-
bottom.linkTo(title.top)
63-
width = Dimension.fillToConstraints
64-
height = Dimension.wrapContent
65-
},
66-
)
67-
Text(
68-
text = "촬영시 움직이지마세요",
69-
modifier = Modifier.constrainAs(title) {
70-
top.linkTo(parent.top)
71-
start.linkTo(parent.start)
72-
end.linkTo(parent.end)
73-
bottom.linkTo(preview.top)
74-
},
75-
fontWeight = FontWeight.Bold,
76-
fontSize = 24.sp,
58+
modifier = Modifier
59+
.constrainAs(progress) {
60+
start.linkTo(parent.start, margin = 24.dp)
61+
end.linkTo(parent.end, margin = 24.dp)
62+
bottom.linkTo(title.top)
63+
width = Dimension.fillToConstraints
64+
height = Dimension.wrapContent
65+
}
66+
.height(30.dp)
7767
)
7868

69+
Box(
70+
modifier = Modifier
71+
.constrainAs(title) {
72+
top.linkTo(parent.top)
73+
start.linkTo(parent.start)
74+
end.linkTo(parent.end)
75+
bottom.linkTo(preview.top)
76+
}
77+
.padding(top = 30.dp),
78+
) {
79+
Text(
80+
text = stringResource(id = R.string.camera_exclamation_text),
81+
fontWeight = FontWeight.Bold,
82+
fontSize = 24.sp,
83+
)
84+
}
85+
7986
AndroidView(
8087
modifier = Modifier
8188
.constrainAs(preview) {
@@ -101,19 +108,19 @@ fun CameraScreen(
101108
supportPinchZoomAndPan = false
102109
stateChangeListener = object: MjpegViewStateChangeListener {
103110
override fun onStreamDownloadStart() {
104-
AppLog.d(TAG, "onStreamDownloadStart")
111+
AppLog.d(TAG, "MjpegView", "onStreamDownloadStart")
105112
}
106113

107114
override fun onStreamDownloadStop() {
108-
AppLog.d(TAG, "onStreamDownloadStop")
115+
AppLog.d(TAG, "MjpegView", "onStreamDownloadStop")
109116
}
110117

111118
override fun onServerConnected() {
112-
AppLog.d(TAG, "onServerConnected")
119+
AppLog.d(TAG, "MjpegView", "onServerConnected")
113120
}
114121

115122
override fun onMeasurementChanged(rect: Rect?) {
116-
AppLog.d(TAG, "onMeasurementChanged")
123+
AppLog.d(TAG, "MjpegView", "onMeasurementChanged")
117124
}
118125

119126
override fun onNewFrame(image: Bitmap?) {
@@ -127,12 +134,10 @@ fun CameraScreen(
127134
}
128135

129136
override fun onError(error: MjpegViewError?) {
130-
AppLog.d(TAG, "onError, ${error.toString()}")
137+
AppLog.d(TAG, "MjpegView", "onError, ${error?.cause ?: "unknown error"}")
131138
}
132139
}
133-
// test url
134-
// TODO : change url in viewmodel
135-
setUrl("${externalCameraIP}")
140+
setUrl(externalCameraIP)
136141
}
137142
},
138143
){

0 commit comments

Comments
 (0)