File tree Expand file tree Collapse file tree 7 files changed +46
-23
lines changed
app/src/main/java/com/inky/fitnesscalendar/ui Expand file tree Collapse file tree 7 files changed +46
-23
lines changed Original file line number Diff line number Diff line change @@ -228,18 +228,21 @@ private fun AppNavigation(
228228 ) { backStackEntry ->
229229 val route: Views .NewActivity = backStackEntry.toRoute()
230230 onCurrentView(route)
231- NewActivity (
232- route.activityId,
233- onSave = {
234- scope.launch {
235- viewModel.repository.saveActivity(it)
236- }
237- navController.popBackStack()
238- },
239- onNavigateBack = { navController.popBackStack() },
240- onNavigateNewPlace = { navController.navigate(SettingsViews .PlaceDialog ()) },
241- initialDay = route.initialStartDay
242- )
231+
232+ ProvideSharedContent (sharedContentScope = this @SharedTransitionLayout) {
233+ NewActivity (
234+ route.activityId,
235+ onSave = {
236+ scope.launch {
237+ viewModel.repository.saveActivity(it)
238+ }
239+ navController.popBackStack()
240+ },
241+ onNavigateBack = { navController.popBackStack() },
242+ onNavigateNewPlace = { navController.navigate(SettingsViews .PlaceDialog ()) },
243+ initialDay = route.initialStartDay
244+ )
245+ }
243246 }
244247
245248 composable<Views .ApiNewActivity >(
Original file line number Diff line number Diff line change @@ -62,6 +62,7 @@ import com.inky.fitnesscalendar.localization.LocalizationRepository
6262import com.inky.fitnesscalendar.ui.util.ContextFormat
6363import com.inky.fitnesscalendar.ui.util.Icons
6464import com.inky.fitnesscalendar.ui.util.SharedContentKey
65+ import com.inky.fitnesscalendar.ui.util.applyIf
6566import com.inky.fitnesscalendar.ui.util.sharedElement
6667import com.inky.fitnesscalendar.ui.util.skipToLookaheadSize
6768import com.inky.fitnesscalendar.util.asNonEmptyOrNull
@@ -149,7 +150,11 @@ fun ActivityCard(
149150 onClick = { imageViewerUri = it.getImageUri(context) },
150151 modifier = Modifier
151152 .padding(all = 8 .dp)
152- .sharedElement(SharedContentKey .ActivityImage )
153+ .applyIf(richActivity.activity.uid != null ) {
154+ sharedElement(
155+ SharedContentKey .ActivityImage (richActivity.activity.uid!! )
156+ )
157+ }
153158 )
154159 }
155160 }
Original file line number Diff line number Diff line change @@ -9,21 +9,18 @@ import androidx.compose.runtime.Composable
99import androidx.compose.ui.Modifier
1010import androidx.compose.ui.platform.LocalConfiguration
1111import com.inky.fitnesscalendar.ui.theme.FitnessCalendarTheme
12+ import com.inky.fitnesscalendar.ui.util.applyIf
1213
1314@Composable
1415fun AppFrame (modifier : Modifier = Modifier , app : @Composable () -> Unit ) {
1516 FitnessCalendarTheme {
1617 // In landscape mode, use the more conservative `safeDrawingPadding`, which looks
1718 // uglier but makes sure that no content is obstructed
1819 val orientation = LocalConfiguration .current.orientation
19- val baseModifier = modifier.imePadding()
20- val surfaceModifier = when (orientation) {
21- Configuration .ORIENTATION_LANDSCAPE -> baseModifier.safeDrawingPadding()
22- else -> baseModifier
23- }
24-
2520 Surface (
26- modifier = surfaceModifier,
21+ modifier = modifier
22+ .imePadding()
23+ .applyIf(orientation == Configuration .ORIENTATION_LANDSCAPE ) { safeDrawingPadding() },
2724 color = MaterialTheme .colorScheme.background
2825 ) {
2926 app()
Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ import com.inky.fitnesscalendar.ui.localSharedTransition
88sealed class SharedContentKey {
99 data class ActivityCard (val id : Int? ) : SharedContentKey()
1010
11- data object ActivityImage : SharedContentKey ()
11+ data class ActivityImage ( val activityId : Int ) : SharedContentKey()
1212
1313 data object NewActivityFAB : SharedContentKey ()
1414
Original file line number Diff line number Diff line change 1+ package com.inky.fitnesscalendar.ui.util
2+
3+ import androidx.compose.ui.Modifier
4+
5+ inline fun Modifier.applyIf (condition : Boolean , block : Modifier .() -> Modifier ): Modifier {
6+ return if (condition) {
7+ block()
8+ } else {
9+ this
10+ }
11+ }
Original file line number Diff line number Diff line change @@ -81,6 +81,9 @@ import com.inky.fitnesscalendar.ui.components.SelectImageDropdownMenuItem
8181import com.inky.fitnesscalendar.ui.components.defaultTopAppBarColors
8282import com.inky.fitnesscalendar.ui.components.optionGroupDefaultBackground
8383import com.inky.fitnesscalendar.ui.util.Icons
84+ import com.inky.fitnesscalendar.ui.util.SharedContentKey
85+ import com.inky.fitnesscalendar.ui.util.applyIf
86+ import com.inky.fitnesscalendar.ui.util.sharedElement
8487import com.inky.fitnesscalendar.util.Option
8588import com.inky.fitnesscalendar.util.asNonEmptyOrNull
8689import com.inky.fitnesscalendar.util.toDate
@@ -310,7 +313,11 @@ fun NewActivity(
310313 }
311314 },
312315 onClick = { imageViewerImage = it },
313- modifier = Modifier .padding(vertical = 4 .dp)
316+ modifier = Modifier
317+ .padding(vertical = 4 .dp)
318+ .applyIf(editState.activityId != null ) {
319+ sharedElement(SharedContentKey .ActivityImage (editState.activityId!! ))
320+ }
314321 )
315322 }
316323
Original file line number Diff line number Diff line change @@ -257,7 +257,7 @@ fun TrackDetailsData(
257257 onClick = { imagePopup = it },
258258 modifier = Modifier
259259 .padding(all = 8 .dp)
260- .sharedElement(SharedContentKey .ActivityImage )
260+ .sharedElement(SharedContentKey .ActivityImage (state.initialActivity.activity.uid !! ) )
261261 )
262262 }
263263
You can’t perform that action at this time.
0 commit comments