diff options
| author | 2024-06-14 07:14:23 +0000 | |
|---|---|---|
| committer | 2024-06-14 07:14:23 +0000 | |
| commit | 5f46e0ff8d32aa5a05fdccb131edaf5c19650d10 (patch) | |
| tree | 7b044954bcb61beb561781f1a1d2d24bfffe2c43 | |
| parent | 2a506a6551d7c50d5d78f3fef59e2c6fa7112fc2 (diff) | |
| parent | 291b5d66a057e46de62e01a01775c9663f9a1364 (diff) | |
Merge "Callback screenshot to getContextualSearchState if token refresh is enabled." into main
| -rw-r--r-- | services/contextualsearch/java/com/android/server/contextualsearch/ContextualSearchManagerService.java | 23 |
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; |