@@ -6,7 +6,6 @@ import android.content.Intent
6
6
import android.net.Uri
7
7
import android.os.Build
8
8
import android.provider.Settings
9
- import android.util.Log
10
9
import androidx.activity.compose.rememberLauncherForActivityResult
11
10
import androidx.activity.result.contract.ActivityResultContracts
12
11
import androidx.annotation.RequiresApi
@@ -23,7 +22,9 @@ import androidx.compose.foundation.layout.padding
23
22
import androidx.compose.foundation.rememberScrollState
24
23
import androidx.compose.foundation.shape.RoundedCornerShape
25
24
import androidx.compose.foundation.verticalScroll
25
+ import androidx.compose.material3.ExperimentalMaterial3Api
26
26
import androidx.compose.material3.Text
27
+ import androidx.compose.material3.rememberModalBottomSheetState
27
28
import androidx.compose.runtime.Composable
28
29
import androidx.compose.runtime.getValue
29
30
import androidx.compose.runtime.mutableStateOf
@@ -52,12 +53,12 @@ import com.record.designsystem.theme.Background
52
53
import com.record.designsystem.theme.RecordyTheme
53
54
import com.record.ui.extension.customClickable
54
55
import com.record.ui.lifecycle.LaunchedEffectWithLifecycle
56
+ import com.record.upload.component.bottomsheet.SelectedVideoBottomSheet
55
57
import kotlinx.coroutines.flow.collectLatest
56
58
import kotlinx.coroutines.launch
57
59
import timber.log.Timber
58
60
59
61
@RequiresApi(Build .VERSION_CODES .TIRAMISU )
60
- @OptIn(ExperimentalPermissionsApi ::class )
61
62
@Composable
62
63
fun VideoPickerRoute (
63
64
paddingValues : PaddingValues ,
@@ -72,26 +73,28 @@ fun VideoPickerRoute(
72
73
73
74
VideoPickerScreen (
74
75
state = state,
75
- navigateSelectedVideo = navigateSelectedVideo,
76
76
onClickKeyword = {},
77
77
showShouldShowRationaleDialog = viewModel::showShouldShowRationaleDialog,
78
78
hideShouldShowRationaleDialog = viewModel::hideShouldShowRationaleDialog,
79
+ showIsSelectedVideoSheetOpen = viewModel::showIsSelectedVideoSheetOpen,
80
+ hideIsSelectedVideoSheetOpen = viewModel::hideIsSelectedVideoSheetOpen,
79
81
)
80
82
}
81
83
82
84
@RequiresApi(Build .VERSION_CODES .TIRAMISU )
83
- @OptIn(ExperimentalPermissionsApi ::class )
85
+ @OptIn(ExperimentalPermissionsApi ::class , ExperimentalMaterial3Api :: class )
84
86
@Composable
85
87
fun VideoPickerScreen (
86
88
state : UploadState = UploadState (),
87
- navigateSelectedVideo : () -> Unit ,
88
89
onClickKeyword : () -> Unit = {},
89
90
showShouldShowRationaleDialog : () -> Unit = {},
90
91
hideShouldShowRationaleDialog : () -> Unit = {},
92
+ showIsSelectedVideoSheetOpen : () -> Unit = {},
93
+ hideIsSelectedVideoSheetOpen : () -> Unit = {},
91
94
) {
92
95
val context = LocalContext .current
93
96
val cameraPermissionState = rememberPermissionState(Manifest .permission.READ_MEDIA_VIDEO )
94
-
97
+ val exampleVideoList = getAllVideos( 10 , null , context)
95
98
val requestPermissionLauncher = rememberLauncherForActivityResult(
96
99
ActivityResultContracts .RequestPermission (),
97
100
) { isGranted ->
@@ -136,7 +139,7 @@ fun VideoPickerScreen(
136
139
.customClickable(
137
140
onClick = {
138
141
if (cameraPermissionState.status.isGranted) {
139
- navigateSelectedVideo ()
142
+ showIsSelectedVideoSheetOpen ()
140
143
return @customClickable
141
144
}
142
145
if (cameraPermissionState.status.shouldShowRationale) {
@@ -240,6 +243,12 @@ fun VideoPickerScreen(
240
243
},
241
244
)
242
245
}
246
+ SelectedVideoBottomSheet (
247
+ sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true ),
248
+ isSheetOpen = state.isSelectedVideoSheetOpen,
249
+ onDismissRequest = hideIsSelectedVideoSheetOpen,
250
+ galleyVideos = exampleVideoList,
251
+ )
243
252
}
244
253
}
245
254
@@ -248,7 +257,7 @@ fun VideoPickerScreen(
248
257
@Composable
249
258
fun VideoPickerScreenPreview () {
250
259
RecordyTheme {
251
- VideoPickerScreen (navigateSelectedVideo = { /* TODO */ } )
260
+ VideoPickerScreen ()
252
261
}
253
262
}
254
263
@@ -257,4 +266,4 @@ fun openAppSettings(context: Context) {
257
266
data = Uri .fromParts(" package" , context.packageName, null )
258
267
}
259
268
context.startActivity(intent)
260
- }
269
+ }
0 commit comments