Loading android/app/src/com/android/bluetooth/le_audio/LeAudioService.java +9 −0 Original line number Diff line number Diff line Loading @@ -831,6 +831,15 @@ public class LeAudioService extends ProfileService { * @param broadcastSettings broadcast settings for this broadcast source */ public void createBroadcast(BluetoothLeBroadcastSettings broadcastSettings) { if (mBroadcastDescriptors.size() >= getMaximumNumberOfBroadcasts()) { Log.w( TAG, "createBroadcast reached maximum allowed broadcasts number: " + getMaximumNumberOfBroadcasts()); notifyBroadcastStartFailed(null, BluetoothStatusCodes.ERROR_LOCAL_NOT_ENOUGH_RESOURCES); return; } if (mLeAudioBroadcasterNativeInterface == null) { Log.w(TAG, "Native interface not available."); return; Loading android/app/tests/unit/src/com/android/bluetooth/le_audio/LeAudioBroadcastServiceTest.java +76 −46 Original line number Diff line number Diff line Loading @@ -105,6 +105,7 @@ public class LeAudioBroadcastServiceTest { private boolean mOnBroadcastUpdatedCalled = false; private boolean mOnBroadcastUpdateFailedCalled = false; private boolean mOnBroadcastMetadataChangedCalled = false; private int mOnBroadcastStartFailedReason = BluetoothStatusCodes.SUCCESS; private final IBluetoothLeBroadcastCallback mCallbacks = new IBluetoothLeBroadcastCallback.Stub() { Loading @@ -116,6 +117,7 @@ public class LeAudioBroadcastServiceTest { @Override public void onBroadcastStartFailed(int reason) { mOnBroadcastStartFailedCalled = true; mOnBroadcastStartFailedReason = reason; } @Override Loading Loading @@ -149,8 +151,8 @@ public class LeAudioBroadcastServiceTest { } @Override public void onBroadcastMetadataChanged(int broadcastId, BluetoothLeBroadcastMetadata metadata) { public void onBroadcastMetadataChanged( int broadcastId, BluetoothLeBroadcastMetadata metadata) { mOnBroadcastMetadataChangedCalled = true; } }; Loading Loading @@ -634,6 +636,34 @@ public class LeAudioBroadcastServiceTest { Assert.assertEquals(-1, activeGroup); } @Test public void testCreateBroadcastMoreThanMaxFailed() { int broadcastId = 243; byte[] code = {0x00, 0x01, 0x00, 0x02}; mService.mBroadcastCallbacks.register(mCallbacks); BluetoothLeAudioContentMetadata.Builder meta_builder = new BluetoothLeAudioContentMetadata.Builder(); meta_builder.setLanguage("deu"); meta_builder.setProgramInfo("Subgroup broadcast info"); BluetoothLeAudioContentMetadata meta = meta_builder.build(); BluetoothLeBroadcastSettings settings = buildBroadcastSettingsFromMetadata(meta, code, 1); verifyBroadcastStarted(broadcastId, settings); mOnBroadcastStartedCalled = false; mOnBroadcastStartFailedCalled = false; // verify creating another broadcast will fail mService.createBroadcast(settings); Assert.assertFalse(mOnBroadcastStartedCalled); Assert.assertTrue(mOnBroadcastStartFailedCalled); Assert.assertEquals( BluetoothStatusCodes.ERROR_LOCAL_NOT_ENOUGH_RESOURCES, mOnBroadcastStartFailedReason); } private class LeAudioIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Loading Loading
android/app/src/com/android/bluetooth/le_audio/LeAudioService.java +9 −0 Original line number Diff line number Diff line Loading @@ -831,6 +831,15 @@ public class LeAudioService extends ProfileService { * @param broadcastSettings broadcast settings for this broadcast source */ public void createBroadcast(BluetoothLeBroadcastSettings broadcastSettings) { if (mBroadcastDescriptors.size() >= getMaximumNumberOfBroadcasts()) { Log.w( TAG, "createBroadcast reached maximum allowed broadcasts number: " + getMaximumNumberOfBroadcasts()); notifyBroadcastStartFailed(null, BluetoothStatusCodes.ERROR_LOCAL_NOT_ENOUGH_RESOURCES); return; } if (mLeAudioBroadcasterNativeInterface == null) { Log.w(TAG, "Native interface not available."); return; Loading
android/app/tests/unit/src/com/android/bluetooth/le_audio/LeAudioBroadcastServiceTest.java +76 −46 Original line number Diff line number Diff line Loading @@ -105,6 +105,7 @@ public class LeAudioBroadcastServiceTest { private boolean mOnBroadcastUpdatedCalled = false; private boolean mOnBroadcastUpdateFailedCalled = false; private boolean mOnBroadcastMetadataChangedCalled = false; private int mOnBroadcastStartFailedReason = BluetoothStatusCodes.SUCCESS; private final IBluetoothLeBroadcastCallback mCallbacks = new IBluetoothLeBroadcastCallback.Stub() { Loading @@ -116,6 +117,7 @@ public class LeAudioBroadcastServiceTest { @Override public void onBroadcastStartFailed(int reason) { mOnBroadcastStartFailedCalled = true; mOnBroadcastStartFailedReason = reason; } @Override Loading Loading @@ -149,8 +151,8 @@ public class LeAudioBroadcastServiceTest { } @Override public void onBroadcastMetadataChanged(int broadcastId, BluetoothLeBroadcastMetadata metadata) { public void onBroadcastMetadataChanged( int broadcastId, BluetoothLeBroadcastMetadata metadata) { mOnBroadcastMetadataChangedCalled = true; } }; Loading Loading @@ -634,6 +636,34 @@ public class LeAudioBroadcastServiceTest { Assert.assertEquals(-1, activeGroup); } @Test public void testCreateBroadcastMoreThanMaxFailed() { int broadcastId = 243; byte[] code = {0x00, 0x01, 0x00, 0x02}; mService.mBroadcastCallbacks.register(mCallbacks); BluetoothLeAudioContentMetadata.Builder meta_builder = new BluetoothLeAudioContentMetadata.Builder(); meta_builder.setLanguage("deu"); meta_builder.setProgramInfo("Subgroup broadcast info"); BluetoothLeAudioContentMetadata meta = meta_builder.build(); BluetoothLeBroadcastSettings settings = buildBroadcastSettingsFromMetadata(meta, code, 1); verifyBroadcastStarted(broadcastId, settings); mOnBroadcastStartedCalled = false; mOnBroadcastStartFailedCalled = false; // verify creating another broadcast will fail mService.createBroadcast(settings); Assert.assertFalse(mOnBroadcastStartedCalled); Assert.assertTrue(mOnBroadcastStartFailedCalled); Assert.assertEquals( BluetoothStatusCodes.ERROR_LOCAL_NOT_ENOUGH_RESOURCES, mOnBroadcastStartFailedReason); } private class LeAudioIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Loading