blob: f0ecba39e8c6f4f7ea004d0f992a9f5a5ff77f13 [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;
thiruramacbd7ef2020-04-17 19:10:49 -070028 Widget widget = 4;
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070029 }
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)
thiruramacbd7ef2020-04-17 19:10:49 -070037 optional ContainerInfo container_info = 7;
38
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070039 // Stores the origin of the Item
thiruramacbd7ef2020-04-17 19:10:49 -070040 optional Origin source = 8;
41}
42
43// Represents various launcher surface where items are placed.
44message ContainerInfo {
45 oneof Container {
46 WorkspaceContainer workspace = 1;
47 HotseatContainer hotseat = 2;
48 FolderContainer folder = 3;
49 AllAppsContainer all_apps_container = 4;
50 }
51}
52
53message AllAppsContainer {
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070054}
55
56enum Origin {
57 UNKNOWN = 0;
58 DEFAULT_LAYOUT = 1; // icon automatically placed in workspace, folder, hotseat
59 BACKUP_RESTORE = 2; // icon layout restored from backup
60 PINITEM = 3; // from another app (e.g., Chrome's "Add to Home screen")
61 ALLAPPS_ATOZ = 4; // within launcher surface, all aps a-z
62 WIDGETS = 5; // within launcher, widgets tray
63 ADD_TO_HOMESCREEN = 6; // play install + launcher home setting
64 ALLAPPS_PREDICTION = 7; // from prediction bar in all apps container
65 HOTSEAT_PREDICTION = 8; // from prediction bar in hotseat container
66}
67
68// Main app icons
69message Application {
70 optional string package_name = 1;
71 optional string component_name = 2;
72}
73
74// Legacy shortcuts and shortcuts handled by ShortcutManager
75message Shortcut {
76 optional string shortcut_name = 1;
77}
78
79// AppWidgets handled by AppWidgetManager
80message Widget {
thiruramacbd7ef2020-04-17 19:10:49 -070081 optional int32 span_x = 1 [default = 1];
82 optional int32 span_y = 2 [default = 1];
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -070083 optional int32 app_widget_id = 3;
84 optional string package_name = 4; // only populated during snapshot if from workspace
85 optional string component_name = 5; // only populated during snapshot if from workspace
86}
87
88// Tasks handled by PackageManager
89message Task {
90 optional string package_name = 1;
91 optional string component_name = 2;
92 optional int32 index = 3;
93}
94
95//////////////////////////////////////////////
96// Containers
97
98message WorkspaceContainer {
thiruramacbd7ef2020-04-17 19:10:49 -070099 optional int32 page_index = 1 [default = -2]; // range [-1, l], 0 is the index of the main homescreen
100 optional int32 grid_x = 2 [default = -1]; // [0, m], m varies based on the display density and resolution
101 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 -0700102}
103
104message HotseatContainer {
105 optional int32 index = 1;
106}
107
108message FolderContainer {
thiruramacbd7ef2020-04-17 19:10:49 -0700109 optional int32 page_index = 1 [default = -1];
110 optional int32 grid_x = 2 [default = -1];
111 optional int32 grid_y = 3 [default = -1];
112 oneof ParentContainer {
Hyunyoung Song7ac0ef12020-03-26 01:48:24 -0700113 WorkspaceContainer workspace = 4;
114 HotseatContainer hotseat = 5;
115 }
116}