Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64ce9f3f authored by Pranav Madapurmath's avatar Pranav Madapurmath
Browse files

Resolve LeAudioService NPE.

This CL caches the LeAudioService to avoid a NPE that occurs while querying the service multiple times.

Bug: 386524717
Change-Id: I4c9f546d51524e4f4d9bc40bfb7f7b63bd594913
Flag: EXEMPT bugfix
Test: Manual
parent 93d7f7dd
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1520,15 +1520,16 @@ public class CallAudioRouteController implements CallAudioRouteAdapter {

    private boolean isLeAudioNonLeadDeviceOrServiceUnavailable(@AudioRoute.AudioRouteType int type,
            BluetoothDevice device) {
        BluetoothLeAudio leAudioService = getLeAudioService();
        if (type != AudioRoute.TYPE_BLUETOOTH_LE) {
            return false;
        } else if (getLeAudioService() == null) {
        } else if (leAudioService == null) {
            return true;
        }

        int groupId = getLeAudioService().getGroupId(device);
        int groupId = leAudioService.getGroupId(device);
        if (groupId != BluetoothLeAudio.GROUP_ID_INVALID) {
            BluetoothDevice leadDevice = getLeAudioService().getConnectedGroupLeadDevice(groupId);
            BluetoothDevice leadDevice = leAudioService.getConnectedGroupLeadDevice(groupId);
            Log.i(this, "Lead device for device (%s) is %s.", device, leadDevice);
            return leadDevice == null || !device.getAddress().equals(leadDevice.getAddress());
        }