SharedUiContainer


@ExperimentalFeatures.SharedUiPresentationApi
public final class SharedUiContainer extends ViewGroup


SharedUiContainer is a ViewGroup that's designed to host 'shared UI', meaning it can handle both client-owned and provider-owned UI (via SandboxedSdkViews). The container also allows to register its child views as assets. Assets can be registered either before or after the session is open.

Children: The container should be used to host a single direct child view. However, it allows adding more than one child view to it. All child views added to SharedUiContainer are placed in the top left corner of the container plus padding.

Session management: The container will maintain a session to communicate with a sandboxed SDK for lifecycle management. To open a session, a SharedUiAdapter must be set using setAdapter, and the container must be attached to a visible window and have non-zero dimensions.

When setAdapter is called, any existing session will be closed and all registered assets will be released.

Provider-owned UI: All registered child SandboxedSdkViews will maintain their own sessions for provider-owned UI presentation. For all SandboxedSdkViews registered with SandboxedUiAdapters, SharedUiContainer will set corresponding adapters when a shared UI session opens. For any SandboxedSdkViews registered when the session is open, adapters will be set immediately. The container will close any open SandboxedSdkView sessions before closing its own session.

Asset registration: Client-owned views and SandboxedSdkViews can be registered as assets using registerSharedUiAsset and unregistered using unregisterSharedUiAsset.

Summary

Public constructors

Public methods

final boolean

Registers a SharedUiAsset, that represents a native ad asset, on SharedUiContainer.

final void
setAdapter(SharedUiAdapter sharedUiAdapter)

Sets SharedUiAdapter to maintain a session between SharedUiContainer and a sandboxed SDK.

final boolean

Unregisters a SharedUiAsset associated with a given view from the container.

Protected methods

void
void
void
onLayout(boolean changed, int left, int top, int right, int bottom)

Lays out the container's children in the top left corner with their measured sizes.

void
onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measures the container and its children.

void
onWindowVisibilityChanged(int visibility)

Inherited methods

From android.view.View
void
void
void
void
@NonNull ViewPropertyAnimator
void
void
void
boolean
boolean
boolean
awakenScrollBars(int p0, boolean p1)
void
void

This method is deprecated. Deprecated in Java

void
buildDrawingCache(boolean p0)

This method is deprecated. Deprecated in Java

void
boolean
boolean
boolean
boolean
boolean
boolean
final void
void
final void
boolean
void
void
int
int
int
void
@NonNull WindowInsets
int
int
int
@NonNull AccessibilityNodeInfo
void
void

This method is deprecated. Deprecated in Java

boolean
boolean
dispatchNestedFling(float p0, float p1, boolean p2)
boolean
dispatchNestedPreFling(float p0, float p1)
boolean
boolean
dispatchNestedPreScroll(
    int p0,
    int p1,
    @Nullable int[] p2,
    @Nullable int[] p3
)
boolean
dispatchNestedScroll(int p0, int p1, int p2, int p3, @Nullable int[] p4)
boolean
void
void
drawableHotspotChanged(float p0, float p1)
final @Nullable OnBackInvokedDispatcher
final @NonNull T
<T extends View> findViewById(int p0)
final @NonNull T
<T extends View> findViewWithTag(@NonNull Object p0)
boolean

This method is deprecated. Deprecated in Java

