Support API 33 feature detection

Stephen Paul Weber created

Change summary

build.gradle                                                      | 2 
src/main/java/eu/siacs/conversations/entities/Contact.java        | 6 
src/main/java/eu/siacs/conversations/persistance/FileBackend.java | 6 
3 files changed, 11 insertions(+), 3 deletions(-)

Detailed changes

build.gradle 🔗

@@ -110,7 +110,7 @@ ext {
 
 android {
     namespace 'eu.siacs.conversations'
-    compileSdkVersion 32
+    compileSdkVersion 33
 
     defaultConfig {
         minSdkVersion 21

src/main/java/eu/siacs/conversations/entities/Contact.java 🔗

@@ -633,7 +633,11 @@ public class Contact implements ListItem, Blockable {
     // This Contact is a gateway to use for voice calls, register it with OS
     public void registerAsPhoneAccount(XmppConnectionService ctx) {
         if (Build.VERSION.SDK_INT < 23) return;
-        if (!ctx.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CONNECTION_SERVICE)) return;
+        if (Build.VERSION.SDK_INT >= 33) {
+            if (!ctx.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELECOM)) return;
+        } else {
+            if (!ctx.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CONNECTION_SERVICE)) return;
+        }
 
         TelecomManager telecomManager = ctx.getSystemService(TelecomManager.class);
 

src/main/java/eu/siacs/conversations/persistance/FileBackend.java 🔗

@@ -333,7 +333,11 @@ public class FileBackend {
         } catch (Exception e) {
             width = -1;
         }
-        metadataRetriever.release();
+        try {
+            metadataRetriever.release();
+        } catch (final IOException e) {
+            throw new NotAVideoFile();
+        }
         Log.d(Config.LOGTAG, "extracted video dims " + width + "x" + height);
         return rotated ? new Dimensions(width, height) : new Dimensions(height, width);
     }