|  | // 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(DiscreteActivity activity, zx.time event_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(OngoingActivityId activity_id, OngoingActivity activity, | 
|  | zx.time start_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(OngoingActivityId activity_id, zx.time end_time) -> (); | 
|  | }; |