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

Commit b6fe5a6f authored by Chris Manton's avatar Chris Manton Committed by Automerger Merge Worker
Browse files

Merge changes I9e87cca9,Ia1ed4072,I3108b5ec,I178a2c3a,Ie20a3097, ... into main...

Merge changes I9e87cca9,Ia1ed4072,I3108b5ec,I178a2c3a,Ie20a3097, ... into main am: e545ba38 am: ed4b6a14

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3156507



Change-Id: Iaf5f748e027426f699e40e93ce8c68e87845e2f0
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 00670ac7 ed4b6a14
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@
#include "hci/controller_interface.h"
#include "internal_include/stack_config.h"
#include "main/shim/entry.h"
#include "os/log.h"
#include "osi/include/properties.h"
#include "stack/include/bt_types.h"
#include "stack/include/btm_api_types.h"
@@ -1091,7 +1090,7 @@ public:
    }
  } state_machine_callbacks_;

  static class BroadcastAdvertisingCallbacks : public AdvertisingCallbacks {
  static class BroadcastAdvertisingCallbacks : public ::AdvertisingCallbacks {
    void OnAdvertisingSetStarted(int reg_id, uint8_t advertiser_id,
                                 int8_t tx_power, uint8_t status) {
      if (!instance) return;
+16 −15
Original line number Diff line number Diff line
@@ -425,63 +425,64 @@ class LeAdvertisingManagerFacadeService : public LeAdvertisingManagerFacade::Ser
    callback_events_.OnIncomingEvent(msg);
  };

  void OnAdvertisingEnabled(uint8_t advertiser_id, bool enable, uint8_t status) {
  void OnAdvertisingEnabled(uint8_t advertiser_id, bool enable, AdvertisingStatus status) {
    AdvertisingCallbackMsg msg;
    msg.set_message_type(AdvertisingCallbackMsgType::ADVERTISING_ENABLED);
    msg.set_advertiser_id(advertiser_id);
    msg.set_status(static_cast<facade::AdvertisingStatus>(status));
    msg.set_data(enable ? 1 : 0);
    callback_events_.OnIncomingEvent(msg);
  };
  }

  void OnAdvertisingDataSet(uint8_t advertiser_id, uint8_t status) {
  void OnAdvertisingDataSet(uint8_t advertiser_id, AdvertisingStatus status) {
    AdvertisingCallbackMsg msg;
    msg.set_message_type(AdvertisingCallbackMsgType::ADVERTISING_DATA_SET);
    msg.set_advertiser_id(advertiser_id);
    msg.set_status(static_cast<facade::AdvertisingStatus>(status));
    callback_events_.OnIncomingEvent(msg);
  };
  }

  void OnScanResponseDataSet(uint8_t advertiser_id, uint8_t status) {
  void OnScanResponseDataSet(uint8_t advertiser_id, AdvertisingStatus status) {
    AdvertisingCallbackMsg msg;
    msg.set_message_type(AdvertisingCallbackMsgType::SCAN_RESPONSE_DATA_SET);
    msg.set_advertiser_id(advertiser_id);
    msg.set_status(static_cast<facade::AdvertisingStatus>(status));
    callback_events_.OnIncomingEvent(msg);
  };
  }

  void OnAdvertisingParametersUpdated(
      uint8_t advertiser_id, int8_t /* tx_power */, uint8_t status) {
  void OnAdvertisingParametersUpdated(uint8_t advertiser_id, int8_t /* tx_power */,
                                      AdvertisingStatus status) {
    AdvertisingCallbackMsg msg;
    msg.set_message_type(AdvertisingCallbackMsgType::ADVERTISING_PARAMETERS_UPDATED);
    msg.set_advertiser_id(advertiser_id);
    msg.set_status(static_cast<facade::AdvertisingStatus>(status));
    callback_events_.OnIncomingEvent(msg);
  };
  }

  void OnPeriodicAdvertisingParametersUpdated(uint8_t advertiser_id, uint8_t status) {
  void OnPeriodicAdvertisingParametersUpdated(uint8_t advertiser_id, AdvertisingStatus status) {
    AdvertisingCallbackMsg msg;
    msg.set_message_type(AdvertisingCallbackMsgType::PERIODIC_ADVERTISING_PARAMETERS_UPDATED);
    msg.set_advertiser_id(advertiser_id);
    msg.set_status(static_cast<facade::AdvertisingStatus>(status));
    callback_events_.OnIncomingEvent(msg);
  };
  }

  void OnPeriodicAdvertisingDataSet(uint8_t advertiser_id, uint8_t status) {
  void OnPeriodicAdvertisingDataSet(uint8_t advertiser_id, AdvertisingStatus status) {
    AdvertisingCallbackMsg msg;
    msg.set_message_type(AdvertisingCallbackMsgType::PERIODIC_ADVERTISING_DATA_SET);
    msg.set_advertiser_id(advertiser_id);
    msg.set_status(static_cast<facade::AdvertisingStatus>(status));
    callback_events_.OnIncomingEvent(msg);
  };
  }

  void OnPeriodicAdvertisingEnabled(uint8_t advertiser_id, bool /* enable */, uint8_t status) {
  void OnPeriodicAdvertisingEnabled(uint8_t advertiser_id, bool /* enable */,
                                    AdvertisingStatus status) {
    AdvertisingCallbackMsg msg;
    msg.set_message_type(AdvertisingCallbackMsgType::PERIODIC_ADVERTISING_ENABLED);
    msg.set_advertiser_id(advertiser_id);
    msg.set_status(static_cast<facade::AdvertisingStatus>(status));
    callback_events_.OnIncomingEvent(msg);
  };
  }

  void OnOwnAddressRead(uint8_t advertiser_id, uint8_t address_type, Address address) {
    log::info("OnOwnAddressRead Address:{}, address_type:{}", address, address_type);
+7 −5
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@
#include <memory>
#include <mutex>

#include "common/init_flags.h"
#include "common/strings.h"
#include "hardware/ble_advertiser.h"
#include "hci/acl_manager.h"
@@ -33,7 +32,6 @@
#include "hci/le_advertising_interface.h"
#include "module.h"
#include "os/handler.h"
#include "os/log.h"
#include "os/system_properties.h"
#include "packet/fragmenting_inserter.h"

@@ -343,7 +341,13 @@ struct LeAdvertisingManager::impl : public bluetooth::hci::LeAddressManagerCallb
          advertising_sets_[advertiser_id].timeout_callback.Reset();
        }
      } else {
        advertising_callbacks_->OnAdvertisingEnabled(advertiser_id, false, (uint8_t)status);
        if (status == ErrorCode::LIMIT_REACHED) {
          advertising_callbacks_->OnAdvertisingEnabled(advertiser_id, false,
                                                       AdvertisingCallback::TOO_MANY_ADVERTISERS);
        } else {
          advertising_callbacks_->OnAdvertisingEnabled(advertiser_id, false,
                                                       AdvertisingCallback::TIMEOUT);
        }
      }
      return;
    }
