Skip to content

Commit

Permalink
confetti animation
Browse files Browse the repository at this point in the history
  • Loading branch information
AnnaLinden committed Nov 28, 2024
1 parent 9cfed53 commit bfce018
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
4 changes: 3 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ android {
}

dependencies {
val compose_version = "1.4.0"
val compose_version = "1.5.0"
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")
implementation(libs.androidx.rules)
Expand Down Expand Up @@ -84,6 +84,8 @@ dependencies {
implementation("androidx.room:room-ktx:$room_version")
implementation("com.google.accompanist:accompanist-permissions:0.28.0")

implementation ("nl.dionsegijn:konfetti-compose:2.0.4")

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.example.androidproject.ui.components

import androidx.compose.foundation.layout.fillMaxSize


import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import nl.dionsegijn.konfetti.compose.KonfettiView
import nl.dionsegijn.konfetti.core.Party
import nl.dionsegijn.konfetti.core.Position
import nl.dionsegijn.konfetti.core.emitter.Emitter
import nl.dionsegijn.konfetti.core.models.Shape
import java.util.concurrent.TimeUnit

@Composable
fun ConfettiAnimation() {
val party = remember {
Party(
emitter = Emitter(duration = 3, TimeUnit.SECONDS).max(100),
position = Position.Relative(0.5, 0.5),
spread = 360,
shapes = listOf(Shape.Circle, Shape.Square),
colors = listOf(0xfce18a, 0xff726d, 0xf4306d, 0xb48def)
)
}

KonfettiView(
parties = listOf(party),
modifier = Modifier.fillMaxSize()
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ import com.example.androidproject.data.models.CheckpointEntity
import com.example.androidproject.data.models.TaskEntity
import com.example.androidproject.ui.components.CameraControls
import com.example.androidproject.ui.components.CameraPreview
import com.example.androidproject.ui.components.ConfettiAnimation
import com.example.androidproject.ui.viewmodels.CheckpointViewModel
import com.example.androidproject.ui.viewmodels.MapViewModel
import com.example.androidproject.ui.viewmodels.QuestViewModel
Expand Down Expand Up @@ -117,6 +118,8 @@ fun QuestDetailScreen(
onDispose { }
}

var showConfetti by remember { mutableStateOf(false) }

// Request location permission
val locationPermissionGranted = locationPermission()

Expand Down Expand Up @@ -343,6 +346,7 @@ fun QuestDetailScreen(
if (allOtherCompleted) {
questViewModel.markCompleted(selectedQuest)
}
showConfetti = true

// Close camera
showCameraView = false
Expand Down Expand Up @@ -508,7 +512,15 @@ fun QuestDetailScreen(
}
}
}
if (showConfetti) {
ConfettiAnimation()
LaunchedEffect(Unit) {
kotlinx.coroutines.delay(3000)
showConfetti = false
}
}
}


} else {
Text(text = "Location permission is required to display the map.")
Expand Down

0 comments on commit bfce018

Please sign in to comment.