/* * 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 [deprecated = true]; TO_EMPTY_WITH_VALID_PRIMARY = 15; TO_EMPTY_WITH_VALID_SUGGESTIONS_AND_EMPTY_PRIMARY = 16; TO_EMPTY_WITH_EMPTY_SUGGESTIONS = 9; TO_EMPTY_WITH_SUGGESTIONS_DISABLED = 10; TO_CUSTOM_WITH_VALID_SUGGESTIONS = 11 [deprecated = true]; TO_CUSTOM_WITH_VALID_PRIMARY = 17; TO_CUSTOM_WITH_VALID_SUGGESTIONS_AND_EMPTY_PRIMARY = 18; 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; }