From e68c023a276f19769291c862910d4675db14d105 Mon Sep 17 00:00:00 2001 From: gavine99 Date: Mon, 24 Mar 2025 15:27:01 +1100 Subject: [PATCH 1/2] changes to allow bluetooth headset state change receiver to be exported. fixes bluetooth headset (dis)connection not being recognised during a call. Signed-off-by: Gavin Element Signed-off-by: gavine99 --- .../nextcloud/talk/utils/ContextExtensions.kt | 4 ++-- .../com/nextcloud/talk/utils/ReceiverFlag.kt | 22 +++++++++++++------ .../talk/webrtc/WebRtcBluetoothManager.java | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/utils/ContextExtensions.kt b/app/src/main/java/com/nextcloud/talk/utils/ContextExtensions.kt index e98d9aeb6..5585da75e 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ContextExtensions.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ContextExtensions.kt @@ -19,7 +19,7 @@ import android.os.Handler @SuppressLint("UnspecifiedRegisterReceiverFlag") fun Context.registerBroadcastReceiver(receiver: BroadcastReceiver?, filter: IntentFilter, flag: ReceiverFlag): Intent? { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - registerReceiver(receiver, filter, flag.getId()) + registerReceiver(receiver, filter, flag.value) } else { registerReceiver(receiver, filter) } @@ -34,7 +34,7 @@ fun Context.registerPermissionHandlerBroadcastReceiver( flag: ReceiverFlag ): Intent? { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - registerReceiver(receiver, filter, broadcastPermission, scheduler, flag.getId()) + registerReceiver(receiver, filter, broadcastPermission, scheduler, flag.value) } else { registerReceiver(receiver, filter, broadcastPermission, scheduler) } diff --git a/app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt b/app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt index 5f473c645..1b449b782 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt @@ -12,11 +12,19 @@ import android.content.Context import android.os.Build import androidx.annotation.RequiresApi -enum class ReceiverFlag { - NotExported; - - @RequiresApi(Build.VERSION_CODES.TIRAMISU) - fun getId(): Int { - return Context.RECEIVER_NOT_EXPORTED - } +enum class ReceiverFlag(val value: Int) { + Exported( + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + Context.RECEIVER_EXPORTED + } else { + 0 + } + ), + NotExported( + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + Context.RECEIVER_NOT_EXPORTED + } else { + 0 + } + ), } diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/WebRtcBluetoothManager.java b/app/src/main/java/com/nextcloud/talk/webrtc/WebRtcBluetoothManager.java index cd15ca2f7..7835e6f2f 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/WebRtcBluetoothManager.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/WebRtcBluetoothManager.java @@ -292,7 +292,7 @@ public class WebRtcBluetoothManager { apprtcContext, receiver, filter, - ReceiverFlag.NotExported); + ReceiverFlag.Exported); } protected void unregisterReceiver(BroadcastReceiver receiver) { From 863dc10f36d025876b053c150d58bf6ee20b5f88 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Fri, 4 Apr 2025 14:55:01 +0200 Subject: [PATCH 2/2] fix detekt warnings Signed-off-by: Marcel Hibbe --- app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt b/app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt index 1b449b782..58df1ac06 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ReceiverFlag.kt @@ -10,7 +10,6 @@ package com.nextcloud.talk.utils import android.content.Context import android.os.Build -import androidx.annotation.RequiresApi enum class ReceiverFlag(val value: Int) { Exported( @@ -26,5 +25,5 @@ enum class ReceiverFlag(val value: Int) { } else { 0 } - ), + ) }