@@ -1092,7 +1096,6 @@ struct LeAdvertisingManager::impl : public bluetooth::hci::LeAddressManagerCallb
          send_data_fragment(advertiser_id, set_scan_rsp, data, Operation::COMPLETE_ADVERTISEMENT);
        } else {
          std::vector<GapData> sub_data;
          uint16_t sub_data_len = 0;
          Operation operation = Operation::FIRST_FRAGMENT;

          std::vector<std::unique_ptr<packet::RawBuilder>> fragments;
@@ -1289,7 +1292,6 @@ struct LeAdvertisingManager::impl : public bluetooth::hci::LeAddressManagerCallb
      send_periodic_data_fragment(advertiser_id, data, Operation::COMPLETE_ADVERTISEMENT);
    } else {
      std::vector<GapData> sub_data;
      uint16_t sub_data_len = 0;
      Operation operation = Operation::FIRST_FRAGMENT;

      std::vector<std::unique_ptr<packet::RawBuilder>> fragments;
+25 −21
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@
#include <vector>

#include "common/callback.h"
#include "hci/address_with_type.h"
#include "hci/hci_packets.h"
#include "module.h"

@@ -85,19 +84,24 @@ class AdvertisingCallback {
     TOO_MANY_ADVERTISERS,
     ALREADY_STARTED,
     INTERNAL_ERROR,
    FEATURE_UNSUPPORTED
     FEATURE_UNSUPPORTED,
     TIMEOUT
   };

   virtual ~AdvertisingCallback() = default;
  virtual void OnAdvertisingSetStarted(
      int reg_id, uint8_t advertiser_id, int8_t tx_power, AdvertisingStatus status) = 0;
  virtual void OnAdvertisingEnabled(uint8_t advertiser_id, bool enable, uint8_t status) = 0;
  virtual void OnAdvertisingDataSet(uint8_t advertiser_id, uint8_t status) = 0;
  virtual void OnScanResponseDataSet(uint8_t advertiser_id, uint8_t status) = 0;
  virtual void OnAdvertisingParametersUpdated(uint8_t advertiser_id, int8_t tx_power, uint8_t status) = 0;
  virtual void OnPeriodicAdvertisingParametersUpdated(uint8_t advertiser_id, uint8_t status) = 0;
  virtual void OnPeriodicAdvertisingDataSet(uint8_t advertiser_id, uint8_t status) = 0;
  virtual void OnPeriodicAdvertisingEnabled(uint8_t advertiser_id, bool enable, uint8_t status) = 0;
   virtual void OnAdvertisingSetStarted(int reg_id, uint8_t advertiser_id, int8_t tx_power,
                                        AdvertisingStatus status) = 0;
   virtual void OnAdvertisingEnabled(uint8_t advertiser_id, bool enable,
                                     AdvertisingStatus status) = 0;
   virtual void OnAdvertisingDataSet(uint8_t advertiser_id, AdvertisingStatus status) = 0;
   virtual void OnScanResponseDataSet(uint8_t advertiser_id, AdvertisingStatus status) = 0;
   virtual void OnAdvertisingParametersUpdated(uint8_t advertiser_id, int8_t tx_power,
                                               AdvertisingStatus status) = 0;
   virtual void OnPeriodicAdvertisingParametersUpdated(uint8_t advertiser_id,
                                                       AdvertisingStatus status) = 0;
   virtual void OnPeriodicAdvertisingDataSet(uint8_t advertiser_id, AdvertisingStatus status) = 0;
   virtual void OnPeriodicAdvertisingEnabled(uint8_t advertiser_id, bool enable,
                                             AdvertisingStatus status) = 0;
   virtual void OnOwnAddressRead(uint8_t advertiser_id, uint8_t address_type, Address address) = 0;
};

