|  | // 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); | 
|  | }; |