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

Commit 276c040b authored by Eric Shih's avatar Eric Shih Committed by Gerrit Code Review
Browse files

Merge "Turn on feature flag and add sysprop for bt power telemetry" into main

parents ab0ad309 fb1bee98
Loading
Loading
Loading
Loading

flags/metric.aconfig

0 → 100644
+9 −0
Original line number Diff line number Diff line
package: "com.android.bluetooth.flags"
container: "com.android.btservices"

flag {
    name: "bluetooth_power_telemetry"
    namespace: "bluetooth"
    description: "Toggle the bluetooth power telemetry feature."
    bug: "301874865"
}
+1 −0
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ cc_library_static {
        "libbluetooth_log",
        "libbt-platform-protos-lite",
        "libbt_shim_bridge",
        "server_configurable_flags",
    ],
}

+11 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@

#include "osi/include/stack_power_telemetry.h"

#include <android_bluetooth_flags.h>
#include <base/logging.h>
#include <bluetooth/log.h>
#include <sys/stat.h>
@@ -46,8 +47,9 @@ constexpr int64_t kTrafficLogTime = 120; // 120seconds
constexpr uint8_t kLogEntriesSize{15};
constexpr std::string_view kLogPerChannelProperty =
    "bluetooth.powertelemetry.log_per_channel.enabled";
bool power_telemerty_enabled_ =
    bluetooth::common::init_flags::bluetooth_power_telemetry_is_enabled();
constexpr std::string_view kPowerTelemetryEnabledProperty =
    "bluetooth.powertelemetry.enabled";
bool power_telemerty_enabled_ = false;

std::string GetTimeString(time_t tstamp) {
  char buffer[15];
@@ -154,6 +156,12 @@ struct power_telemetry::PowerTelemetryImpl {
    traffic_logged_ts_ = get_current_time();
    log_per_channel_ = osi_property_get_bool(
        std::string(kLogPerChannelProperty).c_str(), false);
    power_telemetry_enabled_property_ = osi_property_get_bool(
        std::string(kPowerTelemetryEnabledProperty).c_str(), true);

    // Enable this feature when both feature flag and sysprops turn on.
    power_telemerty_enabled_ = IS_FLAG_ENABLED(bluetooth_power_telemetry) &&
                               power_telemetry_enabled_property_;
  }

  LogDataContainer& GetCurrentLogDataContainer() {
@@ -192,6 +200,7 @@ struct power_telemetry::PowerTelemetryImpl {
  } cmd, event;
  bool scan_timer_started_ = false;
  bool log_per_channel_ = false;
  bool power_telemetry_enabled_property_ = false;
};

void power_telemetry::PowerTelemetryImpl::LogDataTransfer() {
+2 −2
Original line number Diff line number Diff line
@@ -21,8 +21,8 @@ class PowerTelemetryTest : public ::testing::Test {
  }

  void SetUp() override {
    // Enable the feature flag
    power_telemerty_enabled_ = true;
    power_telemetry::GetInstance();   // Init the object.
    power_telemerty_enabled_ = true;  // Enable the feature flag
    RawAddress::FromString("00:00:00:00:00:00", bdaddr);
  }
};