blob: f6082390d5be4bf8d9c1f54c0a78b520ff34aa94 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/developer/feedback/crash_reports/settings.h"
#include "src/developer/feedback/crash_reports/config.h"
#include "src/lib/syslog/cpp/logger.h"
namespace feedback {
void Settings::set_upload_policy(const Settings::UploadPolicy upload_policy) {
upload_policy_ = upload_policy;
switch (upload_policy_) {
case Settings::UploadPolicy::DISABLED:
FX_LOGS(INFO) << "Crash report upload is disabled";
break;
case Settings::UploadPolicy::ENABLED:
FX_LOGS(INFO) << "Crash report upload is enabled";
break;
case Settings::UploadPolicy::LIMBO:
FX_LOGS(INFO) << "Crash report upload is in limbo";
break;
}
for (auto& watcher : upload_policy_watchers_) {
watcher(upload_policy_);
}
}
void Settings::set_upload_policy(const CrashServerConfig::UploadPolicy upload_policy) {
switch (upload_policy) {
case CrashServerConfig::UploadPolicy::DISABLED:
set_upload_policy(UploadPolicy::DISABLED);
break;
case CrashServerConfig::UploadPolicy::ENABLED:
set_upload_policy(UploadPolicy::ENABLED);
break;
case CrashServerConfig::UploadPolicy::READ_FROM_PRIVACY_SETTINGS:
set_upload_policy(UploadPolicy::LIMBO);
break;
}
}
void Settings::RegisterUploadPolicyWatcher(fit::function<void(const UploadPolicy&)> watcher) {
watcher(upload_policy_);
upload_policy_watchers_.push_back(std::move(watcher));
}
std::string ToString(const Settings::UploadPolicy upload_policy) {
switch (upload_policy) {
case Settings::UploadPolicy::DISABLED:
return "DISABLED";
case Settings::UploadPolicy::ENABLED:
return "ENABLED";
case Settings::UploadPolicy::LIMBO:
return "LIMBO";
}
}
} // namespace feedback