handle new READ_MEDIA_VISUAL_USER_SELECTED permission.
now the app no longer forces media permission to run
This commit is contained in:
parent
c97f3f89e6
commit
3d09de6939
|
@ -21,6 +21,7 @@
|
|||
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
|
|
|
@ -225,30 +225,25 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
|
|||
private fun tryInitCamera() {
|
||||
handlePermission(PERMISSION_CAMERA) { grantedCameraPermission ->
|
||||
if (grantedCameraPermission) {
|
||||
handleStoragePermission { grantedStoragePermission ->
|
||||
if (grantedStoragePermission) {
|
||||
val isInPhotoMode = isInPhotoMode()
|
||||
if (isInPhotoMode) {
|
||||
initializeCamera(true)
|
||||
} else {
|
||||
handlePermission(PERMISSION_RECORD_AUDIO) { grantedRecordAudioPermission ->
|
||||
if (grantedRecordAudioPermission) {
|
||||
initializeCamera(false)
|
||||
handleStoragePermission {
|
||||
val isInPhotoMode = isInPhotoMode()
|
||||
if (isInPhotoMode) {
|
||||
initializeCamera(true)
|
||||
} else {
|
||||
handlePermission(PERMISSION_RECORD_AUDIO) { grantedRecordAudioPermission ->
|
||||
if (grantedRecordAudioPermission) {
|
||||
initializeCamera(false)
|
||||
} else {
|
||||
toast(com.simplemobiletools.commons.R.string.no_audio_permissions)
|
||||
if (isThirdPartyIntent()) {
|
||||
finish()
|
||||
} else {
|
||||
toast(com.simplemobiletools.commons.R.string.no_audio_permissions)
|
||||
if (isThirdPartyIntent()) {
|
||||
finish()
|
||||
} else {
|
||||
// re-initialize in photo mode
|
||||
config.initPhotoMode = true
|
||||
tryInitCamera()
|
||||
}
|
||||
// re-initialize in photo mode
|
||||
config.initPhotoMode = true
|
||||
tryInitCamera()
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
toast(com.simplemobiletools.commons.R.string.no_storage_permissions)
|
||||
finish()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -270,13 +265,12 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
|
|||
|
||||
private fun handleStoragePermission(callback: (granted: Boolean) -> Unit) {
|
||||
if (isTiramisuPlus()) {
|
||||
handlePermission(PERMISSION_READ_MEDIA_IMAGES) { grantedReadImages ->
|
||||
if (grantedReadImages) {
|
||||
handlePermission(PERMISSION_READ_MEDIA_VIDEO, callback)
|
||||
} else {
|
||||
callback.invoke(false)
|
||||
}
|
||||
val mediaPermissionIds = mutableListOf(PERMISSION_READ_MEDIA_IMAGES, PERMISSION_READ_MEDIA_VIDEO)
|
||||
if (isUpsideDownCakePlus()) {
|
||||
mediaPermissionIds.add(PERMISSION_READ_MEDIA_VISUAL_USER_SELECTED)
|
||||
}
|
||||
|
||||
handlePartialMediaPermissions(permissionIds = mediaPermissionIds, callback = callback)
|
||||
} else {
|
||||
handlePermission(PERMISSION_WRITE_STORAGE, callback)
|
||||
}
|
||||
|
@ -574,7 +568,11 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
|
|||
|
||||
private fun hasPhotoModePermissions(): Boolean {
|
||||
return if (isTiramisuPlus()) {
|
||||
hasPermission(PERMISSION_READ_MEDIA_IMAGES) && hasPermission(PERMISSION_READ_MEDIA_VIDEO) && hasPermission(PERMISSION_CAMERA)
|
||||
var hasMediaPermission = hasPermission(PERMISSION_READ_MEDIA_IMAGES) || hasPermission(PERMISSION_READ_MEDIA_VIDEO)
|
||||
if (isUpsideDownCakePlus()) {
|
||||
hasMediaPermission = hasMediaPermission || hasPermission(PERMISSION_READ_MEDIA_VISUAL_USER_SELECTED)
|
||||
}
|
||||
hasMediaPermission && hasPermission(PERMISSION_CAMERA)
|
||||
} else {
|
||||
hasPermission(PERMISSION_WRITE_STORAGE) && hasPermission(PERMISSION_CAMERA)
|
||||
}
|
||||
|
@ -582,7 +580,11 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
|
|||
|
||||
private fun hasVideoModePermissions(): Boolean {
|
||||
return if (isTiramisuPlus()) {
|
||||
hasPermission(PERMISSION_READ_MEDIA_VIDEO) && hasPermission(PERMISSION_CAMERA) && hasPermission(PERMISSION_RECORD_AUDIO)
|
||||
var hasMediaPermission = hasPermission(PERMISSION_READ_MEDIA_VIDEO)
|
||||
if (isUpsideDownCakePlus()) {
|
||||
hasMediaPermission = hasMediaPermission || hasPermission(PERMISSION_READ_MEDIA_VISUAL_USER_SELECTED)
|
||||
}
|
||||
hasMediaPermission && hasPermission(PERMISSION_CAMERA) && hasPermission(PERMISSION_RECORD_AUDIO)
|
||||
} else {
|
||||
hasPermission(PERMISSION_WRITE_STORAGE) && hasPermission(PERMISSION_CAMERA) && hasPermission(PERMISSION_RECORD_AUDIO)
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ androidx-window = "1.2.0-beta01"
|
|||
androidx-camera = "1.3.0-beta02"
|
||||
androidx-ktx = "2.6.1"
|
||||
#Simple tools
|
||||
simple-commons = "53ad279f5e"
|
||||
simple-commons = "d1629c7f1a"
|
||||
#Gradle
|
||||
gradlePlugins-agp = "8.1.0"
|
||||
#build
|
||||
|
|
Loading…
Reference in New Issue