launcher_log.proto revision 726eb822d38ad422f37b74c4b0fc504a423ab926
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
18option java_package = "com.android.launcher3.userevent.nano";
19option java_outer_classname = "LauncherLogProto";
20
21package userevent;
22
23message Target {
24  enum Type {
25    NONE = 0;
26    ITEM = 1;
27    CONTROL = 2;
28    CONTAINER = 3;
29  }
30
31  optional Type type = 1;
32
33  // For container type and item type
34  // Used mainly for ContainerType.FOLDER, ItemType.*
35  optional Target parent = 2;
36  optional int32 page_index = 3;
37  optional int32 rank = 4;
38  optional int32 grid_x = 5;
39  optional int32 grid_y = 6;
40
41  // For container types only
42  optional ContainerType container_type = 7;
43  optional int32 cardinality = 8;
44
45  // For control types only
46  optional ControlType control_type = 9;
47
48  // For item types only
49  optional ItemType item_type = 10;
50  optional int32 package_name_hash = 11;
51  optional int32 component_hash = 12;      // Used for ItemType.WIDGET
52  optional int32 intent_hash = 13;         // Used for ItemType.SHORTCUT
53  optional int32 span_x = 14 [default = 1];// Used for ItemType.WIDGET
54  optional int32 span_y = 15 [default = 1];// Used for ItemType.WIDGET
55}
56
57enum ItemType {
58  APP_ICON = 0;
59  SHORTCUT = 1;
60  WIDGET = 2;
61  FOLDER_ICON = 3;
62}
63
64enum ContainerType {
65  WORKSPACE = 0;
66  HOTSEAT = 1;
67  FOLDER = 2;
68  ALLAPPS = 3;
69  WIDGETS = 4;
70  OVERVIEW = 5;
71  PREDICTION = 6;
72  SEARCHRESULT = 7;
73}
74
75enum ControlType {
76  ALL_APPS_BUTTON = 0;
77  WIDGETS_BUTTON = 1;
78  WALLPAPER_BUTTON = 2;
79  SETTINGS_BUTTON = 3;
80  REMOVE_TARGET = 4;
81  UNINSTALL_TARGET = 5;
82  APPINFO_TARGET = 6;
83  RESIZE_HANDLE = 7;
84  FAST_SCROLL_HANDLE = 8;
85  // HOME, BACK, GO_TO_PLAYSTORE
86}
87
88message Action {
89  enum Type {
90    TOUCH = 0;
91    AUTOMATED = 1;
92    // SOFT_KEYBOARD, HARD_KEYBOARD, ASSIST
93  }
94  enum Touch {
95    TAP = 0;
96    LONGPRESS = 1;
97    DRAGDROP = 2;
98    SWIPE = 3;
99    FLING = 4;
100    PINCH = 5;
101  }
102  optional Type type = 1;
103  optional Touch touch = 2;
104}
105
106//
107// Context free grammar of typical user interaction:
108//         Action (Touch) + Target
109//         Action (Touch) + Target + Target
110//
111message LauncherEvent {
112
113  required Action action = 1;
114
115  // List of targets that touch actions can be operated on.
116  optional Target src_target = 2;
117  optional Target dest_target = 3;
118
119  optional int64 action_duration_millis = 4;
120  optional int64 elapsed_container_millis = 5;
121  optional int64 elapsed_session_millis = 6;
122}
123