base_enabled_provider.cc 856 B

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/quick_pair/feature_status_tracker/base_enabled_provider.h"
  5. #include "base/callback.h"
  6. namespace ash {
  7. namespace quick_pair {
  8. BaseEnabledProvider::BaseEnabledProvider() = default;
  9. BaseEnabledProvider::~BaseEnabledProvider() = default;
  10. bool BaseEnabledProvider::is_enabled() {
  11. return is_enabled_;
  12. }
  13. void BaseEnabledProvider::SetCallback(
  14. base::RepeatingCallback<void(bool)> callback) {
  15. callback_ = std::move(callback);
  16. }
  17. void BaseEnabledProvider::SetEnabledAndInvokeCallback(bool new_value) {
  18. if (is_enabled_ == new_value)
  19. return;
  20. is_enabled_ = new_value;
  21. if (callback_)
  22. callback_.Run(new_value);
  23. }
  24. } // namespace quick_pair
  25. } // namespace ash