Loading android/app/src/com/android/bluetooth/bass_client/BassClientService.java +1 −1 Original line number Diff line number Diff line Loading @@ -1396,7 +1396,7 @@ public class BassClientService extends ProfileService { mBroadcastMetadataMap.put(device, sourceMetadata); Message message = stateMachine.obtainMessage(BassClientStateMachine.SWITH_BCAST_SOURCE); stateMachine.obtainMessage(BassClientStateMachine.SWITCH_BCAST_SOURCE); message.obj = sourceMetadata; message.arg1 = sourceId; stateMachine.sendMessage(message); Loading android/app/src/com/android/bluetooth/bass_client/BassClientStateMachine.java +6 −6 Original line number Diff line number Diff line Loading @@ -107,7 +107,7 @@ public class BassClientStateMachine extends StateMachine { static final int PSYNC_ACTIVE_TIMEOUT = 14; static final int CONNECT_TIMEOUT = 15; static final int REACHED_MAX_SOURCE_LIMIT = 16; static final int SWITH_BCAST_SOURCE = 17; static final int SWITCH_BCAST_SOURCE = 17; // NOTE: the value is not "final" - it is modified in the unit tests @VisibleForTesting Loading Loading @@ -1753,7 +1753,7 @@ public class BassClientStateMachine extends StateMachine { int handle = message.arg1; cancelActiveSync(handle); break; case SWITH_BCAST_SOURCE: case SWITCH_BCAST_SOURCE: metaData = (BluetoothLeBroadcastMetadata) message.obj; int sourceIdToRemove = message.arg1; // Save pending source to be added once existing source got removed Loading @@ -1768,7 +1768,7 @@ public class BassClientStateMachine extends StateMachine { && recvStateToUpdate.getPaSyncState() == BluetoothLeBroadcastReceiveState .PA_SYNC_STATE_SYNCHRONIZED) { log("SWITH_BCAST_SOURCE force source to lost PA sync"); log("SWITCH_BCAST_SOURCE force source to lost PA sync"); Message msg = obtainMessage(UPDATE_BCAST_SOURCE); msg.arg1 = sourceIdToRemove; msg.arg2 = BluetoothLeBroadcastReceiveState.PA_SYNC_STATE_IDLE; Loading Loading @@ -2099,7 +2099,7 @@ public class BassClientStateMachine extends StateMachine { case SET_BCAST_CODE: case REMOVE_BCAST_SOURCE: case REACHED_MAX_SOURCE_LIMIT: case SWITH_BCAST_SOURCE: case SWITCH_BCAST_SOURCE: case PSYNC_ACTIVE_TIMEOUT: log("defer the message: " + messageWhatToString(message.what) Loading Loading @@ -2192,8 +2192,8 @@ public class BassClientStateMachine extends StateMachine { return "REMOVE_BCAST_SOURCE"; case REACHED_MAX_SOURCE_LIMIT: return "REACHED_MAX_SOURCE_LIMIT"; case SWITH_BCAST_SOURCE: return "SWITH_BCAST_SOURCE"; case SWITCH_BCAST_SOURCE: return "SWITCH_BCAST_SOURCE"; case PSYNC_ACTIVE_TIMEOUT: return "PSYNC_ACTIVE_TIMEOUT"; case CONNECT_TIMEOUT: Loading android/app/tests/unit/src/com/android/bluetooth/bass_client/BassClientServiceTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -856,7 +856,8 @@ public class BassClientServiceTest { // Add another new broadcast source mBassClientService.addSource(mCurrentDevice, newMeta, true); // Verify all group members getting SWITH_BCAST_SOURCE message and first source got selected // Verify all group members getting SWITCH_BCAST_SOURCE message and first source got // selected // to remove assertThat(mStateMachines.size()).isEqualTo(2); for (BassClientStateMachine sm : mStateMachines.values()) { Loading @@ -867,7 +868,7 @@ public class BassClientServiceTest { messageCaptor.getAllValues().stream() .filter( m -> (m.what == BassClientStateMachine.SWITH_BCAST_SOURCE) (m.what == BassClientStateMachine.SWITCH_BCAST_SOURCE) && (m.obj == newMeta) && (m.arg1 == TEST_SOURCE_ID)) .findFirst(); Loading android/app/tests/unit/src/com/android/bluetooth/bass_client/BassClientStateMachineTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import static com.android.bluetooth.bass_client.BassClientStateMachine.SELECT_BC import static com.android.bluetooth.bass_client.BassClientStateMachine.SET_BCAST_CODE; import static com.android.bluetooth.bass_client.BassClientStateMachine.START_SCAN_OFFLOAD; import static com.android.bluetooth.bass_client.BassClientStateMachine.STOP_SCAN_OFFLOAD; import static com.android.bluetooth.bass_client.BassClientStateMachine.SWITH_BCAST_SOURCE; import static com.android.bluetooth.bass_client.BassClientStateMachine.SWITCH_BCAST_SOURCE; import static com.android.bluetooth.bass_client.BassClientStateMachine.UPDATE_BCAST_SOURCE; import static com.android.bluetooth.bass_client.BassConstants.CLIENT_CHARACTERISTIC_CONFIG; Loading Loading @@ -1225,7 +1225,7 @@ public class BassClientStateMachineTest { Mockito.mock(BluetoothGattCharacteristic.class); mBassClientStateMachine.mBroadcastScanControlPoint = scanControlPoint; mBassClientStateMachine.sendMessage(SWITH_BCAST_SOURCE, sourceId, 0, metadata); mBassClientStateMachine.sendMessage(SWITCH_BCAST_SOURCE, sourceId, 0, metadata); TestUtils.waitForLooperToFinishScheduledTask(mHandlerThread.getLooper()); assertThat(mBassClientStateMachine.mPendingSourceToSwitch).isEqualTo(metadata); } Loading Loading @@ -1635,9 +1635,9 @@ public class BassClientStateMachineTest { assertThat(mBassClientStateMachine.hasDeferredMessagesSuper(REACHED_MAX_SOURCE_LIMIT)) .isTrue(); mBassClientStateMachine.sendMessage(SWITH_BCAST_SOURCE); mBassClientStateMachine.sendMessage(SWITCH_BCAST_SOURCE); TestUtils.waitForLooperToFinishScheduledTask(mHandlerThread.getLooper()); assertThat(mBassClientStateMachine.hasDeferredMessagesSuper(SWITH_BCAST_SOURCE)).isTrue(); assertThat(mBassClientStateMachine.hasDeferredMessagesSuper(SWITCH_BCAST_SOURCE)).isTrue(); } @Test Loading Loading
android/app/src/com/android/bluetooth/bass_client/BassClientService.java +1 −1 Original line number Diff line number Diff line Loading @@ -1396,7 +1396,7 @@ public class BassClientService extends ProfileService { mBroadcastMetadataMap.put(device, sourceMetadata); Message message = stateMachine.obtainMessage(BassClientStateMachine.SWITH_BCAST_SOURCE); stateMachine.obtainMessage(BassClientStateMachine.SWITCH_BCAST_SOURCE); message.obj = sourceMetadata; message.arg1 = sourceId; stateMachine.sendMessage(message); Loading
android/app/src/com/android/bluetooth/bass_client/BassClientStateMachine.java +6 −6 Original line number Diff line number Diff line Loading @@ -107,7 +107,7 @@ public class BassClientStateMachine extends StateMachine { static final int PSYNC_ACTIVE_TIMEOUT = 14; static final int CONNECT_TIMEOUT = 15; static final int REACHED_MAX_SOURCE_LIMIT = 16; static final int SWITH_BCAST_SOURCE = 17; static final int SWITCH_BCAST_SOURCE = 17; // NOTE: the value is not "final" - it is modified in the unit tests @VisibleForTesting Loading Loading @@ -1753,7 +1753,7 @@ public class BassClientStateMachine extends StateMachine { int handle = message.arg1; cancelActiveSync(handle); break; case SWITH_BCAST_SOURCE: case SWITCH_BCAST_SOURCE: metaData = (BluetoothLeBroadcastMetadata) message.obj; int sourceIdToRemove = message.arg1; // Save pending source to be added once existing source got removed Loading @@ -1768,7 +1768,7 @@ public class BassClientStateMachine extends StateMachine { && recvStateToUpdate.getPaSyncState() == BluetoothLeBroadcastReceiveState .PA_SYNC_STATE_SYNCHRONIZED) { log("SWITH_BCAST_SOURCE force source to lost PA sync"); log("SWITCH_BCAST_SOURCE force source to lost PA sync"); Message msg = obtainMessage(UPDATE_BCAST_SOURCE); msg.arg1 = sourceIdToRemove; msg.arg2 = BluetoothLeBroadcastReceiveState.PA_SYNC_STATE_IDLE; Loading Loading @@ -2099,7 +2099,7 @@ public class BassClientStateMachine extends StateMachine { case SET_BCAST_CODE: case REMOVE_BCAST_SOURCE: case REACHED_MAX_SOURCE_LIMIT: case SWITH_BCAST_SOURCE: case SWITCH_BCAST_SOURCE: case PSYNC_ACTIVE_TIMEOUT: log("defer the message: " + messageWhatToString(message.what) Loading Loading @@ -2192,8 +2192,8 @@ public class BassClientStateMachine extends StateMachine { return "REMOVE_BCAST_SOURCE"; case REACHED_MAX_SOURCE_LIMIT: return "REACHED_MAX_SOURCE_LIMIT"; case SWITH_BCAST_SOURCE: return "SWITH_BCAST_SOURCE"; case SWITCH_BCAST_SOURCE: return "SWITCH_BCAST_SOURCE"; case PSYNC_ACTIVE_TIMEOUT: return "PSYNC_ACTIVE_TIMEOUT"; case CONNECT_TIMEOUT: Loading
android/app/tests/unit/src/com/android/bluetooth/bass_client/BassClientServiceTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -856,7 +856,8 @@ public class BassClientServiceTest { // Add another new broadcast source mBassClientService.addSource(mCurrentDevice, newMeta, true); // Verify all group members getting SWITH_BCAST_SOURCE message and first source got selected // Verify all group members getting SWITCH_BCAST_SOURCE message and first source got // selected // to remove assertThat(mStateMachines.size()).isEqualTo(2); for (BassClientStateMachine sm : mStateMachines.values()) { Loading @@ -867,7 +868,7 @@ public class BassClientServiceTest { messageCaptor.getAllValues().stream() .filter( m -> (m.what == BassClientStateMachine.SWITH_BCAST_SOURCE) (m.what == BassClientStateMachine.SWITCH_BCAST_SOURCE) && (m.obj == newMeta) && (m.arg1 == TEST_SOURCE_ID)) .findFirst(); Loading
android/app/tests/unit/src/com/android/bluetooth/bass_client/BassClientStateMachineTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import static com.android.bluetooth.bass_client.BassClientStateMachine.SELECT_BC import static com.android.bluetooth.bass_client.BassClientStateMachine.SET_BCAST_CODE; import static com.android.bluetooth.bass_client.BassClientStateMachine.START_SCAN_OFFLOAD; import static com.android.bluetooth.bass_client.BassClientStateMachine.STOP_SCAN_OFFLOAD; import static com.android.bluetooth.bass_client.BassClientStateMachine.SWITH_BCAST_SOURCE; import static com.android.bluetooth.bass_client.BassClientStateMachine.SWITCH_BCAST_SOURCE; import static com.android.bluetooth.bass_client.BassClientStateMachine.UPDATE_BCAST_SOURCE; import static com.android.bluetooth.bass_client.BassConstants.CLIENT_CHARACTERISTIC_CONFIG; Loading Loading @@ -1225,7 +1225,7 @@ public class BassClientStateMachineTest { Mockito.mock(BluetoothGattCharacteristic.class); mBassClientStateMachine.mBroadcastScanControlPoint = scanControlPoint; mBassClientStateMachine.sendMessage(SWITH_BCAST_SOURCE, sourceId, 0, metadata); mBassClientStateMachine.sendMessage(SWITCH_BCAST_SOURCE, sourceId, 0, metadata); TestUtils.waitForLooperToFinishScheduledTask(mHandlerThread.getLooper()); assertThat(mBassClientStateMachine.mPendingSourceToSwitch).isEqualTo(metadata); } Loading Loading @@ -1635,9 +1635,9 @@ public class BassClientStateMachineTest { assertThat(mBassClientStateMachine.hasDeferredMessagesSuper(REACHED_MAX_SOURCE_LIMIT)) .isTrue(); mBassClientStateMachine.sendMessage(SWITH_BCAST_SOURCE); mBassClientStateMachine.sendMessage(SWITCH_BCAST_SOURCE); TestUtils.waitForLooperToFinishScheduledTask(mHandlerThread.getLooper()); assertThat(mBassClientStateMachine.hasDeferredMessagesSuper(SWITH_BCAST_SOURCE)).isTrue(); assertThat(mBassClientStateMachine.hasDeferredMessagesSuper(SWITCH_BCAST_SOURCE)).isTrue(); } @Test Loading