• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2012 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#import "components/prefs/ios/pref_observer_bridge.h"
6
7#include "base/functional/bind.h"
8#include "components/prefs/pref_change_registrar.h"
9
10PrefObserverBridge::PrefObserverBridge(id<PrefObserverDelegate> delegate)
11    : delegate_(delegate) {}
12
13PrefObserverBridge::~PrefObserverBridge() = default;
14
15void PrefObserverBridge::ObserveChangesForPreference(
16    const std::string& pref_name,
17    PrefChangeRegistrar* registrar) {
18  PrefChangeRegistrar::NamedChangeCallback callback = base::BindRepeating(
19      &PrefObserverBridge::OnPreferenceChanged, base::Unretained(this));
20  registrar->Add(pref_name.c_str(), callback);
21}
22
23void PrefObserverBridge::OnPreferenceChanged(const std::string& pref_name) {
24  [delegate_ onPreferenceChanged:pref_name];
25}
26