Loading android/app/src/com/android/bluetooth/le_audio/LeAudioService.java +117 −39 Original line number Diff line number Diff line Loading @@ -1820,6 +1820,10 @@ public class LeAudioService extends ProfileService { public void connect(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { Loading @@ -1835,6 +1839,10 @@ public class LeAudioService extends ProfileService { public void disconnect(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { Loading @@ -1850,6 +1858,9 @@ public class LeAudioService extends ProfileService { public void getConnectedDevices(AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); List<BluetoothDevice> defaultValue = new ArrayList<>(0); if (service != null) { Loading @@ -1865,6 +1876,9 @@ public class LeAudioService extends ProfileService { public void getConnectedGroupLeadDevice(int groupId, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); BluetoothDevice defaultValue = null; if (service != null) { Loading @@ -1880,6 +1894,9 @@ public class LeAudioService extends ProfileService { public void getDevicesMatchingConnectionStates(int[] states, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); List<BluetoothDevice> defaultValue = new ArrayList<>(0); if (service != null) { Loading @@ -1895,6 +1912,10 @@ public class LeAudioService extends ProfileService { public void getConnectionState(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); int defaultValue = BluetoothProfile.STATE_DISCONNECTED; if (service != null) { Loading @@ -1910,6 +1931,10 @@ public class LeAudioService extends ProfileService { public void setActiveDevice(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { Loading @@ -1924,6 +1949,9 @@ public class LeAudioService extends ProfileService { @Override public void getActiveDevices(AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); List<BluetoothDevice> defaultValue = new ArrayList<>(); if (service != null) { Loading @@ -1939,6 +1967,10 @@ public class LeAudioService extends ProfileService { public void getAudioLocation(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); int defaultValue = BluetoothLeAudio.AUDIO_LOCATION_INVALID; if (service != null) { Loading @@ -1953,6 +1985,10 @@ public class LeAudioService extends ProfileService { @Override public void setConnectionPolicy(BluetoothDevice device, int connectionPolicy, AttributionSource source, SynchronousResultReceiver receiver) { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); try { LeAudioService service = getService(source); boolean defaultValue = false; Loading @@ -1969,11 +2005,17 @@ public class LeAudioService extends ProfileService { public void getConnectionPolicy(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); int defaultValue = BluetoothProfile.CONNECTION_POLICY_UNKNOWN; if (service != null) { defaultValue = service.getConnectionPolicy(device); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); defaultValue = service.getConnectionPolicy(device); receiver.send(defaultValue); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -1984,12 +2026,17 @@ public class LeAudioService extends ProfileService { public void getGroupId(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); int defaultValue = LE_AUDIO_GROUP_ID_INVALID; if (service != null) { defaultValue = service.getGroupId(device); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); defaultValue = service.getGroupId(device); receiver.send(defaultValue); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -2000,11 +2047,17 @@ public class LeAudioService extends ProfileService { public void groupAddNode(int group_id, BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { defaultValue = service.groupAddNode(group_id, device); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); defaultValue = service.groupAddNode(group_id, device); receiver.send(defaultValue); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -2015,11 +2068,17 @@ public class LeAudioService extends ProfileService { public void groupRemoveNode(int groupId, BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { defaultValue = service.groupRemoveNode(groupId, device); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); defaultValue = service.groupRemoveNode(groupId, device); receiver.send(defaultValue); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -2030,10 +2089,15 @@ public class LeAudioService extends ProfileService { public void setVolume(int volume, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); if (service != null) { service.setVolume(volume); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); service.setVolume(volume); receiver.send(null); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -2043,14 +2107,17 @@ public class LeAudioService extends ProfileService { @Override public void registerCallback(IBluetoothLeAudioCallback callback, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(callback, "callback cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); if ((service == null) || (service.mLeAudioCallbacks == null)) { receiver.propagateException(new IllegalStateException("Service is unavailable")); return; throw new IllegalStateException("Service is unavailable: " + service); } enforceBluetoothPrivilegedPermission(service); try { service.mLeAudioCallbacks.register(callback); receiver.send(null); } catch (RuntimeException e) { Loading @@ -2061,14 +2128,18 @@ public class LeAudioService extends ProfileService { @Override public void unregisterCallback(IBluetoothLeAudioCallback callback, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(callback, "callback cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); if ((service == null) || (service.mLeAudioCallbacks == null)) { receiver.propagateException(new IllegalStateException("Service is unavailable")); return; throw new IllegalStateException("Service is unavailable"); } enforceBluetoothPrivilegedPermission(service); try { service.mLeAudioCallbacks.unregister(callback); receiver.send(null); } catch (RuntimeException e) { Loading @@ -2079,14 +2150,18 @@ public class LeAudioService extends ProfileService { @Override public void registerLeBroadcastCallback(IBluetoothLeBroadcastCallback callback, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(callback, "callback cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); if ((service == null) || (service.mBroadcastCallbacks == null)) { receiver.propagateException(new IllegalStateException("Service is unavailable")); return; throw new IllegalStateException("Service is unavailable"); } enforceBluetoothPrivilegedPermission(service); try { service.mBroadcastCallbacks.register(callback); receiver.send(null); } catch (RuntimeException e) { Loading @@ -2097,14 +2172,17 @@ public class LeAudioService extends ProfileService { @Override public void unregisterLeBroadcastCallback(IBluetoothLeBroadcastCallback callback, AttributionSource source, SynchronousResultReceiver receiver) { try { LeAudioService service = getService(source); if ((service == null) || (service.mBroadcastCallbacks == null)) { receiver.propagateException(new IllegalStateException("Service is unavailable")); return; throw new IllegalStateException("Service is unavailable"); } enforceBluetoothPrivilegedPermission(service); try { Objects.requireNonNull(callback, "callback cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); service.mBroadcastCallbacks.unregister(callback); receiver.send(null); } catch (RuntimeException e) { Loading Loading
android/app/src/com/android/bluetooth/le_audio/LeAudioService.java +117 −39 Original line number Diff line number Diff line Loading @@ -1820,6 +1820,10 @@ public class LeAudioService extends ProfileService { public void connect(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { Loading @@ -1835,6 +1839,10 @@ public class LeAudioService extends ProfileService { public void disconnect(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { Loading @@ -1850,6 +1858,9 @@ public class LeAudioService extends ProfileService { public void getConnectedDevices(AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); List<BluetoothDevice> defaultValue = new ArrayList<>(0); if (service != null) { Loading @@ -1865,6 +1876,9 @@ public class LeAudioService extends ProfileService { public void getConnectedGroupLeadDevice(int groupId, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); BluetoothDevice defaultValue = null; if (service != null) { Loading @@ -1880,6 +1894,9 @@ public class LeAudioService extends ProfileService { public void getDevicesMatchingConnectionStates(int[] states, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); List<BluetoothDevice> defaultValue = new ArrayList<>(0); if (service != null) { Loading @@ -1895,6 +1912,10 @@ public class LeAudioService extends ProfileService { public void getConnectionState(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); int defaultValue = BluetoothProfile.STATE_DISCONNECTED; if (service != null) { Loading @@ -1910,6 +1931,10 @@ public class LeAudioService extends ProfileService { public void setActiveDevice(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { Loading @@ -1924,6 +1949,9 @@ public class LeAudioService extends ProfileService { @Override public void getActiveDevices(AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); List<BluetoothDevice> defaultValue = new ArrayList<>(); if (service != null) { Loading @@ -1939,6 +1967,10 @@ public class LeAudioService extends ProfileService { public void getAudioLocation(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); int defaultValue = BluetoothLeAudio.AUDIO_LOCATION_INVALID; if (service != null) { Loading @@ -1953,6 +1985,10 @@ public class LeAudioService extends ProfileService { @Override public void setConnectionPolicy(BluetoothDevice device, int connectionPolicy, AttributionSource source, SynchronousResultReceiver receiver) { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); try { LeAudioService service = getService(source); boolean defaultValue = false; Loading @@ -1969,11 +2005,17 @@ public class LeAudioService extends ProfileService { public void getConnectionPolicy(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); int defaultValue = BluetoothProfile.CONNECTION_POLICY_UNKNOWN; if (service != null) { defaultValue = service.getConnectionPolicy(device); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); defaultValue = service.getConnectionPolicy(device); receiver.send(defaultValue); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -1984,12 +2026,17 @@ public class LeAudioService extends ProfileService { public void getGroupId(BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); int defaultValue = LE_AUDIO_GROUP_ID_INVALID; if (service != null) { defaultValue = service.getGroupId(device); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); defaultValue = service.getGroupId(device); receiver.send(defaultValue); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -2000,11 +2047,17 @@ public class LeAudioService extends ProfileService { public void groupAddNode(int group_id, BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { defaultValue = service.groupAddNode(group_id, device); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); defaultValue = service.groupAddNode(group_id, device); receiver.send(defaultValue); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -2015,11 +2068,17 @@ public class LeAudioService extends ProfileService { public void groupRemoveNode(int groupId, BluetoothDevice device, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(device, "device cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); boolean defaultValue = false; if (service != null) { defaultValue = service.groupRemoveNode(groupId, device); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); defaultValue = service.groupRemoveNode(groupId, device); receiver.send(defaultValue); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -2030,10 +2089,15 @@ public class LeAudioService extends ProfileService { public void setVolume(int volume, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); if (service != null) { service.setVolume(volume); if (service == null) { throw new IllegalStateException("service is null"); } enforceBluetoothPrivilegedPermission(service); service.setVolume(volume); receiver.send(null); } catch (RuntimeException e) { receiver.propagateException(e); Loading @@ -2043,14 +2107,17 @@ public class LeAudioService extends ProfileService { @Override public void registerCallback(IBluetoothLeAudioCallback callback, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(callback, "callback cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); if ((service == null) || (service.mLeAudioCallbacks == null)) { receiver.propagateException(new IllegalStateException("Service is unavailable")); return; throw new IllegalStateException("Service is unavailable: " + service); } enforceBluetoothPrivilegedPermission(service); try { service.mLeAudioCallbacks.register(callback); receiver.send(null); } catch (RuntimeException e) { Loading @@ -2061,14 +2128,18 @@ public class LeAudioService extends ProfileService { @Override public void unregisterCallback(IBluetoothLeAudioCallback callback, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(callback, "callback cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); if ((service == null) || (service.mLeAudioCallbacks == null)) { receiver.propagateException(new IllegalStateException("Service is unavailable")); return; throw new IllegalStateException("Service is unavailable"); } enforceBluetoothPrivilegedPermission(service); try { service.mLeAudioCallbacks.unregister(callback); receiver.send(null); } catch (RuntimeException e) { Loading @@ -2079,14 +2150,18 @@ public class LeAudioService extends ProfileService { @Override public void registerLeBroadcastCallback(IBluetoothLeBroadcastCallback callback, AttributionSource source, SynchronousResultReceiver receiver) { try { Objects.requireNonNull(callback, "callback cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); LeAudioService service = getService(source); if ((service == null) || (service.mBroadcastCallbacks == null)) { receiver.propagateException(new IllegalStateException("Service is unavailable")); return; throw new IllegalStateException("Service is unavailable"); } enforceBluetoothPrivilegedPermission(service); try { service.mBroadcastCallbacks.register(callback); receiver.send(null); } catch (RuntimeException e) { Loading @@ -2097,14 +2172,17 @@ public class LeAudioService extends ProfileService { @Override public void unregisterLeBroadcastCallback(IBluetoothLeBroadcastCallback callback, AttributionSource source, SynchronousResultReceiver receiver) { try { LeAudioService service = getService(source); if ((service == null) || (service.mBroadcastCallbacks == null)) { receiver.propagateException(new IllegalStateException("Service is unavailable")); return; throw new IllegalStateException("Service is unavailable"); } enforceBluetoothPrivilegedPermission(service); try { Objects.requireNonNull(callback, "callback cannot be null"); Objects.requireNonNull(source, "source cannot be null"); Objects.requireNonNull(receiver, "receiver cannot be null"); service.mBroadcastCallbacks.unregister(callback); receiver.send(null); } catch (RuntimeException e) { Loading