+12 −8
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@
#include <algorithm>
#include <chrono>
#include <future>
#include <map>

#include "common/bind.h"
#include "hardware/ble_advertiser.h"
@@ -240,13 +239,18 @@ class LeAdvertisingManagerTest : public ::testing::Test {
   public:
    MOCK_METHOD4(
        OnAdvertisingSetStarted, void(int reg_id, uint8_t advertiser_id, int8_t tx_power, AdvertisingStatus status));
    MOCK_METHOD3(OnAdvertisingEnabled, void(uint8_t advertiser_id, bool enable, uint8_t status));
    MOCK_METHOD2(OnAdvertisingDataSet, void(uint8_t advertiser_id, uint8_t status));
    MOCK_METHOD2(OnScanResponseDataSet, void(uint8_t advertiser_id, uint8_t status));
    MOCK_METHOD3(OnAdvertisingParametersUpdated, void(uint8_t advertiser_id, int8_t tx_power, uint8_t status));
    MOCK_METHOD2(OnPeriodicAdvertisingParametersUpdated, void(uint8_t advertiser_id, uint8_t status));
    MOCK_METHOD2(OnPeriodicAdvertisingDataSet, void(uint8_t advertiser_id, uint8_t status));
    MOCK_METHOD3(OnPeriodicAdvertisingEnabled, void(uint8_t advertiser_id, bool enable, uint8_t status));
    MOCK_METHOD3(OnAdvertisingEnabled,
                 void(uint8_t advertiser_id, bool enable, AdvertisingStatus status));
    MOCK_METHOD2(OnAdvertisingDataSet, void(uint8_t advertiser_id, AdvertisingStatus status));
    MOCK_METHOD2(OnScanResponseDataSet, void(uint8_t advertiser_id, AdvertisingStatus status));
    MOCK_METHOD3(OnAdvertisingParametersUpdated,
                 void(uint8_t advertiser_id, int8_t tx_power, AdvertisingStatus status));
    MOCK_METHOD2(OnPeriodicAdvertisingParametersUpdated,
                 void(uint8_t advertiser_id, AdvertisingStatus status));
    MOCK_METHOD2(OnPeriodicAdvertisingDataSet,
                 void(uint8_t advertiser_id, AdvertisingStatus status));
    MOCK_METHOD3(OnPeriodicAdvertisingEnabled,
                 void(uint8_t advertiser_id, bool enable, AdvertisingStatus status));
    MOCK_METHOD3(OnOwnAddressRead, void(uint8_t advertiser_id, uint8_t address_type, Address address));
  } mock_advertising_callback_;
};
Loading