• 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  optional int32 search_query_length = 18;
60}
61
62// Used to define what type of item a Target would represent.
63enum ItemType {
64  DEFAULT_ITEMTYPE = 0;
65  APP_ICON = 1;
66  SHORTCUT = 2;
67  WIDGET = 3;
68  FOLDER_ICON = 4;
69  DEEPSHORTCUT = 5;
70  SEARCHBOX = 6;
71  EDITTEXT = 7;
72  NOTIFICATION = 8;
73  TASK = 9;         // Each page of Recents UI (QuickStep)
74  WEB_APP = 10;
75  TASK_ICON = 11;
76}
77
78// Used to define what type of container a Target would represent.
79enum ContainerType {
80  DEFAULT_CONTAINERTYPE = 0;
81  WORKSPACE = 1;
82  HOTSEAT = 2;
83  FOLDER = 3;
84  ALLAPPS = 4;
85  WIDGETS = 5;
86  OVERVIEW = 6;   // Zoomed out workspace (without QuickStep)
87  PREDICTION = 7;
88  SEARCHRESULT = 8;
89  DEEPSHORTCUTS = 9;
90  PINITEM = 10;    // confirmation screen
91  NAVBAR = 11;
92  TASKSWITCHER = 12; // Recents UI Container (QuickStep)
93  APP = 13; // Foreground activity is another app (QuickStep)
94  TIP = 14; // Onboarding texts (QuickStep)
95  SIDELOADED_LAUNCHER = 15;
96}
97
98// Used to define what type of control a Target would represent.
99enum ControlType {
100  DEFAULT_CONTROLTYPE = 0;
101  ALL_APPS_BUTTON = 1;
102  WIDGETS_BUTTON = 2;
103  WALLPAPER_BUTTON = 3;
104  SETTINGS_BUTTON = 4;
105  REMOVE_TARGET = 5;
106  UNINSTALL_TARGET = 6;
107  APPINFO_TARGET = 7;
108  RESIZE_HANDLE = 8;
109  VERTICAL_SCROLL = 9;
110  HOME_INTENT = 10; // Deprecated, use enum Command instead
111  BACK_BUTTON = 11;
112  QUICK_SCRUB_BUTTON = 12;
113  CLEAR_ALL_BUTTON = 13;
114  CANCEL_TARGET = 14;
115  TASK_PREVIEW = 15;
116  SPLIT_SCREEN_TARGET = 16;
117  REMOTE_ACTION_SHORTCUT = 17;
118  APP_USAGE_SETTINGS = 18;
119  BACK_GESTURE = 19;
120  UNDO = 20;
121}
122
123enum TipType {
124  DEFAULT_NONE = 0;
125  BOUNCE = 1;
126  SWIPE_UP_TEXT = 2;
127  QUICK_SCRUB_TEXT = 3;
128  PREDICTION_TEXT = 4;
129  DWB_TOAST = 5;
130}
131
132// Used to define the action component of the LauncherEvent.
133message Action {
134  enum Type {
135    TOUCH = 0;
136    AUTOMATED = 1;
137    COMMAND = 2;
138    TIP = 3;
139    // SOFT_KEYBOARD, HARD_KEYBOARD, ASSIST
140  }
141
142  enum Touch {
143    TAP = 0;
144    LONGPRESS = 1;
145    DRAGDROP = 2;
146    SWIPE = 3;
147    FLING = 4;
148    PINCH = 5;
149    SWIPE_NOOP = 6;
150  }
151
152  enum Direction {
153    NONE = 0;
154    UP = 1;
155    DOWN = 2;
156    LEFT = 3;
157    RIGHT = 4;
158    UPRIGHT = 5;
159    UPLEFT = 6;
160  }
161  enum Command {
162    HOME_INTENT = 0;
163    BACK = 1;
164    ENTRY = 2;          // Indicates entry to one of Launcher container type target
165                        // not using the HOME_INTENT
166    CANCEL = 3;         // Indicates that a confirmation screen was cancelled
167    CONFIRM = 4;        // Indicates thata confirmation screen was accepted
168    STOP = 5;           // Indicates onStop() was called (screen time out, power off)
169    RECENTS_BUTTON = 6; // Indicates that Recents button was pressed
170    RESUME = 7;         // Indicates onResume() was called
171  }
172
173  optional Type type = 1;
174  optional Touch touch = 2;
175  optional Direction dir = 3;
176  optional Command command = 4;
177  // Log if the action was performed on outside of the container
178  optional bool is_outside = 5;
179  optional bool is_state_change = 6;
180}
181
182//
183// Context free grammar of typical user interaction:
184//         Action (Touch) + Target
185//         Action (Touch) + Target + Target
186//
187message LauncherEvent {
188  required Action action = 1;
189  // List of targets that touch actions can be operated on.
190  repeated Target src_target = 2;
191  repeated Target dest_target = 3;
192
193  optional int64 action_duration_millis = 4;
194  optional int64 elapsed_container_millis = 5;
195  optional int64 elapsed_session_millis = 6;
196
197  optional bool is_in_multi_window_mode = 7 [deprecated = true];
198  optional bool is_in_landscape_mode = 8 [deprecated = true];
199
200  optional LauncherEventExtension extension = 9;
201}
202