blob: 1567c902ebc76f1d7303b581d633113d0ef4eb85 [file] [log] [blame]
// Copyright 2020 The Chromium 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 "components/autofill_assistant/browser/radio_button_controller.h"
namespace autofill_assistant {
RadioButtonController::RadioButtonController(UserModel* user_model)
: user_model_(user_model) {}
RadioButtonController::~RadioButtonController() = default;
base::WeakPtr<RadioButtonController> RadioButtonController::GetWeakPtr() {
return weak_ptr_factory_.GetWeakPtr();
}
void RadioButtonController::AddRadioButtonToGroup(
const std::string& radio_group,
const std::string& model_identifier) {
radio_groups_[radio_group].insert(model_identifier);
}
void RadioButtonController::RemoveRadioButtonFromGroup(
const std::string& radio_group,
const std::string& model_identifier) {
auto it = radio_groups_.find(radio_group);
if (it != radio_groups_.end()) {
it->second.erase(model_identifier);
}
}
bool RadioButtonController::UpdateRadioButtonGroup(
const std::string& radio_group,
const std::string& selected_model_identifier) {
auto radio_group_it = radio_groups_.find(radio_group);
if (radio_group_it == radio_groups_.end()) {
return false;
}
if (radio_group_it->second.find(selected_model_identifier) ==
radio_group_it->second.end()) {
return false;
}
for (const auto& model_identifier : radio_group_it->second) {
user_model_->SetValue(
model_identifier,
SimpleValue(model_identifier == selected_model_identifier));
}
return true;
}
} // namespace autofill_assistant