Skip to content

EranBoudjnah/Loaders

Repository files navigation

Loaders

A collection of progress indicators/loaders for Jetpack Compose

Gradle checks Gears - Maven Central Jigsaw - Maven Central

Gears Jigsaw

Download

Update the project build.gradle. You can include one or more of the loaders:

dependencies {
   implementation 'com.mitteloupe.loaders:loaders-gears:0.4.0'
   implementation 'com.mitteloupe.loaders:loaders-jigsaw:0.2.0'
}

This project is hosted in mavenCentral().

Usage

GearsLoader()
JigsawLoader()

Other optional params:

Gears
@Composable
fun GearsLoader(
    modifier: Modifier = Modifier,
    gearConfiguration: GearConfiguration = GearsLoaderDefaults.gearConfiguration,
    @FloatRange(from = 0.0, to = 1.0) toothRoundness: Float = GearsLoaderDefaults.TOOTH_ROUNDNESS,
    holeRadius: Dp = GearsLoaderDefaults.holeRadius,
    rotationTimeMilliseconds: Int = GearsLoaderDefaults.ROTATION_TIME_MILLISECONDS,
    color: Color = GearsLoaderDefaults.color,
    trackColor: Color = GearsLoaderDefaults.trackColor,
    gearType: GearType = GearsLoaderDefaults.gearType,
    progressState: ProgressState = ProgressState.Indeterminate,
    transitionTimeMilliseconds: Int = DefaultDurationMillis,
    rectangleFiller: RectangleFiller = RectangleFiller(GearMesher())
)
Jigsaw
@Composable
fun JigsawLoader(
    modifier: Modifier = Modifier,
    progressState: ProgressState = Indeterminate(),
    horizontalPieces: Int = JigsawLoaderDefaults.horizontalPieces,
    verticalPieces: Int = JigsawLoaderDefaults.verticalPieces,
    puzzleBrushProvider: BrushProvider =
        ColorBrushProvider(JigsawLoaderDefaults.color),
    lightBrush: Brush = SolidColor(Color.White.copy(alpha = .4f)),
    darkBrush: Brush = SolidColor(Color.Black.copy(alpha = .6f)),
    trackColor: Color = JigsawLoaderDefaults.trackColor,
    piecePresenceResolver: PiecePresenceResolver = JigsawLoaderDefaults.piecePresenceResolver(
        progressState = progressState,
        horizontalPieces = horizontalPieces,
        verticalPieces = verticalPieces
    ),
    transitionTimeMilliseconds: Int = AnimationConstants.DefaultDurationMillis,
    @FloatRange(from = 0.0, to = 1.0) trackSaturation: Float = 1f,
    knobInversionEvaluator: (placeX: Int, placeY: Int) -> Boolean =
        JigsawLoaderDefaults.knobInversionEvaluator,
    knobConfiguration: KnobConfiguration = JigsawLoaderDefaults.knobConfiguration,
    overflow: Boolean = false
)

Show some ❤ and support

If this project helped you, give it a ⭐️!

Contributing

Contributions to this project are welcome. Please feel free to report any issues or fork to make changes and raise a pull request.

License

This project is distributed under the terms of the MIT License. See LICENSE for details.