crosapi_pref_observer.cc 975 B

123456789101112131415161718192021222324252627
  1. // Copyright 2020 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 "chromeos/lacros/crosapi_pref_observer.h"
  5. #include "base/callback.h"
  6. #include "chromeos/lacros/lacros_service.h"
  7. CrosapiPrefObserver::CrosapiPrefObserver(crosapi::mojom::PrefPath path,
  8. PrefChangedCallback callback)
  9. : callback_(std::move(callback)) {
  10. auto* lacros_service = chromeos::LacrosService::Get();
  11. if (!lacros_service ||
  12. !lacros_service->IsAvailable<crosapi::mojom::Prefs>()) {
  13. LOG(WARNING) << "crosapi: Prefs API not available";
  14. return;
  15. }
  16. lacros_service->GetRemote<crosapi::mojom::Prefs>()->AddObserver(
  17. path, receiver_.BindNewPipeAndPassRemoteWithVersion());
  18. }
  19. CrosapiPrefObserver::~CrosapiPrefObserver() = default;
  20. void CrosapiPrefObserver::OnPrefChanged(base::Value value) {
  21. callback_.Run(std::move(value));
  22. }