1e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song/*
2e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * Copyright (C) 2017 The Android Open Source Project
3e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song *
4e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * Licensed under the Apache License, Version 2.0 (the "License");
5e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * you may not use this file except in compliance with the License.
6e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * You may obtain a copy of the License at
7e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song *
8e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song *      http://www.apache.org/licenses/LICENSE-2.0
9e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song *
10e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * Unless required by applicable law or agreed to in writing, software
11e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * distributed under the License is distributed on an "AS IS" BASIS,
12e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * See the License for the specific language governing permissions and
14e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song * limitations under the License.
15e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song */
16e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songsyntax = "proto2";
17e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
18e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songoption java_package = "com.android.launcher3.model";
19e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songoption java_outer_classname = "LauncherDumpProto";
20e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
21e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songpackage model;
22e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
23e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songmessage DumpTarget {
24e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  enum Type {
25e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song    NONE = 0;
26e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song    ITEM = 1;
27e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song    CONTAINER = 2;
28e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  }
29e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
30e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional Type type = 1;
31e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional int32 page_id = 2;
32e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional int32 grid_x = 3;
33e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional int32 grid_y = 4;
34e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
35e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  // For container types only
36e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional ContainerType container_type = 5;
37e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
38e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  // For item types only
39e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional ItemType item_type = 6;
40e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
41e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional string package_name = 7; // All ItemTypes except UNKNOWN type
42e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional string component = 8;   // All ItemTypes except UNKNOWN type
43e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional string item_id = 9; // For Pinned Shortcuts and appWidgetId
44e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
45e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional int32 span_x = 10 [default = 1];// Used for ItemType.WIDGET
46e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional int32 span_y = 11 [default = 1];// Used for ItemType.WIDGET
47e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  optional UserType user_type = 12;
48e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song}
49e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
50e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song// Used to define what type of item a Target would represent.
51e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songenum ItemType {
52e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  UNKNOWN_ITEMTYPE = 0;  // Launcher specific items
53e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  APP_ICON = 1; // Regular app icons
54e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  WIDGET = 2;   // Elements from AppWidgetManager
55e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  SHORTCUT = 3; // ShortcutManager
56e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song}
57e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
58e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song// Used to define what type of container a Target would represent.
59e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songenum ContainerType {
60e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  UNKNOWN_CONTAINERTYPE = 0;
61e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  WORKSPACE = 1;
62e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  HOTSEAT = 2;
63e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  FOLDER = 3;
64e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song}
65e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
66e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song// Used to define what type of control a Target would represent.
67e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songenum UserType {
68e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  DEFAULT = 0;
69e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  WORK = 1;
70e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song}
71e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song
72e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song// Main message;
73e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Songmessage LauncherImpression {
74e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song  repeated DumpTarget targets = 1;
75e295acaeb34c474430e68cbfb069a6a6bfea4041Hyunyoung Song}
76