Skip to content

Commit ad09eab

Browse files
committed
[feat] #62 Select Image in Gallery
1 parent 1468f8c commit ad09eab

File tree

4 files changed

+49
-37
lines changed

4 files changed

+49
-37
lines changed

core/designsystem/src/main/java/com/record/designsystem/component/navbar/TopNavigationBar.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import androidx.compose.ui.tooling.preview.Preview
1616
import androidx.compose.ui.unit.dp
1717
import com.record.designsystem.theme.Background
1818
import com.record.designsystem.theme.RecordyTheme
19+
import com.record.designsystem.theme.White
1920

2021
@Composable
2122
fun TopNavigationBar(
@@ -41,7 +42,7 @@ fun TopNavigationBar(
4142
Text(
4243
modifier = Modifier.align(Alignment.Center),
4344
text = title,
44-
color = Color.White,
45+
color = White,
4546
style = RecordyTheme.typography.title3,
4647
)
4748
}
@@ -54,7 +55,7 @@ fun RecordyTopNavigationBarPreview() {
5455
RecordyTheme {
5556
Column(
5657
modifier = Modifier
57-
.background(Color.White)
58+
.background(Background)
5859
.padding(vertical = 10.dp, horizontal = 10.dp),
5960
verticalArrangement = Arrangement.spacedBy(10.dp),
6061
) {

feature/upload/src/main/java/com/record/upload/UploadScreen.kt

-31
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.record.upload
2+
3+
import android.net.Uri
4+
import androidx.activity.compose.rememberLauncherForActivityResult
5+
import androidx.activity.result.PickVisualMediaRequest
6+
import androidx.activity.result.contract.ActivityResultContracts
7+
import androidx.compose.foundation.background
8+
import androidx.compose.foundation.layout.Column
9+
import androidx.compose.foundation.layout.PaddingValues
10+
import androidx.compose.foundation.layout.padding
11+
import androidx.compose.foundation.layout.size
12+
import androidx.compose.runtime.Composable
13+
import androidx.compose.runtime.LaunchedEffect
14+
import androidx.compose.runtime.getValue
15+
import androidx.compose.runtime.mutableStateOf
16+
import androidx.compose.runtime.remember
17+
import androidx.compose.runtime.setValue
18+
import androidx.compose.ui.Modifier
19+
import androidx.compose.ui.graphics.Color
20+
import androidx.compose.ui.platform.LocalContext
21+
import androidx.compose.ui.unit.dp
22+
import coil.compose.AsyncImage
23+
import com.record.designsystem.component.navbar.TopNavigationBar
24+
import com.record.ui.lifecycle.LaunchedEffectWithLifecycle
25+
26+
@Composable
27+
fun VideoPickerScreen() {
28+
var uri by remember { mutableStateOf<Uri?>(null) }
29+
val imagePicker = rememberLauncherForActivityResult(
30+
contract = ActivityResultContracts.PickVisualMedia(),
31+
onResult = { uri = it }
32+
)
33+
LaunchedEffect(Unit) {
34+
imagePicker.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.VideoOnly))
35+
}
36+
37+
Column(
38+
modifier = Modifier
39+
.background(Color.Transparent)
40+
) {
41+
TopNavigationBar(title = "영상 선택", enableGradation = true)
42+
AsyncImage(model = uri, contentDescription = null, modifier = Modifier.size(50.dp))
43+
}
44+
}

feature/upload/src/main/java/com/record/upload/navigation/UploadNavigation.kt

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import androidx.navigation.NavController
66
import androidx.navigation.NavGraphBuilder
77
import androidx.navigation.NavOptions
88
import androidx.navigation.compose.composable
9-
import com.record.upload.UploadRoute
9+
import com.record.upload.VideoPickerScreen
1010

1111
fun NavController.navigateUpload(navOptions: NavOptions) {
1212
navigate(UploadRoute.route, navOptions)
@@ -17,9 +17,7 @@ fun NavGraphBuilder.uploadNavGraph(
1717
modifier: Modifier = Modifier,
1818
) {
1919
composable(route = UploadRoute.route) {
20-
UploadRoute(
21-
padding = padding,
22-
modifier = modifier,
20+
VideoPickerScreen(
2321
)
2422
}
2523
}

0 commit comments

Comments
 (0)