| // 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.deprecatedtimezone; |
| |
| // NOTE: this FIDL protocol is deprecated and slated for removal. Please do |
| // not add new uses that depend on it. Use instead the following functionality: |
| // |
| // - For `GetTimezoneOffsetMinutes` and `GetTimezoneId`, get the timezone name |
| // from `fuchsia.intl.ProfileProvider`, and use the ICU library to compute |
| // the offset. |
| // - For `SetTimezone` and `Watch`, please use `fuchsia.settings.Intl`. |
| // |
| // For more information on the ICU timezone ID format, see: |
| // http://userguide.icu-project.org/datetime |
| [Discoverable] |
| protocol Timezone { |
| /// Returns local timezone offset (in minutes from UTC. Can be negative) for |
| /// the supplied number of milliseconds since the Unix epoch. Returns a |
| /// non-zero DST offset when appropriate. |
| GetTimezoneOffsetMinutes(int64 milliseconds_since_epoch) |
| -> (int32 local_offset_minutes, int32 dst_offset_minutes); |
| |
| /// Sets the timezone for the machine based on an ICU ID. |
| SetTimezone(string timezone_id) -> (bool status); |
| |
| /// Gets the timezone ID string. |
| GetTimezoneId() -> (string timezone_id); |
| |
| /// Watches for updates to the timezone ID. |
| Watch(TimezoneWatcher watcher); |
| }; |
| |
| protocol TimezoneWatcher { |
| /// When the timezone changes, returns the new timezone ID. |
| OnTimezoneOffsetChange(string timezone_id); |
| }; |