diff --git a/apps/flipcash/app/build.gradle.kts b/apps/flipcash/app/build.gradle.kts index 7e7d57417..fc4b0d59f 100644 --- a/apps/flipcash/app/build.gradle.kts +++ b/apps/flipcash/app/build.gradle.kts @@ -115,6 +115,7 @@ android { lint { checkReleaseBuilds = false + checkDependencies = true baseline = file("lint-baseline.xml") } diff --git a/apps/flipcash/app/lint-baseline.xml b/apps/flipcash/app/lint-baseline.xml index 1f61656eb..dadd1b76c 100644 --- a/apps/flipcash/app/lint-baseline.xml +++ b/apps/flipcash/app/lint-baseline.xml @@ -377,4 +377,37 @@ column="31"/> + + + + + + + + + + + + diff --git a/apps/flipcash/shared/chat-ui/src/main/kotlin/com/flipcash/shared/chat/ui/media/ChatPhotoPicker.kt b/apps/flipcash/shared/chat-ui/src/main/kotlin/com/flipcash/shared/chat/ui/media/ChatPhotoPicker.kt index ab8a45e73..09878fe09 100644 --- a/apps/flipcash/shared/chat-ui/src/main/kotlin/com/flipcash/shared/chat/ui/media/ChatPhotoPicker.kt +++ b/apps/flipcash/shared/chat-ui/src/main/kotlin/com/flipcash/shared/chat/ui/media/ChatPhotoPicker.kt @@ -1,6 +1,8 @@ package com.flipcash.shared.chat.ui.media import android.net.Uri +import android.os.Build +import android.os.ext.SdkExtensions import android.provider.MediaStore import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.PickVisualMediaRequest @@ -30,7 +32,19 @@ fun rememberChatPhotoPicker( val single = rememberLauncherForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri -> if (uri != null) currentOnPicked(listOf(uri)) } - val max = remaining.coerceIn(2, maxOf(2, MediaStore.getPickImagesMaxLimit())) + // getPickImagesMaxLimit() only exists where the system picker does (API 33+, or SDK + // extension R 2+). Without it, the open slots are the only cap. + val systemMax = remember { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU || + (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && + SdkExtensions.getExtensionVersion(Build.VERSION_CODES.R) >= 2) + ) { + MediaStore.getPickImagesMaxLimit() + } else { + null + } + } + val max = maxOf(2, systemMax?.let { minOf(remaining, it) } ?: remaining) val multiple = rememberLauncherForActivityResult( ActivityResultContracts.PickMultipleVisualMedia(max), ) { uris ->