Package-level declarations

Types

Link copied to clipboard
fun interface StreamCdnImageResizer

Strategy for resizing Stream CDN hosted image URLs before they are loaded, to avoid downloading full-resolution originals. It is applied to image attachment URLs by the Compose and XML UI kits and configured via ChatTheme(streamCdnImageResizer = …) / ChatUI.streamCdnImageResizer.

Link copied to clipboard
data class StreamCdnImageResizing(val imageResizingEnabled: Boolean, @FloatRange(from = 0.0, to = 1.0, fromInclusive = false) val resizedWidthPercentage: Float, @FloatRange(from = 0.0, to = 1.0, fromInclusive = false) val resizedHeightPercentage: Float, val resizeMode: StreamCdnResizeImageMode?, val cropMode: StreamCdnCropImageMode?)

Used to adjust the request to resize images hosted on Stream's CDN.

Link copied to clipboard
class StreamCdnMaxPixelsImageResizer(maxImagePixels: Long = StreamCdnImageResizer.DEFAULT_MAX_IMAGE_PIXELS, resizeMode: StreamCdnResizeImageMode? = null, cropMode: StreamCdnCropImageMode? = null, cdnHost: String? = null) : StreamCdnImageResizer

Caps images to maxImagePixels total pixels (default 2MP), preserving aspect ratio and never upscaling.

Properties

Link copied to clipboard

Disables resizing — full-resolution originals. Explicit opt-out.

Functions

Link copied to clipboard
fun String.applyStreamCdnImageResizing(streamCdnImageResizing: StreamCdnImageResizing, streamCdnImageResizer: StreamCdnImageResizer): String

Applies image resizing following the resolver precedence: if the legacy streamCdnImageResizing is explicitly enabled its exact percentage behavior is honored, otherwise the active streamCdnImageResizer is applied (defaulting to a 2MP cap). Disabling resizing is done by setting the resizer to NoOpStreamCdnImageResizer.

Link copied to clipboard

A convenience method which applies Stream CDN image resizing if it's enabled and applicable. It doesn't hold any special value other than minimizing repetition.