SurfaceControlViewHost.SurfacePackage
public
static
final
class
SurfaceControlViewHost.SurfacePackage
extends Object
implements
Parcelable
java.lang.Object | |
↳ | 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 |
---|
Fields | |
---|---|
public
static
final
Creator<SurfaceControlViewHost.SurfacePackage> |
CREATOR
|
Public constructors | |
---|---|
SurfacePackage(SurfaceControlViewHost.SurfacePackage other)
Constructs a copy of |
Public methods | |
---|---|
int
|
describeContents()
Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
InputTransferToken
|
getInputTransferToken()
Gets an |
SurfaceControl
|
getSurfaceControl()
Returns the |
void
|
notifyConfigurationChanged(Configuration c)
Forward a configuration to the remote SurfaceControlViewHost. |
void
|
notifyDetachedFromWindow()
Tear down the remote SurfaceControlViewHost and cause View#onDetachedFromWindow to be invoked on the other side. |
void
|
release()
Release the |
String
|
toString()
Returns a string representation of the object. |
void
|
writeToParcel(Parcel out, int flags)
Flatten this object in to a Parcel. |
Inherited methods | |
---|---|
Fields
CREATOR
public static final Creator<SurfaceControlViewHost.SurfacePackage> CREATOR
Public constructors
SurfacePackage
public SurfacePackage (SurfaceControlViewHost.SurfacePackage other)
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
public int describeContents ()
Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation. For example, if the object will
include a file descriptor in the output of writeToParcel(android.os.Parcel, int)
,
the return value of this method must include the
CONTENTS_FILE_DESCRIPTOR
bit.
Returns | |
---|---|
int |
a bitmask indicating the set of special object types marshaled
by this Parcelable object instance.
Value is either 0 or CONTENTS_FILE_DESCRIPTOR |
getInputTransferToken
public InputTransferToken getInputTransferToken ()
Gets an InputTransferToken
which can be used to request focus on the embedded
surface or to transfer touch gesture to the embedded surface.
Returns | |
---|---|
InputTransferToken |
the InputTransferToken associated with SurfacePackage or null if
the embedded hasn't set up its view or doesn't have input. |
getSurfaceControl
public SurfaceControl getSurfaceControl ()
Returns the SurfaceControl
associated with this SurfacePackage for
cases where more control is required.
Returns | |
---|---|
SurfaceControl |
the SurfaceControl associated with this SurfacePackage and its containing
SurfaceControlViewHost
This value cannot be null . |
notifyConfigurationChanged
public void notifyConfigurationChanged (Configuration c)
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 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
public void notifyDetachedFromWindow ()
Tear down the remote SurfaceControlViewHost and cause View#onDetachedFromWindow to be invoked on the other side.
release
public void release ()
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
public String toString ()
Returns a string representation of the object.
Returns | |
---|---|
String |
a string representation of the object. |
writeToParcel
public void writeToParcel (Parcel out, int flags)
Flatten this object in to a Parcel.
Parameters | |
---|---|
out |
Parcel : This value cannot be null . |
flags |
int : Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE .
Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE , and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES |