xref: /aosp_15_r20/external/cronet/components/prefs/ios/pref_observer_bridge.mm (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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() {}
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