[AA+] Add QueryLength to DeviceSearchResultContainer.
Bug: 178562918
Change-Id: I4891433bcd8848edd92f103448f5c00c5f9619e4
diff --git a/quickstep/protos_overrides/launcher_atom_extension.proto b/quickstep/protos_overrides/launcher_atom_extension.proto
index 2766acf..6253b41 100644
--- a/quickstep/protos_overrides/launcher_atom_extension.proto
+++ b/quickstep/protos_overrides/launcher_atom_extension.proto
@@ -31,4 +31,5 @@
// Represents on-device search result container.
message DeviceSearchResultContainer{
+ optional int32 query_length = 1;
}
diff --git a/quickstep/src/com/android/launcher3/search/SearchResultIcon.java b/quickstep/src/com/android/launcher3/search/SearchResultIcon.java
index f7d5f45..3dd4146 100644
--- a/quickstep/src/com/android/launcher3/search/SearchResultIcon.java
+++ b/quickstep/src/com/android/launcher3/search/SearchResultIcon.java
@@ -81,7 +81,7 @@
private static final int BITMAP_CROP_MASK_COLOR = 0xff424242;
private final Launcher mLauncher;
-
+ private final SearchSessionTracker mSearchSessionTracker;
private String mTargetId;
private Consumer<ItemInfoWithIcon> mOnItemInfoChanged;
@@ -97,6 +97,7 @@
public SearchResultIcon(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mLauncher = Launcher.getLauncher(getContext());
+ mSearchSessionTracker = SearchSessionTracker.getInstance(getContext());
}
private boolean mLongPressSupported;
@@ -113,8 +114,8 @@
}
/**
- * Applies {@link SearchTarget} to view. registers a consumer after a corresponding
- * {@link ItemInfoWithIcon} is created
+ * Applies {@link SearchTarget} to view. registers a consumer after a corresponding {@link
+ * ItemInfoWithIcon} is created
*/
public void apply(SearchTarget searchTarget, List<SearchTarget> inlineItems,
Consumer<ItemInfoWithIcon> cb) {
@@ -317,13 +318,15 @@
}
}
- private static ContainerInfo buildDeviceSearchResultContainer() {
+ private ContainerInfo buildDeviceSearchResultContainer() {
return ContainerInfo.newBuilder().setExtendedContainers(
ExtendedContainers
.newBuilder()
.setDeviceSearchResultContainer(
- DeviceSearchResultContainer
- .newBuilder()))
+ mSearchSessionTracker.getQueryLength()
+ .map(queryLength -> DeviceSearchResultContainer.newBuilder()
+ .setQueryLength(queryLength))
+ .orElse(DeviceSearchResultContainer.newBuilder())))
.build();
}
}
diff --git a/quickstep/src/com/android/launcher3/search/SearchSessionTracker.java b/quickstep/src/com/android/launcher3/search/SearchSessionTracker.java
index 3079965..97a72bb 100644
--- a/quickstep/src/com/android/launcher3/search/SearchSessionTracker.java
+++ b/quickstep/src/com/android/launcher3/search/SearchSessionTracker.java
@@ -15,9 +15,10 @@
*/
package com.android.launcher3.search;
+import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
+
import android.app.search.Query;
import android.app.search.SearchSession;
-import android.app.search.SearchTarget;
import android.app.search.SearchTargetEvent;
import android.content.Context;
import android.util.Log;
@@ -27,7 +28,7 @@
import com.android.launcher3.util.MainThreadInitializedObject;
-import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
+import java.util.Optional;
/**
* A singleton class to track and report search events back to SearchSession
@@ -63,6 +64,10 @@
mQuery = query;
}
+ public Optional<Integer> getQueryLength() {
+ return Optional.ofNullable(mQuery).map(Query::getInput).map(String::length);
+ }
+
/**
* Send the user event handling back to the {@link SearchSession} object.
*/