diff --git a/gradle/caches/8.2/javaCompile/classAnalysis.bin b/gradle/caches/8.2/javaCompile/classAnalysis.bin
index 3d939dc91..1c520d651 100644
Binary files a/gradle/caches/8.2/javaCompile/classAnalysis.bin and b/gradle/caches/8.2/javaCompile/classAnalysis.bin differ
diff --git a/gradle/caches/8.2/javaCompile/javaCompile.lock b/gradle/caches/8.2/javaCompile/javaCompile.lock
index a96da5c5a..7a02e3577 100644
Binary files a/gradle/caches/8.2/javaCompile/javaCompile.lock and b/gradle/caches/8.2/javaCompile/javaCompile.lock differ
diff --git a/gradle/caches/journal-1/file-access.bin b/gradle/caches/journal-1/file-access.bin
index 4b9097eba..88e8e29ac 100644
Binary files a/gradle/caches/journal-1/file-access.bin and b/gradle/caches/journal-1/file-access.bin differ
diff --git a/gradle/caches/journal-1/journal-1.lock b/gradle/caches/journal-1/journal-1.lock
index 381ef140f..c377c923c 100644
Binary files a/gradle/caches/journal-1/journal-1.lock and b/gradle/caches/journal-1/journal-1.lock differ
diff --git a/gradle/caches/modules-2/metadata-2.106/module-metadata.bin b/gradle/caches/modules-2/metadata-2.106/module-metadata.bin
index a3e75ab1f..751ec7b92 100644
Binary files a/gradle/caches/modules-2/metadata-2.106/module-metadata.bin and b/gradle/caches/modules-2/metadata-2.106/module-metadata.bin differ
diff --git a/gradle/caches/modules-2/modules-2.lock b/gradle/caches/modules-2/modules-2.lock
index 1fc2f1f74..8de251200 100644
Binary files a/gradle/caches/modules-2/modules-2.lock and b/gradle/caches/modules-2/modules-2.lock differ
diff --git a/gradle/daemon/8.2/registry.bin b/gradle/daemon/8.2/registry.bin
index 10d6f8f81..88f6022d1 100644
Binary files a/gradle/daemon/8.2/registry.bin and b/gradle/daemon/8.2/registry.bin differ
diff --git a/gradle/daemon/8.2/registry.bin.lock b/gradle/daemon/8.2/registry.bin.lock
index f6ca72bd3..ae32f8e2c 100644
Binary files a/gradle/daemon/8.2/registry.bin.lock and b/gradle/daemon/8.2/registry.bin.lock differ
diff --git a/proguard-rules.pro b/proguard-rules.pro
index 3917ae189..eb8c57688 100644
--- a/proguard-rules.pro
+++ b/proguard-rules.pro
@@ -3,11 +3,18 @@
 -keep class de.monocles.chat.**
 -keep class de.pixart.messenger.**
 -keep class eu.siacs.conversations.**
+
 -keep class org.whispersystems.**
+
 -keep class com.kyleduo.switchbutton.Configuration
+
 -keep class com.soundcloud.android.crop.**
+
 -keep class com.google.android.gms.**
+
 -keep class org.openintents.openpgp.*
+-keep class org.webrtc.** { *; }
+
 -keep class com.squareup.okhttp.** { *; }
 -keep interface com.squareup.okhttp.** { *; }
 
@@ -76,7 +83,21 @@
 -dontwarn retrofit2.KotlinExtensions
 -dontwarn retrofit2.KotlinExtensions$*
 
+
 # With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy
 # and replaces all potential values with null. Explicitly keeping the interfaces prevents this.
 -if interface * { @retrofit2.http.* <methods>; }
--keep,allowobfuscation interface <1>
\ No newline at end of file
+-keep,allowobfuscation interface <1>
+
+# Keep inherited services.
+-if interface * { @retrofit2.http.* <methods>; }
+-keep,allowobfuscation interface * extends <1>
+
+# With R8 full mode generic signatures are stripped for classes that are not
+# kept. Suspend functions are wrapped in continuations where the type argument
+# is used.
+-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
+
+# R8 full mode strips generic signatures from return types if not kept.
+-if interface * { @retrofit2.http.* public *** *(...); }
+-keep,allowoptimization,allowshrinking,allowobfuscation class <3>