diff --git a/src/cheogram/java/com/cheogram/android/ConnectionService.java b/src/cheogram/java/com/cheogram/android/ConnectionService.java index 2df333ce4..a0239960d 100644 --- a/src/cheogram/java/com/cheogram/android/ConnectionService.java +++ b/src/cheogram/java/com/cheogram/android/ConnectionService.java @@ -68,17 +68,8 @@ public class ConnectionService extends android.telecom.ConnectionService { } }; - private PermissionManager mPermissionManager; - @Override public void onCreate() { - mPermissionManager = PermissionManager.getInstance(this); - mPermissionManager.setNotificationSettings( - new NotificationSettings.Builder() - .withMessage(R.string.microphone_permission_for_call) - .withSmallIcon(R.drawable.ic_notification).build() - ); - // From XmppActivity.connectToBackend Intent intent = new Intent(this, XmppConnectionService.class); intent.setAction("ui"); @@ -124,9 +115,16 @@ public class ConnectionService extends android.telecom.ConnectionService { Jid with = Jid.ofLocalAndDomain(tel, gateway[1]); CheogramConnection connection = new CheogramConnection(account, with, postDial); + PermissionManager permissionManager = PermissionManager.getInstance(this); + permissionManager.setNotificationSettings( + new NotificationSettings.Builder() + .withMessage(R.string.microphone_permission_for_call) + .withSmallIcon(R.drawable.ic_notification).build() + ); + Set permissions = new HashSet<>(); permissions.add(Manifest.permission.RECORD_AUDIO); - mPermissionManager.checkPermissions(permissions, new PermissionManager.PermissionRequestListener() { + permissionManager.checkPermissions(permissions, new PermissionManager.PermissionRequestListener() { @Override public void onPermissionGranted() { connection.setSessionId(xmppConnectionService.getJingleConnectionManager().proposeJingleRtpSession( diff --git a/src/main/java/eu/siacs/conversations/services/NotificationService.java b/src/main/java/eu/siacs/conversations/services/NotificationService.java index 6465ded8c..2dd77ce91 100644 --- a/src/main/java/eu/siacs/conversations/services/NotificationService.java +++ b/src/main/java/eu/siacs/conversations/services/NotificationService.java @@ -467,8 +467,8 @@ public class NotificationService { try { telecomManager.addNewIncomingCall(handle, callInfo); } catch (SecurityException e) { - // There *could* be race conditions where the account is not registered yet - // when an incoming call is already received + // If the account is not registered or enabled, it could result in a security exception + // Just fall back to the built-in UI in this case. Log.w(Config.LOGTAG, e); return false; }