@@ -3,6 +3,7 @@ package com.record.upload
3
3
import android.Manifest
4
4
import android.content.Context
5
5
import android.content.Intent
6
+ import android.content.pm.PackageManager
6
7
import android.net.Uri
7
8
import android.os.Build
8
9
import android.provider.Settings
@@ -45,6 +46,7 @@ import androidx.compose.ui.res.painterResource
45
46
import androidx.compose.ui.text.style.TextAlign
46
47
import androidx.compose.ui.tooling.preview.Preview
47
48
import androidx.compose.ui.unit.dp
49
+ import androidx.core.content.ContextCompat
48
50
import androidx.hilt.navigation.compose.hiltViewModel
49
51
import androidx.lifecycle.compose.collectAsStateWithLifecycle
50
52
import coil.ImageLoader
@@ -59,7 +61,6 @@ import com.record.designsystem.component.button.RecordyButton
59
61
import com.record.designsystem.component.button.RecordyChipButton
60
62
import com.record.designsystem.component.dialog.RecordyDialog
61
63
import com.record.designsystem.component.navbar.TopNavigationBar
62
- import com.record.designsystem.component.snackbar.SnackBarType
63
64
import com.record.designsystem.component.textfield.RecordyBasicTextField
64
65
import com.record.designsystem.theme.Background
65
66
import com.record.designsystem.theme.RecordyTheme
@@ -80,7 +81,6 @@ fun VideoPickerRoute(
80
81
viewModel : UploadViewModel = hiltViewModel(),
81
82
popBackStack : () -> Unit ,
82
83
) {
83
-
84
84
val state by viewModel.uiState.collectAsStateWithLifecycle()
85
85
val context = LocalContext .current
86
86
val coroutineScope = rememberCoroutineScope()
@@ -118,7 +118,7 @@ fun VideoPickerRoute(
118
118
uploadVideoS3Bucket = {
119
119
viewModel.uploadVideoToS3Bucket(context, it)
120
120
},
121
- onClickBackStack = viewModel::popBackStack
121
+ onClickBackStack = viewModel::popBackStack,
122
122
)
123
123
}
124
124
@@ -145,7 +145,7 @@ fun VideoPickerScreen(
145
145
) {
146
146
val context = LocalContext .current
147
147
val cameraPermissionState = rememberPermissionState(
148
- if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU )Manifest .permission.READ_MEDIA_VIDEO else Manifest .permission.READ_EXTERNAL_STORAGE ,
148
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) Manifest .permission.READ_MEDIA_VIDEO else Manifest .permission.READ_EXTERNAL_STORAGE ,
149
149
)
150
150
val exampleVideoList = getAllVideos(10 , null , context)
151
151
val requestPermissionLauncher = rememberLauncherForActivityResult(
@@ -157,6 +157,14 @@ fun VideoPickerScreen(
157
157
Timber .d(" Handle permission denial" )
158
158
}
159
159
}
160
+ val permissionState = remember {
161
+ mutableStateOf(
162
+ ContextCompat .checkSelfPermission(
163
+ context,
164
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) Manifest .permission.READ_MEDIA_VIDEO else Manifest .permission.READ_EXTERNAL_STORAGE ,
165
+ ) == PackageManager .PERMISSION_GRANTED ,
166
+ )
167
+ }
160
168
var normalValue by remember {
161
169
mutableStateOf(" " )
162
170
}
@@ -207,7 +215,6 @@ fun VideoPickerScreen(
207
215
.background(RecordyTheme .colors.gray08, shape = RoundedCornerShape (16 .dp))
208
216
.customClickable(
209
217
onClick = {
210
- // showIsSelectedVideoSheetOpen()
211
218
if (cameraPermissionState.status.isGranted) {
212
219
showIsSelectedVideoSheetOpen()
213
220
return @customClickable
@@ -217,7 +224,11 @@ fun VideoPickerScreen(
217
224
return @customClickable
218
225
}
219
226
scope.launch {
220
- requestPermissionLauncher.launch(Manifest .permission.READ_MEDIA_VIDEO )
227
+ if (! permissionState.value) {
228
+ requestPermissionLauncher.launch(
229
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) Manifest .permission.READ_MEDIA_VIDEO else Manifest .permission.READ_EXTERNAL_STORAGE ,
230
+ )
231
+ }
221
232
}
222
233
},
223
234
),
@@ -367,7 +378,7 @@ fun VideoPickerScreen(
367
378
negativeButtonLabel = " 취소" ,
368
379
positiveButtonLabel = " 나가기" ,
369
380
onDismissRequest = hideExitUploadDialog,
370
- onPositiveButtonClick = onClickBackStack
381
+ onPositiveButtonClick = onClickBackStack,
371
382
)
372
383
}
373
384
SelectedVideoBottomSheet (
0 commit comments