| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.settings; |
| |
| using fuchsia.intl; |
| |
| /// Settings related to internationalization such as locale, time zone, and |
| /// temperature units. |
| /// |
| /// Supported SettingsEpitaph enums: |
| /// REQUEST_NOT_SUPPORTED, INTERNAL_SERVICE_ERROR, PERSISTENT_STORAGE_ERROR, |
| /// FILE_READ_ERROR |
| [Discoverable] |
| protocol Intl { |
| /// DEPRECATED: new watches should use Watch2. |
| [Transitional = "Deprecated in favor of Watch2"] |
| Watch() -> (IntlSettings settings) error Error; |
| |
| /// Gets the current [IntlSettings]. Returns immediately on first call; |
| /// subsequent calls return when the value changes. |
| /// |
| /// If this call fails, it is considered a fatal error and the channel |
| /// will be closed. |
| [Transitional = "Replacement for Watch"] |
| Watch2() -> (IntlSettings settings); |
| |
| /// Sets [IntlSettings] settings. Any field not explicitly set in the table performs a |
| /// no-op, and will not make any changes. |
| Set(IntlSettings settings) -> () error Error; |
| }; |
| |
| /// Whether if the time format should be using 12 hour or 24 hour clock. H indicates the |
| /// maximum number that the hour indicator will ever show. |
| enum HourCycle { |
| UNKNOWN = 0; |
| |
| /// 12-hour clock, 0:10am after midnight. |
| H11 = 1; |
| |
| /// 12-hour clock, 12:10am after midnight. |
| H12 = 2; |
| |
| /// 24-hour clock, 0:10 after midnight. |
| H23 = 3; |
| |
| /// 24-hour clock, 24:10 after midnight. |
| H24 = 4; |
| }; |
| |
| /// Collection of internationalization-related settings. |
| table IntlSettings { |
| /// An ordered list of preferred locales. |
| 1: vector<fuchsia.intl.LocaleId>:10 locales; |
| |
| /// The preferred temperature unit. |
| 2: fuchsia.intl.TemperatureUnit temperature_unit; |
| |
| /// The currently set time zone. |
| 3: fuchsia.intl.TimeZoneId time_zone_id; |
| |
| /// The preferred hour cycle. |
| 4: HourCycle hour_cycle; |
| }; |