diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c732201..004cf58 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,15 @@ + + + + + + + Unit = {}, audioList: (list: List) -> Unit = {}) { val manager = context.setupManager() val setupModifier = setupModifier(modifier) @@ -47,7 +47,6 @@ object MultiAudioPicker { } } - @RequiresPermission(Manifest.permission.READ_EXTERNAL_STORAGE) fun showPicker(fragmentManager: FragmentManager, modifier: MultiAudioPickerModifier.() -> Unit = {}, audioList: (list: List) -> Unit = {}) { val setupModifier = setupModifier(modifier) with(MultiAudioPickerBottomSheetDialog()) { diff --git a/audiopicker/src/main/java/com/crazylegend/audiopicker/pickers/SingleAudioPicker.kt b/audiopicker/src/main/java/com/crazylegend/audiopicker/pickers/SingleAudioPicker.kt index efbe157..da6294f 100644 --- a/audiopicker/src/main/java/com/crazylegend/audiopicker/pickers/SingleAudioPicker.kt +++ b/audiopicker/src/main/java/com/crazylegend/audiopicker/pickers/SingleAudioPicker.kt @@ -35,7 +35,6 @@ object SingleAudioPicker { } } - @RequiresPermission(Manifest.permission.READ_EXTERNAL_STORAGE) fun showPicker(context: Context, pickerModifier: SingleAudioPickerModifier.() -> Unit = {}, onPickedAudio: (audio: AudioModel) -> Unit = {}) { val modifier = setupModifier(pickerModifier) val manager = context.setupManager() @@ -46,7 +45,6 @@ object SingleAudioPicker { } } - @RequiresPermission(Manifest.permission.READ_EXTERNAL_STORAGE) fun showPicker(manager: FragmentManager, pickerModifier: SingleAudioPickerModifier.() -> Unit = {}, onPickedAudio: (audio: AudioModel) -> Unit = {}) { val modifier = setupModifier(pickerModifier) with(SingleAudioPickerBottomSheetDialog()) { diff --git a/build.gradle b/build.gradle index 5e8dc14..984e870 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ ext { coreKTX = "1.5.0" //compilation - compileVersion = 32 + compileVersion = 33 minVersion = 21 verCode = 1 verName = "1.0.0" @@ -20,7 +20,7 @@ ext { buildscript { ext.kotlin_version = '1.7.10' - ext.compiledAppVersion = 32 + ext.compiledAppVersion = 33 repositories { google() diff --git a/imagepicker/src/main/java/com/crazylegend/imagepicker/dialogs/multi/MultiImagePickerBottomSheetDialog.kt b/imagepicker/src/main/java/com/crazylegend/imagepicker/dialogs/multi/MultiImagePickerBottomSheetDialog.kt index c0eef7a..6ab8dd6 100644 --- a/imagepicker/src/main/java/com/crazylegend/imagepicker/dialogs/multi/MultiImagePickerBottomSheetDialog.kt +++ b/imagepicker/src/main/java/com/crazylegend/imagepicker/dialogs/multi/MultiImagePickerBottomSheetDialog.kt @@ -1,6 +1,7 @@ package com.crazylegend.imagepicker.dialogs.multi import android.Manifest +import android.os.Build import android.os.Bundle import android.util.Log import android.view.View @@ -56,8 +57,11 @@ internal class MultiImagePickerBottomSheetDialog : AbstractBottomSheetDialogFrag @Suppress("UNCHECKED_CAST") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - askForStoragePermission.launch(Manifest.permission.READ_EXTERNAL_STORAGE) - + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU){ + askForStoragePermission.launch(Manifest.permission.READ_EXTERNAL_STORAGE) + } else { + askForStoragePermission.launch(Manifest.permission.READ_MEDIA_IMAGES) + } setupUIForMultiPicker( binding.gallery, multiSelectAdapter, binding.doneButton, binding.title, binding.loadingIndicator, modifier?.loadingIndicatorTint, diff --git a/imagepicker/src/main/java/com/crazylegend/imagepicker/dialogs/single/SingleImagePickerBottomSheetDialog.kt b/imagepicker/src/main/java/com/crazylegend/imagepicker/dialogs/single/SingleImagePickerBottomSheetDialog.kt index 602df6b..771450f 100644 --- a/imagepicker/src/main/java/com/crazylegend/imagepicker/dialogs/single/SingleImagePickerBottomSheetDialog.kt +++ b/imagepicker/src/main/java/com/crazylegend/imagepicker/dialogs/single/SingleImagePickerBottomSheetDialog.kt @@ -1,6 +1,7 @@ package com.crazylegend.imagepicker.dialogs.single import android.Manifest +import android.os.Build import android.os.Bundle import android.util.Log import android.view.View @@ -57,7 +58,11 @@ internal class SingleImagePickerBottomSheetDialog : AbstractBottomSheetDialogFra override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - askForStoragePermission.launch(Manifest.permission.READ_EXTERNAL_STORAGE) + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU){ + askForStoragePermission.launch(Manifest.permission.READ_EXTERNAL_STORAGE) + } else { + askForStoragePermission.launch(Manifest.permission.READ_MEDIA_IMAGES) + } setupUIForSinglePicker(binding.gallery, singleAdapter, binding.title, binding.loadingIndicator, modifier?.loadingIndicatorTint, ::applyTitleModifications) imagesVM.images.observe(viewLifecycleOwner) { setupList(singleAdapter, it, binding.noContentText, modifier?.noContentTextModifier) diff --git a/imagepicker/src/main/java/com/crazylegend/imagepicker/pickers/MultiImagePicker.kt b/imagepicker/src/main/java/com/crazylegend/imagepicker/pickers/MultiImagePicker.kt index c4e48f1..88c7ac3 100644 --- a/imagepicker/src/main/java/com/crazylegend/imagepicker/pickers/MultiImagePicker.kt +++ b/imagepicker/src/main/java/com/crazylegend/imagepicker/pickers/MultiImagePicker.kt @@ -37,7 +37,7 @@ object MultiImagePicker { } } - @RequiresPermission(READ_EXTERNAL_STORAGE) + fun showPicker( context: Context, multiImagePickerModifier: BaseMultiPickerModifier.() -> Unit = {}, imagesList: (list: List) -> Unit = {} @@ -51,7 +51,6 @@ object MultiImagePicker { } } - @RequiresPermission(READ_EXTERNAL_STORAGE) fun showPicker( fragmentManager: FragmentManager, multiImagePickerModifier: BaseMultiPickerModifier.() -> Unit = {}, imagesList: (list: List) -> Unit = {} diff --git a/imagepicker/src/main/java/com/crazylegend/imagepicker/pickers/SingleImagePicker.kt b/imagepicker/src/main/java/com/crazylegend/imagepicker/pickers/SingleImagePicker.kt index b96e3cf..bdea70f 100644 --- a/imagepicker/src/main/java/com/crazylegend/imagepicker/pickers/SingleImagePicker.kt +++ b/imagepicker/src/main/java/com/crazylegend/imagepicker/pickers/SingleImagePicker.kt @@ -36,7 +36,6 @@ object SingleImagePicker { } } - @RequiresPermission(READ_EXTERNAL_STORAGE) fun showPicker( context: Context, pickerModifier: BaseSinglePickerModifier.() -> Unit = {}, @@ -51,8 +50,6 @@ object SingleImagePicker { } } - - @RequiresPermission(READ_EXTERNAL_STORAGE) fun showPicker( fragmentManager: FragmentManager, pickerModifier: BaseSinglePickerModifier.() -> Unit = {}, diff --git a/videopicker/src/main/java/com/crazylegend/videopicker/dialogs/multi/MultiVideoPickerBottomSheetDialog.kt b/videopicker/src/main/java/com/crazylegend/videopicker/dialogs/multi/MultiVideoPickerBottomSheetDialog.kt index 28f7881..3735723 100644 --- a/videopicker/src/main/java/com/crazylegend/videopicker/dialogs/multi/MultiVideoPickerBottomSheetDialog.kt +++ b/videopicker/src/main/java/com/crazylegend/videopicker/dialogs/multi/MultiVideoPickerBottomSheetDialog.kt @@ -1,6 +1,7 @@ package com.crazylegend.videopicker.dialogs.multi import android.Manifest +import android.os.Build import android.os.Bundle import android.util.Log import android.view.View @@ -54,8 +55,11 @@ internal class MultiVideoPickerBottomSheetDialog : AbstractBottomSheetDialogFrag @Suppress("UNCHECKED_CAST") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - askForStoragePermission.launch(Manifest.permission.READ_EXTERNAL_STORAGE) - + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU){ + askForStoragePermission.launch(Manifest.permission.READ_EXTERNAL_STORAGE) + } else { + askForStoragePermission.launch(Manifest.permission.READ_MEDIA_VIDEO) + } setupUIForMultiPicker( binding.gallery, multiSelectAdapter, binding.doneButton, binding.title, binding.loadingIndicator, modifier?.loadingIndicatorTint, ::applyDoneButtonModifications, ::applyTitleModifications) diff --git a/videopicker/src/main/java/com/crazylegend/videopicker/dialogs/single/SingleVideoPickerBottomSheetDialog.kt b/videopicker/src/main/java/com/crazylegend/videopicker/dialogs/single/SingleVideoPickerBottomSheetDialog.kt index b782977..50ca6d8 100644 --- a/videopicker/src/main/java/com/crazylegend/videopicker/dialogs/single/SingleVideoPickerBottomSheetDialog.kt +++ b/videopicker/src/main/java/com/crazylegend/videopicker/dialogs/single/SingleVideoPickerBottomSheetDialog.kt @@ -1,6 +1,7 @@ package com.crazylegend.videopicker.dialogs.single import android.Manifest +import android.os.Build import android.os.Bundle import android.util.Log import android.view.View @@ -55,7 +56,11 @@ internal class SingleVideoPickerBottomSheetDialog : AbstractBottomSheetDialogFra override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - askForStoragePermission.launch(Manifest.permission.READ_EXTERNAL_STORAGE) + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU){ + askForStoragePermission.launch(Manifest.permission.READ_EXTERNAL_STORAGE) + } else { + askForStoragePermission.launch(Manifest.permission.READ_MEDIA_VIDEO) + } setupUIForSinglePicker(binding.gallery, singleAdapter, binding.title, binding.loadingIndicator, modifier?.loadingIndicatorTint, ::applyTitleModifications) videosVM.videos.observe(viewLifecycleOwner) { setupList(singleAdapter, it, binding.noContentText, modifier?.noContentTextModifier) diff --git a/videopicker/src/main/java/com/crazylegend/videopicker/pickers/MultiVideoPicker.kt b/videopicker/src/main/java/com/crazylegend/videopicker/pickers/MultiVideoPicker.kt index 4cfb8d4..aa06a4c 100644 --- a/videopicker/src/main/java/com/crazylegend/videopicker/pickers/MultiVideoPicker.kt +++ b/videopicker/src/main/java/com/crazylegend/videopicker/pickers/MultiVideoPicker.kt @@ -37,7 +37,6 @@ object MultiVideoPicker { } } - @RequiresPermission(Manifest.permission.READ_EXTERNAL_STORAGE) fun showPicker(context: Context, modifier: BaseMultiPickerModifier.() -> Unit = {}, videoList: (list: List) -> Unit = {}) { val manager = context.setupManager() val setupModifier = setupModifier(modifier) @@ -48,7 +47,6 @@ object MultiVideoPicker { } } - @RequiresPermission(Manifest.permission.READ_EXTERNAL_STORAGE) fun showPicker(fragmentManager: FragmentManager, modifier: BaseMultiPickerModifier.() -> Unit = {}, videoList: (list: List) -> Unit = {}) { val setupModifier = setupModifier(modifier) with(MultiVideoPickerBottomSheetDialog()) { diff --git a/videopicker/src/main/java/com/crazylegend/videopicker/pickers/SingleVideoPicker.kt b/videopicker/src/main/java/com/crazylegend/videopicker/pickers/SingleVideoPicker.kt index 8d5c618..ccda170 100644 --- a/videopicker/src/main/java/com/crazylegend/videopicker/pickers/SingleVideoPicker.kt +++ b/videopicker/src/main/java/com/crazylegend/videopicker/pickers/SingleVideoPicker.kt @@ -36,7 +36,6 @@ object SingleVideoPicker { } } - @RequiresPermission(Manifest.permission.READ_EXTERNAL_STORAGE) fun showPicker(context: Context, pickerModifier: BaseSinglePickerModifier.() -> Unit = {}, onPickedVideo: (video: VideoModel) -> Unit = {}) { val modifier = setupModifier(pickerModifier) val manager = context.setupManager() @@ -47,7 +46,6 @@ object SingleVideoPicker { } } - @RequiresPermission(Manifest.permission.READ_EXTERNAL_STORAGE) fun showPicker(fragmentManager: FragmentManager, pickerModifier: BaseSinglePickerModifier.() -> Unit = {}, onPickedVideo: (video: VideoModel) -> Unit = {}) { val modifier = setupModifier(pickerModifier) with(SingleVideoPickerBottomSheetDialog()) {