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

Commit d27e53ff authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "floss: Add sysprops handler and set default values" am: 37675235 am:...

Merge "floss: Add sysprops handler and set default values" am: 37675235 am: 708d086b am: bb3a77bd

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



Change-Id: I3fd6b961f01d5569a702a44402afb9be0dab189d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents a5dfddfd bb3a77bd
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -25,7 +25,11 @@ namespace os {

namespace {
std::mutex properties_mutex;
std::unordered_map<std::string, std::string> properties;

// Properties set along with some default values for Floss.
std::unordered_map<std::string, std::string> properties = {
    {"bluetooth.profile.avrcp.target.enabled", "true"},
};
}  // namespace

std::optional<std::string> GetSystemProperty(const std::string& property) {
+43 −4
Original line number Diff line number Diff line
@@ -20,6 +20,14 @@

#include "osi/include/properties.h"

#ifdef TARGET_FLOSS
#include <algorithm>
#include <optional>
#include <string>

#include "gd/os/system_properties.h"
#endif

#if !defined(OS_GENERIC)
#undef PROPERTY_VALUE_MAX
#include <cutils/properties.h>
@@ -29,7 +37,21 @@
#endif  // !defined(OS_GENERIC)

int osi_property_get(const char* key, char* value, const char* default_value) {
#if defined(OS_GENERIC)
#if defined(TARGET_FLOSS)
  std::optional<std::string> result = bluetooth::os::GetSystemProperty(key);
  if (result) {
    memcpy(value, result->data(), result->size());
    value[result->size()] = '\0';
    return result->size();
  } else if (default_value) {
    int len = std::min(strlen(default_value), (size_t)(PROPERTY_VALUE_MAX - 1));
    memcpy(value, default_value, len);
    value[len] = '\0';
    return len;
  } else {
    return 0;
  }
#elif defined(OS_GENERIC)
  /* For linux right now just return default value, if present */
  int len = 0;
  if (!default_value) return len;
@@ -46,7 +68,10 @@ int osi_property_get(const char* key, char* value, const char* default_value) {
}

int osi_property_set(const char* key, const char* value) {
#if defined(OS_GENERIC)
#if defined(TARGET_FLOSS)
  bool success = bluetooth::os::SetSystemProperty(key, value);
  return success ? 0 : -1;
#elif defined(OS_GENERIC)
  return -1;
#else
  return property_set(key, value);
@@ -54,7 +79,14 @@ int osi_property_set(const char* key, const char* value) {
}

int32_t osi_property_get_int32(const char* key, int32_t default_value) {
#if defined(OS_GENERIC)
#if defined(TARGET_FLOSS)
  std::optional<std::string> result = bluetooth::os::GetSystemProperty(key);
  if (result) {
    return stoi(*result, nullptr);
  } else {
    return default_value;
  }
#elif defined(OS_GENERIC)
  return default_value;
#else
  return property_get_int32(key, default_value);
@@ -62,7 +94,14 @@ int32_t osi_property_get_int32(const char* key, int32_t default_value) {
}

bool osi_property_get_bool(const char* key, bool default_value) {
#if defined(OS_GENERIC)
#if defined(TARGET_FLOSS)
  std::optional<std::string> result = bluetooth::os::GetSystemProperty(key);
  if (result) {
    return *result == std::string("true");
  } else {
    return default_value;
  }
#elif defined(OS_GENERIC)
  return default_value;
#else
  return property_get_bool(key, default_value);