ActionEffects class

Backend-tunable effect knobs (action_config.effects, camelCase wire).

Every field is nullable: null means "the SDK's built-in value", exactly like the backend contract — absent fields are never materialized server-side. Values are honored only when finite and >= 0 (and within 0..1 for the two Unit fields), mirroring the backend validators.

Every *Ms knob is additionally floored at kMinEffectMs (1 ms) at parse time. The backend admits 0 (NonNegative, ge=0), but a zero duration handed to AnimationController.repeat() asserts in debug and throws on every frame in release — one dashboard field would break every host. A tenant asking for "no animation" gets an imperceptible one instead (Android EffectConfig.MIN_ANIM_MS parity).

Constructors

ActionEffects({double? highlightLoopMs, double? highlightBreathMs, double? highlightDefaultDurationMs, double? highlightMinVisible, double? highlightSafePad, double? highlightStroke, double? highlightCornerRadius, double? highlightShimmerWidth, double? highlightShimmerHeight, double? activeBorderBaseDepth, double? activeBorderBloomDepth, double? activeBorderFadeInMs, double? activeBorderFadeOutMs, double? activeBorderPostHoldMs, double? activeBorderWatchdogMs, double? activeBorderPulseHalfMs, double? activeBorderSolidAlpha, double? awakeningForwardMs, double? awakeningReverseMs, double? awakeningRimSpinMs, double? awakeningDeferredExpandMs, double? awakeningOrbSize, double? fabBreathingMs, double? fabBreathingScale, double? fabExpandMs, double? fabInputSectionMs})
const

Properties

activeBorderBaseDepth → double?
final
activeBorderBloomDepth → double?
final
activeBorderFadeInMs → double?
final
activeBorderFadeOutMs → double?
final
activeBorderPostHoldMs → double?
final
activeBorderPulseHalfMs → double?
final
activeBorderSolidAlpha → double?
final
activeBorderWatchdogMs → double?
final
awakeningDeferredExpandMs → double?
final
awakeningForwardMs → double?
final
awakeningOrbSize → double?
final
awakeningReverseMs → double?
final
awakeningRimSpinMs → double?
final
fabBreathingMs → double?
final
fabBreathingScale → double?
final
fabExpandMs → double?
final
fabInputSectionMs → double?
final
hashCode → int
The hash code for this object.
no setterinherited
highlightBreathMs → double?
final
highlightCornerRadius → double?
final
highlightDefaultDurationMs → double?
final
highlightLoopMs → double?
final
highlightMinVisible → double?
final
highlightSafePad → double?
final
highlightShimmerHeight → double?
final
highlightShimmerWidth → double?
final
highlightStroke → double?
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

animationSafe(Duration d) → Duration
d floored at kMinEffectMs. Overlays run every duration through this before repeat() / forward(): a zero-length controller asserts in debug and throws each frame in release, whatever its source (a backend knob, a host-set static, a wire duration_ms).
duration(double? ms, Duration orElse) → Duration
ms as a Duration, or orElse when the knob is unset — never below kMinEffectMs, so the result is always safe to drive an animation.

Constants

kMinEffectMs → const int
The floor every effect duration is held to (Android MIN_ANIM_MS).
none → const ActionEffects
Everything at SDK defaults.