From 291b5d66a057e46de62e01a01775c9663f9a1364 Mon Sep 17 00:00:00 2001 From: Connie Huang Date: Thu, 13 Jun 2024 20:17:29 +0000 Subject: Callback screenshot to getContextualSearchState if token refresh is enabled. As proposed in go/l2a-css, return the screenshot to the getContextualSearchState callback. This is gated by the token refresh flag in preparation for merging to mainline. Flag: EXEMPT Rewrite. Bug: 338598282 Test: Tested on device and with CTS Change-Id: I715fa72e7058223f10bc4f67cb95ff3459671a3e --- .../ContextualSearchManagerService.java | 23 +++++++++++++++++----- 1 file 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; -- cgit v1.2.3-59-g8ed1b