# RemoteCurvedProgressIndicator

## Functions summary

|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteCurvedProgressIndicator.composable#RemoteCurvedProgressIndicator(androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.wear.compose.remote.material3.RemoteProgressIndicatorColors,androidx.compose.remote.creation.compose.state.RemoteDp,androidx.compose.remote.creation.compose.state.RemoteDp,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.state.RemoteBoolean)( progress: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat, modifier: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/modifier/RemoteModifier, enabled: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean, startAngle: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat, sweepAngle: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat, colors: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteProgressIndicatorColors, strokeWidth: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteDp, padding: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteDp, gapAngleDegrees: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat, dotFadeOutFraction: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat, dotCollapsible: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean, reverseDirection: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean )` A generalized progress arc component for display on Wear OS. |

## Functions

### RemoteCurvedProgressIndicator

Artifact: [androidx.wear.compose.remote:remote-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose-remote) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/remote/material3/RemoteCurvedProgressIndicator.kt+function:RemoteCurvedProgressIndicator) Added in [1.0.0-alpha15](https://developer.android.com/jetpack/androidx/releases/wear-compose-remote#1.0.0-alpha15)

```
@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,
    dotFadeOutFraction: RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorDotFadeOutFraction,
    dotCollapsible: RemoteBoolean = true.rb,
    reverseDirection: RemoteBoolean = false.rb
): Unit
```

A generalized progress arc component for display on Wear OS.

To also animate the start and end of the progress, for example for a timer or a goal, use `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteIntroOutroCurvedProgressIndicator.composable#RemoteIntroOutroCurvedProgressIndicator(androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.wear.compose.remote.material3.RemoteProgressIndicatorColors,androidx.compose.remote.creation.compose.state.RemoteDp,androidx.compose.remote.creation.compose.state.RemoteDp,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.state.RemoteBoolean)`.

```kotlin
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,
)
```
For an animated progress, see:

```kotlin
import androidx.compose.remote.creation.compose.action.valueChange
import androidx.compose.remote.creation.compose.modifier.clickable
import androidx.compose.remote.creation.compose.state.MutableRemoteFloat
import androidx.compose.remote.creation.compose.state.animateRemoteFloatAsState
import androidx.compose.remote.creation.compose.state.remoteTween
import androidx.compose.remote.creation.compose.state.rf
import androidx.compose.runtime.remember
import androidx.wear.compose.remote.material3.RemoteCurvedProgressIndicator

val progress = remember { MutableRemoteFloat { 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: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat` | A float value representing progress (typically 0f to 1f). |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/modifier/RemoteModifier = RemoteModifier` | Modifier to be applied to the canvas. |
| `enabled: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean = true.rb` | controls the enabled state. When enabled is `false`, this component will appear visually disabled. |
| `startAngle: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorStartAngle` | The starting position of the progress arc in degrees. For example, 135 is bottom left. |
| `sweepAngle: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorSweepAngle` | The total sweep angle of the progress arc in degrees. For example, 90 degrees. |
| `colors: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteProgressIndicatorColors = RemoteProgressIndicatorDefaults.colors()` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteProgressIndicatorColors` that will be used to resolve the indicator and track color. |
| `strokeWidth: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteDp = RemoteProgressIndicatorDefaults.CurvedIndicatorStrokeWidth` | Width of the arc in dp. |
| `padding: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteDp = RemoteProgressIndicatorDefaults.CurvedIndicatorPadding` | Padding from the canvas/screen edge in dp. |
| `gapAngleDegrees: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorGapAngleDegrees` | Size of the visual separation gap between segments in degrees. Set to 0f for continuous bars. |
| `dotFadeOutFraction: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteFloat = RemoteProgressIndicatorDefaults.CurvedIndicatorDotFadeOutFraction` | The fraction of the dot's size (from 0.0 to 1.0) below which the dot fades its opacity to transparent as it collapses/expands. Set to 0.0 to disable opacity fading and shrink purely through size. |
| `dotCollapsible: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean = true.rb` | Whether the indicator's dot should collapse as it approaches the end of the track. |
| `reverseDirection: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean = false.rb` | Whether to reverse the direction of the progress indicator (RTL). |