blob: 687c5531c25a9ace5461f73d0cf2723448297940 [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;
alias OngoingActivityId = uint32;
/// The Tracker protocol collects evidence of user activity and uses this
/// evidence to set the system's activity state.
@discoverable
protocol Tracker {
/// Reports a discrete activity such as a keystroke.
/// `event_time` is in nanoseconds in the `CLOCK_MONOTONIC` time base.
ReportDiscreteActivity(struct {
activity DiscreteActivity;
event_time zx.time;
}) -> ();
/// Reports the start of an ongoing activity such as media playback.
/// `activity_id` is a unique identifier which is expected to be later
/// passed to EndOngoingActivity.
/// `start_time` is in nanoseconds in the `CLOCK_MONOTONIC` time base.
StartOngoingActivity(struct {
activity_id OngoingActivityId;
activity OngoingActivity;
start_time zx.time;
}) -> ();
/// Reports the end of an ongoing activity such as media playback.
/// `activity_id` is the nonce which was passed into StartOngoingActivity.
/// `end_time` is in nanoseconds in the `CLOCK_MONOTONIC` time base.
EndOngoingActivity(struct {
activity_id OngoingActivityId;
end_time zx.time;
}) -> ();
};