RemoteCurvedProgressIndicator

Functions summary

Unit
@RemoteComposable
@Composable
RemoteCurvedProgressIndicator(
    progress: RemoteFloat,
    modifier: RemoteModifier,
    enabled: RemoteBoolean,
    startAngle: RemoteFloat,
    sweepAngle: RemoteFloat,
    colors: RemoteProgressIndicatorColors,
    strokeWidth: RemoteDp,
    padding: RemoteDp,
    gapAngleDegrees: RemoteFloat,
    dotCollapseFreezeFraction: RemoteFloat,
    animationDurationMillis: Int,
    reverseDirection: RemoteBoolean
)

A generalized progress arc component for display on Wear OS.

Functions

RemoteCurvedProgressIndicator

@RemoteComposable
@Composable
fun RemoteCurvedProgressIndicator(
    progress: RemoteFloat,
    modifier: RemoteModifier = RemoteModifier,
    enabled: RemoteBoolean = true.rb,
    startAngle: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorStartAngle,
    sweepAngle: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorSweepAngle,
    colors: RemoteProgressIndicatorColors = RemoteProgressIndicatorDefaults.colors(),
    strokeWidth: RemoteDp = RemoteProgressIndicatorDefaults.CurvedIndicatorStrokeWidth,
    padding: RemoteDp = RemoteProgressIndicatorDefaults.CurvedIndicatorPadding,
    gapAngleDegrees: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorGapAngleDegrees,
    dotCollapseFreezeFraction: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorDotCollapseFreezeFraction,
    animationDurationMillis: Int = RemoteProgressIndicatorDefaults.AnimationDurationMillis,
    reverseDirection: RemoteBoolean = false.rb
): Unit

A generalized progress arc component for display on Wear OS.

import androidx.compose.remote.creation.compose.state.rf
import androidx.wear.compose.remote.material3.RemoteCurvedProgressIndicator

RemoteCurvedProgressIndicator(
    progress = 0.75f.rf,
    modifier = modifier,
    startAngle = 135f.rf,
    sweepAngle = 90f.rf,
    animationDurationMillis = 0,
)

For an animated progress, see:

import androidx.compose.remote.creation.compose.action.valueChange
import androidx.compose.remote.creation.compose.modifier.clickable
import androidx.compose.remote.creation.compose.state.animateRemoteFloatAsState
import androidx.compose.remote.creation.compose.state.rememberMutableRemoteFloat
import androidx.compose.remote.creation.compose.state.remoteTween
import androidx.compose.remote.creation.compose.state.rf
import androidx.wear.compose.remote.material3.RemoteCurvedProgressIndicator

val progress = rememberMutableRemoteFloat { 0.25f.rf }
val animatedProgress =
    animateRemoteFloatAsState(
        targetValue = progress,
        animationSpec = remoteTween(durationMillis = 250),
    )
val toggleAction = valueChange(progress, ((progress + 0.25f) % 1f).createReference())

RemoteCurvedProgressIndicator(
    progress = animatedProgress,
    modifier = modifier.clickable(toggleAction),
    startAngle = 135f.rf,
    sweepAngle = 90f.rf,
)
Parameters
progress: RemoteFloat

A float value representing progress (typically 0f to 1f).

modifier: RemoteModifier = RemoteModifier

Modifier to be applied to the canvas.

enabled: RemoteBoolean = true.rb

controls the enabled state. When enabled is false, this component will appear visually disabled.

startAngle: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorStartAngle

The starting position of the progress arc in degrees. For example, 135 is bottom left.

sweepAngle: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorSweepAngle

The total sweep angle of the progress arc in degrees. For example, 90 degrees.

colors: RemoteProgressIndicatorColors = RemoteProgressIndicatorDefaults.colors()

RemoteProgressIndicatorColors that will be used to resolve the indicator and track color.

strokeWidth: RemoteDp = RemoteProgressIndicatorDefaults.CurvedIndicatorStrokeWidth

Width of the arc in dp.

padding: RemoteDp = RemoteProgressIndicatorDefaults.CurvedIndicatorPadding

Padding from the canvas/screen edge in dp.

gapAngleDegrees: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorGapAngleDegrees

Size of the visual separation gap between segments in degrees. Set to 0f for continuous bars.

dotCollapseFreezeFraction: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorDotCollapseFreezeFraction

The progress fraction (0f to 1f) at which the collapsing dot freezes its minimum size. 0f means continuous collapse down to 0; 1f means freezing at full dot size without shrinking; for example, 0.5f means that the dot won't collapse past half of its original size.

animationDurationMillis: Int = RemoteProgressIndicatorDefaults.AnimationDurationMillis

Duration of the player-side dynamic progress transition in milliseconds.

reverseDirection: RemoteBoolean = false.rb

Whether to reverse the direction of the progress indicator (RTL).