Merge pull request #14082 from Simonx22/analytics/reload-on-setting-change

DolphinAnalytics: Reload backend when config changes
This commit is contained in:
OatmealDome 2025-11-08 14:00:03 -05:00 committed by GitHub
commit a459dc0d25
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 1 deletions

View File

@ -4,6 +4,7 @@
#pragma once
#include <functional>
#include <limits>
#include <map>
#include <memory>
#include <optional>
@ -17,7 +18,7 @@ namespace Config
{
struct ConfigChangedCallbackID
{
size_t id = -1;
size_t id = std::numeric_limits<size_t>::max();
bool operator==(const ConfigChangedCallbackID&) const = default;
};

View File

@ -58,6 +58,13 @@ DolphinAnalytics::DolphinAnalytics()
{
ReloadConfig();
MakeBaseBuilder();
m_config_changed_callback_id = Config::AddConfigChangedCallback([this] { ReloadConfig(); });
}
DolphinAnalytics::~DolphinAnalytics()
{
Config::RemoveConfigChangedCallback(m_config_changed_callback_id);
}
DolphinAnalytics& DolphinAnalytics::Instance()

View File

@ -11,6 +11,7 @@
#include "Common/Analytics.h"
#include "Common/CommonTypes.h"
#include "Common/Config/Config.h"
#if defined(ANDROID)
#include <functional>
@ -108,6 +109,9 @@ class DolphinAnalytics
public:
// Performs lazy-initialization of a singleton and returns the instance.
static DolphinAnalytics& Instance();
DolphinAnalytics(const DolphinAnalytics&) = delete;
DolphinAnalytics& operator=(const DolphinAnalytics&) = delete;
~DolphinAnalytics();
#if defined(ANDROID)
// Get value from java.
@ -198,4 +202,5 @@ private:
std::mutex m_reporter_mutex;
Common::AnalyticsReporter m_reporter;
Config::ConfigChangedCallbackID m_config_changed_callback_id{};
};