/* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto2"; package com.android.app.motiontool; import "view_capture.proto"; option java_multiple_files = true; message MotionToolsRequest { oneof type { HandshakeRequest handshake = 1; BeginTraceRequest begin_trace = 2; EndTraceRequest end_trace = 3; PollTraceRequest poll_trace = 4; } } // RPC response messages. // // Returns the result from the corresponding request. message MotionToolsResponse { oneof type { // Contains error information whenever the request failed. ErrorResponse error = 1; HandshakeResponse handshake = 2; BeginTraceResponse begin_trace = 3; EndTraceResponse end_trace = 4; PollTraceResponse poll_trace = 5; } } message ErrorResponse { enum Code { UNKNOWN = 0; INVALID_REQUEST = 1; UNKNOWN_TRACE_ID = 2; WINDOW_NOT_FOUND = 3; } optional Code code = 1; // Human readable error message. optional string message = 2; } // Identifies the window, in which context the motion tools are executed message WindowIdentifier { // An identifier for the root view, as accepted by // WindowManagerGlobal#getRootView. This is formatted as // `windowName/rootViewClassName@rootViewIdentityHashCode`, // for example `NotificationShade/android.view.ViewRootImpl@bab6a53`. optional string root_window = 1; } // Verifies the motion tools are available for the specified window. message HandshakeRequest { optional WindowIdentifier window = 1; optional int32 client_version = 2; } message HandshakeResponse { enum Status { OK = 1; WINDOW_NOT_FOUND = 2; } optional Status status = 1; optional int32 server_version = 2; } // Enables motion tracing for the specified window message BeginTraceRequest { optional WindowIdentifier window = 1; } message BeginTraceResponse { optional int32 trace_id = 1; } // Disabled motion tracing for the specified window message EndTraceRequest { optional int32 trace_id = 1; } message EndTraceResponse { optional com.android.app.viewcapture.data.MotionWindowData data = 1; } // Polls collected motion trace data collected since the last PollTraceRequest (or the // BeginTraceRequest) message PollTraceRequest { optional int32 trace_id = 1; } message PollTraceResponse { optional com.android.app.viewcapture.data.MotionWindowData data = 1; }