SurfacePackage
class SurfacePackage : Parcelable
kotlin.Any | |
↳ | android.view.SurfaceControlViewHost.SurfacePackage |
Package encapsulating a Surface hierarchy which contains interactive view elements. It's expected to get this object from SurfaceControlViewHost#getSurfacePackage
afterwards it can be embedded within a SurfaceView by calling SurfaceView#setChildSurfacePackage
. Note that each SurfacePackage
must be released by calling SurfacePackage#release
. However, if you use the recommended flow, the framework will automatically handle the lifetime for you. 1. When sending the package to the remote process, return it from an AIDL method or manually use FLAG_WRITE_RETURN_VALUE in writeToParcel. This will automatically release the package in the local process. 2. In the remote process, consume the package using SurfaceView. This way the SurfaceView will take over the lifetime and call SurfacePackage#release
for the user. One final note: The SurfacePackage
lifetime is totally de-coupled from the lifetime of the underlying SurfaceControlViewHost
. Regardless of the lifetime of the package the user should still call SurfaceControlViewHost#release
when finished.
Summary
Inherited constants | |
---|---|
Public constructors | |
---|---|
Constructs a copy of |
Public methods | |
---|---|
Int | |
InputTransferToken? |
Gets an |
SurfaceControl |
Returns the |
Unit |
Forward a configuration to the remote SurfaceControlViewHost. |
Unit |
Tear down the remote SurfaceControlViewHost and cause View#onDetachedFromWindow to be invoked on the other side. |
Unit |
release() Release the |
String |
toString() |
Unit |
writeToParcel(out: Parcel, flags: Int) Flatten this object in to a Parcel. |
Properties | |
---|---|
static Parcelable.Creator<SurfaceControlViewHost.SurfacePackage!> |
Public constructors
SurfacePackage
SurfacePackage(other: SurfaceControlViewHost.SurfacePackage)
Constructs a copy of SurfacePackage
with an independent lifetime. The caller can use this to create an independent copy in situations where ownership of the SurfacePackage
would be transferred elsewhere, such as attaching to a SurfaceView
, returning as Binder
result value, etc. The caller is responsible for releasing this copy when its done.
Parameters | |
---|---|
other |
SurfaceControlViewHost.SurfacePackage: SurfacePackage to create a copy of. This value cannot be null . |
Public methods
describeContents
fun describeContents(): Int
Return | |
---|---|
Int |
a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or android.os.Parcelable#CONTENTS_FILE_DESCRIPTOR |
getInputTransferToken
fun getInputTransferToken(): InputTransferToken?
Gets an InputTransferToken
which can be used to request focus on the embedded surface or to transfer touch gesture to the embedded surface.
Return | |
---|---|
InputTransferToken? |
the InputTransferToken associated with SurfacePackage or null if the embedded hasn't set up its view or doesn't have input. |
getSurfaceControl
fun getSurfaceControl(): SurfaceControl
Returns the android.view.SurfaceControl
associated with this SurfacePackage for cases where more control is required.
Return | |
---|---|
SurfaceControl |
the SurfaceControl associated with this SurfacePackage and its containing SurfaceControlViewHost This value cannot be null . |
notifyConfigurationChanged
fun notifyConfigurationChanged(c: Configuration): Unit
Forward a configuration to the remote SurfaceControlViewHost. This will cause View#onConfigurationChanged to be invoked on the remote end. This does not automatically cause the SurfaceControlViewHost to be resized. The root View of a SurfaceControlViewHost is more akin to a PopupWindow in that the size is user specified independent of configuration width and height. In order to receive the configuration change via View#onConfigurationChanged
, the context used with the SurfaceControlViewHost and it's embedded view hierarchy must be a WindowContext obtained from android.content.Context#createWindowContext. If a regular service context is used, then your embedded view hierarchy will always perceive the global configuration.
Parameters | |
---|---|
c |
Configuration: The configuration to forward This value cannot be null . |
notifyDetachedFromWindow
fun notifyDetachedFromWindow(): Unit
Tear down the remote SurfaceControlViewHost and cause View#onDetachedFromWindow to be invoked on the other side.
release
fun release(): Unit
Release the SurfaceControl
associated with this package. It's not necessary to call this if you pass the package to SurfaceView#setChildSurfacePackage
as SurfaceView
will take ownership in that case.
toString
fun toString(): String
Return | |
---|---|
String |
a string representation of the object. |
writeToParcel
fun writeToParcel(
out: Parcel,
flags: Int
): Unit
Flatten this object in to a Parcel.
Parameters | |
---|---|
dest |
The Parcel in which the object should be written. This value cannot be null . |
flags |
Int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE . Value is either 0 or a combination of android.os.Parcelable#PARCELABLE_WRITE_RETURN_VALUE , and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES |
out |
Parcel: This value cannot be null . |
Properties
CREATOR
static val CREATOR: Parcelable.Creator<SurfaceControlViewHost.SurfacePackage!>