diff options
3 files changed, 18 insertions, 4 deletions
diff --git a/core/java/android/app/IActivityTaskManager.aidl b/core/java/android/app/IActivityTaskManager.aidl index 55ce90d00011..c876921379c3 100644 --- a/core/java/android/app/IActivityTaskManager.aidl +++ b/core/java/android/app/IActivityTaskManager.aidl @@ -226,7 +226,7 @@ interface IActivityTaskManager { in IBinder activityToken, int flags); boolean isAssistDataAllowed(); boolean requestAssistDataForTask(in IAssistDataReceiver receiver, int taskId, - in String callingPackageName, String callingAttributionTag); + in String callingPackageName, String callingAttributionTag, boolean fetchStructure); /** * Notify the system that the keyguard is going away. diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/AssistContentRequester.java b/packages/SystemUI/src/com/android/systemui/screenshot/AssistContentRequester.java index 6ff153569ad7..74513f728601 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/AssistContentRequester.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/AssistContentRequester.java @@ -91,7 +91,7 @@ public class AssistContentRequester { try { boolean success = mActivityTaskManager.requestAssistDataForTask( new AssistDataReceiver(callback, this), taskId, mPackageName, - mAttributionTag); + mAttributionTag, false /* fetchStructure */); if (!success) { callback.onAssistContentAvailable(null); } diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 1c14c5dbc43a..20e6c4e1901d 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -3142,9 +3142,23 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { null, PENDING_ASSIST_EXTRAS_LONG_TIMEOUT, 0) != null; } + /** + * Requests assist data for a particular Task. + * + * <p>This is used by the system components to request assist data for a Task. + * + * @param receiver The receiver to send the assist data to. + * @param taskId The Task to request assist data for. + * @param callingPackageName The package name of the caller. + * @param callingAttributionTag The attribution tag of the caller. + * @param fetchStructure Whether to fetch the assist structure. Note that this is slow and + * should be avoided if possible. + * @return Whether the request was successful. + */ @Override public boolean requestAssistDataForTask(IAssistDataReceiver receiver, int taskId, - String callingPackageName, @Nullable String callingAttributionTag) { + String callingPackageName, @Nullable String callingAttributionTag, + boolean fetchStructure) { mAmInternal.enforceCallingPermission(android.Manifest.permission.GET_TOP_ACTIVITY_INFO, "requestAssistDataForTask()"); final long callingId = Binder.clearCallingIdentity(); @@ -3169,7 +3183,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { List<IBinder> topActivityToken = new ArrayList<>(); topActivityToken.add(tokens.getActivityToken()); requester.requestAssistData(topActivityToken, true /* fetchData */, - false /* fetchScreenshot */, false /* fetchStructure */, true /* allowFetchData */, + false /* fetchScreenshot */, fetchStructure, true /* allowFetchData */, false /* allowFetchScreenshot*/, true /* ignoreFocusCheck */, Binder.getCallingUid(), callingPackageName, callingAttributionTag); |