Skip to content

Commit 5004f9f

Browse files
committed
modify base design code [FoKE-Developers#32]
- 일부 누락된 TODO 추가 - 일부 코드 정리 - Shape.kt, TimeUtil.kt 추가 (추후 구현 필요)
1 parent 04beae6 commit 5004f9f

File tree

21 files changed

+127
-124
lines changed

21 files changed

+127
-124
lines changed

app/src/main/AndroidManifest.xml

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3-
<!--TODO IP Camera 연결에 사용하기 위해 인터넷 퍼미션을 추가하였습니다.-->
3+
4+
<!-- To use IP camera for external camera type-->
5+
<!-- TODO: need to check to move this permission to presenter module -->
46
<uses-permission android:name="android.permission.INTERNET" />
7+
58
<application
69
android:name=".MainApplication"
710
android:icon="@mipmap/ic_launcher"
@@ -12,5 +15,4 @@
1215
<!-- android:allowBackup="true"-->
1316
<!-- android:dataExtractionRules="@xml/data_extraction_rules"-->
1417
<!-- android:fullBackupContent="@xml/backup_rules"-->
15-
1618
</manifest>

presenter/src/main/java/com/foke/together/presenter/MainActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import androidx.compose.runtime.Composable
88
import androidx.compose.ui.tooling.preview.Preview
99
import androidx.navigation.compose.rememberNavController
1010
import com.foke.together.presenter.navigation.NavGraph
11-
import com.foke.together.presenter.ui.theme.FourCutTogetherTheme
11+
import com.foke.together.presenter.theme.FourCutTogetherTheme
1212
import dagger.hilt.android.AndroidEntryPoint
1313

1414
@AndroidEntryPoint

presenter/src/main/java/com/foke/together/presenter/frame/FourCutFrame.kt

+6-7
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,14 @@ import androidx.compose.ui.unit.sp
2222
import androidx.constraintlayout.compose.ConstraintLayout
2323
import androidx.constraintlayout.compose.Dimension
2424
import com.foke.together.presenter.R
25-
import com.foke.together.presenter.ui.theme.FourCutTogetherTheme
26-
import com.foke.together.presenter.ui.theme.highContrastDarkColorScheme
27-
import com.foke.together.presenter.ui.theme.mediumContrastLightColorScheme
25+
import com.foke.together.presenter.theme.FourCutTogetherTheme
26+
import com.foke.together.presenter.theme.highContrastDarkColorScheme
27+
import com.foke.together.presenter.theme.mediumContrastLightColorScheme
28+
import com.foke.together.util.TimeUtil
2829

29-
val frameRatio = 0.3333f
3030
@Composable
3131
fun FourCutFrame(
32+
// TODO: Need to refactoring. separate frame design with application theme
3233
designColorScheme: ColorScheme = mediumContrastLightColorScheme,
3334
cameraImageUrlList : List<String>? = null,
3435
) {
@@ -52,7 +53,6 @@ fun FourCutFrame(
5253
width = Dimension.fillToConstraints
5354
height = Dimension.wrapContent
5455
}
55-
5656
) {
5757
items(4){
5858
//TODO: add camera image
@@ -83,7 +83,7 @@ fun FourCutFrame(
8383
tint = designColorScheme.primaryContainer
8484
)
8585
Text(
86-
text = "2024.09.27",
86+
text = TimeUtil.getCurrentTime(),
8787
modifier = Modifier.constrainAs(curTime){
8888
top.linkTo(decorateImage.bottom)
8989
start.linkTo(parent.start)
@@ -93,7 +93,6 @@ fun FourCutFrame(
9393
fontSize = 12.sp
9494
)
9595
}
96-
9796
}
9897

9998
@Preview(showBackground = true)

presenter/src/main/java/com/foke/together/presenter/frame/MakerFaireFrame.kt

+11-8
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,14 @@ package com.foke.together.presenter.frame
22

33
import androidx.compose.foundation.Image
44
import androidx.compose.foundation.background
5-
import androidx.compose.foundation.border
65
import androidx.compose.foundation.layout.Arrangement
76
import androidx.compose.foundation.layout.Box
87
import androidx.compose.foundation.layout.PaddingValues
98
import androidx.compose.foundation.layout.aspectRatio
109
import androidx.compose.foundation.layout.padding
1110
import androidx.compose.foundation.layout.wrapContentSize
1211
import androidx.compose.foundation.lazy.LazyColumn
13-
import androidx.compose.foundation.lazy.grid.GridCells
14-
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
1512
import androidx.compose.foundation.lazy.rememberLazyListState
16-
import androidx.compose.material3.MaterialTheme
1713
import androidx.compose.material3.Text
1814
import androidx.compose.runtime.Composable
1915
import androidx.compose.ui.Modifier
@@ -22,11 +18,11 @@ import androidx.compose.ui.res.painterResource
2218
import androidx.compose.ui.tooling.preview.Preview
2319
import androidx.compose.ui.unit.dp
2420
import androidx.compose.ui.unit.sp
25-
import androidx.constraintlayout.compose.ChainStyle
2621
import androidx.constraintlayout.compose.ConstraintLayout
2722
import androidx.constraintlayout.compose.Dimension
2823
import com.foke.together.presenter.R
29-
import com.foke.together.presenter.ui.theme.FourCutTogetherTheme
24+
import com.foke.together.presenter.theme.FourCutTogetherTheme
25+
import com.foke.together.util.TimeUtil
3026

3127
@Composable
3228
fun MakerFaireFrame(
@@ -41,6 +37,7 @@ fun MakerFaireFrame(
4137
.padding(10.dp)
4238
) {
4339
val (startBarrier, endBarrier, cameraColumn, background, decorateImage, curTime) = createRefs()
40+
4441
LazyColumn(
4542
state = rememberLazyListState(),
4643
verticalArrangement = Arrangement.spacedBy(10.dp),
@@ -56,13 +53,17 @@ fun MakerFaireFrame(
5653
) {
5754
items(4){
5855
if(backgroundColor == Color.White) {
56+
//TODO: add camera image
57+
// change Box -> ImageView
5958
Box(
6059
modifier = Modifier
6160
.aspectRatio(1.5f)
6261
.background(color = Color.Black)
6362
)
6463
}
65-
else{
64+
else {
65+
//TODO: add camera image
66+
// change Box -> ImageView
6667
Box(
6768
modifier = Modifier
6869
.aspectRatio(1.5f)
@@ -71,6 +72,7 @@ fun MakerFaireFrame(
7172
}
7273
}
7374
}
75+
7476
Image(
7577
painter = painterResource(
7678
id = R.drawable.maker_faire_logo
@@ -85,8 +87,9 @@ fun MakerFaireFrame(
8587
width = Dimension.fillToConstraints
8688
}
8789
)
90+
8891
Text(
89-
text = "2024.09.27",
92+
text = TimeUtil.getCurrentTime(),
9093
modifier = Modifier.constrainAs(curTime){
9194
top.linkTo(decorateImage.bottom)
9295
bottom.linkTo(parent.bottom, margin = 15.dp)

presenter/src/main/java/com/foke/together/presenter/navigation/NavGraph.kt

+25-26
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
package com.foke.together.presenter.navigation
2+
23
import androidx.compose.runtime.Composable
34
import androidx.navigation.NavGraphBuilder
45
import androidx.navigation.NavHostController
@@ -18,7 +19,6 @@ import kotlinx.coroutines.flow.flow
1819

1920
@Composable
2021
fun NavGraph(navController: NavHostController) {
21-
2222
NavHost(
2323
navController = navController,
2424
startDestination = NavRoute.Home.path
@@ -32,7 +32,6 @@ fun NavGraph(navController: NavHostController) {
3232
}
3333
}
3434

35-
3635
private fun addHomeScreen(
3736
navController: NavHostController,
3837
navGraphBuilder: NavGraphBuilder
@@ -59,14 +58,14 @@ private fun addHomeScreen(
5958
}
6059
}
6160

62-
private fun addCameraScreen(
61+
private fun addSelectFrameScreen(
6362
navController: NavHostController,
6463
navGraphBuilder: NavGraphBuilder
6564
) {
66-
navGraphBuilder.composable(route = NavRoute.Camera.path) {
67-
CameraScreen(
68-
navigateToShare = {
69-
navController.navigate(NavRoute.Share.path)
65+
navGraphBuilder.composable(route = NavRoute.SelectFrame.path) {
66+
SelectFrameScreen(
67+
navigateToMethod = {
68+
navController.navigate(NavRoute.SelectMethod.path)
7069
},
7170
popBackStack = {
7271
navController.popBackStack(NavRoute.Home.path, inclusive = false)
@@ -75,57 +74,57 @@ private fun addCameraScreen(
7574
}
7675
}
7776

78-
private fun addSettingScreen(
77+
private fun addSelectMethodScreen(
7978
navController: NavHostController,
8079
navGraphBuilder: NavGraphBuilder
8180
) {
82-
navGraphBuilder.composable(route = NavRoute.Setting.path) {
83-
SettingScreen(
81+
navGraphBuilder.composable(route = NavRoute.SelectMethod.path) {
82+
SelectMethodScreen(
83+
navigateToCamera = {
84+
navController.navigate(NavRoute.Camera.path)
85+
},
8486
popBackStack = {
85-
navController.popBackStack(NavRoute.Home.path, inclusive = false)
87+
navController.popBackStack(NavRoute.SelectFrame.path, inclusive = false)
8688
}
8789
)
8890
}
8991
}
9092

91-
private fun addSelectFrameScreen(
93+
private fun addCameraScreen(
9294
navController: NavHostController,
9395
navGraphBuilder: NavGraphBuilder
9496
) {
95-
navGraphBuilder.composable(route = NavRoute.SelectFrame.path) {
96-
SelectFrameScreen(
97-
navigateToMethod = {
98-
navController.navigate(NavRoute.Camera.path)
97+
navGraphBuilder.composable(route = NavRoute.Camera.path) {
98+
CameraScreen(
99+
navigateToShare = {
100+
navController.navigate(NavRoute.Share.path)
99101
},
100102
popBackStack = {
101-
navController.popBackStack(NavRoute.Home.path, inclusive = false)
103+
navController.popBackStack(NavRoute.Home.path, inclusive = false)
102104
}
103105
)
104106
}
105107
}
106108

107-
private fun addSelectMethodScreen(
109+
private fun addShareScreen(
108110
navController: NavHostController,
109111
navGraphBuilder: NavGraphBuilder
110112
) {
111-
navGraphBuilder.composable(route = NavRoute.SelectMethod.path) {
112-
SelectMethodScreen(
113-
navigateToCamera = {
114-
navController.navigate(NavRoute.Camera.path)
115-
},
113+
navGraphBuilder.composable(route = NavRoute.Share.path) {
114+
ShareScreen(
116115
popBackStack = {
117116
navController.popBackStack(NavRoute.Home.path, inclusive = false)
118117
}
119118
)
120119
}
121120
}
122121

123-
private fun addShareScreen(
122+
private fun addSettingScreen(
124123
navController: NavHostController,
125124
navGraphBuilder: NavGraphBuilder
126125
) {
127-
navGraphBuilder.composable(route = NavRoute.Share.path) {
128-
ShareScreen(
126+
navGraphBuilder.composable(route = NavRoute.Setting.path) {
127+
SettingScreen(
129128
popBackStack = {
130129
navController.popBackStack(NavRoute.Home.path, inclusive = false)
131130
}

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

+24-27
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@ package com.foke.together.presenter.screen
33
import androidx.compose.foundation.clickable
44
import androidx.compose.foundation.layout.aspectRatio
55
import androidx.compose.foundation.layout.fillMaxSize
6-
import androidx.compose.foundation.layout.size
7-
import androidx.compose.material.icons.Icons
8-
import androidx.compose.material.icons.automirrored.filled.ArrowBack
9-
import androidx.compose.material3.Icon
10-
import androidx.compose.material3.IconButton
116
import androidx.compose.material3.MaterialTheme
127
import androidx.compose.material3.Surface
138
import androidx.compose.material3.Text
@@ -19,8 +14,7 @@ import androidx.compose.ui.unit.dp
1914
import androidx.compose.ui.unit.sp
2015
import androidx.compose.ui.viewinterop.AndroidView
2116
import androidx.constraintlayout.compose.ConstraintLayout
22-
import androidx.constraintlayout.compose.Dimension
23-
import com.foke.together.presenter.ui.theme.FourCutTogetherTheme
17+
import com.foke.together.presenter.theme.FourCutTogetherTheme
2418
import com.longdo.mjpegviewer.MjpegView
2519

2620
@Composable
@@ -32,24 +26,27 @@ fun CameraScreen(
3226
modifier = Modifier.fillMaxSize()
3327
) {
3428
val (backKey, title, preview, cameraTimer, imageCount, progress) = createRefs()
35-
IconButton(
36-
onClick = { popBackStack() },
37-
modifier = Modifier.constrainAs(backKey) {
38-
top.linkTo(title.top)
39-
bottom.linkTo(title.bottom)
40-
start.linkTo(parent.start, margin = 24.dp)
41-
height = Dimension.wrapContent
42-
width = Dimension.wrapContent
43-
},
44-
) {
45-
//
46-
Icon(
47-
modifier = Modifier.size(32.dp),
48-
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
49-
contentDescription = "backKey",
50-
tint = MaterialTheme.colorScheme.primary
51-
)
52-
}
29+
30+
// TODO: need to check ui guide
31+
// IconButton(
32+
// onClick = { popBackStack() },
33+
// modifier = Modifier.constrainAs(backKey) {
34+
// top.linkTo(title.top)
35+
// bottom.linkTo(title.bottom)
36+
// start.linkTo(parent.start, margin = 24.dp)
37+
// height = Dimension.wrapContent
38+
// width = Dimension.wrapContent
39+
// },
40+
// ) {
41+
// //
42+
// Icon(
43+
// modifier = Modifier.size(32.dp),
44+
// imageVector = Icons.AutoMirrored.Filled.ArrowBack,
45+
// contentDescription = "backKey",
46+
// tint = MaterialTheme.colorScheme.primary
47+
// )
48+
// }
49+
5350
Text(
5451
text = "촬영시 움직이지마세요",
5552
modifier = Modifier.constrainAs(title) {
@@ -107,8 +104,8 @@ private fun DefaultPreview() {
107104
color = MaterialTheme.colorScheme.background
108105
) {
109106
CameraScreen(
110-
navigateToShare = { },
111-
popBackStack = { }
107+
navigateToShare = {},
108+
popBackStack = {}
112109
)
113110
}
114111
}

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
2121
import com.foke.together.domain.input.GetSampleDataInterface
2222
import com.foke.together.domain.input.SampleUiData
2323
import com.foke.together.presenter.R
24-
import com.foke.together.presenter.ui.theme.FourCutTogetherTheme
24+
import com.foke.together.presenter.theme.FourCutTogetherTheme
2525
import com.foke.together.presenter.viewmodel.HomeViewModel
2626
import kotlinx.coroutines.flow.Flow
2727
import kotlinx.coroutines.flow.flow
@@ -102,7 +102,7 @@ fun HomeScreen(
102102
private fun DefaultPreview() {
103103
FourCutTogetherTheme() {
104104
HomeScreen(
105-
navigationSelectFrame = { },
105+
navigationSelectFrame = {},
106106
navigateToSetting = {},
107107
popBackStack = {},
108108
viewModel = HomeViewModel(

0 commit comments

Comments
 (0)