mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-23 13:40:43 +01:00
Request 'BLUETOOTH_CONNECT' permissions
Request the 'BLUETOOTH_CONNECT' permissions if not already granted. If the permission is be granted in this request, the 'MagicBluetoothManger' will be started. See: #2132 Signed-off-by: Tim Krüger <t@timkrueger.me>
This commit is contained in:
parent
dedbe40cc0
commit
e14f00fae7
@ -30,6 +30,7 @@ import android.content.BroadcastReceiver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
@ -138,12 +139,15 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import androidx.activity.result.ActivityResultLauncher;
|
||||||
|
import androidx.activity.result.contract.ActivityResultContracts;
|
||||||
import androidx.annotation.DrawableRes;
|
import androidx.annotation.DrawableRes;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.content.res.AppCompatResources;
|
import androidx.appcompat.content.res.AppCompatResources;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.core.graphics.drawable.DrawableCompat;
|
import androidx.core.graphics.drawable.DrawableCompat;
|
||||||
import autodagger.AutoInjector;
|
import autodagger.AutoInjector;
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
@ -185,8 +189,8 @@ public class CallActivity extends CallBaseActivity {
|
|||||||
public MagicAudioManager audioManager;
|
public MagicAudioManager audioManager;
|
||||||
|
|
||||||
private static final String[] PERMISSIONS_CALL = {
|
private static final String[] PERMISSIONS_CALL = {
|
||||||
android.Manifest.permission.CAMERA,
|
Manifest.permission.CAMERA,
|
||||||
android.Manifest.permission.RECORD_AUDIO,
|
Manifest.permission.RECORD_AUDIO
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final String[] PERMISSIONS_CAMERA = {
|
private static final String[] PERMISSIONS_CAMERA = {
|
||||||
@ -268,6 +272,13 @@ public class CallActivity extends CallBaseActivity {
|
|||||||
|
|
||||||
private AudioOutputDialog audioOutputDialog;
|
private AudioOutputDialog audioOutputDialog;
|
||||||
|
|
||||||
|
private final ActivityResultLauncher<String> requestBluetoothPermissionLauncher =
|
||||||
|
registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> {
|
||||||
|
if (isGranted) {
|
||||||
|
enableBluetoothManager();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
@ -317,6 +328,9 @@ public class CallActivity extends CallBaseActivity {
|
|||||||
.setRepeatCount(PulseAnimation.INFINITE)
|
.setRepeatCount(PulseAnimation.INFINITE)
|
||||||
.setRepeatMode(PulseAnimation.REVERSE);
|
.setRepeatMode(PulseAnimation.REVERSE);
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||||
|
requestBluetoothPermission();
|
||||||
|
}
|
||||||
basicInitialization();
|
basicInitialization();
|
||||||
participantDisplayItems = new HashMap<>();
|
participantDisplayItems = new HashMap<>();
|
||||||
initViews();
|
initViews();
|
||||||
@ -326,6 +340,22 @@ public class CallActivity extends CallBaseActivity {
|
|||||||
updateSelfVideoViewPosition();
|
updateSelfVideoViewPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("InlinedApi")
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.S)
|
||||||
|
private void requestBluetoothPermission() {
|
||||||
|
if (ContextCompat.checkSelfPermission(
|
||||||
|
getContext(), Manifest.permission.BLUETOOTH_CONNECT) ==
|
||||||
|
PackageManager.PERMISSION_DENIED) {
|
||||||
|
requestBluetoothPermissionLauncher.launch(Manifest.permission.BLUETOOTH_CONNECT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void enableBluetoothManager() {
|
||||||
|
if (audioManager != null) {
|
||||||
|
audioManager.startBluetoothManager();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
Loading…
Reference in New Issue
Block a user