diff --git a/quickstep/protos_overrides/launcher_atom_extension.proto b/quickstep/protos_overrides/launcher_atom_extension.proto index ff050ea573..a1566f064d 100644 --- a/quickstep/protos_overrides/launcher_atom_extension.proto +++ b/quickstep/protos_overrides/launcher_atom_extension.proto @@ -42,5 +42,18 @@ message DeviceSearchResultContainer{ // True if the item's title/content is a direct match to the search query, false otherwise. optional bool direct_match = 2; + + // Entry point for this on-device search session + optional EntryState entry_state = 3; + + enum EntryState{ + ENTRY_STATE_UNKNOWN = 0; + + // User entered using swipe-up gesture from homescreen and searchbox in AllApps drawer. + ALL_APPS = 1; + + // User entered by tapping on QSB bar on homescreen. + QSB = 2; + } } } diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index 1b6f39eb68..f86e790812 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -93,8 +93,10 @@ public class StatsLogCompatManager extends StatsLogManager { /** * Flags for converting SearchAttribute to integer value. */ - private static final int SEARCH_ATTRIBUTES_CORRECTED_QUERY = 1; + private static final int SEARCH_ATTRIBUTES_CORRECTED_QUERY = 1 << 0; private static final int SEARCH_ATTRIBUTES_DIRECT_MATCH = 1 << 1; + private static final int SEARCH_ATTRIBUTES_ENTRY_STATE_ALL_APPS = 1 << 2; + private static final int SEARCH_ATTRIBUTES_ENTRY_STATE_QSB = 1 << 3; public static final CopyOnWriteArrayList LOGS_CONSUMER = new CopyOnWriteArrayList<>(); @@ -656,6 +658,12 @@ public class StatsLogCompatManager extends StatsLogManager { if (searchAttributes.getDirectMatch()) { response = response | SEARCH_ATTRIBUTES_DIRECT_MATCH; } + if (searchAttributes.getEntryState() == SearchAttributes.EntryState.ALL_APPS) { + response = response | SEARCH_ATTRIBUTES_ENTRY_STATE_ALL_APPS; + } else if (searchAttributes.getEntryState() == SearchAttributes.EntryState.QSB) { + response = response | SEARCH_ATTRIBUTES_ENTRY_STATE_QSB; + } + return response; }