Fix calendar widget animation

This commit is contained in:
MM20 2024-05-16 23:22:10 +02:00
parent 417c2e2972
commit f7f0e54f2e
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 15 additions and 8 deletions

View File

@ -48,6 +48,7 @@ import androidx.lifecycle.Lifecycle
import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import de.mm20.launcher2.Quadruple
import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.R
import de.mm20.launcher2.ui.component.InnerCard import de.mm20.launcher2.ui.component.InnerCard
import de.mm20.launcher2.ui.component.MissingPermissionBanner import de.mm20.launcher2.ui.component.MissingPermissionBanner
@ -126,12 +127,10 @@ fun CalendarWidget(
} }
} }
val events by viewModel.calendarEvents val events by viewModel.calendarEvents
val nextEvents by viewModel.nextEvents
val runningEvents by viewModel.hiddenPastEvents val runningEvents by viewModel.hiddenPastEvents
val hasPermission by viewModel.hasPermission.collectAsState() val hasPermission by viewModel.hasPermission.collectAsState()
Column( Column {
modifier = Modifier
.animateContentSize()
) {
if (hasPermission == false) { if (hasPermission == false) {
MissingPermissionBanner( MissingPermissionBanner(
modifier = Modifier modifier = Modifier
@ -143,10 +142,11 @@ fun CalendarWidget(
) )
} }
AnimatedContent( AnimatedContent(
Triple( Quadruple(
selectedDate, selectedDate,
events, events,
runningEvents runningEvents,
nextEvents
), ),
transitionSpec = { transitionSpec = {
when { when {
@ -182,7 +182,7 @@ fun CalendarWidget(
} }
} }
} }
) { (_, events, runningEvents) -> ) { (_, events, runningEvents, nextEvents) ->
Column( Column(
modifier = Modifier modifier = Modifier
.padding(horizontal = 12.dp) .padding(horizontal = 12.dp)
@ -208,7 +208,6 @@ fun CalendarWidget(
} }
) )
} }
val nextEvents by viewModel.nextEvents
if (nextEvents.isNotEmpty()) { if (nextEvents.isNotEmpty()) {
Text( Text(
stringResource(R.string.calendar_widget_next_events), stringResource(R.string.calendar_widget_next_events),

View File

@ -0,0 +1,8 @@
package de.mm20.launcher2
data class Quadruple<out A, out B, out C, out D>(
val first: A,
val second: B,
val third: C,
val fourth: D
)