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

Commit 1d49637e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes If5003302,I46b03d02,I02e35e94,Ie36c68fd into tm-qpr-dev

* changes:
  BassClient: Fix missing SID in the reported metadata
  BassClient: Fix nullptr on BluetoothLeBroadcastSubgroup creation
  broadcast: Fix address type in the advertising
  broadcast: Fix filling broadcast code in JNI
parents 37abe780 d5c948ea
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1131,9 +1131,11 @@ static void CreateBroadcastNative(JNIEnv* env, jobject object,
  std::shared_lock<std::shared_timed_mutex> lock(sBroadcasterInterfaceMutex);
  if (!sLeAudioBroadcasterInterface) return;

  std::array<uint8_t, 16> code_array;
  if (broadcast_code)
    env->GetByteArrayRegion(broadcast_code, 0, 16, (jbyte*)code_array.data());
  std::array<uint8_t, 16> code_array{};
  if (broadcast_code) {
    jsize size = env->GetArrayLength(broadcast_code);
    env->GetByteArrayRegion(broadcast_code, 0, size, (jbyte*)code_array.data());
  }

  jbyte* meta = env->GetByteArrayElements(metadata, nullptr);
  sLeAudioBroadcasterInterface->CreateBroadcast(
+2 −2
Original line number Diff line number Diff line
@@ -104,9 +104,9 @@ class BaseData {
            presentationDelay = new byte[3];
            codecId = new byte[5];
            codecConfigLength = 0;
            codecConfigInfo = null;
            codecConfigInfo = new byte[0];
            metaDataLength = 0;
            metaData = null;
            metaData = new byte[0];
            numSubGroups = 0;
            bisIndices = null;
            index = (byte) 0xFF;
+1 −0
Original line number Diff line number Diff line
@@ -461,6 +461,7 @@ public class BassClientStateMachine extends StateMachine {
            int broadcastId = result.getBroadcastId();
            log("broadcast ID: " + broadcastId);
            metaData.setBroadcastId(broadcastId);
            metaData.setSourceAdvertisingSid(result.getAdvSid());
        }
        return metaData.build();
    }
+1 −0
Original line number Diff line number Diff line
@@ -293,6 +293,7 @@ class BroadcastStateMachineImpl : public BroadcastStateMachine {
      adv_params.primary_advertising_phy = PHY_LE_1M;
      adv_params.secondary_advertising_phy = streaming_phy;
      adv_params.scan_request_notification_enable = 0;
      adv_params.own_address_type = BLE_ADDR_RANDOM;

      periodic_params.max_interval = BroadcastStateMachine::kPaIntervalMax;
      periodic_params.min_interval = BroadcastStateMachine::kPaIntervalMin;
+8 −2
Original line number Diff line number Diff line
@@ -856,12 +856,13 @@ TEST_F(StateMachineTest, GetBroadcastAnnouncement) {
            broadcasts_[broadcast_id]->GetBroadcastAnnouncement());
}

TEST_F(StateMachineTest, AnnouncementUUIDs) {
TEST_F(StateMachineTest, AnnouncementTest) {
  tBTM_BLE_ADV_PARAMS adv_params;
  std::vector<uint8_t> a_data;
  std::vector<uint8_t> p_data;

  EXPECT_CALL(*mock_ble_advertising_manager_, StartAdvertisingSet)
      .WillOnce([&p_data, &a_data](
      .WillOnce([&p_data, &a_data, &adv_params](
                    base::Callback<void(uint8_t, int8_t, uint8_t)> cb,
                    tBTM_BLE_ADV_PARAMS* params,
                    std::vector<uint8_t> advertise_data,
@@ -879,6 +880,8 @@ TEST_F(StateMachineTest, AnnouncementUUIDs) {
        a_data = std::move(advertise_data);
        p_data = std::move(periodic_data);

        adv_params = *params;

        cb.Run(advertiser_id, tx_power, status);
      });

@@ -900,6 +903,9 @@ TEST_F(StateMachineTest, AnnouncementUUIDs) {
  ASSERT_EQ(p_data[1], 0x16);  // BTM_BLE_AD_TYPE_SERVICE_DATA_TYPE
  ASSERT_EQ(p_data[2], (kBasicAudioAnnouncementServiceUuid & 0x00FF));
  ASSERT_EQ(p_data[3], ((kBasicAudioAnnouncementServiceUuid >> 8) & 0x00FF));

  // Check advertising parameters
  ASSERT_EQ(adv_params.own_address_type, BLE_ADDR_RANDOM);
}

}  // namespace