Skip to content

Commit 275e45b

Browse files
authored
READ_MEDIA_IMAGES 권한 삭제 (#153)
1 parent 2af5cf6 commit 275e45b

File tree

2 files changed

+30
-8
lines changed

2 files changed

+30
-8
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
<uses-permission
1414
android:name="android.permission.READ_EXTERNAL_STORAGE"
1515
android:maxSdkVersion="32" />
16-
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
1716

1817
<queries>
1918
<package android:name="com.google.android.apps.maps" />

app/src/main/java/com/wafflestudio/siksha2/ui/menuDetail/LeaveReviewFragment.kt

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import android.text.InputFilter
1111
import android.view.LayoutInflater
1212
import android.view.View
1313
import android.view.ViewGroup
14+
import androidx.activity.result.ActivityResultLauncher
15+
import androidx.activity.result.PickVisualMediaRequest
1416
import androidx.activity.result.contract.ActivityResultContracts
1517
import androidx.compose.ui.unit.dp
1618
import androidx.core.content.ContextCompat
@@ -47,12 +49,25 @@ class LeaveReviewFragment : Fragment() {
4749

4850
private val requestPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
4951
if (isGranted) {
50-
launchGalleryIntent()
52+
launchPhotoPicker()
5153
} else {
5254
showToast("사진 업로드를 위해 사진 권한을 허용해 주세요.")
5355
}
5456
}
5557

58+
private val pickMedia: ActivityResultLauncher<PickVisualMediaRequest>? =
59+
if (Build.VERSION.SDK_INT >= 33) {
60+
registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
61+
uri?.let {
62+
vm.addImageUri(it, onFailure = {
63+
requireContext().showToast(getString(R.string.leave_review_max_image_toast))
64+
})
65+
}
66+
}
67+
} else {
68+
null
69+
}
70+
5671
override fun onCreateView(
5772
inflater: LayoutInflater,
5873
container: ViewGroup?,
@@ -173,24 +188,32 @@ class LeaveReviewFragment : Fragment() {
173188

174189
binding.addImageButton.setOnClickListener {
175190
requestPermission(onGranted = {
176-
launchGalleryIntent()
191+
launchPhotoPicker()
177192
})
178193
}
179194
}
180195

181196
private fun requestPermission(onGranted: () -> Unit) {
182-
val permission = if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
197+
if (Build.VERSION.SDK_INT >= 33) {
198+
onGranted()
199+
return
200+
}
201+
val permission = Manifest.permission.READ_EXTERNAL_STORAGE
183202
if (ContextCompat.checkSelfPermission(requireActivity(), permission) == PackageManager.PERMISSION_GRANTED) {
184203
onGranted()
185204
} else {
186205
requestPermissionLauncher.launch(permission)
187206
}
188207
}
189208

190-
private fun launchGalleryIntent() {
191-
val intent = Intent(Intent.ACTION_PICK)
192-
.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*")
193-
galleryLauncher.launch(intent)
209+
private fun launchPhotoPicker() {
210+
if (Build.VERSION.SDK_INT >= 33) {
211+
pickMedia!!.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))
212+
} else {
213+
val intent = Intent(Intent.ACTION_PICK)
214+
.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*")
215+
galleryLauncher.launch(intent)
216+
}
194217
}
195218

196219
companion object {

0 commit comments

Comments
 (0)