From ed216fe0d9efeb834a00a1e341faa87db75af419 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 4 Apr 2022 14:03:23 -0500 Subject: [PATCH] Fix crash on Android < 23 where there is not dialler stuff --- .../eu/siacs/conversations/ui/ManageAccountActivity.java | 3 +++ src/main/java/eu/siacs/conversations/entities/Contact.java | 5 +++++ .../eu/siacs/conversations/services/NotificationService.java | 2 ++ 3 files changed, 10 insertions(+) diff --git a/src/cheogram/java/eu/siacs/conversations/ui/ManageAccountActivity.java b/src/cheogram/java/eu/siacs/conversations/ui/ManageAccountActivity.java index 0fc4757cd..3d08ac4bd 100644 --- a/src/cheogram/java/eu/siacs/conversations/ui/ManageAccountActivity.java +++ b/src/cheogram/java/eu/siacs/conversations/ui/ManageAccountActivity.java @@ -3,6 +3,7 @@ package eu.siacs.conversations.ui; import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Intent; +import android.os.Build; import android.os.Bundle; import android.security.KeyChain; import android.security.KeyChainAliasCallback; @@ -86,6 +87,8 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda startActivity(new Intent(android.telecom.TelecomManager.ACTION_CHANGE_PHONE_ACCOUNTS)); }); + if (Build.VERSION.SDK_INT < 23) return; + outer: for (Account account : xmppConnectionService.getAccounts()) { for (Contact contact : account.getRoster().getContacts()) { diff --git a/src/main/java/eu/siacs/conversations/entities/Contact.java b/src/main/java/eu/siacs/conversations/entities/Contact.java index bc1c809e4..ffdd73cf3 100644 --- a/src/main/java/eu/siacs/conversations/entities/Contact.java +++ b/src/main/java/eu/siacs/conversations/entities/Contact.java @@ -6,6 +6,7 @@ import android.content.Context; import android.database.Cursor; import android.graphics.drawable.Icon; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; @@ -609,6 +610,8 @@ 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; + TelecomManager telecomManager = ctx.getSystemService(TelecomManager.class); PhoneAccount phoneAccount = PhoneAccount.builder( @@ -631,6 +634,8 @@ public class Contact implements ListItem, Blockable { // Unregister any associated PSTN gateway integration public void unregisterAsPhoneAccount(Context ctx) { + if (Build.VERSION.SDK_INT < 23) return; + TelecomManager telecomManager = ctx.getSystemService(TelecomManager.class); telecomManager.unregisterPhoneAccount(phoneAccountHandle()); } diff --git a/src/main/java/eu/siacs/conversations/services/NotificationService.java b/src/main/java/eu/siacs/conversations/services/NotificationService.java index 0fdba2675..6ea28d5f9 100644 --- a/src/main/java/eu/siacs/conversations/services/NotificationService.java +++ b/src/main/java/eu/siacs/conversations/services/NotificationService.java @@ -429,6 +429,8 @@ public class NotificationService { } private synchronized boolean tryRingingWithDialerUI(final AbstractJingleConnection.Id id, final Set media) { + if (Build.VERSION.SDK_INT < 23) return false; + if (mXmppConnectionService.checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { // We cannot request audio permission in Dialer UI // when Dialer is shown over keyguard, the user cannot even necessarily