Loading system/gd/btaa/activity_attribution.h +12 −1 Original line number Diff line number Diff line Loading @@ -25,12 +25,23 @@ namespace activity_attribution { enum class Activity : uint8_t { UNKNOWN = 0, ADVERTISE, CONNECT, CONTROL, SCAN, HFP, VENDOR }; struct BtaaAggregationEntry { hci::Address address; Activity activity; uint16_t wakeup_count; uint32_t byte_count; uint32_t wakelock_duration; }; class ActivityAttributionCallback { public: virtual ~ActivityAttributionCallback() = default; // Callback when Blutooth woke up the system // Callback when Bluetooth woke up the system virtual void OnWakeup(const Activity activity, const hci::Address& address) = 0; // Callback when Bluetooth activity logs are ready to be moved virtual void OnActivityLogsReady(const std::vector<BtaaAggregationEntry> logs) = 0; }; class ActivityAttribution : public bluetooth::Module { Loading system/include/hardware/bt_activity_attribution.h +13 −1 Original line number Diff line number Diff line Loading @@ -34,10 +34,22 @@ class ActivityAttributionCallbacks { VENDOR }; struct BtaaAggregationEntry { RawAddress address; Activity activity; uint16_t wakeup_count; uint32_t byte_count; uint32_t wakelock_duration; }; virtual ~ActivityAttributionCallbacks() = default; /** Callback when Blutooth woke up the system */ /** Callback when Bluetooth woke up the system */ virtual void OnWakeup(const Activity activity, const RawAddress& address) = 0; /** Callback when Bluetooth activity logs are ready to be moved */ virtual void OnActivityLogsReady( const std::vector<BtaaAggregationEntry> logs) = 0; }; class ActivityAttributionInterface { Loading system/main/shim/activity_attribution.cc +17 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,23 @@ class ActivityAttributionInterfaceImpl bluetooth::ToRawAddress(address))); } void OnActivityLogsReady( const std::vector<BtaaAggregationEntry> logs) override { std::vector<ActivityAttributionCallbacks::BtaaAggregationEntry> callback_logs; for (auto& it : logs) { ActivityAttributionCallbacks::BtaaAggregationEntry entry{ bluetooth::ToRawAddress(it.address), (ActivityAttributionCallbacks::Activity)it.activity, it.wakeup_count, it.byte_count, it.wakelock_duration}; callback_logs.push_back(entry); } do_in_jni_thread( FROM_HERE, base::Bind(&ActivityAttributionCallbacks::OnActivityLogsReady, base::Unretained(callbacks), callback_logs)); } private: // Private constructor to prevent construction. ActivityAttributionInterfaceImpl() {} Loading Loading
system/gd/btaa/activity_attribution.h +12 −1 Original line number Diff line number Diff line Loading @@ -25,12 +25,23 @@ namespace activity_attribution { enum class Activity : uint8_t { UNKNOWN = 0, ADVERTISE, CONNECT, CONTROL, SCAN, HFP, VENDOR }; struct BtaaAggregationEntry { hci::Address address; Activity activity; uint16_t wakeup_count; uint32_t byte_count; uint32_t wakelock_duration; }; class ActivityAttributionCallback { public: virtual ~ActivityAttributionCallback() = default; // Callback when Blutooth woke up the system // Callback when Bluetooth woke up the system virtual void OnWakeup(const Activity activity, const hci::Address& address) = 0; // Callback when Bluetooth activity logs are ready to be moved virtual void OnActivityLogsReady(const std::vector<BtaaAggregationEntry> logs) = 0; }; class ActivityAttribution : public bluetooth::Module { Loading
system/include/hardware/bt_activity_attribution.h +13 −1 Original line number Diff line number Diff line Loading @@ -34,10 +34,22 @@ class ActivityAttributionCallbacks { VENDOR }; struct BtaaAggregationEntry { RawAddress address; Activity activity; uint16_t wakeup_count; uint32_t byte_count; uint32_t wakelock_duration; }; virtual ~ActivityAttributionCallbacks() = default; /** Callback when Blutooth woke up the system */ /** Callback when Bluetooth woke up the system */ virtual void OnWakeup(const Activity activity, const RawAddress& address) = 0; /** Callback when Bluetooth activity logs are ready to be moved */ virtual void OnActivityLogsReady( const std::vector<BtaaAggregationEntry> logs) = 0; }; class ActivityAttributionInterface { Loading
system/main/shim/activity_attribution.cc +17 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,23 @@ class ActivityAttributionInterfaceImpl bluetooth::ToRawAddress(address))); } void OnActivityLogsReady( const std::vector<BtaaAggregationEntry> logs) override { std::vector<ActivityAttributionCallbacks::BtaaAggregationEntry> callback_logs; for (auto& it : logs) { ActivityAttributionCallbacks::BtaaAggregationEntry entry{ bluetooth::ToRawAddress(it.address), (ActivityAttributionCallbacks::Activity)it.activity, it.wakeup_count, it.byte_count, it.wakelock_duration}; callback_logs.push_back(entry); } do_in_jni_thread( FROM_HERE, base::Bind(&ActivityAttributionCallbacks::OnActivityLogsReady, base::Unretained(callbacks), callback_logs)); } private: // Private constructor to prevent construction. ActivityAttributionInterfaceImpl() {} Loading