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 ~SystemSettingsProvider() override
;
28 // CrosSettingsProvider implementation.
29 const base::Value
* Get(const std::string
& path
) const override
;
30 TrustedStatus
PrepareTrustedValues(const base::Closure
& callback
) override
;
31 bool HandlesSetting(const std::string
& path
) const override
;
33 // TimezoneSettings::Observer implementation.
34 void TimezoneChanged(const icu::TimeZone
& timezone
) override
;
37 // CrosSettingsProvider implementation.
38 void DoSet(const std::string
& path
, const base::Value
& in_value
) override
;
40 scoped_ptr
<base::StringValue
> timezone_value_
;
42 DISALLOW_COPY_AND_ASSIGN(SystemSettingsProvider
);
45 } // namespace chromeos
47 #endif // CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_