diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/data/calendar/CalendarColorPalette.kt b/app/src/main/java/de/jeanlucmakiola/calendula/data/calendar/CalendarColorPalette.kt new file mode 100644 index 0000000..58b9af1 --- /dev/null +++ b/app/src/main/java/de/jeanlucmakiola/calendula/data/calendar/CalendarColorPalette.kt @@ -0,0 +1,22 @@ +package de.jeanlucmakiola.calendula.data.calendar + +/** + * Google-Calendar-style palette; ARGB ints for a raw `CALENDAR_COLOR` / + * `EVENT_COLOR`. The named entries exist for callers that need one specific + * hue (the managed special-dates calendars), so they can't drift from the + * swatches offered in the colour picker. + */ +object CalendarColorPalette { + val Red = 0xFFD50000.toInt() + val Orange = 0xFFE67C00.toInt() + val Amber = 0xFFF6BF26.toInt() + val Green = 0xFF33B679.toInt() + val DarkGreen = 0xFF0B8043.toInt() + val Blue = 0xFF039BE5.toInt() + val Indigo = 0xFF3F51B5.toInt() + val Purple = 0xFF8E24AA.toInt() + val Graphite = 0xFF616161.toInt() + + /** The full palette, in swatch-row order. */ + val all: List = listOf(Red, Orange, Amber, Green, DarkGreen, Blue, Indigo, Purple, Graphite) +} diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/data/contacts/AndroidSpecialDatesCalendarSpec.kt b/app/src/main/java/de/jeanlucmakiola/calendula/data/contacts/AndroidSpecialDatesCalendarSpec.kt index cacfd54..0aef3e2 100644 --- a/app/src/main/java/de/jeanlucmakiola/calendula/data/contacts/AndroidSpecialDatesCalendarSpec.kt +++ b/app/src/main/java/de/jeanlucmakiola/calendula/data/contacts/AndroidSpecialDatesCalendarSpec.kt @@ -3,6 +3,7 @@ package de.jeanlucmakiola.calendula.data.contacts import android.content.Context import dagger.hilt.android.qualifiers.ApplicationContext import de.jeanlucmakiola.calendula.R +import de.jeanlucmakiola.calendula.data.calendar.CalendarColorPalette import de.jeanlucmakiola.calendula.domain.contacts.SpecialDateType import javax.inject.Inject import javax.inject.Singleton @@ -34,8 +35,8 @@ class AndroidSpecialDatesCalendarSpec @Inject constructor( ) override fun color(type: SpecialDateType): Int = when (type) { - SpecialDateType.Birthday -> 0xFF8E24AA.toInt() // purple - SpecialDateType.Anniversary -> 0xFFD50000.toInt() // red - SpecialDateType.Custom -> 0xFF039BE5.toInt() // blue + SpecialDateType.Birthday -> CalendarColorPalette.Purple + SpecialDateType.Anniversary -> CalendarColorPalette.Red + SpecialDateType.Custom -> CalendarColorPalette.Blue } } diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/ui/calendars/CalendarsScreen.kt b/app/src/main/java/de/jeanlucmakiola/calendula/ui/calendars/CalendarsScreen.kt index 4900a71..9d087c6 100644 --- a/app/src/main/java/de/jeanlucmakiola/calendula/ui/calendars/CalendarsScreen.kt +++ b/app/src/main/java/de/jeanlucmakiola/calendula/ui/calendars/CalendarsScreen.kt @@ -94,7 +94,7 @@ import de.jeanlucmakiola.calendula.R import de.jeanlucmakiola.calendula.data.prefs.BackupStatus import de.jeanlucmakiola.calendula.data.prefs.SettingsPrefs import de.jeanlucmakiola.calendula.domain.CalendarSource -import de.jeanlucmakiola.calendula.ui.common.CALENDAR_COLOR_PALETTE +import de.jeanlucmakiola.calendula.data.calendar.CalendarColorPalette import de.jeanlucmakiola.calendula.ui.common.CalendarColorChip import de.jeanlucmakiola.calendula.ui.common.DialogAmountField import de.jeanlucmakiola.calendula.ui.common.DialogUnitDropdown @@ -142,7 +142,7 @@ fun CalendarsScreen( sessionKey = editorSession, isNew = editorId == NEW_CALENDAR_ID, initialName = editing?.displayName.orEmpty(), - initialColor = editing?.color ?: CALENDAR_COLOR_PALETTE.first(), + initialColor = editing?.color ?: CalendarColorPalette.all.first(), initialDescription = editing?.description.orEmpty(), onSave = { name, color, description -> val id = editorId @@ -507,7 +507,7 @@ private fun CalendarEditor( ) Spacer(Modifier.height(12.dp)) ColorSwatchRow( - colors = CALENDAR_COLOR_PALETTE, + colors = CalendarColorPalette.all, selected = color, onSelect = { color = it }, dark = dark, diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/ui/common/ColorSwatchRow.kt b/app/src/main/java/de/jeanlucmakiola/calendula/ui/common/ColorSwatchRow.kt index 6fd11ec..09367db 100644 --- a/app/src/main/java/de/jeanlucmakiola/calendula/ui/common/ColorSwatchRow.kt +++ b/app/src/main/java/de/jeanlucmakiola/calendula/ui/common/ColorSwatchRow.kt @@ -67,16 +67,3 @@ fun ColorSwatchRow( } } } - -/** Google-Calendar-style palette; ARGB ints for a raw `CALENDAR_COLOR` / `EVENT_COLOR`. */ -val CALENDAR_COLOR_PALETTE: List = listOf( - 0xFFD50000, // red - 0xFFE67C00, // orange - 0xFFF6BF26, // amber - 0xFF33B679, // green - 0xFF0B8043, // dark green - 0xFF039BE5, // blue - 0xFF3F51B5, // indigo - 0xFF8E24AA, // purple - 0xFF616161, // graphite -).map { it.toInt() } diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/ui/edit/EventEditScreen.kt b/app/src/main/java/de/jeanlucmakiola/calendula/ui/edit/EventEditScreen.kt index 2fd6830..a1906f3 100644 --- a/app/src/main/java/de/jeanlucmakiola/calendula/ui/edit/EventEditScreen.kt +++ b/app/src/main/java/de/jeanlucmakiola/calendula/ui/edit/EventEditScreen.kt @@ -119,7 +119,7 @@ import de.jeanlucmakiola.calendula.domain.toRRule import de.jeanlucmakiola.calendula.ui.common.calendarCollapseExit import de.jeanlucmakiola.calendula.ui.common.calendarExpandEnter import de.jeanlucmakiola.calendula.ui.common.predictiveBack -import de.jeanlucmakiola.calendula.ui.common.CALENDAR_COLOR_PALETTE +import de.jeanlucmakiola.calendula.data.calendar.CalendarColorPalette import de.jeanlucmakiola.calendula.ui.common.CalendarDatePickerDialog import de.jeanlucmakiola.calendula.ui.common.ColorSwatchRow import de.jeanlucmakiola.calendula.ui.common.DialogAmountField @@ -1745,7 +1745,7 @@ private fun ColorPickerDialog( ) } else { ColorSwatchRow( - colors = CALENDAR_COLOR_PALETTE, + colors = CalendarColorPalette.all, selected = selected, onSelect = onPickRaw, dark = dark,