• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2016 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 */
16syntax = "proto2";
17
18import "launcher_log_extension.proto";
19
20option java_package = "com.android.launcher3.userevent";
21option java_outer_classname = "LauncherLogProto";
22
23package userevent;
24
25message Target {
26  enum Type {
27    NONE = 0;
28    ITEM = 1;
29    CONTROL = 2;
30    CONTAINER = 3;
31  }
32
33  optional Type type = 1;
34
35  // For container type and item type
36  // Used mainly for ContainerType.FOLDER, ItemType.*
37  optional int32 page_index = 2;
38  optional int32 rank = 3;
39  optional int32 grid_x = 4;
40  optional int32 grid_y = 5;
41
42  // For container types only
43  optional ContainerType container_type = 6;
44  optional int32 cardinality = 7;
45
46  // For control types only
47  optional ControlType control_type = 8;
48
49  // For item types only
50  optional ItemType item_type = 9;
51  optional int32 package_name_hash = 10;
52  optional int32 component_hash = 11;      // Used for ItemType.WIDGET
53  optional int32 intent_hash = 12;         // Used for ItemType.SHORTCUT
54  optional int32 span_x = 13 [default = 1];// Used for ItemType.WIDGET
55  optional int32 span_y = 14 [default = 1];// Used for ItemType.WIDGET
56  optional int32 predictedRank = 15;
57  optional TargetExtension extension = 16;
58  optional TipType tip_type = 17;
59}
60
61// Used to define what type of item a Target would represent.
62enum ItemType {
63  DEFAULT_ITEMTYPE = 0;
64  APP_ICON = 1;
65  SHORTCUT = 2;
66  WIDGET = 3;
67  FOLDER_ICON = 4;
68  DEEPSHORTCUT = 5;
69  SEARCHBOX = 6;
70  EDITTEXT = 7;
71  NOTIFICATION = 8;
72  TASK = 9;         // Each page of Recents UI (QuickStep)
73  WEB_APP = 10;
74}
75
76// Used to define what type of container a Target would represent.
77enum ContainerType {
78  DEFAULT_CONTAINERTYPE = 0;
79  WORKSPACE = 1;
80  HOTSEAT = 2;
81  FOLDER = 3;
82  ALLAPPS = 4;
83  WIDGETS = 5;
84  OVERVIEW = 6;   // Zoomed out workspace (without QuickStep)
85  PREDICTION = 7;
86  SEARCHRESULT = 8;
87  DEEPSHORTCUTS = 9;
88  PINITEM = 10;    // confirmation screen
89  NAVBAR = 11;
90  TASKSWITCHER = 12; // Recents UI Container (QuickStep)
91  APP = 13; // Foreground activity is another app (QuickStep)
92  TIP = 14; // Onboarding texts (QuickStep)
93  SIDELOADED_LAUNCHER = 15;
94}
95
96// Used to define what type of control a Target would represent.
97enum ControlType {
98  DEFAULT_CONTROLTYPE = 0;
99  ALL_APPS_BUTTON = 1;
100  WIDGETS_BUTTON = 2;
101  WALLPAPER_BUTTON = 3;
102  SETTINGS_BUTTON = 4;
103  REMOVE_TARGET = 5;
104  UNINSTALL_TARGET = 6;
105  APPINFO_TARGET = 7;
106  RESIZE_HANDLE = 8;
107  VERTICAL_SCROLL = 9;
108  HOME_INTENT = 10; // Deprecated, use enum Command instead
109  BACK_BUTTON = 11; // Deprecated, use enum Command instead
110  QUICK_SCRUB_BUTTON = 12;
111  CLEAR_ALL_BUTTON = 13;
112  CANCEL_TARGET = 14;
113  TASK_PREVIEW = 15;
114  SPLIT_SCREEN_TARGET = 16;
115}
116
117enum TipType {
118  DEFAULT_NONE = 0;
119  BOUNCE = 1;
120  SWIPE_UP_TEXT = 2;
121  QUICK_SCRUB_TEXT = 3;
122  PREDICTION_TEXT = 4;
123}
124
125// Used to define the action component of the LauncherEvent.
126message Action {
127  enum Type {
128    TOUCH = 0;
129    AUTOMATED = 1;
130    COMMAND = 2;
131    TIP = 3;
132    // SOFT_KEYBOARD, HARD_KEYBOARD, ASSIST
133  }
134
135  enum Touch {
136    TAP = 0;
137    LONGPRESS = 1;
138    DRAGDROP = 2;
139    SWIPE = 3;
140    FLING = 4;
141    PINCH = 5;
142  }
143
144  enum Direction {
145    NONE = 0;
146    UP = 1;
147    DOWN = 2;
148    LEFT = 3;
149    RIGHT = 4;
150  }
151  enum Command {
152    HOME_INTENT = 0;
153    BACK = 1;
154    ENTRY = 2;          // Indicates entry to one of Launcher container type target
155                        // not using the HOME_INTENT
156    CANCEL = 3;         // Indicates that a confirmation screen was cancelled
157    CONFIRM = 4;        // Indicates thata confirmation screen was accepted
158    STOP = 5;           // Indicates onStop() was called (screen time out, power off)
159    RECENTS_BUTTON = 6; // Indicates that Recents button was pressed
160    RESUME = 7;         // Indicates onResume() was called
161  }
162
163  optional Type type = 1;
164  optional Touch touch = 2;
165  optional Direction dir = 3;
166  optional Command command = 4;
167  // Log if the action was performed on outside of the container
168  optional bool is_outside = 5;
169  optional bool is_state_change = 6;
170}
171
172//
173// Context free grammar of typical user interaction:
174//         Action (Touch) + Target
175//         Action (Touch) + Target + Target
176//
177message LauncherEvent {
178  required Action action = 1;
179  // List of targets that touch actions can be operated on.
180  repeated Target src_target = 2;
181  repeated Target dest_target = 3;
182
183  optional int64 action_duration_millis = 4;
184  optional int64 elapsed_container_millis = 5;
185  optional int64 elapsed_session_millis = 6;
186
187  optional bool is_in_multi_window_mode = 7;
188  optional bool is_in_landscape_mode = 8;
189
190  optional LauncherEventExtension extension = 9;
191}
192