@NonNull View
focusSearch(int p0)
void
void
void
generateDisplayHash(
    @NonNull String p0,
    @Nullable Rect p1,
    @NonNull Executor p2,
    @NonNull DisplayHashResultCallback p3
)
@NonNull View.AccessibilityDelegate
int
@NonNull AccessibilityNodeProvider
@Nullable CharSequence
int
int
@Nullable String
@Nullable String
float
@ViewDebug.ExportedProperty(category = "drawing")
getAlpha()
@NonNull Animation
@Nullable Matrix
@NonNull IBinder
@NonNull int[]
@NonNull Map<@NonNull Integer, @NonNull Integer>
@Nullable String[]
final @NonNull AutofillId
int
@Nullable AutofillValue
@NonNull Drawable
@Nullable BlendMode
@Nullable ColorStateList
@Nullable PorterDuff.Mode
int
@ViewDebug.ExportedProperty(category = "layout")
getBaseline()
final int
float
int
float
@NonNull Rect
boolean
final boolean
final @Nullable ContentCaptureSession
@NonNull CharSequence
@ViewDebug.ExportedProperty(category = "accessibility")
getContentDescription()
final @NonNull Context
@NonNull ContextMenu.ContextMenuInfo
final boolean
@NonNull Display
final @NonNull int[]
@NonNull Bitmap

This method is deprecated. Deprecated in Java

@NonNull Bitmap
getDrawingCache(boolean p0)

This method is deprecated. Deprecated in Java

int

This method is deprecated. Deprecated in Java

int

This method is deprecated. Deprecated in Java

void
long
float
@ViewDebug.ExportedProperty(category = "drawing")
getElevation()
int
boolean
boolean
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "NOT_FOCUSABLE"), @ViewDebug.IntToString(from = 1, to = "FOCUSABLE"), @ViewDebug.IntToString(from = 16, to = "FOCUSABLE_AUTO")], category = "focus")
getFocusable()
@NonNull ArrayList<@NonNull View>
getFocusables(int p0)
void
@NonNull Drawable
int
@Nullable BlendMode
@Nullable ColorStateList
@Nullable PorterDuff.Mode
final boolean
boolean
@NonNull Handler
float
float
float
float
@Nullable Runnable
final boolean
final int
@ViewDebug.ExportedProperty(category = "layout")
getHeight()
void
int
int
@Nullable Drawable
@Nullable Drawable
int
int
@ViewDebug.ExportedProperty(category = "accessibility", mapping = [@ViewDebug.IntToString(from = 0, to = "auto"), @ViewDebug.IntToString(from = 1, to = "yes"), @ViewDebug.IntToString(from = 2, to = "no"), @ViewDebug.IntToString(from = 4, to = "noHideDescendants")])
getImportantForAccessibility()
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "auto"), @ViewDebug.IntToString(from = 1, to = "yes"), @ViewDebug.IntToString(from = 2, to = "no"), @ViewDebug.IntToString(from = 4, to = "yesExcludeDescendants"), @ViewDebug.IntToString(from = 8, to = "noExcludeDescendants")])
getImportantForAutofill()
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "auto"), @ViewDebug.IntToString(from = 1, to = "yes"), @ViewDebug.IntToString(from = 2, to = "no"), @ViewDebug.IntToString(from = 4, to = "yesExcludeDescendants"), @ViewDebug.IntToString(from = 8, to = "noExcludeDescendants")])
getImportantForContentCapture()
boolean
@NonNull KeyEvent.DispatcherState
int
@ViewDebug.ExportedProperty(category = "accessibility")
getLabelFor()
int
int
@ViewDebug.ExportedProperty(category = "layout", mapping = [@ViewDebug.IntToString(from = 0, to = "RESOLVED_DIRECTION_LTR"), @ViewDebug.IntToString(from = 1, to = "RESOLVED_DIRECTION_RTL")])
getLayoutDirection()
@NonNull ViewGroup.LayoutParams
@ViewDebug.ExportedProperty(deepExport = true, prefix = "layout_")
getLayoutParams()
final int
float
int
final boolean
void
void
void
@NonNull Matrix
final int
final int
@ViewDebug.ExportedProperty(category = "measurement", flagMapping = [@ViewDebug.FlagToString(mask = -16777216, equals = 16777216, name = "MEASURED_STATE_TOO_SMALL")])
getMeasuredHeightAndState()
final int
final int
final int
@ViewDebug.ExportedProperty(category = "measurement", flagMapping = [@ViewDebug.FlagToString(mask = -16777216, equals = 16777216, name = "MEASURED_STATE_TOO_SMALL")])
getMeasuredWidthAndState()
int
int
int
int
int
int
int
int
@NonNull View.OnFocusChangeListener
int
@NonNull ViewOutlineProvider
int
int
int
int
int
int
int
int
final @NonNull ViewParent
@NonNull ViewParent
float
@ViewDebug.ExportedProperty(category = "drawing")
getPivotX()
float
@ViewDebug.ExportedProperty(category = "drawing")
getPivotY()
@NonNull PointerIcon
final @NonNull List<@NonNull Rect>
@Nullable String[]
@NonNull Resources
final boolean
final int
float
int
@Nullable AttachedSurfaceControl
@NonNull View
@NonNull WindowInsets
float
@ViewDebug.ExportedProperty(category = "drawing")
getRotation()
float
@ViewDebug.ExportedProperty(category = "drawing")
getRotationX()
float
@ViewDebug.ExportedProperty(category = "drawing")
getRotationY()
float
@ViewDebug.ExportedProperty(category = "drawing")
getScaleX()
float
@ViewDebug.ExportedProperty(category = "drawing")
getScaleY()
int
int
int
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "INSIDE_OVERLAY"), @ViewDebug.IntToString(from = 16777216, to = "INSIDE_INSET"), @ViewDebug.IntToString(from = 33554432, to = "OUTSIDE_OVERLAY"), @ViewDebug.IntToString(from = 50331648, to = "OUTSIDE_INSET")])
getScrollBarStyle()
int
int
final int
final int
int
@ViewDebug.ExportedProperty(category = "drawing")
getSolidColor()
int
final @Nullable CharSequence
@ViewDebug.ExportedProperty(category = "accessibility")
getStateDescription()
@NonNull StateListAnimator
int
int
@NonNull List<@NonNull Rect>
int

