1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
15 */
16
17syntax = "proto2";
18
19package systemui;
20
21option java_package = "com.android.systemui.statusbar.phone";
22option java_outer_classname = "TouchAnalyticsProto";
23
24message Session {
25    message TouchEvent {
26        message BoundingBox {
27            optional float width = 1;
28            optional float height = 2;
29        }
30
31        enum Action {
32            // Keep in sync with MotionEvent.
33            DOWN = 0;
34            UP = 1;
35            MOVE = 2;
36            CANCEL = 3;
37            OUTSIDE = 4;
38            POINTER_DOWN = 5;
39            POINTER_UP = 6;
40        }
41
42        message Pointer {
43            optional float x = 1;
44            optional float y = 2;
45            optional float size = 3;
46            optional float pressure = 4;
47            optional int32 id = 5;
48            optional float removed_length = 6;
49            optional BoundingBox removed_boundingBox = 7;
50        }
51
52        optional uint64 timeOffsetNanos = 1;
53        optional Action action = 2;
54        optional int32 actionIndex = 3;
55        repeated Pointer pointers = 4;
56        optional bool removed_redacted = 5;
57        optional BoundingBox removed_boundingBox = 6;
58    }
59
60    message SensorEvent {
61        enum Type {
62            ACCELEROMETER = 1;
63            GYROSCOPE = 4;
64            LIGHT = 5;
65            PROXIMITY = 8;
66            ROTATION_VECTOR = 11;
67        }
68
69        optional Type type = 1;
70        optional uint64 timeOffsetNanos = 2;
71        repeated float values = 3;
72        optional uint64 timestamp = 4;
73    }
74
75    message PhoneEvent {
76        enum Type {
77            ON_SCREEN_ON = 0;
78            ON_SCREEN_ON_FROM_TOUCH = 1;
79            ON_SCREEN_OFF = 2;
80            ON_SUCCESSFUL_UNLOCK = 3;
81            ON_BOUNCER_SHOWN = 4;
82            ON_BOUNCER_HIDDEN = 5;
83            ON_QS_DOWN = 6;
84            SET_QS_EXPANDED_TRUE = 7;
85            SET_QS_EXPANDED_FALSE = 8;
86            ON_TRACKING_STARTED = 9;
87            ON_TRACKING_STOPPED = 10;
88            ON_NOTIFICATION_ACTIVE = 11;
89            ON_NOTIFICATION_INACTIVE = 12;
90            ON_NOTIFICATION_DOUBLE_TAP = 13;
91            SET_NOTIFICATION_EXPANDED = 14;
92            RESET_NOTIFICATION_EXPANDED = 15;
93            ON_NOTIFICATION_START_DRAGGING_DOWN = 16;
94            ON_NOTIFICATION_STOP_DRAGGING_DOWN = 17;
95            ON_NOTIFICATION_DISMISSED = 18;
96            ON_NOTIFICATION_START_DISMISSING = 19;
97            ON_NOTIFICATION_STOP_DISMISSING = 20;
98            ON_RIGHT_AFFORDANCE_SWIPING_STARTED = 21;
99            ON_LEFT_AFFORDANCE_SWIPING_STARTED = 22;
100            ON_AFFORDANCE_SWIPING_ABORTED = 23;
101            ON_CAMERA_ON = 24;
102            ON_LEFT_AFFORDANCE_ON = 25;
103            ON_UNLOCK_HINT_STARTED = 26;
104            ON_CAMERA_HINT_STARTED = 27;
105            ON_LEFT_AFFORDANCE_HINT_STARTED = 28;
106        }
107
108        optional Type type = 1;
109        optional uint64 timeOffsetNanos = 2;
110    }
111
112    enum Result {
113        FAILURE = 0;
114        SUCCESS = 1;
115        UNKNOWN = 2;
116    }
117
118    enum Type {
119        RESERVED_1 = 0;
120        RESERVED_2 = 1;
121        RANDOM_WAKEUP = 2;
122        REAL = 3;
123        REJECTED_TOUCH_REPORT = 4;
124    }
125
126    optional uint64 startTimestampMillis = 1;
127    optional uint64 durationMillis = 2;
128    optional string build = 3;
129    optional Result result = 4;
130    repeated TouchEvent touchEvents = 5;
131    repeated SensorEvent sensorEvents = 6;
132
133    optional int32 touchAreaWidth = 9;
134    optional int32 touchAreaHeight = 10;
135    optional Type type = 11;
136    repeated PhoneEvent phoneEvents = 12;
137}