| // Copyright 2012 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. |
| |
| #import "components/prefs/ios/pref_observer_bridge.h" |
| |
| #include "base/bind.h" |
| #include "components/prefs/pref_change_registrar.h" |
| |
| #if !defined(__has_feature) || !__has_feature(objc_arc) |
| #error "This file requires ARC support." |
| #endif |
| |
| PrefObserverBridge::PrefObserverBridge(id<PrefObserverDelegate> delegate) |
| : delegate_(delegate) {} |
| |
| PrefObserverBridge::~PrefObserverBridge() {} |
| |
| void PrefObserverBridge::ObserveChangesForPreference( |
| const std::string& pref_name, |
| PrefChangeRegistrar* registrar) { |
| PrefChangeRegistrar::NamedChangeCallback callback = base::BindRepeating( |
| &PrefObserverBridge::OnPreferenceChanged, base::Unretained(this)); |
| registrar->Add(pref_name.c_str(), callback); |
| } |
| |
| void PrefObserverBridge::OnPreferenceChanged(const std::string& pref_name) { |
| [delegate_ onPreferenceChanged:pref_name]; |
| } |