| // Copyright 2022 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.recovery.ui; |
| |
| using zx; |
| |
| type Status = strict enum { |
| ACTIVE = 1; |
| PAUSED = 2; |
| ERROR = 3; |
| CANCELLED = 4; |
| COMPLETE = 5; |
| }; |
| |
| /// Protocol to receive progress updates to display a carnelian based progress bar UI. |
| @discoverable |
| closed protocol ProgressRenderer { |
| /// Called to send progress updates to the renderer. |
| /// |
| /// The return value is used for flow control, and implementers should acknowledge receipt of |
| /// each message in order to continue receiving future messages. |
| @available(deprecated=9) |
| strict Render(struct { |
| status Status; |
| percent_complete float32; |
| }) -> (); |
| |
| /// Called to send progress updates to the renderer. |
| /// |
| /// This call optionally contains timing or speed information for the progress bar to move |
| /// slowly to percent_complete |
| /// |
| /// The return value is used for flow control, and implementers should acknowledge receipt of |
| /// each message in order to continue receiving future messages. |
| @available(added=9) |
| strict Render2(table { |
| 1: status Status; |
| /// Optional, only used with status ACTIVE |
| /// No value or an invalid value sets the progress bar to 0% |
| /// Values: [0.0 - 100.0] |
| 2: percent_complete float32; |
| /// Time to take to move slowly to percent_complete |
| /// Optional, only used with status ACTIVE |
| /// No value indicates an instant jump to percent_complete |
| 3: elapsed_time zx.Duration; |
| }) -> (); |
| }; |