blob: a89fe5c59422aa386e7271c01ee9b04f650732e4 [file] [log] [blame]
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -07001/*
2 * Copyright (C) 2020 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.logger";
19option java_outer_classname = "LauncherAtom";
20
21//
22// ItemInfos
23message ItemInfo {
24 oneof Item {
25 Application application = 1;
26 Task task= 2;
27 Shortcut shortcut = 3;
28 Widget widget = 4;
29 }
30 // When used for launch event, stores the global predictive rank
31 optional int32 rank = 5;
32
33 // Stores whether the Item belows to non primary user
34 optional bool is_work = 6;
35
36 // Item can be child node to parent container or parent containers (nested)
37 oneof Container {
38 WorkspaceContainer workspace = 7;
39 HotseatContainer hotseat = 8;
40 FolderContainer folder = 9;
41 }
42 // Stores the origin of the Item
43 optional Origin source = 10;
44}
45
46enum Origin {
47 UNKNOWN = 0;
48 DEFAULT_LAYOUT = 1; // icon automatically placed in workspace, folder, hotseat
49 BACKUP_RESTORE = 2; // icon layout restored from backup
50 PINITEM = 3; // from another app (e.g., Chrome's "Add to Home screen")
51 ALLAPPS_ATOZ = 4; // within launcher surface, all aps a-z
52 WIDGETS = 5; // within launcher, widgets tray
53 ADD_TO_HOMESCREEN = 6; // play install + launcher home setting
54 ALLAPPS_PREDICTION = 7; // from prediction bar in all apps container
55 HOTSEAT_PREDICTION = 8; // from prediction bar in hotseat container
56}
57
58// Main app icons
59message Application {
60 optional string package_name = 1;
61 optional string component_name = 2;
62}
63
64// Legacy shortcuts and shortcuts handled by ShortcutManager
65message Shortcut {
66 optional string shortcut_name = 1;
67}
68
69// AppWidgets handled by AppWidgetManager
70message Widget {
71 optional int32 span_x = 1;
72 optional int32 span_y = 2;
73 optional int32 app_widget_id = 3;
74 optional string package_name = 4; // only populated during snapshot if from workspace
75 optional string component_name = 5; // only populated during snapshot if from workspace
76}
77
78// Tasks handled by PackageManager
79message Task {
80 optional string package_name = 1;
81 optional string component_name = 2;
82 optional int32 index = 3;
83}
84
85//////////////////////////////////////////////
86// Containers
87
88message WorkspaceContainer {
89 optional int32 page_index = 1; // range [-1, l], 0 is the index of the main homescreen
90 optional int32 grid_x = 2; // [0, m], m varies based on the display density and resolution
91 optional int32 grid_y = 3; // [0, n], n varies based on the display density and resolution
92}
93
94message HotseatContainer {
95 optional int32 index = 1;
96}
97
98message FolderContainer {
99 optional int32 page_index = 1;
100 optional int32 grid_x = 2;
101 optional int32 grid_y = 3;
102 oneof Container {
103 WorkspaceContainer workspace = 4;
104 HotseatContainer hotseat = 5;
105 }
106}
107
108