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 size_t AwPrefStore::NumberOfObservers() const { 33 return observers_.size(); 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 void AwPrefStore::MarkNeedsEmptyValue(const std::string& key) { 56 } 57 58 bool AwPrefStore::ReadOnly() const { 59 return false; 60 } 61 62 PersistentPrefStore::PrefReadError AwPrefStore::GetReadError() const { 63 return PersistentPrefStore::PREF_READ_ERROR_NONE; 64 } 65 66 PersistentPrefStore::PrefReadError AwPrefStore::ReadPrefs() { 67 return PersistentPrefStore::PREF_READ_ERROR_NONE; 68 } 69 70 void AwPrefStore::ReadPrefsAsync(ReadErrorDelegate* error_delegate_raw) { 71 } 72 73 void AwPrefStore::ReportValueChanged(const std::string& key) { 74 FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); 75 } 76