chore(config): coil-gif dependency, RECORD_AUDIO permission, firestore rules allow voice type
- build.gradle.kts: add coil-gif 2.7.0 for animated GIF/WebP support - AndroidManifest: RECORD_AUDIO permission + microphone feature (optional) - firestore.rules: messages create allows 'voice' type alongside 'image', accepts durationMs field
This commit is contained in:
parent
3ad725ca8a
commit
dbf7ae662b
|
|
@ -187,6 +187,8 @@ dependencies {
|
|||
|
||||
// Image loading
|
||||
implementation("io.coil-kt:coil-compose:2.7.0")
|
||||
// Animated GIF / WebP support (for GIFs, stickers, Bitmoji from the keyboard)
|
||||
implementation("io.coil-kt:coil-gif:2.7.0")
|
||||
|
||||
// AppCompat — required by BiometricPrompt (needs FragmentActivity base)
|
||||
implementation("androidx.appcompat:appcompat:1.7.0")
|
||||
|
|
|
|||
|
|
@ -4,8 +4,10 @@
|
|||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
|
||||
<uses-feature android:name="android.hardware.camera" android:required="false" />
|
||||
<uses-feature android:name="android.hardware.microphone" android:required="false" />
|
||||
|
||||
<application
|
||||
android:name=".CloserApp"
|
||||
|
|
|
|||
|
|
@ -433,9 +433,9 @@ service cloud.firestore {
|
|||
allow create: if isCouplesMember(coupleId)
|
||||
&& coupleEncryptionEnabled(coupleId)
|
||||
&& request.resource.data.authorUserId == request.auth.uid
|
||||
&& request.resource.data.keys().hasOnly(['authorUserId', 'text', 'createdAt', 'type', 'mediaUrl'])
|
||||
&& request.resource.data.keys().hasOnly(['authorUserId', 'text', 'createdAt', 'type', 'mediaUrl', 'durationMs'])
|
||||
&& (
|
||||
(request.resource.data.get('type', 'text') == 'image'
|
||||
(request.resource.data.get('type', 'text') in ['image', 'voice']
|
||||
&& request.resource.data.mediaUrl is string
|
||||
&& request.resource.data.mediaUrl.size() > 0)
|
||||
||
|
||||
|
|
|
|||
Loading…
Reference in New Issue