blob: 0fe53100b7f7b1147362896d15302ffb4502d431 [file] [log] [blame]
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto2";
import "launcher_log_extension.proto";
option java_package = "com.android.launcher3.userevent";
option java_outer_classname = "LauncherLogProto";
package userevent;
message Target {
enum Type {
NONE = 0;
ITEM = 1;
CONTROL = 2;
CONTAINER = 3;
}
optional Type type = 1;
// For container type and item type
// Used mainly for ContainerType.FOLDER, ItemType.*
optional int32 page_index = 2;
optional int32 rank = 3;
optional int32 grid_x = 4;
optional int32 grid_y = 5;
// For container types only
optional ContainerType container_type = 6;
optional int32 cardinality = 7;
// For control types only
optional ControlType control_type = 8;
// For item types only
optional ItemType item_type = 9;
optional int32 package_name_hash = 10;
optional int32 component_hash = 11; // Used for ItemType.WIDGET
optional int32 intent_hash = 12; // Used for ItemType.SHORTCUT
optional int32 span_x = 13 [default = 1];// Used for ItemType.WIDGET
optional int32 span_y = 14 [default = 1];// Used for ItemType.WIDGET
optional int32 predictedRank = 15;
optional TargetExtension extension = 16;
optional TipType tip_type = 17;
optional int32 search_query_length = 18;
optional bool is_work_app = 19;
optional FromFolderLabelState from_folder_label_state = 20;
optional ToFolderLabelState to_folder_label_state = 21;
// Note: proto does not support duplicate enum values, even if they belong to different enum type.
// Hence "FROM" and "TO" prefix added.
enum FromFolderLabelState{
FROM_FOLDER_LABEL_STATE_UNSPECIFIED = 0;
FROM_EMPTY = 1;
FROM_CUSTOM = 2;
FROM_SUGGESTED = 3;
}
enum ToFolderLabelState{
TO_FOLDER_LABEL_STATE_UNSPECIFIED = 0;
TO_SUGGESTION0_WITH_VALID_PRIMARY = 1;
TO_SUGGESTION1_WITH_VALID_PRIMARY = 2;
TO_SUGGESTION1_WITH_EMPTY_PRIMARY = 3;
TO_SUGGESTION2_WITH_VALID_PRIMARY = 4;
TO_SUGGESTION2_WITH_EMPTY_PRIMARY = 5;
TO_SUGGESTION3_WITH_VALID_PRIMARY = 6;
TO_SUGGESTION3_WITH_EMPTY_PRIMARY = 7;
TO_EMPTY_WITH_VALID_SUGGESTIONS = 8;
TO_EMPTY_WITH_EMPTY_SUGGESTIONS = 9;
TO_EMPTY_WITH_SUGGESTIONS_DISABLED = 10;
TO_CUSTOM_WITH_VALID_SUGGESTIONS = 11;
TO_CUSTOM_WITH_EMPTY_SUGGESTIONS = 12;
TO_CUSTOM_WITH_SUGGESTIONS_DISABLED = 13;
UNCHANGED = 14;
}
}
// Used to define what type of item a Target would represent.
enum ItemType {
DEFAULT_ITEMTYPE = 0;
APP_ICON = 1;
SHORTCUT = 2;
WIDGET = 3;
FOLDER_ICON = 4;
DEEPSHORTCUT = 5;
SEARCHBOX = 6;
EDITTEXT = 7;
NOTIFICATION = 8;
TASK = 9; // Each page of Recents UI (QuickStep)
WEB_APP = 10;
TASK_ICON = 11;
}
// Used to define what type of container a Target would represent.
enum ContainerType {
DEFAULT_CONTAINERTYPE = 0;
WORKSPACE = 1;
HOTSEAT = 2;
FOLDER = 3;
ALLAPPS = 4;
WIDGETS = 5;
OVERVIEW = 6; // Zoomed out workspace (without QuickStep)
PREDICTION = 7;
SEARCHRESULT = 8;
DEEPSHORTCUTS = 9;
PINITEM = 10; // confirmation screen
NAVBAR = 11;
TASKSWITCHER = 12; // Recents UI Container (QuickStep)
APP = 13; // Foreground activity is another app (QuickStep)
TIP = 14; // Onboarding texts (QuickStep)
OTHER_LAUNCHER_APP = 15;
}
// Used to define what type of control a Target would represent.
enum ControlType {
DEFAULT_CONTROLTYPE = 0;
ALL_APPS_BUTTON = 1;
WIDGETS_BUTTON = 2;
WALLPAPER_BUTTON = 3;
SETTINGS_BUTTON = 4;
REMOVE_TARGET = 5;
UNINSTALL_TARGET = 6;
APPINFO_TARGET = 7;
RESIZE_HANDLE = 8;
VERTICAL_SCROLL = 9;
HOME_INTENT = 10; // Deprecated, use enum Command instead
BACK_BUTTON = 11;
QUICK_SCRUB_BUTTON = 12;
CLEAR_ALL_BUTTON = 13;
CANCEL_TARGET = 14;
TASK_PREVIEW = 15;
SPLIT_SCREEN_TARGET = 16;
REMOTE_ACTION_SHORTCUT = 17;
APP_USAGE_SETTINGS = 18;
BACK_GESTURE = 19;
UNDO = 20;
DISMISS_PREDICTION = 21;
HYBRID_HOTSEAT_ACCEPTED = 22;
HYBRID_HOTSEAT_CANCELED = 23;
OVERVIEW_ACTIONS_SHARE_BUTTON = 24;
OVERVIEW_ACTIONS_SCREENSHOT_BUTTON = 25;
OVERVIEW_ACTIONS_SELECT_BUTTON = 26;
SELECT_MODE_CLOSE_BUTTON = 27;
SELECT_MODE_ITEM = 28;
}
enum TipType {
DEFAULT_NONE = 0;
BOUNCE = 1;
SWIPE_UP_TEXT = 2;
QUICK_SCRUB_TEXT = 3;
PREDICTION_TEXT = 4;
DWB_TOAST = 5;
HYBRID_HOTSEAT = 6;
}
// Used to define the action component of the LauncherEvent.
message Action {
enum Type {
TOUCH = 0;
AUTOMATED = 1;
COMMAND = 2;
TIP = 3;
SOFT_KEYBOARD = 4;
// HARD_KEYBOARD, ASSIST
}
enum Touch {
TAP = 0;
LONGPRESS = 1;
DRAGDROP = 2;
SWIPE = 3;
FLING = 4;
PINCH = 5;
SWIPE_NOOP = 6;
}
enum Direction {
NONE = 0;
UP = 1;
DOWN = 2;
LEFT = 3;
RIGHT = 4;
UPRIGHT = 5;
UPLEFT = 6;
}
enum Command {
HOME_INTENT = 0;
BACK = 1;
ENTRY = 2; // Indicates entry to one of Launcher container type target
// not using the HOME_INTENT
CANCEL = 3; // Indicates that a confirmation screen was cancelled
CONFIRM = 4; // Indicates thata confirmation screen was accepted
STOP = 5; // Indicates onStop() was called (screen time out, power off)
RECENTS_BUTTON = 6; // Indicates that Recents button was pressed
RESUME = 7; // Indicates onResume() was called
}
optional Type type = 1;
optional Touch touch = 2;
optional Direction dir = 3;
optional Command command = 4;
// Log if the action was performed on outside of the container
optional bool is_outside = 5;
optional bool is_state_change = 6;
}
//
// Context free grammar of typical user interaction:
// Action (Touch) + Target
// Action (Touch) + Target + Target
//
message LauncherEvent {
required Action action = 1;
// List of targets that touch actions can be operated on.
repeated Target src_target = 2;
repeated Target dest_target = 3;
optional int64 action_duration_millis = 4;
optional int64 elapsed_container_millis = 5;
optional int64 elapsed_session_millis = 6;
optional bool is_in_multi_window_mode = 7 [deprecated = true];
optional bool is_in_landscape_mode = 8 [deprecated = true];
optional LauncherEventExtension extension = 9;
}