blob: bcf2815db7c8943f94a0597ee679194f778db1a8 [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.
@available(added=7)
library fuchsia.ui.activity.control;
using fuchsia.ui.activity;
/// The Control protocol can be used to override the activity state of the
/// Activity Service (fuchsia.ui.activity).
///
/// State provided through this interface takes precedence over state which
/// is determined based on activity sent through the Tracker API.
///
/// Once a state has been assigned through this protocol, the Activity
/// Service will no longer determine state based on input to the
/// fuchsia.ui.activity.Tracker protocol, and instead will only report state
/// transitions occuring through the Control protocol.
@discoverable
closed protocol Control {
/// Sets the Activity Service's state to `state`.
/// All listeners registered through the Provider protocol will immediately
/// be notified of the new state.
///
/// Typically, state transitions should occur minutes apart (e.g.
/// transition from ACTIVE to IDLE after 15 minutes of inactivity).
strict SetState(struct {
state fuchsia.ui.activity.State;
});
};