Added in API level 29

ContentCaptureSession

public abstract class ContentCaptureSession
extends Object implements AutoCloseable

java.lang.Object
   ↳ android.view.contentcapture.ContentCaptureSession


Session used when notifying the Android system about events associated with views.

Summary

Public methods

final ContentCaptureSession createContentCaptureSession(ContentCaptureContext context)

Creates a new ContentCaptureSession.

final void destroy()

Destroys this session, flushing out all pending notifications to the service.

final ContentCaptureContext getContentCaptureContext()

Gets the ContentCaptureContext associated with the session.

final ContentCaptureSessionId getContentCaptureSessionId()

Gets the id used to identify this session.

AutofillId newAutofillId(AutofillId hostId, long virtualChildId)

Creates a new AutofillId for a virtual child, so it can be used to uniquely identify the children in the session.

final ViewStructure newViewStructure(View view)

Creates a ViewStructure for a "standard" view.

final ViewStructure newVirtualViewStructure(AutofillId parentId, long virtualId)

Creates a ViewStructure for a "virtual" view, so it can be passed to notifyViewAppeared(android.view.ViewStructure) by the view managing the virtual view hierarchy.

final void notifySessionPaused()

Notifies the Content Capture Service that a session has paused.

final void notifySessionResumed()

Notifies the Content Capture Service that a session has resumed.

final void notifyViewAppeared(ViewStructure node)

Notifies the Content Capture Service that a node has been added to the view structure.

final void notifyViewDisappeared(AutofillId id)

Notifies the Content Capture Service that a node has been removed from the view structure.

final void notifyViewInsetsChanged(Insets viewInsets)

Notifies the Intelligence Service that the insets of a view have changed.

final void notifyViewTextChanged(AutofillId id, CharSequence text)

Notifies the Intelligence Service that the value of a text node has been changed.

final void notifyViewsAppeared(List<ViewStructure> appearedNodes)

Notifies the Content Capture Service that a list of nodes has appeared in the view structure.

final void notifyViewsDisappeared(AutofillId hostId, long[] virtualIds)

Notifies the Content Capture Service that many nodes has been removed from a virtual view structure.

final void setContentCaptureContext(ContentCaptureContext context)

Sets the ContentCaptureContext associated with the session.

String toString()

Returns a string representation of the object.

Inherited methods

Public methods

createContentCaptureSession

Added in API level 29
public final ContentCaptureSession createContentCaptureSession (ContentCaptureContext context)

Creates a new ContentCaptureSession.

See View#setContentCaptureSession(ContentCaptureSession) for more info.

Parameters
context ContentCaptureContext: This value cannot be null.

Returns
ContentCaptureSession This value cannot be null.

destroy

Added in API level 29
public final void destroy ()

Destroys this session, flushing out all pending notifications to the service.

Once destroyed, any new notification will be dropped.

getContentCaptureContext

Added in API level 29
public final ContentCaptureContext getContentCaptureContext ()

Gets the ContentCaptureContext associated with the session.

Returns
ContentCaptureContext context set on constructor or by setContentCaptureContext(android.view.contentcapture.ContentCaptureContext), or null if never explicitly set.

getContentCaptureSessionId

Added in API level 29
public final ContentCaptureSessionId getContentCaptureSessionId ()

Gets the id used to identify this session.

Returns
ContentCaptureSessionId This value cannot be null.

newAutofillId

Added in API level 29
public AutofillId newAutofillId (AutofillId hostId, 
                long virtualChildId)

Creates a new AutofillId for a virtual child, so it can be used to uniquely identify the children in the session.

