From 1a737956159c0147cd899bb7042e6c5505309551 Mon Sep 17 00:00:00 2001 From: "Andres Gomez, Thomas (ITDV RL)" Date: Wed, 1 Oct 2025 16:15:52 +0200 Subject: [PATCH] Change the create event button to an edit if event that day. --- app/build.gradle.kts | 2 +- app/release/baselineProfiles/0/app-release.dm | Bin 4667 -> 3914 bytes app/release/baselineProfiles/1/app-release.dm | Bin 4630 -> 3876 bytes .../headache/ui/page/home/HomePage.kt | 35 +++++++++++++----- .../headache/ui/page/home/HomeViewModel.kt | 32 ++++++++++++++++ gradle/libs.versions.toml | 2 +- 6 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 app/src/main/java/com/pixelized/headache/ui/page/home/HomeViewModel.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ebdf24d..f3ac78f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -26,7 +26,7 @@ android { defaultConfig { namespace = "com.pixelized.headache" minSdk = 26 - targetSdk = 35 + targetSdk = 36 versionCode = 1 versionName = "1.0" diff --git a/app/release/baselineProfiles/0/app-release.dm b/app/release/baselineProfiles/0/app-release.dm index 58a4441201fb4906bed7f372df8574a6678b6b32..5c6fb5a7dc38ccc7b2c184e1010bb909843c7197 100644 GIT binary patch delta 3782 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 delta 4541 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 bTJWRl%nk5nWdlhwF)%TdGB7Z73xaq6cqbgj diff --git a/app/src/main/java/com/pixelized/headache/ui/page/home/HomePage.kt b/app/src/main/java/com/pixelized/headache/ui/page/home/HomePage.kt index 74516c3..8bc72c7 100644 --- a/app/src/main/java/com/pixelized/headache/ui/page/home/HomePage.kt +++ b/app/src/main/java/com/pixelized/headache/ui/page/home/HomePage.kt @@ -16,6 +16,8 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Add +import androidx.compose.material.icons.filled.CalendarToday +import androidx.compose.material.icons.filled.Edit import androidx.compose.material.icons.filled.Info import androidx.compose.material.icons.outlined.Info import androidx.compose.material3.DropdownMenu @@ -40,6 +42,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel +import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.pixelized.headache.R import com.pixelized.headache.ui.common.toolbar.Toolbar import com.pixelized.headache.ui.navigation.destination.MonthSummaryDestination @@ -66,7 +69,9 @@ data class BottomBarItemUio( fun HomePage( navigator: HomeNavigator, editViewModel: EventEditBottomSheetViewModel = hiltViewModel(), + homeViewModel: HomeViewModel = hiltViewModel(), ) { + val todayEventId = homeViewModel.todayEventId.collectAsStateWithLifecycle() val bottomBarItems = rememberBottomBarItems( onYearlyFollowUp = { navigator.navigateToYearSummary() @@ -103,6 +108,7 @@ fun HomePage( HomePageContent( modifier = Modifier.fillMaxSize(), navigator = navigator, + todayEventId = todayEventId, displayLegendAction = displayLegendAction, displayLegendPopup = displayLegendPopup, items = bottomBarItems, @@ -114,7 +120,7 @@ fun HomePage( displayLegendPopup.value = false }, onFabClick = { - editViewModel.show() + editViewModel.show(eventId = it) }, ) @@ -156,11 +162,12 @@ private fun HomePageContent( navigator: HomeNavigator, displayLegendAction: State, displayLegendPopup: State, + todayEventId: State, items: List, selectedItem: State, onDisplayLegend: () -> Unit, onDismissLegend: () -> Unit, - onFabClick: () -> Unit, + onFabClick: (Long?) -> Unit, ) { Scaffold( modifier = modifier, @@ -230,15 +237,23 @@ private fun HomePageContent( } }, floatingActionButton = { - FloatingActionButton( - containerColor = MaterialTheme.colorScheme.primary, - shape = CircleShape, - onClick = onFabClick, + AnimatedContent( + targetState = todayEventId.value, + transitionSpec = { fadeIn() togetherWith fadeOut() }, ) { - Icon( - imageVector = Icons.Default.Add, - contentDescription = null, - ) + FloatingActionButton( + containerColor = MaterialTheme.colorScheme.primary, + shape = CircleShape, + onClick = { onFabClick(todayEventId.value) }, + ) { + Icon( + imageVector = when (it) { + null -> Icons.Default.Add + else -> Icons.Default.Edit + }, + contentDescription = null, + ) + } } }, content = { paddingValues -> diff --git a/app/src/main/java/com/pixelized/headache/ui/page/home/HomeViewModel.kt b/app/src/main/java/com/pixelized/headache/ui/page/home/HomeViewModel.kt new file mode 100644 index 0000000..6984923 --- /dev/null +++ b/app/src/main/java/com/pixelized/headache/ui/page/home/HomeViewModel.kt @@ -0,0 +1,32 @@ +package com.pixelized.headache.ui.page.home + +import android.icu.util.Calendar +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.pixelized.headache.repository.event.EventRepository +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn +import javax.inject.Inject + +@HiltViewModel +class HomeViewModel @Inject constructor( + eventRepository: EventRepository, +) : ViewModel() { + val todayEventId: StateFlow = eventRepository.eventsMapFlow() + .map { + val calendar = Calendar.getInstance() + val year = calendar.get(Calendar.YEAR) + val month = calendar.get(Calendar.MONTH) + val day = calendar.get(Calendar.DAY_OF_MONTH) + val event = it[year]?.get(month)?.get(day) + event?.firstOrNull()?.id + } + .stateIn( + scope = viewModelScope, + started = SharingStarted.Lazily, + initialValue = null + ) +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1447d6f..a333368 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ # limitations under the License. [versions] -agp = "8.12.2" +agp = "8.13.0" kotlin = "2.2.0" kotlinSerialization = "2.2.0" coreKtx = "1.16.0"