nordiccalendar

A simple Material 3 native calendar app fitting my personal requirements
git clone git://archive.git.mtrnord.blog/MTRNord/nordiccalendar.git
Log | Files | Refs | README | LICENSE

commit 163281c8a7b18e7cc14aabbe552fb84b70225a38
parent 62c27a7176f0eeefe7eb476085a508ac0319f0a5
Author: MTRNord <MTRNord@users.noreply.github.com>
Date:   Tue, 29 Jul 2025 23:31:05 +0200

Add animation so predictive back works

Diffstat:
Mapp/src/main/java/space/midnightthoughts/nordiccalendar/MainActivity.kt | 18+++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/app/src/main/java/space/midnightthoughts/nordiccalendar/MainActivity.kt b/app/src/main/java/space/midnightthoughts/nordiccalendar/MainActivity.kt @@ -6,6 +6,8 @@ import android.os.Bundle import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import androidx.compose.animation.EnterTransition +import androidx.compose.animation.scaleOut import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.clickable @@ -37,6 +39,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.TransformOrigin import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight @@ -101,7 +104,20 @@ class MainActivity : ComponentActivity() { } else { NavHost( navController = navController, - startDestination = if (showOnboarding) Destinations.Intro.route else Destinations.Calendar.route + startDestination = if (showOnboarding) Destinations.Intro.route else Destinations.Calendar.route, + // See https://developer.android.com/develop/ui/compose/system/predictive-back-setup for more info + popExitTransition = { + scaleOut( + targetScale = 0.9f, + transformOrigin = TransformOrigin( + pivotFractionX = 0.5f, + pivotFractionY = 0.5f + ) + ) + }, + popEnterTransition = { + EnterTransition.None + }, ) { composable(Destinations.Intro.route) { IntroScreen(navController) { // Callback nach Abschluss