diff --git a/app/release/baselineProfiles/0/app-release.dm b/app/release/baselineProfiles/0/app-release.dm
index bd1f294..58a4441 100644
Binary files a/app/release/baselineProfiles/0/app-release.dm and b/app/release/baselineProfiles/0/app-release.dm differ
diff --git a/app/release/baselineProfiles/1/app-release.dm b/app/release/baselineProfiles/1/app-release.dm
index ba348a3..22aa0c6 100644
Binary files a/app/release/baselineProfiles/1/app-release.dm and b/app/release/baselineProfiles/1/app-release.dm differ
diff --git a/app/src/main/java/com/pixelized/headache/MainActivity.kt b/app/src/main/java/com/pixelized/headache/MainActivity.kt
index 3e1b6b4..5b62a7e 100644
--- a/app/src/main/java/com/pixelized/headache/MainActivity.kt
+++ b/app/src/main/java/com/pixelized/headache/MainActivity.kt
@@ -3,6 +3,7 @@ package com.pixelized.headache
import android.Manifest.permission.READ_CALENDAR
import android.Manifest.permission.WRITE_CALENDAR
import android.content.pm.PackageManager.PERMISSION_GRANTED
+import android.os.Build
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
@@ -33,6 +34,11 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ // Force the 3-button navigation bar to be transparent
+ // See: https://developer.android.com/develop/ui/views/layout/edge-to-edge#create-transparent
+ window.isNavigationBarContrastEnforced = false
+ }
if (ContextCompat.checkSelfPermission(this, READ_CALENDAR) != PERMISSION_GRANTED) {
requestPermissionLauncher.launch(READ_CALENDAR)
diff --git a/app/src/main/java/com/pixelized/headache/ui/common/toolbar/Toolbar.kt b/app/src/main/java/com/pixelized/headache/ui/common/toolbar/Toolbar.kt
new file mode 100644
index 0000000..7c09e64
--- /dev/null
+++ b/app/src/main/java/com/pixelized/headache/ui/common/toolbar/Toolbar.kt
@@ -0,0 +1,40 @@
+package com.pixelized.headache.ui.common.toolbar
+
+import androidx.compose.foundation.layout.RowScope
+import androidx.compose.foundation.layout.WindowInsets
+import androidx.compose.material3.BottomAppBarDefaults
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.TopAppBar
+import androidx.compose.material3.TopAppBarColors
+import androidx.compose.material3.TopAppBarDefaults
+import androidx.compose.material3.TopAppBarScrollBehavior
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.unit.Dp
+
+@Suppress("NOTHING_TO_INLINE")
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+inline fun Toolbar(
+ modifier: Modifier = Modifier,
+ noinline title: @Composable () -> Unit,
+ noinline navigationIcon: @Composable () -> Unit = {},
+ noinline actions: @Composable RowScope.() -> Unit = {},
+ expandedHeight: Dp = TopAppBarDefaults.TopAppBarExpandedHeight,
+ windowInsets: WindowInsets = TopAppBarDefaults.windowInsets,
+ colors: TopAppBarColors = TopAppBarDefaults.topAppBarColors(
+ containerColor = BottomAppBarDefaults.containerColor,
+ ),
+ scrollBehavior: TopAppBarScrollBehavior? = null,
+) {
+ TopAppBar(
+ title = title,
+ modifier = modifier,
+ navigationIcon = navigationIcon,
+ actions = actions,
+ expandedHeight = expandedHeight,
+ windowInsets = windowInsets,
+ colors = colors,
+ scrollBehavior = scrollBehavior,
+ )
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/pixelized/headache/ui/navigation/home/HomeNavigator.kt b/app/src/main/java/com/pixelized/headache/ui/navigation/home/HomeNavigator.kt
index ff85fba..db15f1e 100644
--- a/app/src/main/java/com/pixelized/headache/ui/navigation/home/HomeNavigator.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/navigation/home/HomeNavigator.kt
@@ -15,6 +15,6 @@ class HomeNavigator(
fun popBackstack() = backStack.removeLastOrNull()
fun goTo(destination: HomeDestination) {
- backStack.add(destination)
+ backStack[0] = destination
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/pixelized/headache/ui/page/calendar/CalendarChooserPage.kt b/app/src/main/java/com/pixelized/headache/ui/page/calendar/CalendarChooserPage.kt
index dca9607..473328d 100644
--- a/app/src/main/java/com/pixelized/headache/ui/page/calendar/CalendarChooserPage.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/page/calendar/CalendarChooserPage.kt
@@ -13,8 +13,6 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.NavigationBarDefaults
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
-import androidx.compose.material3.TopAppBar
-import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.rememberCoroutineScope
@@ -24,6 +22,7 @@ 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.main.LocalMainNavigator
import kotlinx.coroutines.launch
@@ -65,10 +64,7 @@ private fun CalendarContent(
Scaffold(
modifier = modifier,
topBar = {
- TopAppBar(
- colors = TopAppBarDefaults.topAppBarColors(
- containerColor = NavigationBarDefaults.containerColor,
- ),
+ Toolbar(
navigationIcon = {
IconButton(
onClick = onBack,
diff --git a/app/src/main/java/com/pixelized/headache/ui/page/event/list/EventItem.kt b/app/src/main/java/com/pixelized/headache/ui/page/event/list/EventItem.kt
index b9144b6..23edc7d 100644
--- a/app/src/main/java/com/pixelized/headache/ui/page/event/list/EventItem.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/page/event/list/EventItem.kt
@@ -80,9 +80,9 @@ fun EventItem(
Box(
modifier = Modifier
.clickable { onItem(item) }
- .fillMaxWidth()
.heightIn(min = minHeigh)
.height(IntrinsicSize.Min)
+ .fillMaxWidth()
.then(other = modifier),
contentAlignment = Alignment.CenterStart,
) {
diff --git a/app/src/main/java/com/pixelized/headache/ui/page/event/list/EventPage.kt b/app/src/main/java/com/pixelized/headache/ui/page/event/list/EventPage.kt
index c7e1bba..c8b0a12 100644
--- a/app/src/main/java/com/pixelized/headache/ui/page/event/list/EventPage.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/page/event/list/EventPage.kt
@@ -1,10 +1,6 @@
package com.pixelized.headache.ui.page.event.list
-import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.animateColorAsState
-import androidx.compose.animation.fadeIn
-import androidx.compose.animation.fadeOut
-import androidx.compose.animation.togetherWith
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
@@ -22,12 +18,10 @@ import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.NavigationBarDefaults
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
-import androidx.compose.material3.TopAppBar
-import androidx.compose.material3.TopAppBarDefaults
+import androidx.compose.material3.minimumInteractiveComponentSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Stable
import androidx.compose.runtime.State
@@ -44,6 +38,7 @@ 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.main.LocalMainNavigator
import com.pixelized.headache.ui.page.event.edit.EventEditBottomSheet
import com.pixelized.headache.ui.page.event.edit.EventEditBottomSheetViewModel
@@ -107,10 +102,7 @@ private fun EventContent(
Scaffold(
modifier = modifier,
topBar = {
- TopAppBar(
- colors = TopAppBarDefaults.topAppBarColors(
- containerColor = NavigationBarDefaults.containerColor,
- ),
+ Toolbar(
navigationIcon = {
IconButton(
onClick = onBack,
@@ -186,17 +178,10 @@ private fun EventContent(
key = { it.id },
contentType = { "EventItem" },
) { item ->
- AnimatedContent(
- modifier = Modifier.animateItem(),
- targetState = item,
- transitionSpec = { fadeIn() togetherWith fadeOut() },
- ) { animatedItem ->
- EventItem(
- modifier = Modifier.fillMaxWidth(),
- item = animatedItem,
- onItem = onEvent,
- )
- }
+ EventItem(
+ item = item,
+ onItem = onEvent,
+ )
}
}
}
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 43263b2..74516c3 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
@@ -25,12 +25,9 @@ import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.NavigationBar
-import androidx.compose.material3.NavigationBarDefaults
import androidx.compose.material3.NavigationBarItem
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
-import androidx.compose.material3.TopAppBar
-import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Stable
import androidx.compose.runtime.State
@@ -44,6 +41,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.pixelized.headache.R
+import com.pixelized.headache.ui.common.toolbar.Toolbar
import com.pixelized.headache.ui.navigation.destination.MonthSummaryDestination
import com.pixelized.headache.ui.navigation.destination.ReportDestination
import com.pixelized.headache.ui.navigation.destination.YearSummaryDestination
@@ -167,10 +165,7 @@ private fun HomePageContent(
Scaffold(
modifier = modifier,
topBar = {
- TopAppBar(
- colors = TopAppBarDefaults.topAppBarColors(
- containerColor = NavigationBarDefaults.containerColor,
- ),
+ Toolbar(
title = {
Text(
text = stringResource(R.string.app_name),
diff --git a/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/MonthSummaryPage.kt b/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/MonthSummaryPage.kt
index 71bf1de..a89b23d 100644
--- a/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/MonthSummaryPage.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/MonthSummaryPage.kt
@@ -7,6 +7,7 @@ import androidx.compose.foundation.gestures.snapping.rememberSnapFlingBehavior
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
@@ -14,6 +15,7 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Surface
+import androidx.compose.material3.minimumInteractiveComponentSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Stable
import androidx.compose.runtime.State
@@ -93,7 +95,6 @@ private fun MonthSummaryContent(
events.value.forEach { entry ->
item {
MonthSummaryTitle(
- modifier = Modifier.padding(top = 16.dp),
item = entry.key,
)
}
diff --git a/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/item/MonthSummaryItem.kt b/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/item/MonthSummaryItem.kt
index 7ee80f1..1c1c572 100644
--- a/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/item/MonthSummaryItem.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/item/MonthSummaryItem.kt
@@ -60,6 +60,7 @@ fun MonthSummaryItem(
Column(
modifier = Modifier
.clickable { onItem(item) }
+ .fillMaxWidth()
.padding(paddingValues = padding)
.then(other = modifier),
verticalArrangement = Arrangement.spacedBy(space = spacing.height)
diff --git a/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/item/MonthSummaryTitle.kt b/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/item/MonthSummaryTitle.kt
index 6c869e9..785d78d 100644
--- a/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/item/MonthSummaryTitle.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/page/summary/monthly/item/MonthSummaryTitle.kt
@@ -22,7 +22,7 @@ data class MonthSummaryTitleUio(
object MonthSummaryTitleDefault {
@Stable
- val padding: PaddingValues = PaddingValues(horizontal = 16.dp)
+ val padding: PaddingValues = PaddingValues(start = 16.dp, top = 16.dp, end = 16.dp,)
@SuppressLint("ConstantLocale")
@Stable
diff --git a/app/src/main/java/com/pixelized/headache/ui/page/summary/report/ReportBox.kt b/app/src/main/java/com/pixelized/headache/ui/page/summary/report/ReportBox.kt
index a5bfa42..13071a7 100644
--- a/app/src/main/java/com/pixelized/headache/ui/page/summary/report/ReportBox.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/page/summary/report/ReportBox.kt
@@ -1,10 +1,12 @@
package com.pixelized.headache.ui.page.summary.report
+import android.R
import android.annotation.SuppressLint
import android.icu.text.DateFormat
import android.icu.text.SimpleDateFormat
import android.icu.util.Calendar
import androidx.compose.foundation.background
+import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
diff --git a/app/src/main/java/com/pixelized/headache/ui/theme/color/HeadacheColorPalette.kt b/app/src/main/java/com/pixelized/headache/ui/theme/color/HeadacheColorPalette.kt
index 468c5f1..9c0adc3 100644
--- a/app/src/main/java/com/pixelized/headache/ui/theme/color/HeadacheColorPalette.kt
+++ b/app/src/main/java/com/pixelized/headache/ui/theme/color/HeadacheColorPalette.kt
@@ -17,7 +17,7 @@ object HeadacheColorPalette {
@Immutable
object Calendar {
- val Headache = Additional.LightRed
+ val Headache = Additional.VeryLightRed
val Pill = Additional.DarkRed
}
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index e659fe7..bd17a92 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -7,7 +7,7 @@
L\'édition du calendrier a échouée
Choix du calendrier
- Évennement migraineux
+ Évènements migraineux
Suivi mensuel
Suivi annuel
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6a220e4..c3604ff 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -7,7 +7,7 @@
Calendar edit failed.
Choose your calendar
- Headache event
+ Headache events
Monthly follow-up
Annual follow-up
\ No newline at end of file