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

Commit 3fe88bc5 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6993684 from 5653dbc7 to sc-release

Change-Id: Iea4ffd3dd47d994c3519a344e94f2c1e65a72bc1
parents 097daecb 5653dbc7
Loading
Loading
Loading
Loading

btaa/Android.bp

deleted100644 → 0
+0 −28
Original line number Diff line number Diff line
// libbtaa static library for target
// ========================================================
cc_library_static {
    name: "libbtaa",
    defaults: ["fluoride_defaults"],
    include_dirs: [
        "packages/modules/Bluetooth/system",
        "packages/modules/Bluetooth/system/hci/include",
        "packages/modules/Bluetooth/system/stack/include",
    ],
    local_include_dirs: [
        "include",
    ],
    srcs: [
        "src/activity_attribution.cc",
    ],
    static_libs: [
        "libbt-hci",
    ],
    shared_libs: [
        "android.system.suspend.control-ndk",
        "libbinder_ndk",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.bluetooth.updatable",
    ],
}
+0 −52
Original line number Diff line number Diff line
/******************************************************************************
 *
 *  Copyright 2020 The Android Open Source Project
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at:
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 ******************************************************************************/

#pragma once

#include <aidl/android/system/suspend/BnSuspendCallback.h>
#include <aidl/android/system/suspend/BnWakelockCallback.h>
#include <hardware/bt_activity_attribution.h>

using aidl::android::system::suspend::BnSuspendCallback;
using aidl::android::system::suspend::BnWakelockCallback;
using Status = ::ndk::ScopedAStatus;

namespace bluetooth {
namespace activity_attribution {
class ActivityAttribution {
 public:
  virtual ~ActivityAttribution() = default;

  static void CleanUp();
  static void Initialize(ActivityAttributionCallbacks* callbacks);
};

class WakelockCallback : public BnWakelockCallback {
 public:
  Status notifyAcquired(void) override;
  Status notifyReleased(void) override;
};

class WakeupCallback : public BnSuspendCallback {
 public:
  Status notifyWakeup(bool success,
                      const std::vector<std::string>& wakeupReasons) override;
};

}  // namespace activity_attribution
}  // namespace bluetooth

btaa/src/activity_attribution.cc

deleted100644 → 0
+0 −129
Original line number Diff line number Diff line
/******************************************************************************
 *
 *  Copyright 2020 The Android Open Source Project
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at:
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 ******************************************************************************/

#include "activity_attribution.h"

#include <aidl/android/system/suspend/ISuspendControlService.h>
#include <android/binder_manager.h>
#include <base/logging.h>

#include "btsnoop_mem.h"

using aidl::android::system::suspend::ISuspendCallback;
using aidl::android::system::suspend::ISuspendControlService;
using namespace ndk;

namespace bluetooth {
namespace activity_attribution {

static const std::string kBtWakelockName("hal_bluetooth_lock");

class ActivityAttributionImpl;
static std::shared_ptr<ISuspendControlService> controlService;
static std::unique_ptr<ActivityAttributionImpl> instance;

class ActivityAttributionImpl : public ActivityAttribution {
 public:
  ~ActivityAttributionImpl() override = default;
  ActivityAttributionImpl(ActivityAttributionCallbacks* callbacks);

  static void onHciCaptured(const uint16_t type, const uint8_t* data,
                            const size_t length, const uint64_t timestamp_us);
  void onWakelockAcquired(void);
  void onWakelockReleased(void);
  void onWakeup(bool success, const std::vector<std::string>& wakeupReasons);

