Skip to content

Commit 3bf5493

Browse files
Fix bad SharedContentKey
1 parent 2137073 commit 3bf5493

File tree

7 files changed

+46
-23
lines changed

7 files changed

+46
-23
lines changed

app/src/main/java/com/inky/fitnesscalendar/ui/App.kt

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff 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>(

app/src/main/java/com/inky/fitnesscalendar/ui/components/ActivityCard.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ import com.inky.fitnesscalendar.localization.LocalizationRepository
6262
import com.inky.fitnesscalendar.ui.util.ContextFormat
6363
import com.inky.fitnesscalendar.ui.util.Icons
6464
import com.inky.fitnesscalendar.ui.util.SharedContentKey
65+
import com.inky.fitnesscalendar.ui.util.applyIf
6566
import com.inky.fitnesscalendar.ui.util.sharedElement
6667
import com.inky.fitnesscalendar.ui.util.skipToLookaheadSize
6768
import 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
}

app/src/main/java/com/inky/fitnesscalendar/ui/components/AppFrame.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,18 @@ import androidx.compose.runtime.Composable
99
import androidx.compose.ui.Modifier
1010
import androidx.compose.ui.platform.LocalConfiguration
1111
import com.inky.fitnesscalendar.ui.theme.FitnessCalendarTheme
12+
import com.inky.fitnesscalendar.ui.util.applyIf
1213

1314
@Composable
1415
fun 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()

app/src/main/java/com/inky/fitnesscalendar/ui/util/SharedContentKey.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import com.inky.fitnesscalendar.ui.localSharedTransition
88
sealed 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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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+
}

app/src/main/java/com/inky/fitnesscalendar/ui/views/EditActivityView.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ import com.inky.fitnesscalendar.ui.components.SelectImageDropdownMenuItem
8181
import com.inky.fitnesscalendar.ui.components.defaultTopAppBarColors
8282
import com.inky.fitnesscalendar.ui.components.optionGroupDefaultBackground
8383
import 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
8487
import com.inky.fitnesscalendar.util.Option
8588
import com.inky.fitnesscalendar.util.asNonEmptyOrNull
8689
import 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

app/src/main/java/com/inky/fitnesscalendar/ui/views/TrackDetailsView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)