ContentCaptureSession
abstract class ContentCaptureSession : AutoCloseable
kotlin.Any | |
↳ | android.view.contentcapture.ContentCaptureSession |
Session used when notifying the Android system about events associated with views.
Summary
Public methods | |
---|---|
ContentCaptureSession |
Creates a new |
Unit |
destroy() Destroys this session, flushing out all pending notifications to the service. |
ContentCaptureContext? |
Gets the |
ContentCaptureSessionId |
Gets the id used to identify this session. |
open AutofillId |
newAutofillId(hostId: AutofillId, virtualChildId: Long) Creates a new |
ViewStructure |
newViewStructure(view: View) Creates a |
ViewStructure |
newVirtualViewStructure(parentId: AutofillId, virtualId: Long) Creates a |
Unit |
Notifies the Content Capture Service that a session has paused. |
Unit |
Notifies the Content Capture Service that a session has resumed. |
Unit |
notifyViewAppeared(node: ViewStructure) Notifies the Content Capture Service that a node has been added to the view structure. |
Unit |
Notifies the Content Capture Service that a node has been removed from the view structure. |
Unit |
notifyViewInsetsChanged(viewInsets: Insets) Notifies the Intelligence Service that the insets of a view have changed. |
Unit |
notifyViewTextChanged(id: AutofillId, text: CharSequence?) Notifies the Intelligence Service that the value of a text node has been changed. |
Unit |
notifyViewsAppeared(appearedNodes: MutableList<ViewStructure!>) Notifies the Content Capture Service that a list of nodes has appeared in the view structure. |
Unit |
notifyViewsDisappeared(hostId: AutofillId, virtualIds: LongArray) Notifies the Content Capture Service that many nodes has been removed from a virtual view structure. |
Unit |
setContentCaptureContext(context: ContentCaptureContext?) Sets the |
open String |
toString() |
Public methods
createContentCaptureSession
fun createContentCaptureSession(context: ContentCaptureContext): ContentCaptureSession
Creates a new ContentCaptureSession
.
See View#setContentCaptureSession(ContentCaptureSession)
for more info.
Parameters | |
---|---|
context |
ContentCaptureContext: This value cannot be null . |
Return | |
---|---|
ContentCaptureSession |
This value cannot be null . |
destroy
fun destroy(): Unit
Destroys this session, flushing out all pending notifications to the service.
Once destroyed, any new notification will be dropped.
getContentCaptureContext
fun getContentCaptureContext(): ContentCaptureContext?
Gets the ContentCaptureContext
associated with the session.
Return | |
---|---|
ContentCaptureContext? |
context set on constructor or by setContentCaptureContext(android.view.contentcapture.ContentCaptureContext) , or null if never explicitly set. |
getContentCaptureSessionId
fun getContentCaptureSessionId(): ContentCaptureSessionId
Gets the id used to identify this session.
Return | |
---|---|
ContentCaptureSessionId |
This value cannot be null . |
newAutofillId
open fun newAutofillId(
hostId: AutofillId,
virtualChildId: Long
): AutofillId
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. |
Return | |
---|---|
AutofillId |
if for the virtual child This value cannot be null . |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if the parentId is a virtual child id. |
newViewStructure
fun newViewStructure(view: View): ViewStructure
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:
- Call
ContentCaptureManager#getContentCaptureConditions()
to infer content capture events should be generate for that URL. - Create a new
ContentCaptureSession
child for every HTML element that renders a new URL (like anIFRAME
) and use that session to notify events from that subtree.
Note: the following methods of the structure
will be ignored:
ViewStructure#setChildCount(int)
ViewStructure#addChildCount(int)
ViewStructure#getChildCount()
ViewStructure#newChild(int)
ViewStructure#asyncNewChild(int)
ViewStructure#asyncCommit()
ViewStructure#setWebDomain(String)
ViewStructure#newHtmlInfoBuilder(String)
ViewStructure#setHtmlInfo(android.view.ViewStructure.HtmlInfo)
ViewStructure#setDataIsSensitive(boolean)
ViewStructure#setAlpha(float)
ViewStructure#setElevation(float)
ViewStructure#setTransformation(android.graphics.Matrix)
Parameters | |
---|---|
view |
View: This value cannot be null . |
Return | |
---|---|
ViewStructure |
This value cannot be null . |
newVirtualViewStructure
fun newVirtualViewStructure(
parentId: AutofillId,
virtualId: Long
): ViewStructure
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. |
Return | |
---|---|
ViewStructure |
a new ViewStructure that can be used for Content Capture purposes. This value cannot be null . |
notifySessionPaused
fun notifySessionPaused(): Unit
Notifies the Content Capture Service that a session has paused.
notifySessionResumed
fun notifySessionResumed(): Unit
Notifies the Content Capture Service that a session has resumed.
notifyViewAppeared
fun notifyViewAppeared(node: ViewStructure): Unit
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
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
fun notifyViewDisappeared(id: AutofillId): Unit
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
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
fun notifyViewInsetsChanged(viewInsets: Insets): Unit
Notifies the Intelligence Service that the insets of a view have changed.
Parameters | |
---|---|
viewInsets |
Insets: This value cannot be null . |
notifyViewTextChanged
fun notifyViewTextChanged(
id: AutofillId,
text: CharSequence?
): Unit
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
fun notifyViewsAppeared(appearedNodes: MutableList<ViewStructure!>): Unit
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 |
MutableList<ViewStructure!>: 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
fun notifyViewsDisappeared(
hostId: AutofillId,
virtualIds: LongArray
): Unit
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 |
LongArray: ids of the virtual children. This value cannot be null . |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if virtualIds is empty |
setContentCaptureContext
fun setContentCaptureContext(context: ContentCaptureContext?): Unit
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
open fun toString(): String
Return | |
---|---|
String |
a string representation of the object. |