Merge pull request #4824 from gavine99/fix-bluetooth-receiver-not-exported

allow bluetooth headset to be discovered and used during a call
This commit is contained in:
Marcel Hibbe 2025-04-07 16:31:39 +00:00 committed by GitHub
commit 2f54c53796
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 11 deletions

View File

@ -19,7 +19,7 @@ import android.os.Handler
@SuppressLint("UnspecifiedRegisterReceiverFlag") @SuppressLint("UnspecifiedRegisterReceiverFlag")
fun Context.registerBroadcastReceiver(receiver: BroadcastReceiver?, filter: IntentFilter, flag: ReceiverFlag): Intent? { fun Context.registerBroadcastReceiver(receiver: BroadcastReceiver?, filter: IntentFilter, flag: ReceiverFlag): Intent? {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
registerReceiver(receiver, filter, flag.getId()) registerReceiver(receiver, filter, flag.value)
} else { } else {
registerReceiver(receiver, filter) registerReceiver(receiver, filter)
} }
@ -34,7 +34,7 @@ fun Context.registerPermissionHandlerBroadcastReceiver(
flag: ReceiverFlag flag: ReceiverFlag
): Intent? { ): Intent? {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { 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 { } else {
registerReceiver(receiver, filter, broadcastPermission, scheduler) registerReceiver(receiver, filter, broadcastPermission, scheduler)
} }

View File

@ -10,13 +10,20 @@ package com.nextcloud.talk.utils
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
import androidx.annotation.RequiresApi
enum class ReceiverFlag { enum class ReceiverFlag(val value: Int) {
NotExported; Exported(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@RequiresApi(Build.VERSION_CODES.TIRAMISU) Context.RECEIVER_EXPORTED
fun getId(): Int { } else {
return Context.RECEIVER_NOT_EXPORTED 0
} }
),
NotExported(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
Context.RECEIVER_NOT_EXPORTED
} else {
0
}
)
} }

View File

@ -292,7 +292,7 @@ public class WebRtcBluetoothManager {
apprtcContext, apprtcContext,
receiver, receiver,
filter, filter,
ReceiverFlag.NotExported); ReceiverFlag.Exported);
} }
protected void unregisterReceiver(BroadcastReceiver receiver) { protected void unregisterReceiver(BroadcastReceiver receiver) {