1 // Copyright (c) 2013 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 5 #include "android_webview/browser/aw_pref_store.h" 6 7 #include "base/memory/scoped_ptr.h" 8 #include "base/values.h" 9 10 AwPrefStore::AwPrefStore() {} 11 12 AwPrefStore::~AwPrefStore() {} 13 14 bool AwPrefStore::GetValue(const std::string& key, 15 const Value** value) const { 16 return prefs_.GetValue(key, value); 17 } 18 19 bool AwPrefStore::GetMutableValue(const std::string& key, 20 Value** value) { 21 return prefs_.GetValue(key, value); 22 } 23 24 void AwPrefStore::AddObserver(PrefStore::Observer* observer) { 25 observers_.AddObserver(observer); 26 } 27 28 void AwPrefStore::RemoveObserver(PrefStore::Observer* observer) { 29 observers_.RemoveObserver(observer); 30 } 31 32 bool AwPrefStore::HasObservers() const { 33 return observers_.might_have_observers(); 34 } 35 36 bool AwPrefStore::IsInitializationComplete() const { 37 return true; 38 } 39 40 void AwPrefStore::SetValue(const std::string& key, Value* value) { 41 DCHECK(value); 42 if (prefs_.SetValue(key, value)) 43 ReportValueChanged(key); 44 } 45 46 void AwPrefStore::SetValueSilently(const std::string& key, Value* value) { 47 prefs_.SetValue(key, value); 48 } 49 50 void AwPrefStore::RemoveValue(const std::string& key) { 51 if (prefs_.RemoveValue(key)) 52 ReportValueChanged(key); 53 } 54 55 bool AwPrefStore::ReadOnly() const { 56 return false; 57 } 58 59 PersistentPrefStore::PrefReadError AwPrefStore::GetReadError() const { 60 return PersistentPrefStore::PREF_READ_ERROR_NONE; 61 } 62 63 PersistentPrefStore::PrefReadError AwPrefStore::ReadPrefs() { 64 return PersistentPrefStore::PREF_READ_ERROR_NONE; 65 } 66 67 void AwPrefStore::ReadPrefsAsync(ReadErrorDelegate* error_delegate_raw) { 68 } 69 70 void AwPrefStore::ReportValueChanged(const std::string& key) { 71 FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); 72 } 73