Parameters
hostId AutofillId: id of the non-virtual view hosting the virtual view hierarchy (it can be obtained by calling ViewStructure#getAutofillId()). This value cannot be null.

virtualChildId long: id of the virtual child, relative to the parent.

Returns
AutofillId if for the virtual child This value cannot be null.

Throws
IllegalArgumentException if the parentId is a virtual child id.

newViewStructure

Added in API level 29
public final ViewStructure newViewStructure (View view)

Creates a ViewStructure for a "standard" view.

This method should be called after a visible view is laid out; the view then must populate the structure and pass it to notifyViewAppeared(android.view.ViewStructure). Note: views that manage a virtual structure under this view must populate just the node representing this view and return right away, then asynchronously report (not necessarily in the UI thread) when the children nodes appear, disappear or have their text changed by calling ContentCaptureSession#notifyViewAppeared(ViewStructure), ContentCaptureSession#notifyViewDisappeared(AutofillId), and ContentCaptureSession#notifyViewTextChanged(AutofillId, CharSequence) respectively. The structure for the a child must be created using ContentCaptureSession#newVirtualViewStructure(AutofillId, long), and the autofillId for a child can be obtained either through childStructure.getAutofillId() or ContentCaptureSession#newAutofillId(AutofillId, long).

When the virtual view hierarchy represents a web page, you should also:

Note: the following methods of the structure will be ignored:

Parameters
view View: This value cannot be null.

Returns
ViewStructure This value cannot be null.

newVirtualViewStructure

Added in API level 29
public final ViewStructure newVirtualViewStructure (AutofillId parentId, 
                long virtualId)

Creates a ViewStructure for a "virtual" view, so it can be passed to notifyViewAppeared(android.view.ViewStructure) by the view managing the virtual view hierarchy.

Parameters
parentId AutofillId: id of the virtual view parent (it can be obtained by calling ViewStructure#getAutofillId() on the parent). This value cannot be null.

virtualId long: id of the virtual child, relative to the parent.

Returns
ViewStructure a new ViewStructure that can be used for Content Capture purposes. This value cannot be null.

notifySessionPaused

Added in API level 30
public final void notifySessionPaused ()

Notifies the Content Capture Service that a session has paused.

notifySessionResumed

Added in API level 30
public final void notifySessionResumed ()

Notifies the Content Capture Service that a session has resumed.

notifyViewAppeared

Added in API level 29
public final void notifyViewAppeared (ViewStructure node)

Notifies the Content Capture Service that a node has been added to the view structure.

Typically called "manually" by views that handle their own virtual view hierarchy, or automatically by the Android System for views that return true on View#onProvideContentCaptureStructure(ViewStructure, int).

Consider use notifyViewsAppeared(List) which has a better performance when notifying a list of nodes has appeared.

Parameters
node ViewStructure: node that has been added. This value cannot be null.

notifyViewDisappeared

Added in API level 29
public final void notifyViewDisappeared (AutofillId id)

Notifies the Content Capture Service that a node has been removed from the view structure.

Typically called "manually" by views that handle their own virtual view hierarchy, or automatically by the Android System for standard views.

Consider use notifyViewsDisappeared(AutofillId, long) which has a better performance when notifying a list of nodes has disappeared.

Parameters
id AutofillId: id of the node that has been removed. This value cannot be null.

notifyViewInsetsChanged

Added in API level 30
public final void notifyViewInsetsChanged (Insets viewInsets)

Notifies the Intelligence Service that the insets of a view have changed.

Parameters
viewInsets Insets: This value cannot be null.

notifyViewTextChanged

Added in API level 29
public final void notifyViewTextChanged (AutofillId id, 
                CharSequence text)

Notifies the Intelligence Service that the value of a text node has been changed.

Parameters
id AutofillId: of the node. This value cannot be null.

text CharSequence: new text. This value may be null.

notifyViewsAppeared

Added in API level 34
public final void notifyViewsAppeared (List<ViewStructure> appearedNodes)

Notifies the Content Capture Service that a list of nodes has appeared in the view structure.

Typically called manually by views that handle their own virtual view hierarchy.

Parameters
appearedNodes List: nodes that have appeared. Each element represents a view node that has been added to the view structure. The order of the elements is important, which should be preserved as the attached order of when the node is attached to the virtual view hierarchy. This value cannot be null.

notifyViewsDisappeared

Added in API level 29
public final void notifyViewsDisappeared (AutofillId hostId, 
                long[] virtualIds)

Notifies the Content Capture Service that many nodes has been removed from a virtual view structure.

Should only be called by views that handle their own virtual view hierarchy.

After UPSIDE_DOWN_CAKE, this method wraps the virtual children with a pair of view tree appearing and view tree appeared events.

Parameters
hostId AutofillId: id of the non-virtual view hosting the virtual view hierarchy (it can be obtained by calling ViewStructure#getAutofillId()). This value cannot be null.

virtualIds long: ids of the virtual children. This value cannot be null.

Throws
IllegalArgumentException if the hostId is an autofill id for a virtual view.
IllegalArgumentException if virtualIds is empty

setContentCaptureContext

Added in API level 29
public final void setContentCaptureContext (ContentCaptureContext context)

Sets the ContentCaptureContext associated with the session.

Typically used to change the context associated with the default session from an activity.

Parameters
context ContentCaptureContext: This value may be null.

toString

Added in API level 29
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.