Package-level declarations

Types

Link copied to clipboard

How a video fills the portrait vertical-feed viewport.

Link copied to clipboard

Configuration for OGVerticalFeedView. Everything is explicit — the feed never infers behavior from content. The player pool holds at most preloadAhead + keepBehind + 1 (≤ 3) engine instances; preloaded items buffer on a capped standby profile so memory stays predictable.

Link copied to clipboard

One entry of a vertical feed: the media plus its shorts-specific presentation. Feeds are plain lists of these — the SDK never fetches or paginates; append to the list from onNearEnd.

Link copied to clipboard
class OGVerticalFeedState(initialMuted: Boolean)

Host-facing state of an OGVerticalFeedView. Create with rememberOGVerticalFeedState and pass it to the view.

Link copied to clipboard
class RailAction(@DrawableRes val iconRes: Int, val label: String? = null, val isActive: Boolean = false, val contentDescription: String? = null, val onClick: () -> Unit)

One action on the vertical feed right-side rail — the host's like/share/comment buttons. Unlike com.ogplayer.ui.CustomAction (icon-only, top-end row of the standard player), a rail action carries an optional label (usually a count) and an isActive state (e.g. already-liked). State changes flow by re-supplying the items list.

Link copied to clipboard

Which half of a split-video page owns the audio (the other is muted).

Link copied to clipboard

Where an item's title/subtitle render.

Functions

Link copied to clipboard
fun OGVerticalFeedView(items: List<OGVerticalFeedItem>, modifier: Modifier = Modifier, config: OGVerticalFeedConfig = OGVerticalFeedConfig.Builder().build(), state: OGVerticalFeedState = rememberOGVerticalFeedState(), onActiveItemChanged: (index: Int, item: OGVerticalFeedItem) -> Unit? = null, onItemProgress: (index: Int, positionMs: Long, durationMs: Long) -> Unit? = null, onNearEnd: (remaining: Int) -> Unit? = null, onItemSkipped: (index: Int, reason: String) -> Unit? = null, sponsoredBadge: @Composable (OGVerticalFeedItem) -> Unit? = null, onItemError: (index: Int, error: OGPlayerError) -> Unit? = null, errorOverlay: @Composable (error: OGPlayerError, retry: () -> Unit) -> Unit? = null, onAnalyticsEvent: (AnalyticsEvent) -> Unit? = null, onItemDoubleTapped: (index: Int, item: OGVerticalFeedItem) -> Unit? = null)

A swipeable portrait vertical vertical feed. Portrait-only BY DESIGN — this surface has no fullscreen, rotation or landscape API; pin your screen's orientation to portrait. It is a separate surface from com.ogplayer.ui.OGPlayerView on purpose, so a vertical feed can never be confused with the standard player.

Link copied to clipboard

Remembers an OGVerticalFeedState for the composition.