blob: 4f755878380df6758edb41ef911fca6fbbb7df57 [file] [log] [blame]
// 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.ui.activity;
using zx;
/// The Provider protocol offers a subscription interface through
/// which clients can watch for changes in the system's activity state.
protocol Provider {
/// Subscribe to changes in the system's state.
/// The server will always invoke listener.OnStateChanged at least once with
/// the initial state, and after that invoke listener.OnStateChanged
/// whenever the system's state changes.
WatchState(Listener listener);
/// The Listener protocol subscribes to changes in the system's activity
/// state. Clients which care about the activity state of the system are
/// expected to implement this protocol and subscribe via Provider.WatchState.
protocol Listener {
/// Callback that is invoked whenever the system state changes.
/// The Listener is expected to acknowledge each call explicitly and will
/// not receive new state until this acknowledgement is done.
OnStateChanged(State state, zx.time transition_time) -> ();