This method is deprecated. Deprecated in Java

@NonNull Object
@NonNull Object
getTag(int p0)
int
@ViewDebug.ExportedProperty(category = "text", mapping = [@ViewDebug.IntToString(from = 0, to = "INHERIT"), @ViewDebug.IntToString(from = 1, to = "GRAVITY"), @ViewDebug.IntToString(from = 2, to = "TEXT_START"), @ViewDebug.IntToString(from = 3, to = "TEXT_END"), @ViewDebug.IntToString(from = 4, to = "CENTER"), @ViewDebug.IntToString(from = 5, to = "VIEW_START"), @ViewDebug.IntToString(from = 6, to = "VIEW_END")])
getTextAlignment()
int
@ViewDebug.ExportedProperty(category = "text", mapping = [@ViewDebug.IntToString(from = 0, to = "INHERIT"), @ViewDebug.IntToString(from = 1, to = "FIRST_STRONG"), @ViewDebug.IntToString(from = 2, to = "ANY_RTL"), @ViewDebug.IntToString(from = 3, to = "LTR"), @ViewDebug.IntToString(from = 4, to = "RTL"), @ViewDebug.IntToString(from = 5, to = "LOCALE"), @ViewDebug.IntToString(from = 6, to = "FIRST_STRONG_LTR"), @ViewDebug.IntToString(from = 7, to = "FIRST_STRONG_RTL")])
getTextDirection()
@Nullable CharSequence
final int
float
int
@NonNull TouchDelegate
@NonNull ArrayList<@NonNull View>
float
@NonNull String
float
float
float
long
int
int
@Nullable Drawable
@Nullable Drawable
int
@Nullable ViewTranslationResponse
@NonNull ViewTreeObserver
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "VISIBLE"), @ViewDebug.IntToString(from = 4, to = "INVISIBLE"), @ViewDebug.IntToString(from = 8, to = "GONE")])
getVisibility()
final int
@ViewDebug.ExportedProperty(category = "layout")
getWidth()
int
@NonNull WindowId
@Nullable WindowInsetsController
int

This method is deprecated. Deprecated in Java

@NonNull IBinder
int
void
float
@ViewDebug.ExportedProperty(category = "drawing")
getX()
float
@ViewDebug.ExportedProperty(category = "drawing")
getY()
float
@ViewDebug.ExportedProperty(category = "drawing")
getZ()
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
void
void

This method is deprecated. Deprecated in Java

void
invalidate(int p0, int p1, int p2, int p3)

This method is deprecated. Deprecated in Java

void
void
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean

This method is deprecated. Deprecated in Java

boolean
boolean
final boolean
@ViewDebug.ExportedProperty(category = "focus")
isFocusable()
final boolean
boolean
@ViewDebug.ExportedProperty(category = "focus")
isFocused()
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
final boolean
boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
@ViewDebug.ExportedProperty(category = "drawing")
isOpaque()
boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
@NonNull View
final void
measure(int p0, int p1)
void
void
void
void
@NonNull WindowInsets
void
boolean
boolean
void
void
@NonNull InputConnection
void
void
void
onDisplayHint(int p0)
boolean
void
void
final void
boolean
void
void
void
onFocusChanged(boolean p0, int p1, @Nullable Rect p2)
boolean
void
onHoverChanged(boolean p0)
boolean
void
void
boolean
onKeyDown(int p0, @NonNull KeyEvent p1)
boolean
boolean
onKeyMultiple(int p0, int p1, @NonNull KeyEvent p2)
boolean
onKeyPreIme(int p0, @NonNull KeyEvent p1)
boolean
boolean
onKeyUp(int p0, @NonNull KeyEvent p1)
void
onOverScrolled(int p0, int p1, boolean p2, boolean p3)
void
void
void
void
void
void
void
@Nullable ContentInfo
void
void
@Nullable Parcelable
void
void
void
onScrollChanged(int p0, int p1, int p2, int p3)
boolean
onSetAlpha(int p0)
void
onSizeChanged(int p0, int p1, int p2, int p3)
void
boolean
boolean
void
void
void
void
void
void

This method is deprecated. Deprecated in Java

boolean
overScrollBy(
    int p0,
    int p1,
    int p2,
    int p3,
    int p4,
    int p5,
    int p6,
    int p7,
    boolean p8
)
boolean
boolean
boolean
boolean
performContextClick(float p0, float p1)
boolean
boolean
performHapticFeedback(int p0, int p1)
boolean
boolean
performLongClick(float p0, float p1)
@Nullable ContentInfo
void
boolean
boolean
postDelayed(@NonNull Runnable p0, long p1)
void
void
postInvalidate(int p0, int p1, int p2, int p3)
void
void
postInvalidateDelayed(long p0, int p1, int p2, int p3, int p4)
void
void
postInvalidateOnAnimation(int p0, int p1, int p2, int p3)
void
void
void
void
boolean
void
void
void
void
void

This method is deprecated. Deprecated in Java

final boolean
final boolean
requestFocus(int p0)
final boolean
void
void
boolean
boolean
final void
final void
final @NonNull T
<T extends View> requireViewById(int p0)
void
void
final void
saveAttributeDataForStyleable(
    @NonNull Context p0,
    @NonNull int[] p1,
    @Nullable AttributeSet p2,
    @NonNull TypedArray p3,
    int p4,
    int p5
)
void
void
void
scrollBy(int p0, int p1)
void
scrollTo(int p0, int p1)
void
void
void
void
void
void
void
void
void
void
setActivated(boolean p0)
void
void
void
void
setAlpha(float p0)
void
void
void
void
void
void
void
void

This method is deprecated. Deprecated in Java

void
void
void
void
final void
setBottom(int p0)
void
void
setClickable(boolean p0)
void
void
setClipToOutline(boolean p0)
void
void
void
setContextClickable(boolean p0)
void
void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void
void
setElevation(float p0)
void
setEnabled(boolean p0)
void
void
void
void
setFocusable(boolean p0)
void
setFocusable(int p0)
void
void
setFocusedByDefault(boolean p0)
void
setForceDarkAllowed(boolean p0)
void
void
void
void
void
void
setHandwritingBoundsOffsets(float p0, float p1, float p2, float p3)
void
void
void
void
void
void
void
void
setHovered(boolean p0)
void
setId(int p0)
void
void
void
void
setIsCredential(boolean p0)
void
void
setKeepScreenOn(boolean p0)
void
void
setLabelFor(int p0)
void
void
setLayerType(int p0, @Nullable Paint p1)
void
void
final void
setLeft(int p0)
final void
setLeftTopRightBottom(int p0, int p1, int p2, int p3)
void
setLongClickable(boolean p0)
final void
setMeasuredDimension(int p0, int p1)
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void

This method is deprecated. Deprecated in Java

void
void
void
void
void
void
setPadding(int p0, int p1, int p2, int p3)
void
setPaddingRelative(int p0, int p1, int p2, int p3)
void
setPivotX(float p0)
void
setPivotY(float p0)
void
final void
setPreferKeepClear(boolean p0)
final void
void
setPressed(boolean p0)
void
final void
final void
setRight(int p0)
void
setRotation(float p0)
void
setRotationX(float p0)
void
setRotationY(float p0)
void
setSaveEnabled(boolean p0)
void
void
setScaleX(float p0)
void
setScaleY(float p0)
void
void
void
void
void
final void
void
void
setScrollContainer(boolean p0)
void
void
setScrollIndicators(int p0, int p1)
void
setScrollX(int p0)
void
setScrollY(int p0)
void
void
setSelected(boolean p0)
void
void
void
void
void

This method is deprecated. Deprecated in Java

void
void
setTag(int p0, @NonNull Object p1)
void
void
void
final void
setTop(int p0)
void
void
final void
void
void
setTranslationX(float p0)
void
setTranslationY(float p0)
void
setTranslationZ(float p0)
void
void
void
void
void
void
void
setVisibility(int p0)
void

This method is deprecated. Deprecated in Java

void
setWillNotDraw(boolean p0)
void
setX(float p0)
void
setY(float p0)
void
setZ(float p0)
boolean
boolean
showContextMenu(float p0, float p1)
@NonNull ActionMode
@NonNull ActionMode
void
final boolean
startDrag(
    @NonNull ClipData p0,
    @NonNull View.DragShadowBuilder p1,
    @NonNull Object p2,
    int p3
)

This method is deprecated. Deprecated in Java

final boolean
startDragAndDrop(
    @NonNull ClipData p0,
    @NonNull View.DragShadowBuilder p1,
    @NonNull Object p2,
    int p3
)
boolean
void
@NonNull String
void
void
void
void
final void
boolean
boolean

This method is deprecated. Deprecated in Java

boolean
@ViewDebug.ExportedProperty(category = "drawing")
willNotDraw()
From android.view.ViewGroup
void
void
void
addFocusables(@NonNull ArrayList<@NonNull View> p0, int p1, int p2)
void
boolean
void
void
void
addView(@NonNull View p0, int p1)
void
void
addView(@NonNull View p0, int p1, int p2)
void
boolean
addViewInLayout(
    @NonNull View p0,
    int p1,
    @NonNull ViewGroup.LayoutParams p2
)
boolean
addViewInLayout(
    @NonNull View p0,
    int p1,
    @NonNull ViewGroup.LayoutParams p2,
    boolean p3
)
void
attachLayoutAnimationParameters(
    @NonNull View p0,
    @NonNull ViewGroup.LayoutParams p1,
    int p2,
    int p3
)
void
attachViewToParent(
    @NonNull View p0,
    int p1,
    @NonNull ViewGroup.LayoutParams p2
)
void
boolean
boolean
void
void
void
void
void
void
void
debug(int p0)
void
void
void
void
detachViewsFromParent(int p0, int p1)
@NonNull WindowInsets
boolean
void
void
void
boolean
void
void
dispatchDrawableHotspotChanged(float p0, float p1)
void
void
boolean
boolean
boolean
boolean
boolean
boolean
void
void
void
void
void
void
void
void
dispatchSetPressed(boolean p0)
void
dispatchSetSelected(boolean p0)
void
void

This method is deprecated. Deprecated in Java

void
boolean
boolean
boolean
void
void
void
void
@NonNull WindowInsets
@NonNull WindowInsetsAnimation.Bounds
void

This method is deprecated. Deprecated in Java

void
boolean
drawChild(@NonNull Canvas p0, @NonNull View p1, long p2)
void
void
@NonNull View
@Nullable OnBackInvokedDispatcher
void
findViewsWithText(
    @NonNull ArrayList<@NonNull View> p0,
    @NonNull CharSequence p1,
    int p2
)
@NonNull View
focusSearch(@NonNull View p0, int p1)
void
boolean
@NonNull ViewGroup.LayoutParams
@NonNull ViewGroup.LayoutParams
@NonNull ViewGroup.LayoutParams
@NonNull CharSequence
@NonNull View
getChildAt(int p0)
int
final int
int
getChildDrawingOrder(int p0, int p1)
boolean
boolean
boolean
boolean
int
@ViewDebug.ExportedProperty(category = "focus", mapping = [@ViewDebug.IntToString(from = 131072, to = "FOCUS_BEFORE_DESCENDANTS"), @ViewDebug.IntToString(from = 262144, to = "FOCUS_AFTER_DESCENDANTS"), @ViewDebug.IntToString(from = 393216, to = "FOCUS_BLOCK_DESCENDANTS")])
getDescendantFocusability()
@NonNull View
@NonNull LayoutAnimationController
@NonNull Animation.AnimationListener
int
@NonNull LayoutTransition
int
@NonNull ViewGroupOverlay
int
@ViewDebug.ExportedProperty(category = "drawing", mapping = [@ViewDebug.IntToString(from = 0, to = "NONE"), @ViewDebug.IntToString(from = 1, to = "ANIMATION"), @ViewDebug.IntToString(from = 2, to = "SCROLLING"), @ViewDebug.IntToString(from = 3, to = "ALL")])
getPersistentDrawingCache()

This method is deprecated. Deprecated in Java

boolean
boolean
boolean
int
final void

This method is deprecated. Deprecated in Java

@NonNull ViewParent

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

boolean
boolean

This method is deprecated. Deprecated in Java

boolean
boolean
boolean
void
final void
layout(int p0, int p1, int p2, int p3)
void
measureChild(@NonNull View p0, int p1, int p2)
void
measureChildWithMargins(@NonNull View p0, int p1, int p2, int p3, int p4)
void
measureChildren(int p0, int p1)
void
notifySubtreeAccessibilityStateChanged(
    @NonNull View p0,
    @NonNull View p1,
    int p2
)
final void
final void
@NonNull int[]
void
boolean
boolean
boolean
onNestedFling(@NonNull View p0, float p1, float p2, boolean p3)
boolean
onNestedPreFling(@NonNull View p0, float p1, float p2)
boolean
void
onNestedPreScroll(@NonNull View p0, int p1, int p2, @NonNull int[] p3)
void
onNestedScroll(@NonNull View p0, int p1, int p2, int p3, int p4)
void
boolean
boolean
@NonNull PointerIcon
boolean
void
void
void
void
void
void
void
removeDetachedView(@NonNull View p0, boolean p1)
void
void
removeViewAt(int p0)
void
void
removeViews(int p0, int p1)
void
removeViewsInLayout(int p0, int p1)
void
boolean
requestChildRectangleOnScreen(
    @NonNull View p0,
    @NonNull Rect p1,
    boolean p2
)
void
boolean
requestFocus(int p0, @NonNull Rect p1)
boolean
void
boolean
void
void
void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void
void

This method is deprecated. Deprecated in Java

