diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 2319dd2c168fa..395a196420fad 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -126,6 +126,7 @@ import android.view.autofill.AutofillManager; import android.view.autofill.AutofillManager.AutofillClient; import android.view.autofill.AutofillPopupWindow; import android.view.autofill.IAutofillWindowPresenter; +import android.view.contentcapture.ContentCaptureContext; import android.view.contentcapture.ContentCaptureManager; import android.view.contentcapture.ContentCaptureManager.ContentCaptureClient; import android.widget.AdapterView; @@ -1056,7 +1057,10 @@ public class Activity extends ContextThemeWrapper } catch (RemoteException re) { re.rethrowFromSystemServer(); } - // TODO(b/147750355): Pass locusId and bundle to the Content Capture. + // If locusId is not null pass it to the Content Capture. + if (locusId != null) { + setLocusContextToContentCapture(locusId, bundle); + } } /** Return the application that owns this activity. */ @@ -1209,6 +1213,19 @@ public class Activity extends ContextThemeWrapper } } + private void setLocusContextToContentCapture(LocusId locusId, @Nullable Bundle bundle) { + final ContentCaptureManager cm = getContentCaptureManager(); + if (cm == null) return; + + ContentCaptureContext.Builder contentCaptureContextBuilder = + new ContentCaptureContext.Builder(locusId); + if (bundle != null) { + contentCaptureContextBuilder.setExtras(bundle); + } + cm.getMainContentCaptureSession().setContentCaptureContext( + contentCaptureContextBuilder.build()); + } + @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase);