1 // Copyright (c) 2012 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.
5 #ifndef CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_
6 #define CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_
10 #include "base/callback.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "chromeos/settings/cros_settings_provider.h"
13 #include "chromeos/settings/timezone_settings.h"
14 #include "third_party/icu/source/i18n/unicode/timezone.h"
22 class SystemSettingsProvider
: public CrosSettingsProvider
,
23 public system::TimezoneSettings::Observer
{
25 explicit SystemSettingsProvider(const NotifyObserversCallback
& notify_cb
);
26 virtual ~SystemSettingsProvider();
28 // CrosSettingsProvider implementation.
29 virtual const base::Value
* Get(const std::string
& path
) const override
;
30 virtual TrustedStatus
PrepareTrustedValues(
31 const base::Closure
& callback
) override
;
32 virtual bool HandlesSetting(const std::string
& path
) const override
;
34 // TimezoneSettings::Observer implementation.
35 virtual void TimezoneChanged(const icu::TimeZone
& timezone
) override
;
38 // CrosSettingsProvider implementation.
39 virtual void DoSet(const std::string
& path
,
40 const base::Value
& in_value
) override
;
42 scoped_ptr
<base::StringValue
> timezone_value_
;
44 DISALLOW_COPY_AND_ASSIGN(SystemSettingsProvider
);
47 } // namespace chromeos
49 #endif // CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_