summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Shashwat Razdan <srazdan@google.com> 2024-06-14 07:14:23 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-06-14 07:14:23 +0000
commit5f46e0ff8d32aa5a05fdccb131edaf5c19650d10 (patch)
tree7b044954bcb61beb561781f1a1d2d24bfffe2c43
parent2a506a6551d7c50d5d78f3fef59e2c6fa7112fc2 (diff)
parent291b5d66a057e46de62e01a01775c9663f9a1364 (diff)
Merge "Callback screenshot to getContextualSearchState if token refresh is enabled." into main
-rw-r--r--services/contextualsearch/java/com/android/server/contextualsearch/ContextualSearchManagerService.java23
1 files changed, 18 insertions, 5 deletions
diff --git a/services/contextualsearch/java/com/android/server/contextualsearch/ContextualSearchManagerService.java b/services/contextualsearch/java/com/android/server/contextualsearch/ContextualSearchManagerService.java
index 38bbfc4d9108..d3313374243d 100644
--- a/services/contextualsearch/java/com/android/server/contextualsearch/ContextualSearchManagerService.java
+++ b/services/contextualsearch/java/com/android/server/contextualsearch/ContextualSearchManagerService.java
@@ -466,12 +466,25 @@ public class ContextualSearchManagerService extends SystemService {
issueToken();
Bundle bundle = new Bundle();
bundle.putParcelable(ContextualSearchManager.EXTRA_TOKEN, mToken);
- try {
- callback.onResult(
+ // We get take the screenshot with the system server's identity because the system
+ // server has READ_FRAME_BUFFER permission to get the screenshot.
+ Binder.withCleanCallingIdentity(() -> {
+ if (mWmInternal != null) {
+ bundle.putParcelable(ContextualSearchManager.EXTRA_SCREENSHOT,
+ mWmInternal.takeAssistScreenshot(Set.of(
+ TYPE_STATUS_BAR,
+ TYPE_NAVIGATION_BAR,
+ TYPE_NAVIGATION_BAR_PANEL,
+ TYPE_POINTER))
+ .asBitmap().asShared());
+ }
+ try {
+ callback.onResult(
new ContextualSearchState(null, null, bundle));
- } catch (RemoteException e) {
- Log.e(TAG, "Error invoking ContextualSearchCallback", e);
- }
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error invoking ContextualSearchCallback", e);
+ }
+ });
}
synchronized (mLock) {
mStateCallback = callback;