blob: cac2d8f5a75cbb4dad6614d0fa5edb7618bed667 [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;
thiruramacbd7ef2020-04-17 19:10:49 -070026 Task task = 2;
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070027 Shortcut shortcut = 3;
thiruramf81e8b02020-04-15 10:22:28 -070028 Widget widget = 4;
thiruram5a01f0e2020-05-04 17:49:37 -070029 FolderIcon folder_icon = 9;
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070030 }
31 // When used for launch event, stores the global predictive rank
32 optional int32 rank = 5;
33
34 // Stores whether the Item belows to non primary user
35 optional bool is_work = 6;
36
37 // Item can be child node to parent container or parent containers (nested)
thiruramacbd7ef2020-04-17 19:10:49 -070038 optional ContainerInfo container_info = 7;
39
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070040 // Stores the origin of the Item
thiruramacbd7ef2020-04-17 19:10:49 -070041 optional Origin source = 8;
42}
43
44// Represents various launcher surface where items are placed.
45message ContainerInfo {
46 oneof Container {
47 WorkspaceContainer workspace = 1;
48 HotseatContainer hotseat = 2;
49 FolderContainer folder = 3;
50 AllAppsContainer all_apps_container = 4;
51 }
52}
53
54message AllAppsContainer {
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070055}
56
57enum Origin {
58 UNKNOWN = 0;
59 DEFAULT_LAYOUT = 1; // icon automatically placed in workspace, folder, hotseat
60 BACKUP_RESTORE = 2; // icon layout restored from backup
61 PINITEM = 3; // from another app (e.g., Chrome's "Add to Home screen")
62 ALLAPPS_ATOZ = 4; // within launcher surface, all aps a-z
63 WIDGETS = 5; // within launcher, widgets tray
64 ADD_TO_HOMESCREEN = 6; // play install + launcher home setting
65 ALLAPPS_PREDICTION = 7; // from prediction bar in all apps container
66 HOTSEAT_PREDICTION = 8; // from prediction bar in hotseat container
67}
68
69// Main app icons
70message Application {
71 optional string package_name = 1;
72 optional string component_name = 2;
73}
74
75// Legacy shortcuts and shortcuts handled by ShortcutManager
76message Shortcut {
77 optional string shortcut_name = 1;
78}
79
80// AppWidgets handled by AppWidgetManager
81message Widget {
thiruramacbd7ef2020-04-17 19:10:49 -070082 optional int32 span_x = 1 [default = 1];
83 optional int32 span_y = 2 [default = 1];
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070084 optional int32 app_widget_id = 3;
85 optional string package_name = 4; // only populated during snapshot if from workspace
86 optional string component_name = 5; // only populated during snapshot if from workspace
87}
88
89// Tasks handled by PackageManager
90message Task {
91 optional string package_name = 1;
92 optional string component_name = 2;
93 optional int32 index = 3;
94}
95
thiruram5a01f0e2020-05-04 17:49:37 -070096// Represents folder in a closed state.
97message FolderIcon {
98 optional int32 cardinality = 1;
99}
100
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -0700101//////////////////////////////////////////////
102// Containers
103
104message WorkspaceContainer {
thiruramacbd7ef2020-04-17 19:10:49 -0700105 optional int32 page_index = 1 [default = -2]; // range [-1, l], 0 is the index of the main homescreen
106 optional int32 grid_x = 2 [default = -1]; // [0, m], m varies based on the display density and resolution
107 optional int32 grid_y = 3 [default = -1]; // [0, n], n varies based on the display density and resolution
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -0700108}
109
110message HotseatContainer {
111 optional int32 index = 1;
112}
113
114message FolderContainer {
thiruramacbd7ef2020-04-17 19:10:49 -0700115 optional int32 page_index = 1 [default = -1];
116 optional int32 grid_x = 2 [default = -1];
117 optional int32 grid_y = 3 [default = -1];
118 oneof ParentContainer {
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -0700119 WorkspaceContainer workspace = 4;
120 HotseatContainer hotseat = 5;
121 }
122}