Add preferences for tracking backup times.

PiperOrigin-RevId: 941726119
This commit is contained in:
Francis Tsui
2026-07-02 09:06:05 -07:00
committed by Copybara-Service
parent 0fb3683e55
commit 41a921d58d
7 changed files with 68 additions and 3 deletions
+1
View File
@@ -67,6 +67,7 @@ void RegisterNearbySharingPrefs(PreferenceManager& preference_manager,
preference_manager.Remove(PrefNames::kUsers);
preference_manager.SetBoolean(PrefNames::kAdvancedProtectionEnabled, false);
preference_manager.RemoveAllSyncConfigs();
preference_manager.RemoveAllBindingConfigs();
}
+1
View File
@@ -45,6 +45,7 @@ cc_library(
"//internal/platform/implementation:types",
"//location/nearby/sharing/lib/account:account_manager",
"//location/nearby/sharing/lib/sync:sync_binding_prefs_cc_proto",
"//location/nearby/sharing/lib/sync:sync_config_prefs_cc_proto",
"//sharing/proto:share_cc_proto",
"@com_google_absl//absl/functional:any_invocable",
"@com_google_absl//absl/strings:string_view",
+13 -1
View File
@@ -23,6 +23,7 @@
#include <vector>
#include "location/nearby/sharing/lib/sync/sync_binding_prefs.pb.h"
#include "location/nearby/sharing/lib/sync/sync_config_prefs.pb.h"
#include "absl/strings/string_view.h"
#include "absl/time/time.h"
#include "absl/types/span.h"
@@ -80,6 +81,10 @@ class PreferenceManager {
virtual void RemoveDictionaryItem(absl::string_view key,
absl::string_view dictionary_item) = 0;
virtual void SetSyncConfigValue(
absl::string_view binding_id,
const nearby::sharing::sync::SyncConfigPrefs& value) = 0;
virtual void SetSyncBindingValue(
const nearby::sharing::sync::SyncBindingPrefs& value) = 0;
@@ -122,12 +127,19 @@ class PreferenceManager {
virtual std::optional<std::string> GetDictionaryStringValue(
absl::string_view key, absl::string_view dictionary_item) const = 0;
virtual std::optional<nearby::sharing::sync::SyncConfigPrefs>
GetSyncConfigValue(absl::string_view binding_id) const = 0;
virtual void RemoveSyncConfigPref(absl::string_view binding_id) = 0;
virtual std::optional<nearby::sharing::sync::SyncBindingPrefs>
GetSyncBindingValue() const = 0;
// Removes preferences
virtual void Remove(absl::string_view key) = 0;
// Removes all binding configs.
// Removes all sync configs.
// Observers are not notified for each removed config.
virtual void RemoveAllSyncConfigs() = 0; // Removes all binding configs.
// Observers are not notified for each removed config.
virtual void RemoveAllBindingConfigs() = 0;
+10 -2
View File
@@ -58,10 +58,18 @@ class PrefNames {
// Binding configs preferences are stored in pref keys:
// kBindingConfigPrefix + <service_name>
// Example: "nearby_sharing.binding_config.FileSync"
// TODO: b/485304482 - define data format for binding configs.
// For FileSync service, data stored in binding config prefs is a
// nearby::sharing::sync::SyncBindingPrefs proto.
static constexpr absl::string_view kBindingConfigPrefix =
"nearby_sharing.binding_config.";
};
// Sync configs preferences are stored in pref keys:
// kSyncConfigPrefix + <binding ID>
// Example: "nearby_sharing.sync_config.01243347-2343-4324-3423-432432432432"
// Data stored in sync config prefs is a
// nearby::sharing::sync::SyncConfigPrefs proto.
static constexpr absl::string_view kSyncConfigPrefix =
"nearby_sharing.sync_config.";};
} // namespace nearby::sharing
+1
View File
@@ -41,6 +41,7 @@ cc_library(
"//internal/platform:types",
"//internal/test",
"//location/nearby/sharing/lib/sync:sync_binding_prefs_cc_proto",
"//location/nearby/sharing/lib/sync:sync_config_prefs_cc_proto",
"//sharing/internal/api:platform",
"//sharing/internal/public:pref_names",
"//sharing/internal/public:types",
@@ -23,6 +23,7 @@
#include <vector>
#include "location/nearby/sharing/lib/sync/sync_binding_prefs.pb.h"
#include "location/nearby/sharing/lib/sync/sync_config_prefs.pb.h"
#include "absl/container/flat_hash_map.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
@@ -36,6 +37,7 @@ namespace nearby {
using ::nearby::sharing::PrefNames;
using ::nearby::sharing::api::PrivateCertificateData;
using ::nearby::sharing::sync::SyncBindingPrefs;
using ::nearby::sharing::sync::SyncConfigPrefs;
// Preference suffix for the sync binding information.
constexpr absl::string_view kFileSyncBindingName = "FileSync";
@@ -243,6 +245,16 @@ void FakePreferenceManager::RemoveDictionaryItem(
NotifyPreferenceChanged(key);
}
void FakePreferenceManager::SetSyncConfigValue(absl::string_view binding_id,
const SyncConfigPrefs& value) {
SetValue(absl::StrCat(PrefNames::kSyncConfigPrefix, binding_id),
value.SerializeAsString());
}
void FakePreferenceManager::RemoveSyncConfigPref(absl::string_view binding_id) {
Remove(absl::StrCat(PrefNames::kSyncConfigPrefix, binding_id));
}
void FakePreferenceManager::SetSyncBindingValue(
const SyncBindingPrefs& value) {
SetValue(absl::StrCat(PrefNames::kBindingConfigPrefix, kFileSyncBindingName),
@@ -333,6 +345,21 @@ std::optional<std::string> FakePreferenceManager::GetDictionaryStringValue(
return GetDictionaryValue<std::string>(key, dictionary_item);
}
std::optional<SyncConfigPrefs> FakePreferenceManager::GetSyncConfigValue(
absl::string_view binding_id) const {
std::string serialized_sync_config;
serialized_sync_config =
GetString(absl::StrCat(PrefNames::kSyncConfigPrefix, binding_id), "");
if (serialized_sync_config.empty()) {
return std::nullopt;
}
SyncConfigPrefs sync_config;
if (!sync_config.ParseFromString(serialized_sync_config)) {
return std::nullopt;
}
return sync_config;
}
std::optional<SyncBindingPrefs> FakePreferenceManager::GetSyncBindingValue()
const {
std::string serialized_sync_binding;
@@ -358,6 +385,13 @@ void FakePreferenceManager::Remove(absl::string_view key) {
NotifyPreferenceChanged(key);
}
void FakePreferenceManager::RemoveAllSyncConfigs() {
absl::MutexLock lock(mutex_);
absl::erase_if(values_, [](const auto& item) {
return item.first.starts_with(PrefNames::kSyncConfigPrefix);
});
}
void FakePreferenceManager::RemoveAllBindingConfigs() {
absl::MutexLock lock(mutex_);
absl::erase_if(values_, [](const auto& item) {
@@ -24,6 +24,7 @@
#include <vector>
#include "location/nearby/sharing/lib/sync/sync_binding_prefs.pb.h"
#include "location/nearby/sharing/lib/sync/sync_config_prefs.pb.h"
#include "absl/base/thread_annotations.h"
#include "absl/container/flat_hash_map.h"
#include "absl/strings/string_view.h"
@@ -75,6 +76,9 @@ class FakePreferenceManager : public nearby::sharing::api::PreferenceManager {
void RemoveDictionaryItem(absl::string_view key,
absl::string_view dictionary_item) override;
void SetSyncConfigValue(
absl::string_view binding_id,
const nearby::sharing::sync::SyncConfigPrefs& value) override;
void SetSyncBindingValue(
const nearby::sharing::sync::SyncBindingPrefs& value) override;
@@ -111,10 +115,14 @@ class FakePreferenceManager : public nearby::sharing::api::PreferenceManager {
absl::string_view key, absl::string_view dictionary_item) const override;
std::optional<std::string> GetDictionaryStringValue(
absl::string_view key, absl::string_view dictionary_item) const override;
std::optional<nearby::sharing::sync::SyncConfigPrefs>
GetSyncConfigValue(absl::string_view binding_id) const override;
void RemoveSyncConfigPref(absl::string_view binding_id) override;
std::optional<nearby::sharing::sync::SyncBindingPrefs>
GetSyncBindingValue() const override;
void Remove(absl::string_view key) override;
void RemoveAllSyncConfigs() override;
void RemoveAllBindingConfigs() override;
void AddObserver(