void
setClipChildren(boolean p0)
void
setClipToPadding(boolean p0)
void
void
void
void
setLayoutMode(int p0)
void
void
void
void

This method is deprecated. Deprecated in Java

void
void
void
setTransitionGroup(boolean p0)
void
boolean
boolean
boolean
showContextMenuForChild(@NonNull View p0, float p1, float p2)
@NonNull ActionMode
@NonNull ActionMode
startActionModeForChild(
    @NonNull View p0,
    @NonNull ActionMode.Callback p1,
    int p2
)
void
void
void
suppressLayout(boolean p0)
void

Public constructors

SharedUiContainer

Added in 1.0.0-alpha14
public SharedUiContainer(@NonNull Context context, AttributeSet attrs)

Public methods

registerSharedUiAsset

Added in 1.0.0-alpha14
public final boolean registerSharedUiAsset(@NonNull SharedUiAsset sharedUiAsset)

Registers a SharedUiAsset, that represents a native ad asset, on SharedUiContainer. The UI provider will receive information about the asset throughout the lifetime of the shared UI session. Because of this, no user-sensitive information should be stored in sharedUiAsset.

sharedUiAsset must comprise a View and its asset ID. This view must be a child, direct or indirect, of the container. If the view gets detached from window, it will be unregistered from the container.

One View can only be associated with one asset. If there's already another SharedUiAsset registered for the View, sharedUiAsset won't be registered, and the method will return 'false'.

Asset IDs will be used by the UI provider to identify an asset view and should be obtained beforehand from the provider. Within the container, an asset ID doesn't have to be unique - the container doesn't impose any restrictions in this regard, and the exact asset ID structure should be a part of the contract between the UI client and provider.

SharedUiAsset allows to provide a SandboxedUiAdapter for registered SandboxedSdkViews. In this case, the container will handle session management of the view: SandboxedUiAdapter will be set on the view once the container's session is open or, if it's already open, will be set right away. However, the session will be closed by the container before the shared UI session in any case.

Returns
boolean

'true' if sharedUiAsset was successfully registered, 'false' if there was another SharedUiAsset registered for the provided View.

Throws
kotlin.IllegalArgumentException

if a View is not a child (direct or indirect) of the container.

setAdapter

Added in 1.0.0-alpha14
public final void setAdapter(SharedUiAdapter sharedUiAdapter)

Sets SharedUiAdapter to maintain a session between SharedUiContainer and a sandboxed SDK.

If there's already an adapter set, and it's different from sharedUiAdapter, its shared UI session is closed, assets registered using registerSharedUiAsset are unregistered, and UI sessions for all registered SandboxedSdkView assets are closed.

If sharedUiAdapter is the same as the previously set adapter, nothing happens.

Passing 'null' value for sharedUiAdapter will release all resources and unregister all children, without setting a new adapter.

unregisterSharedUiAsset

Added in 1.0.0-alpha14
public final boolean unregisterSharedUiAsset(@NonNull View view)

Unregisters a SharedUiAsset associated with a given view from the container. If the view is a SandboxedSdkView, its provider-owned UI session is closed.

Returns
boolean

'true' if the asset was unregistered successfully, 'false' otherwise (if there wasn't a SharedUiAsset associated with view)

Protected methods

onAttachedToWindow

protected void onAttachedToWindow()

onDetachedFromWindow

protected void onDetachedFromWindow()

onLayout

protected void onLayout(boolean changed, int left, int top, int right, int bottom)

Lays out the container's children in the top left corner with their measured sizes. Takes into account the container's padding settings.

Child views that are View.GONE are ignored and don't take any space.

onMeasure

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measures the container and its children. The size of the container is determined by the size of its largest child, container's padding and suggested dimensions, but only if they do not exceed size restrictions imposed by the container's parent view. Child views are measured with respect to the container's padding settings.

View.GONE child views are not used for sizing and are not measured.

onWindowVisibilityChanged

protected void onWindowVisibilityChanged(int visibility)