 private:
  [[maybe_unused]] ActivityAttributionCallbacks* mCallbacks;
};

ActivityAttributionImpl::ActivityAttributionImpl(
    ActivityAttributionCallbacks* callbacks)
    : mCallbacks(callbacks) {}

void ActivityAttributionImpl::onHciCaptured(const uint16_t type,
                                            const uint8_t* data,
                                            const size_t length,
                                            const uint64_t timestamp_us) {}

void ActivityAttributionImpl::onWakelockAcquired(void) {}

void ActivityAttributionImpl::onWakelockReleased(void) {}

void ActivityAttributionImpl::onWakeup(
    bool success, const std::vector<std::string>& wakeupReasons) {}

Status WakelockCallback::notifyAcquired(void) {
  if (instance) {
    instance->onWakelockAcquired();
  }
  return Status::ok();
}

Status WakelockCallback::notifyReleased(void) {
  if (instance) {
    instance->onWakelockReleased();
  }
  return Status::ok();
}

Status WakeupCallback::notifyWakeup(
    bool success, const std::vector<std::string>& wakeupReasons) {
  if (instance) {
    instance->onWakeup(success, wakeupReasons);
  }
  return Status::ok();
}

void ActivityAttribution::CleanUp() { instance.reset(); };

void ActivityAttribution::Initialize(ActivityAttributionCallbacks* callbacks) {
  bool is_registered = false;

  if (instance) {
    LOG(ERROR) << __func__ << " Already initialized!";
    return;
  }
  instance.reset(new ActivityAttributionImpl(callbacks));

  activity_attribution_set_callback(instance->onHciCaptured);

  controlService = ISuspendControlService::fromBinder(
      SpAIBinder(AServiceManager_getService("suspend_control")));
  if (!controlService) {
    LOG(ERROR) << __func__ << " Fail to obtain suspend_control";
    return;
  }

  Status register_callback_status = controlService->registerCallback(
      SharedRefBase::make<WakeupCallback>(), &is_registered);
  if (!is_registered || !register_callback_status.isOk()) {
    LOG(ERROR) << __func__ << " Fail to register wakeup callback";
    return;
  }

  register_callback_status = controlService->registerWakelockCallback(
      SharedRefBase::make<WakelockCallback>(), kBtWakelockName, &is_registered);
  if (!is_registered || !register_callback_status.isOk()) {
    LOG(ERROR) << __func__ << " Fail to register wakelock callback";
    return;
  }
}

}  // namespace activity_attribution
}  // namespace bluetooth
+10 −2
Original line number Diff line number Diff line
@@ -90,10 +90,18 @@ typedef uint8_t tBTA_SYS_ID;

inline std::string BtaIdSysText(tBTA_SYS_ID sys_id) {
  switch (sys_id) {
    case BTA_ID_DM_SEARCH:
      return std::string("Scanner");
    case BTA_ID_PAN:
      return std::string("PAN Personal area network");
    case BTA_ID_AV:
      return std::string("Advanced audio/video");
    case BTA_ID_HD:
      return std::string("Hid Device");
      return std::string("HID Human interface device");
    case BTA_ID_GATTC:
      return std::string("Gatt client");
      return std::string("GATT client");
    case BTA_ID_GATTS:
      return std::string("GATT server");
    default:
      return std::string("Unknown");
  }
+0 −3
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@ cc_library_static {
        "src/btif_a2dp_control.cc",
        "src/btif_a2dp_sink.cc",
        "src/btif_a2dp_source.cc",
        "src/btif_activity_attribution.cc",
        "src/btif_av.cc",
        "src/btif_avrcp_audio_track.cc",
        "src/btif_ble_advertiser.cc",
@@ -97,7 +96,6 @@ cc_library_static {
    shared_libs: [
        "android.hardware.bluetooth.a2dp@1.0",
        "android.hardware.bluetooth.audio@2.0",
        "android.system.suspend.control-ndk",
        "libaaudio",
        "libcrypto",
        "libcutils",
@@ -113,7 +111,6 @@ cc_library_static {
        "lib-bt-packets",
        "libaudio-a2dp-hw-utils",
        "libbt-audio-hal-interface",
        "libbtaa",
    ],
    cflags: [
        "-DBUILDCFG",
Loading