From e0ddab80bf609814d2176e37cfb86ea963aa2429 Mon Sep 17 00:00:00 2001 From: Tomasz Swistak Date: Fri, 15 Mar 2024 18:52:18 +0100 Subject: [PATCH 01/14] generate all holidays in utc --- .github/workflows/holiday-generator/main.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/holiday-generator/main.js b/.github/workflows/holiday-generator/main.js index 26b77b95c..1de710ea3 100644 --- a/.github/workflows/holiday-generator/main.js +++ b/.github/workflows/holiday-generator/main.js @@ -28,6 +28,7 @@ function log(toLog) { */ function getEvents(countryCode) { const generator = new Holidays(countryCode); + generator.setTimezone("UTC"); const events = []; for (let i = START_YEAR; i <= END_YEAR; i++) { events.push(...generator.getHolidays(i).filter((x) => TYPE_WHITELIST.includes(x.type))); @@ -54,7 +55,7 @@ function generateUid(countryCode, date, rule) { * @returns */ function getDateArray(date) { - return [date.getFullYear(), date.getMonth() + 1, date.getDate()]; + return [date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate()]; } /** @@ -79,9 +80,9 @@ async function generateIcal(events, countryCode) { if (isFixedDate(x.rule)) { const uid = generateUid(countryCode, "", x.rule); if (!eventsMap.has(uid)) { - const yearDiff = x.end.getFullYear() - x.start.getFullYear(); - x.start.setFullYear(FIXED_DATE_START_YEAR); - x.end.setFullYear(FIXED_DATE_START_YEAR + yearDiff); + const yearDiff = x.end.getUTCFullYear() - x.start.getUTCFullYear(); + x.start.setUTCFullYear(FIXED_DATE_START_YEAR); + x.end.setUTCFullYear(FIXED_DATE_START_YEAR + yearDiff); eventsMap.set(uid, { title: x.name, uid, From 6964c2df39d6ebfc7df7e7612cd23fb53962bc63 Mon Sep 17 00:00:00 2001 From: Tim Oberle Date: Sat, 23 Mar 2024 11:51:50 +0100 Subject: [PATCH 02/14] Minimize code changes long press for new entry --- .../calendar/views/MonthViewWrapper.kt | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/views/MonthViewWrapper.kt b/app/src/main/kotlin/org/fossify/calendar/views/MonthViewWrapper.kt index 321512421..82f8b7060 100644 --- a/app/src/main/kotlin/org/fossify/calendar/views/MonthViewWrapper.kt +++ b/app/src/main/kotlin/org/fossify/calendar/views/MonthViewWrapper.kt @@ -4,14 +4,18 @@ import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.widget.FrameLayout +import org.fossify.calendar.R import org.fossify.calendar.databinding.MonthViewBackgroundBinding import org.fossify.calendar.databinding.MonthViewBinding import org.fossify.calendar.extensions.config -import org.fossify.calendar.helpers.COLUMN_COUNT -import org.fossify.calendar.helpers.Formatter -import org.fossify.calendar.helpers.ROW_COUNT +import org.fossify.calendar.extensions.launchNewEventIntent +import org.fossify.calendar.extensions.launchNewTaskIntent +import org.fossify.calendar.helpers.* import org.fossify.calendar.models.DayMonthly +import org.fossify.commons.compose.extensions.getActivity +import org.fossify.commons.dialogs.RadioGroupDialog import org.fossify.commons.extensions.onGlobalLayout +import org.fossify.commons.models.RadioItem // used in the Monthly view fragment, 1 view per screen class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : FrameLayout(context, attrs, defStyle) { @@ -138,6 +142,27 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F } } + setOnLongClickListener{ + if (context.config.allowCreatingTasks) { + val items = arrayListOf( + RadioItem(TYPE_EVENT, context.getString(R.string.event)), + RadioItem(TYPE_TASK, context.getString(R.string.task)) + ) + + RadioGroupDialog(context.getActivity(), items) { + if (it == TYPE_EVENT) { + context.launchNewEventIntent(day.code) + } else { + context.launchNewTaskIntent(day.code) + } + } + } + else{ + context.launchNewEventIntent(day.code) + } + true + } + addView(this) } } From c1cf6a3225c08c8e048e9d9f248bb1d2bbc28fe6 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Wed, 3 Apr 2024 21:20:03 +0200 Subject: [PATCH 03/14] Fixed dimming incomplete past tasks in widgets (#203) --- .../org/fossify/calendar/adapters/EventListWidgetAdapter.kt | 2 +- .../org/fossify/calendar/helpers/MyWidgetMonthlyProvider.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/adapters/EventListWidgetAdapter.kt b/app/src/main/kotlin/org/fossify/calendar/adapters/EventListWidgetAdapter.kt index b0a5334c3..f89ea7abb 100644 --- a/app/src/main/kotlin/org/fossify/calendar/adapters/EventListWidgetAdapter.kt +++ b/app/src/main/kotlin/org/fossify/calendar/adapters/EventListWidgetAdapter.kt @@ -98,7 +98,7 @@ class EventListWidgetAdapter(val context: Context, val intent: Intent) : RemoteV setText(R.id.event_item_time, "$timeText\n$descriptionText") } - if (item.isTask && item.isTaskCompleted && dimCompletedTasks || dimPastEvents && item.isPastEvent) { + if (item.isTask && item.isTaskCompleted && dimCompletedTasks || dimPastEvents && item.isPastEvent && !item.isTask) { curTextColor = weakTextColor } diff --git a/app/src/main/kotlin/org/fossify/calendar/helpers/MyWidgetMonthlyProvider.kt b/app/src/main/kotlin/org/fossify/calendar/helpers/MyWidgetMonthlyProvider.kt index 61bbabcb9..33e26a381 100644 --- a/app/src/main/kotlin/org/fossify/calendar/helpers/MyWidgetMonthlyProvider.kt +++ b/app/src/main/kotlin/org/fossify/calendar/helpers/MyWidgetMonthlyProvider.kt @@ -140,7 +140,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() { val backgroundColor = it.color var eventTextColor = backgroundColor.getContrastColor() - if (it.isTask() && it.isTaskCompleted() && dimCompletedTasks || !day.isThisMonth || (dimPastEvents && it.isPastEvent)) { + if (it.isTask() && it.isTaskCompleted() && dimCompletedTasks || !day.isThisMonth || (dimPastEvents && it.isPastEvent && !it.isTask())) { eventTextColor = eventTextColor.adjustAlpha(MEDIUM_ALPHA) } From 486414611a7b46c4b18cca245cebfbe36f9c394e Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Sat, 18 May 2024 08:48:32 +0200 Subject: [PATCH 04/14] Move tasks while deleting event type (#229) --- .../calendar/adapters/ManageEventTypesAdapter.kt | 2 +- .../org/fossify/calendar/helpers/EventsHelper.kt | 12 ++++++------ .../org/fossify/calendar/interfaces/EventsDao.kt | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/adapters/ManageEventTypesAdapter.kt b/app/src/main/kotlin/org/fossify/calendar/adapters/ManageEventTypesAdapter.kt index 73f47df2e..63032913f 100644 --- a/app/src/main/kotlin/org/fossify/calendar/adapters/ManageEventTypesAdapter.kt +++ b/app/src/main/kotlin/org/fossify/calendar/adapters/ManageEventTypesAdapter.kt @@ -138,7 +138,7 @@ class ManageEventTypesAdapter( private fun askConfirmDelete() { val eventTypes = eventTypes.filter { selectedKeys.contains(it.id?.toInt()) }.map { it.id } as ArrayList - activity.eventsHelper.doEventTypesContainEvents(eventTypes) { + activity.eventsHelper.doEventTypesContainEventsOrTasks(eventTypes) { activity.runOnUiThread { if (it) { val res = activity.resources diff --git a/app/src/main/kotlin/org/fossify/calendar/helpers/EventsHelper.kt b/app/src/main/kotlin/org/fossify/calendar/helpers/EventsHelper.kt index 83dc45851..d7faba95d 100644 --- a/app/src/main/kotlin/org/fossify/calendar/helpers/EventsHelper.kt +++ b/app/src/main/kotlin/org/fossify/calendar/helpers/EventsHelper.kt @@ -97,9 +97,9 @@ class EventsHelper(val context: Context) { for (eventTypeId in deleteIds) { if (deleteEvents) { - deleteEventsWithType(eventTypeId!!) + deleteEventsAndTasksWithType(eventTypeId!!) } else { - eventsDB.resetEventsWithType(eventTypeId!!) + eventsDB.resetEventsAndTasksWithType(eventTypeId!!) } } @@ -291,8 +291,8 @@ class EventsHelper(val context: Context) { } } - private fun deleteEventsWithType(eventTypeId: Long) { - val eventIds = eventsDB.getEventIdsByEventType(eventTypeId).toMutableList() + private fun deleteEventsAndTasksWithType(eventTypeId: Long) { + val eventIds = eventsDB.getEventAndTasksIdsByEventType(eventTypeId).toMutableList() deleteEvents(eventIds, true) } @@ -317,9 +317,9 @@ class EventsHelper(val context: Context) { } } - fun doEventTypesContainEvents(eventTypeIds: ArrayList, callback: (contain: Boolean) -> Unit) { + fun doEventTypesContainEventsOrTasks(eventTypeIds: ArrayList, callback: (contain: Boolean) -> Unit) { ensureBackgroundThread { - val eventIds = eventsDB.getEventIdsByEventType(eventTypeIds) + val eventIds = eventsDB.getEventAndTasksIdsByEventType(eventTypeIds) callback(eventIds.isNotEmpty()) } } diff --git a/app/src/main/kotlin/org/fossify/calendar/interfaces/EventsDao.kt b/app/src/main/kotlin/org/fossify/calendar/interfaces/EventsDao.kt index b99b12c74..a0c17d1c2 100644 --- a/app/src/main/kotlin/org/fossify/calendar/interfaces/EventsDao.kt +++ b/app/src/main/kotlin/org/fossify/calendar/interfaces/EventsDao.kt @@ -97,11 +97,11 @@ interface EventsDao { @Query("SELECT id FROM events WHERE import_id LIKE :importId AND type = $TYPE_EVENT") fun getEventIdWithLastImportId(importId: String): Long? - @Query("SELECT id FROM events WHERE event_type = :eventTypeId AND type = $TYPE_EVENT") - fun getEventIdsByEventType(eventTypeId: Long): List + @Query("SELECT id FROM events WHERE event_type = :eventTypeId") + fun getEventAndTasksIdsByEventType(eventTypeId: Long): List - @Query("SELECT id FROM events WHERE event_type IN (:eventTypeIds) AND type = $TYPE_EVENT") - fun getEventIdsByEventType(eventTypeIds: List): List + @Query("SELECT id FROM events WHERE event_type IN (:eventTypeIds)") + fun getEventAndTasksIdsByEventType(eventTypeIds: List): List @Query("SELECT id FROM events WHERE parent_id IN (:parentIds)") fun getEventIdsWithParentIds(parentIds: List): List @@ -109,8 +109,8 @@ interface EventsDao { @Query("SELECT id FROM events WHERE source = :source AND import_id != \"\" AND type = $TYPE_EVENT") fun getCalDAVCalendarEvents(source: String): List - @Query("UPDATE events SET event_type = $REGULAR_EVENT_TYPE_ID WHERE event_type = :eventTypeId AND type = $TYPE_EVENT") - fun resetEventsWithType(eventTypeId: Long) + @Query("UPDATE events SET event_type = $REGULAR_EVENT_TYPE_ID WHERE event_type = :eventTypeId") + fun resetEventsAndTasksWithType(eventTypeId: Long) @Query("UPDATE events SET import_id = :importId, source = :source WHERE id = :id AND type = $TYPE_EVENT") fun updateEventImportIdAndSource(importId: String, source: String, id: Long) From d5a2fb111339978f1d22e873d70d64b84f0d4476 Mon Sep 17 00:00:00 2001 From: holdthemayo <48473981+anfourny@users.noreply.github.com> Date: Tue, 11 Jun 2024 13:38:28 +0200 Subject: [PATCH 05/14] Update belgium.ics Created new holidays for the four coming years in Belgium. Recurring holidays are at the top of the document and variable date holidays are at the bottom, both in ascending order. Also, changed the holiday names to English instead of Flemish. We have three national languages (French, Flemish and German), and writing holidays in all three would be too long and not very useful. For that reason, English is often used as the "neutral" language between us. (This is my first time editing, apologies if I have missed anything.) --- app/src/main/assets/belgium.ics | 555 +++++++++----------------------- 1 file changed, 144 insertions(+), 411 deletions(-) diff --git a/app/src/main/assets/belgium.ics b/app/src/main/assets/belgium.ics index d89de89f5..1d182bd76 100644 --- a/app/src/main/assets/belgium.ics +++ b/app/src/main/assets/belgium.ics @@ -2,584 +2,317 @@ BEGIN:VCALENDAR BEGIN:VEVENT STATUS:CONFIRMED UID:bel_1 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20110602 -DTEND;VALUE=DATE:20110603 +SUMMARY:New Year +RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=1 +DTSTART;VALUE=DATE:20250101 +DTEND;VALUE=DATE:20250102 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_2 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20110424 -DTEND;VALUE=DATE:20110425 +SUMMARY:Epiphany +RRULE:FREQ=YEARLY;BYMONTHDAY=6;BYMONTH=1 +DTSTART;VALUE=DATE:20250106 +DTEND;VALUE=DATE:20250107 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_3 -SUMMARY:2de Paasdag -DTSTART;VALUE=DATE:20110425 -DTEND;VALUE=DATE:20110426 +SUMMARY:Valentine's Day +RRULE:FREQ=YEARLY;BYMONTHDAY=14;BYMONTH=2 +DTSTART;VALUE=DATE:20250214 +DTEND;VALUE=DATE:20250215 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_4 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20120408 -DTEND;VALUE=DATE:20120409 +SUMMARY:Labor Day +RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=5 +DTSTART;VALUE=DATE:20250501 +DTEND;VALUE=DATE:20250502 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_5 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20120409 -DTEND;VALUE=DATE:20120410 +SUMMARY:Iris Day (Brussels) +RRULE:FREQ=YEARLY;BYMONTHDAY=8;BYMONTH=5 +DTSTART;VALUE=DATE:20250508 +DTEND;VALUE=DATE:20250509 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_6 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20130331 -DTEND;VALUE=DATE:20130401 +SUMMARY:Day of the Flemish Community +RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=7 +DTSTART;VALUE=DATE:20240711 +DTEND;VALUE=DATE:20240712 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_7 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20130401 -DTEND;VALUE=DATE:20130402 +SUMMARY:Belgian National Day +RRULE:FREQ=YEARLY;BYMONTHDAY=21;BYMONTH=7 +DTSTART;VALUE=DATE:20240721 +DTEND;VALUE=DATE:20240722 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_8 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20140420 -DTEND;VALUE=DATE:20140421 +SUMMARY:Assumption of Mary +RRULE:FREQ=YEARLY;BYMONTHDAY=15;BYMONTH=8 +DTSTART;VALUE=DATE:20240815 +DTEND;VALUE=DATE:20240816 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_9 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20140421 -DTEND;VALUE=DATE:20140422 +SUMMARY:Day of the French Community +RRULE:FREQ=YEARLY;BYMONTHDAY=27;BYMONTH=9 +DTSTART;VALUE=DATE:20240927 +DTEND;VALUE=DATE:20240928 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_10 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20140529 -DTEND;VALUE=DATE:20140530 +SUMMARY:Halloween +RRULE:FREQ=YEARLY;BYMONTHDAY=31;BYMONTH=10 +DTSTART;VALUE=DATE:20241031 +DTEND;VALUE=DATE:20241101 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_11 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20140608 -DTEND;VALUE=DATE:20140609 +SUMMARY:All Saints' Day +RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=11 +DTSTART;VALUE=DATE:20241101 +DTEND;VALUE=DATE:20241102 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_12 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20140609 -DTEND;VALUE=DATE:20140610 +SUMMARY:Armistice Day +RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=11 +DTSTART;VALUE=DATE:20241111 +DTEND;VALUE=DATE:20241112 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_13 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20130519 -DTEND;VALUE=DATE:20130520 +SUMMARY:Day of the German-speaking Community +RRULE:FREQ=YEARLY;BYMONTHDAY=15;BYMONTH=11 +DTSTART;VALUE=DATE:20241115 +DTEND;VALUE=DATE:20241116 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_14 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20130520 -DTEND;VALUE=DATE:20130521 +SUMMARY:Saint Nicholas +RRULE:FREQ=YEARLY;BYMONTHDAY=6;BYMONTH=12 +DTSTART;VALUE=DATE:20241206 +DTEND;VALUE=DATE:20241207 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_15 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20120527 -DTEND;VALUE=DATE:20120528 +SUMMARY:Christmas +RRULE:FREQ=YEARLY;BYMONTHDAY=25;BYMONTH=12 +DTSTART;VALUE=DATE:20241225 +DTEND;VALUE=DATE:20241226 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_16 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20120528 -DTEND;VALUE=DATE:20120529 +SUMMARY:Easter Sunday +DTSTART;VALUE=DATE:20250420 +DTEND;VALUE=DATE:20250421 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_17 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20110612 -DTEND;VALUE=DATE:20110613 +SUMMARY:Easter Sunday +DTSTART;VALUE=DATE:20260405 +DTEND;VALUE=DATE:20260406 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_18 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20110613 -DTEND;VALUE=DATE:20110614 +SUMMARY:Easter Sunday +DTSTART;VALUE=DATE:20270328 +DTEND;VALUE=DATE:20270329 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_19 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20150405 -DTEND;VALUE=DATE:20150406 +SUMMARY:Easter Sunday +DTSTART;VALUE=DATE:20280416 +DTEND;VALUE=DATE:20280417 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_20 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20150406 -DTEND;VALUE=DATE:20150407 +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20250421 +DTEND;VALUE=DATE:20250422 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_21 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20150514 -DTEND;VALUE=DATE:20150515 +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20260406 +DTEND;VALUE=DATE:20260407 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_22 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20150524 -DTEND;VALUE=DATE:20150525 +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20270329 +DTEND;VALUE=DATE:20270330 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_23 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20150525 -DTEND;VALUE=DATE:20150526 +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20280417 +DTEND;VALUE=DATE:20280418 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_24 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20160327 -DTEND;VALUE=DATE:20160328 +SUMMARY:Mother's Day +DTSTART;VALUE=DATE:20250511 +DTEND;VALUE=DATE:20250512 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_25 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20160328 -DTEND;VALUE=DATE:20160329 +SUMMARY:Mother's Day +DTSTART;VALUE=DATE:20260510 +DTEND;VALUE=DATE:20260511 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_26 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20160515 -DTEND;VALUE=DATE:20160516 +SUMMARY:Mother's Day +DTSTART;VALUE=DATE:20270509 +DTEND;VALUE=DATE:20270510 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_27 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20160516 -DTEND;VALUE=DATE:20160517 +SUMMARY:Mother's Day +DTSTART;VALUE=DATE:20280514 +DTEND;VALUE=DATE:20280515 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_28 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20160505 -DTEND;VALUE=DATE:20160506 +SUMMARY:Ascension +DTSTART;VALUE=DATE:20250529 +DTEND;VALUE=DATE:20250530 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_29 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20170416 -DTEND;VALUE=DATE:20170417 +SUMMARY:Ascension +DTSTART;VALUE=DATE:20260514 +DTEND;VALUE=DATE:20260515 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_30 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20170417 -DTEND;VALUE=DATE:20170418 +SUMMARY:Ascension +DTSTART;VALUE=DATE:20270506 +DTEND;VALUE=DATE:20270507 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_31 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20170525 -DTEND;VALUE=DATE:20170526 +SUMMARY:Ascension +DTSTART;VALUE=DATE:20280514 +DTEND;VALUE=DATE:20280515 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_32 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20170604 -DTEND;VALUE=DATE:20170605 +SUMMARY:Father's Day +DTSTART;VALUE=DATE:20250608 +DTEND;VALUE=DATE:20250609 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_33 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20170605 -DTEND;VALUE=DATE:20170606 +SUMMARY:Father's Day +DTSTART;VALUE=DATE:20260614 +DTEND;VALUE=DATE:20260615 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_34 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20180401 -DTEND;VALUE=DATE:20180402 +SUMMARY:Father's Day +DTSTART;VALUE=DATE:20270613 +DTEND;VALUE=DATE:20270614 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_35 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20180402 -DTEND;VALUE=DATE:20180403 +SUMMARY:Father's Day +DTSTART;VALUE=DATE:20280611 +DTEND;VALUE=DATE:20280612 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_36 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20180510 -DTEND;VALUE=DATE:20180511 +SUMMARY:Whit Sunday +DTSTART;VALUE=DATE:20250608 +DTEND;VALUE=DATE:20250609 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_37 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20180520 -DTEND;VALUE=DATE:20180521 +SUMMARY:Whit Sunday +DTSTART;VALUE=DATE:20260524 +DTEND;VALUE=DATE:20260525 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_38 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20180521 -DTEND;VALUE=DATE:20180522 +SUMMARY:Whit Sunday +DTSTART;VALUE=DATE:20270516 +DTEND;VALUE=DATE:20270517 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_39 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20190523 -DTEND;VALUE=DATE:20190524 +SUMMARY:Whit Sunday +DTSTART;VALUE=DATE:20280604 +DTEND;VALUE=DATE:20280605 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_40 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20190602 -DTEND;VALUE=DATE:20190603 +SUMMARY:Whit Monday +DTSTART;VALUE=DATE:20250609 +DTEND;VALUE=DATE:20250610 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_41 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20190603 -DTEND;VALUE=DATE:20190604 +SUMMARY:Whit Monday +DTSTART;VALUE=DATE:20260425 +DTEND;VALUE=DATE:20260426 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_42 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20200412 -DTEND;VALUE=DATE:20200413 +SUMMARY:Whit Monday +DTSTART;VALUE=DATE:20270517 +DTEND;VALUE=DATE:20270518 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_43 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20200413 -DTEND;VALUE=DATE:20200414 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_44 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20190421 -DTEND;VALUE=DATE:20190422 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_45 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20190422 -DTEND;VALUE=DATE:20190423 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_46 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20210404 -DTEND;VALUE=DATE:20210405 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_47 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20210405 -DTEND;VALUE=DATE:20210406 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_48 -SUMMARY:PASEN -DTSTART;VALUE=DATE:20220417 -DTEND;VALUE=DATE:20220418 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_49 -SUMMARY:2de PAASDAG -DTSTART;VALUE=DATE:20220418 -DTEND;VALUE=DATE:20220419 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_50 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20220526 -DTEND;VALUE=DATE:20220527 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_51 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20220605 -DTEND;VALUE=DATE:20220606 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_52 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20220606 -DTEND;VALUE=DATE:20220607 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_53 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20210513 -DTEND;VALUE=DATE:20210514 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_54 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20210523 -DTEND;VALUE=DATE:20210524 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_55 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20210524 -DTEND;VALUE=DATE:20210525 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_56 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20200521 -DTEND;VALUE=DATE:20200522 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_57 -SUMMARY:PINKSTEREN -DTSTART;VALUE=DATE:20200531 -DTEND;VALUE=DATE:20200601 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_58 -SUMMARY:2de PINKSTERENDAG -DTSTART;VALUE=DATE:20200601 -DTEND;VALUE=DATE:20200602 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_59 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20110309 -DTEND;VALUE=DATE:20110310 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_60 -SUMMARY:Aswoensdag -DTSTART:20120222T090000 -DTEND:20120222T110000 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_61 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20140305 -DTEND;VALUE=DATE:20140306 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_62 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20150211 -DTEND;VALUE=DATE:20150212 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_63 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20160210 -DTEND;VALUE=DATE:20160211 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_64 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20180214 -DTEND;VALUE=DATE:20180215 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_65 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20130213 -DTEND;VALUE=DATE:20130214 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_66 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20190306 -DTEND;VALUE=DATE:20190307 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_67 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20200226 -DTEND;VALUE=DATE:20200227 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_68 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20170301 -DTEND;VALUE=DATE:20170302 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_69 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20210217 -DTEND;VALUE=DATE:20210218 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_70 -SUMMARY:Aswoensdag -DTSTART;VALUE=DATE:20220302 -DTEND;VALUE=DATE:20220303 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_71 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20120517 -DTEND;VALUE=DATE:20120518 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_72 -SUMMARY:HEMELVAART -DTSTART;VALUE=DATE:20130509 -DTEND;VALUE=DATE:20130510 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_73 -SUMMARY:Valentijn -DTSTART;VALUE=DATE:20190314 -DTEND;VALUE=DATE:20190315 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_74 -SUMMARY:NIEUWJAAR -RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=1 -DTSTART;VALUE=DATE:20110101 -DTEND;VALUE=DATE:20110102 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_75 -SUMMARY:NATIONALE FEESTDAG -RRULE:FREQ=YEARLY;BYMONTHDAY=21;BYMONTH=7 -DTSTART;VALUE=DATE:20110721 -DTEND;VALUE=DATE:20110722 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_76 -SUMMARY:ONZE LIEVE VROUW HEMELVAART -RRULE:FREQ=YEARLY;BYMONTHDAY=15;BYMONTH=8 -DTSTART;VALUE=DATE:20110815 -DTEND;VALUE=DATE:20110816 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_77 -SUMMARY:ALLERHEILIGEN -RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=11 -DTSTART;VALUE=DATE:20111101 -DTEND;VALUE=DATE:20111102 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_78 -SUMMARY:WAPENSTILSTAND -RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=11 -DTSTART;VALUE=DATE:20111111 -DTEND;VALUE=DATE:20111112 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_79 -SUMMARY:KERSTMIS -RRULE:FREQ=YEARLY;BYMONTHDAY=25;BYMONTH=12 -DTSTART;VALUE=DATE:20111225 -DTEND;VALUE=DATE:20111226 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_80 -SUMMARY:Vlaamse feestdag -RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=7 -DTSTART;VALUE=DATE:20110711 -DTEND;VALUE=DATE:20110712 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_81 -SUMMARY:Valentijn -RRULE:FREQ=YEARLY;BYMONTHDAY=14;BYMONTH=2 -DTSTART;VALUE=DATE:20120214 -DTEND;VALUE=DATE:20120215 -END:VEVENT -BEGIN:VEVENT -STATUS:CONFIRMED -UID:bel_82 -SUMMARY:FEEST VAN DE ARBEID -RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=5 -DTSTART;VALUE=DATE:20110501 -DTEND;VALUE=DATE:20110502 +SUMMARY:Whit Monday +DTSTART;VALUE=DATE:20280605 +DTEND;VALUE=DATE:20280606 END:VEVENT END:VCALENDAR From c401d8aa962c43ab098cfa4203428801277e49bc Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Thu, 18 Jul 2024 08:12:25 +0200 Subject: [PATCH 06/14] Fixed date widget responsiveness (#275) --- app/src/main/res/layout/widget_date.xml | 76 +++++++++++++++---------- 1 file changed, 46 insertions(+), 30 deletions(-) diff --git a/app/src/main/res/layout/widget_date.xml b/app/src/main/res/layout/widget_date.xml index 89f4f8bee..c2e343ab6 100644 --- a/app/src/main/res/layout/widget_date.xml +++ b/app/src/main/res/layout/widget_date.xml @@ -9,40 +9,56 @@ android:id="@+id/widget_date_background" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignStart="@+id/widget_date" - android:layout_alignTop="@+id/widget_date" - android:layout_alignEnd="@+id/widget_date" - android:layout_alignBottom="@+id/widget_month" + android:layout_alignParentStart="true" + android:layout_alignParentTop="true" + android:layout_alignParentEnd="true" + android:layout_alignParentBottom="true" android:src="@drawable/widget_round_background" tools:ignore="ContentDescription" /> - + android:layout_height="match_parent" + android:orientation="vertical" + android:paddingLeft="@dimen/small_margin" + android:paddingRight="@dimen/small_margin" + android:paddingBottom="@dimen/small_margin"> - + + + + From 16f4ccd9b3118b23f723fb501b9985930adeb205 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Sat, 27 Jul 2024 09:33:42 +0200 Subject: [PATCH 07/14] Fixed opening task from widget (#286) --- .../kotlin/org/fossify/calendar/activities/MainActivity.kt | 5 ++++- .../kotlin/org/fossify/calendar/activities/SplashActivity.kt | 1 + .../org/fossify/calendar/adapters/EventListWidgetAdapter.kt | 1 + .../main/kotlin/org/fossify/calendar/helpers/Constants.kt | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt index bfd5b87e6..24c503a7b 100644 --- a/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt @@ -415,11 +415,14 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { val eventIdToOpen = intent.getLongExtra(EVENT_ID, 0L) val eventOccurrenceToOpen = intent.getLongExtra(EVENT_OCCURRENCE_TS, 0L) + val isTask = intent.getBooleanExtra(IS_TASK, false) intent.removeExtra(EVENT_ID) intent.removeExtra(EVENT_OCCURRENCE_TS) + intent.removeExtra(IS_TASK) if (eventIdToOpen != 0L && eventOccurrenceToOpen != 0L) { hideKeyboard() - Intent(this, EventActivity::class.java).apply { + val activityToOpen = if (isTask) TaskActivity::class.java else EventActivity::class.java + Intent(this, activityToOpen).apply { putExtra(EVENT_ID, eventIdToOpen) putExtra(EVENT_OCCURRENCE_TS, eventOccurrenceToOpen) startActivity(this) diff --git a/app/src/main/kotlin/org/fossify/calendar/activities/SplashActivity.kt b/app/src/main/kotlin/org/fossify/calendar/activities/SplashActivity.kt index 2721e85b6..305e67a45 100644 --- a/app/src/main/kotlin/org/fossify/calendar/activities/SplashActivity.kt +++ b/app/src/main/kotlin/org/fossify/calendar/activities/SplashActivity.kt @@ -18,6 +18,7 @@ class SplashActivity : BaseSplashActivity() { intent.extras?.containsKey(EVENT_ID) == true -> Intent(this, MainActivity::class.java).apply { putExtra(EVENT_ID, intent.getLongExtra(EVENT_ID, 0L)) putExtra(EVENT_OCCURRENCE_TS, intent.getLongExtra(EVENT_OCCURRENCE_TS, 0L)) + putExtra(IS_TASK, intent.getBooleanExtra(IS_TASK, false)) startActivity(this) } diff --git a/app/src/main/kotlin/org/fossify/calendar/adapters/EventListWidgetAdapter.kt b/app/src/main/kotlin/org/fossify/calendar/adapters/EventListWidgetAdapter.kt index b0a5334c3..8810148cd 100644 --- a/app/src/main/kotlin/org/fossify/calendar/adapters/EventListWidgetAdapter.kt +++ b/app/src/main/kotlin/org/fossify/calendar/adapters/EventListWidgetAdapter.kt @@ -126,6 +126,7 @@ class EventListWidgetAdapter(val context: Context, val intent: Intent) : RemoteV Intent().apply { putExtra(EVENT_ID, item.id) putExtra(EVENT_OCCURRENCE_TS, item.startTS) + putExtra(IS_TASK, item.isTask) setOnClickFillInIntent(R.id.event_item_holder, this) } } diff --git a/app/src/main/kotlin/org/fossify/calendar/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/calendar/helpers/Constants.kt index b6d9b24f8..76434d0a5 100644 --- a/app/src/main/kotlin/org/fossify/calendar/helpers/Constants.kt +++ b/app/src/main/kotlin/org/fossify/calendar/helpers/Constants.kt @@ -40,6 +40,7 @@ const val SHORTCUT_NEW_TASK = "shortcut_new_task" const val REGULAR_EVENT_TYPE_ID = 1L const val TIME_ZONE = "time_zone" const val CURRENT_TIME_ZONE = "current_time_zone" +const val IS_TASK = "is_task" const val MONTHLY_VIEW = 1 const val YEARLY_VIEW = 2 From 903bc207ed98f06cfb8bcccfb400f5c482598842 Mon Sep 17 00:00:00 2001 From: nofish Date: Mon, 26 Aug 2024 01:18:19 +0200 Subject: [PATCH 08/14] Fix Kazakhstan (Asia/Almaty) GMT offset (#303) --- app/src/main/kotlin/org/fossify/calendar/helpers/MyTimeZones.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/helpers/MyTimeZones.kt b/app/src/main/kotlin/org/fossify/calendar/helpers/MyTimeZones.kt index f2a569f5f..e5c0fd315 100644 --- a/app/src/main/kotlin/org/fossify/calendar/helpers/MyTimeZones.kt +++ b/app/src/main/kotlin/org/fossify/calendar/helpers/MyTimeZones.kt @@ -367,7 +367,7 @@ fun getAllTimeZones() = arrayListOf( MyTimeZone("GMT+5:30", "Asia/Kolkata"), MyTimeZone("GMT+5:45", "Asia/Kathmandu"), MyTimeZone("GMT+6", "Antarctica/Vostok"), - MyTimeZone("GMT+6", "Asia/Almaty"), + MyTimeZone("GMT+5", "Asia/Almaty"), MyTimeZone("GMT+6", "Asia/Bishkek"), MyTimeZone("GMT+6", "Asia/Dhaka"), MyTimeZone("GMT+6", "Asia/Omsk"), From d10a484afbd95ecb65c2142fb5e7dddc22059e92 Mon Sep 17 00:00:00 2001 From: Jonas Date: Mon, 16 Sep 2024 00:44:09 +0200 Subject: [PATCH 09/14] Use `isAllDay` instead of `isSingleDayAllDayEvent` to decide top bar placement This should fix #82. In my opinion, it makes much more sense to show multi-day all-day events always in the top bar (like single-day all-day events), independent of this config setting. --- .../main/kotlin/org/fossify/calendar/fragments/WeekFragment.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/fragments/WeekFragment.kt b/app/src/main/kotlin/org/fossify/calendar/fragments/WeekFragment.kt index 53bcb4424..5335107ff 100644 --- a/app/src/main/kotlin/org/fossify/calendar/fragments/WeekFragment.kt +++ b/app/src/main/kotlin/org/fossify/calendar/fragments/WeekFragment.kt @@ -752,8 +752,7 @@ class WeekFragment : Fragment(), WeeklyCalendar { private fun shouldAddEventOnTopBar(isAllDay: Boolean, startDayCode: String, endDayCode: String): Boolean { val spansMultipleDays = startDayCode != endDayCode - val isSingleDayAllDayEvent = isAllDay && !spansMultipleDays - return isSingleDayAllDayEvent || (spansMultipleDays && config.showMidnightSpanningEventsAtTop) + return isAllDay || (spansMultipleDays && config.showMidnightSpanningEventsAtTop) } @SuppressLint("NewApi") From 2d0c378f915cfe3e33ee5587e22f11459286fa0a Mon Sep 17 00:00:00 2001 From: Ming Di Leom <43627182+curbengh@users.noreply.github.com> Date: Sat, 12 Oct 2024 11:30:33 +0000 Subject: [PATCH 10/14] feat(ics): bangladesh public holidays https://publicholidays.com.bd/2025-dates/ closes #304 --- app/src/main/assets/bangladesh.ics | 128 +++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 app/src/main/assets/bangladesh.ics diff --git a/app/src/main/assets/bangladesh.ics b/app/src/main/assets/bangladesh.ics new file mode 100644 index 000000000..857dc9d6f --- /dev/null +++ b/app/src/main/assets/bangladesh.ics @@ -0,0 +1,128 @@ +BEGIN:VCALENDAR +BEGIN:VEVENT +UID:bgd_1 +DTSTART;VALUE=DATE:20250221 +DTEND;VALUE=DATE:20250222 +RRULE:FREQ=YEARLY;INTERVAL=1 +SUMMARY:শহীদ দিবস +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_2 +DTSTART;VALUE=DATE:20250317 +DTEND;VALUE=DATE:20250318 +RRULE:FREQ=YEARLY;INTERVAL=1 +SUMMARY:শেখ মুজিবুর রহমানের জন্মদিন +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_3 +DTSTART;VALUE=DATE:20250326 +DTEND;VALUE=DATE:20250327 +RRULE:FREQ=YEARLY;INTERVAL=1 +SUMMARY:স্বাধীনতা দিবস +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_4 +DTSTART;VALUE=DATE:20250414 +DTEND;VALUE=DATE:20250415 +RRULE:FREQ=YEARLY;INTERVAL=1 +SUMMARY:পহেলা বৈশাখ +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_5 +DTSTART;VALUE=DATE:20250501 +DTEND;VALUE=DATE:20250502 +RRULE:FREQ=YEARLY;INTERVAL=1 +SUMMARY:মে দিবস +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_6 +DTSTART;VALUE=DATE:20241216 +DTEND;VALUE=DATE:20241217 +RRULE:FREQ=YEARLY;INTERVAL=1 +SUMMARY:বিজয় দিবস +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_7 +DTSTART;VALUE=DATE:20241225 +DTEND;VALUE=DATE:20241226 +RRULE:FREQ=YEARLY;INTERVAL=1 +SUMMARY:বড়দিন +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_8 +DTSTART;VALUE=DATE:20250214 +DTEND;VALUE=DATE:20250215 +SUMMARY:শবে বরাত +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_9 +DTSTART;VALUE=DATE:20250327 +DTEND;VALUE=DATE:20250328 +SUMMARY:শবে কদর +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_10 +DTSTART;VALUE=DATE:20250328 +DTEND;VALUE=DATE:20250329 +SUMMARY:জুমাতুল বিদা +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_11 +DTSTART;VALUE=DATE:20250331 +DTEND;VALUE=DATE:20250403 +SUMMARY:ঈদুল ফিতর +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_12 +DTSTART;VALUE=DATE:20250505 +DTEND;VALUE=DATE:20250506 +SUMMARY:বুদ্ধ পূর্ণিমা +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_13 +DTSTART;VALUE=DATE:20250606 +DTEND;VALUE=DATE:20250509 +SUMMARY:ঈদুল আজহা +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_14 +DTSTART;VALUE=DATE:20250706 +DTEND;VALUE=DATE:20250707 +SUMMARY:আশুরা +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_15 +DTSTART;VALUE=DATE:20250816 +DTEND;VALUE=DATE:20250817 +SUMMARY:জন্মাষ্টমী +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_16 +DTSTART;VALUE=DATE:20250905 +DTEND;VALUE=DATE:20250906 +SUMMARY:ঈদে মিলাদুন্নবী +STATUS:CONFIRMED +END:VEVENT +BEGIN:VEVENT +UID:bgd_17 +DTSTART;VALUE=DATE:20251002 +DTEND;VALUE=DATE:20251003 +SUMMARY:বিজয়া দশমী +STATUS:CONFIRMED +END:VEVENT +END:VCALENDAR From ef3e997672b83088838b16e595a88346923f3101 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sat, 26 Oct 2024 03:53:08 +0530 Subject: [PATCH 11/14] Reduce no-response duration to 14 days --- .github/workflows/no-response.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml index eef815bdc..65ae5a77a 100644 --- a/.github/workflows/no-response.yml +++ b/.github/workflows/no-response.yml @@ -21,5 +21,5 @@ jobs: with: token: ${{ github.token }} # Number of days of inactivity before an issue is closed for lack of response. - daysUntilClose: 30 + daysUntilClose: 14 responseRequiredLabel: waiting for author From 1d50f433663a34a0a8843a049c79b50406870cfa Mon Sep 17 00:00:00 2001 From: Naveen Singh <36371707+naveensingh@users.noreply.github.com> Date: Sun, 3 Nov 2024 09:57:01 -0500 Subject: [PATCH 12/14] Revert "Update belgium.ics" --- app/src/main/assets/belgium.ics | 555 +++++++++++++++++++++++--------- 1 file changed, 411 insertions(+), 144 deletions(-) diff --git a/app/src/main/assets/belgium.ics b/app/src/main/assets/belgium.ics index 1d182bd76..d89de89f5 100644 --- a/app/src/main/assets/belgium.ics +++ b/app/src/main/assets/belgium.ics @@ -2,317 +2,584 @@ BEGIN:VCALENDAR BEGIN:VEVENT STATUS:CONFIRMED UID:bel_1 -SUMMARY:New Year -RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=1 -DTSTART;VALUE=DATE:20250101 -DTEND;VALUE=DATE:20250102 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20110602 +DTEND;VALUE=DATE:20110603 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_2 -SUMMARY:Epiphany -RRULE:FREQ=YEARLY;BYMONTHDAY=6;BYMONTH=1 -DTSTART;VALUE=DATE:20250106 -DTEND;VALUE=DATE:20250107 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20110424 +DTEND;VALUE=DATE:20110425 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_3 -SUMMARY:Valentine's Day -RRULE:FREQ=YEARLY;BYMONTHDAY=14;BYMONTH=2 -DTSTART;VALUE=DATE:20250214 -DTEND;VALUE=DATE:20250215 +SUMMARY:2de Paasdag +DTSTART;VALUE=DATE:20110425 +DTEND;VALUE=DATE:20110426 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_4 -SUMMARY:Labor Day -RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=5 -DTSTART;VALUE=DATE:20250501 -DTEND;VALUE=DATE:20250502 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20120408 +DTEND;VALUE=DATE:20120409 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_5 -SUMMARY:Iris Day (Brussels) -RRULE:FREQ=YEARLY;BYMONTHDAY=8;BYMONTH=5 -DTSTART;VALUE=DATE:20250508 -DTEND;VALUE=DATE:20250509 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20120409 +DTEND;VALUE=DATE:20120410 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_6 -SUMMARY:Day of the Flemish Community -RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=7 -DTSTART;VALUE=DATE:20240711 -DTEND;VALUE=DATE:20240712 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20130331 +DTEND;VALUE=DATE:20130401 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_7 -SUMMARY:Belgian National Day -RRULE:FREQ=YEARLY;BYMONTHDAY=21;BYMONTH=7 -DTSTART;VALUE=DATE:20240721 -DTEND;VALUE=DATE:20240722 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20130401 +DTEND;VALUE=DATE:20130402 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_8 -SUMMARY:Assumption of Mary -RRULE:FREQ=YEARLY;BYMONTHDAY=15;BYMONTH=8 -DTSTART;VALUE=DATE:20240815 -DTEND;VALUE=DATE:20240816 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20140420 +DTEND;VALUE=DATE:20140421 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_9 -SUMMARY:Day of the French Community -RRULE:FREQ=YEARLY;BYMONTHDAY=27;BYMONTH=9 -DTSTART;VALUE=DATE:20240927 -DTEND;VALUE=DATE:20240928 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20140421 +DTEND;VALUE=DATE:20140422 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_10 -SUMMARY:Halloween -RRULE:FREQ=YEARLY;BYMONTHDAY=31;BYMONTH=10 -DTSTART;VALUE=DATE:20241031 -DTEND;VALUE=DATE:20241101 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20140529 +DTEND;VALUE=DATE:20140530 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_11 -SUMMARY:All Saints' Day -RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=11 -DTSTART;VALUE=DATE:20241101 -DTEND;VALUE=DATE:20241102 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20140608 +DTEND;VALUE=DATE:20140609 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_12 -SUMMARY:Armistice Day -RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=11 -DTSTART;VALUE=DATE:20241111 -DTEND;VALUE=DATE:20241112 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20140609 +DTEND;VALUE=DATE:20140610 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_13 -SUMMARY:Day of the German-speaking Community -RRULE:FREQ=YEARLY;BYMONTHDAY=15;BYMONTH=11 -DTSTART;VALUE=DATE:20241115 -DTEND;VALUE=DATE:20241116 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20130519 +DTEND;VALUE=DATE:20130520 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_14 -SUMMARY:Saint Nicholas -RRULE:FREQ=YEARLY;BYMONTHDAY=6;BYMONTH=12 -DTSTART;VALUE=DATE:20241206 -DTEND;VALUE=DATE:20241207 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20130520 +DTEND;VALUE=DATE:20130521 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_15 -SUMMARY:Christmas -RRULE:FREQ=YEARLY;BYMONTHDAY=25;BYMONTH=12 -DTSTART;VALUE=DATE:20241225 -DTEND;VALUE=DATE:20241226 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20120527 +DTEND;VALUE=DATE:20120528 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_16 -SUMMARY:Easter Sunday -DTSTART;VALUE=DATE:20250420 -DTEND;VALUE=DATE:20250421 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20120528 +DTEND;VALUE=DATE:20120529 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_17 -SUMMARY:Easter Sunday -DTSTART;VALUE=DATE:20260405 -DTEND;VALUE=DATE:20260406 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20110612 +DTEND;VALUE=DATE:20110613 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_18 -SUMMARY:Easter Sunday -DTSTART;VALUE=DATE:20270328 -DTEND;VALUE=DATE:20270329 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20110613 +DTEND;VALUE=DATE:20110614 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_19 -SUMMARY:Easter Sunday -DTSTART;VALUE=DATE:20280416 -DTEND;VALUE=DATE:20280417 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20150405 +DTEND;VALUE=DATE:20150406 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_20 -SUMMARY:Easter Monday -DTSTART;VALUE=DATE:20250421 -DTEND;VALUE=DATE:20250422 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20150406 +DTEND;VALUE=DATE:20150407 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_21 -SUMMARY:Easter Monday -DTSTART;VALUE=DATE:20260406 -DTEND;VALUE=DATE:20260407 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20150514 +DTEND;VALUE=DATE:20150515 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_22 -SUMMARY:Easter Monday -DTSTART;VALUE=DATE:20270329 -DTEND;VALUE=DATE:20270330 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20150524 +DTEND;VALUE=DATE:20150525 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_23 -SUMMARY:Easter Monday -DTSTART;VALUE=DATE:20280417 -DTEND;VALUE=DATE:20280418 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20150525 +DTEND;VALUE=DATE:20150526 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_24 -SUMMARY:Mother's Day -DTSTART;VALUE=DATE:20250511 -DTEND;VALUE=DATE:20250512 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20160327 +DTEND;VALUE=DATE:20160328 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_25 -SUMMARY:Mother's Day -DTSTART;VALUE=DATE:20260510 -DTEND;VALUE=DATE:20260511 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20160328 +DTEND;VALUE=DATE:20160329 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_26 -SUMMARY:Mother's Day -DTSTART;VALUE=DATE:20270509 -DTEND;VALUE=DATE:20270510 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20160515 +DTEND;VALUE=DATE:20160516 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_27 -SUMMARY:Mother's Day -DTSTART;VALUE=DATE:20280514 -DTEND;VALUE=DATE:20280515 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20160516 +DTEND;VALUE=DATE:20160517 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_28 -SUMMARY:Ascension -DTSTART;VALUE=DATE:20250529 -DTEND;VALUE=DATE:20250530 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20160505 +DTEND;VALUE=DATE:20160506 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_29 -SUMMARY:Ascension -DTSTART;VALUE=DATE:20260514 -DTEND;VALUE=DATE:20260515 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20170416 +DTEND;VALUE=DATE:20170417 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_30 -SUMMARY:Ascension -DTSTART;VALUE=DATE:20270506 -DTEND;VALUE=DATE:20270507 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20170417 +DTEND;VALUE=DATE:20170418 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_31 -SUMMARY:Ascension -DTSTART;VALUE=DATE:20280514 -DTEND;VALUE=DATE:20280515 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20170525 +DTEND;VALUE=DATE:20170526 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_32 -SUMMARY:Father's Day -DTSTART;VALUE=DATE:20250608 -DTEND;VALUE=DATE:20250609 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20170604 +DTEND;VALUE=DATE:20170605 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_33 -SUMMARY:Father's Day -DTSTART;VALUE=DATE:20260614 -DTEND;VALUE=DATE:20260615 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20170605 +DTEND;VALUE=DATE:20170606 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_34 -SUMMARY:Father's Day -DTSTART;VALUE=DATE:20270613 -DTEND;VALUE=DATE:20270614 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20180401 +DTEND;VALUE=DATE:20180402 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_35 -SUMMARY:Father's Day -DTSTART;VALUE=DATE:20280611 -DTEND;VALUE=DATE:20280612 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20180402 +DTEND;VALUE=DATE:20180403 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_36 -SUMMARY:Whit Sunday -DTSTART;VALUE=DATE:20250608 -DTEND;VALUE=DATE:20250609 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20180510 +DTEND;VALUE=DATE:20180511 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_37 -SUMMARY:Whit Sunday -DTSTART;VALUE=DATE:20260524 -DTEND;VALUE=DATE:20260525 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20180520 +DTEND;VALUE=DATE:20180521 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_38 -SUMMARY:Whit Sunday -DTSTART;VALUE=DATE:20270516 -DTEND;VALUE=DATE:20270517 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20180521 +DTEND;VALUE=DATE:20180522 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_39 -SUMMARY:Whit Sunday -DTSTART;VALUE=DATE:20280604 -DTEND;VALUE=DATE:20280605 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20190523 +DTEND;VALUE=DATE:20190524 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_40 -SUMMARY:Whit Monday -DTSTART;VALUE=DATE:20250609 -DTEND;VALUE=DATE:20250610 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20190602 +DTEND;VALUE=DATE:20190603 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_41 -SUMMARY:Whit Monday -DTSTART;VALUE=DATE:20260425 -DTEND;VALUE=DATE:20260426 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20190603 +DTEND;VALUE=DATE:20190604 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_42 -SUMMARY:Whit Monday -DTSTART;VALUE=DATE:20270517 -DTEND;VALUE=DATE:20270518 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20200412 +DTEND;VALUE=DATE:20200413 END:VEVENT BEGIN:VEVENT STATUS:CONFIRMED UID:bel_43 -SUMMARY:Whit Monday -DTSTART;VALUE=DATE:20280605 -DTEND;VALUE=DATE:20280606 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20200413 +DTEND;VALUE=DATE:20200414 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_44 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20190421 +DTEND;VALUE=DATE:20190422 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_45 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20190422 +DTEND;VALUE=DATE:20190423 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_46 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20210404 +DTEND;VALUE=DATE:20210405 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_47 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20210405 +DTEND;VALUE=DATE:20210406 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_48 +SUMMARY:PASEN +DTSTART;VALUE=DATE:20220417 +DTEND;VALUE=DATE:20220418 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_49 +SUMMARY:2de PAASDAG +DTSTART;VALUE=DATE:20220418 +DTEND;VALUE=DATE:20220419 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_50 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20220526 +DTEND;VALUE=DATE:20220527 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_51 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20220605 +DTEND;VALUE=DATE:20220606 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_52 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20220606 +DTEND;VALUE=DATE:20220607 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_53 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20210513 +DTEND;VALUE=DATE:20210514 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_54 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20210523 +DTEND;VALUE=DATE:20210524 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_55 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20210524 +DTEND;VALUE=DATE:20210525 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_56 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20200521 +DTEND;VALUE=DATE:20200522 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_57 +SUMMARY:PINKSTEREN +DTSTART;VALUE=DATE:20200531 +DTEND;VALUE=DATE:20200601 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_58 +SUMMARY:2de PINKSTERENDAG +DTSTART;VALUE=DATE:20200601 +DTEND;VALUE=DATE:20200602 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_59 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20110309 +DTEND;VALUE=DATE:20110310 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_60 +SUMMARY:Aswoensdag +DTSTART:20120222T090000 +DTEND:20120222T110000 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_61 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20140305 +DTEND;VALUE=DATE:20140306 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_62 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20150211 +DTEND;VALUE=DATE:20150212 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_63 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20160210 +DTEND;VALUE=DATE:20160211 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_64 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20180214 +DTEND;VALUE=DATE:20180215 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_65 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20130213 +DTEND;VALUE=DATE:20130214 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_66 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20190306 +DTEND;VALUE=DATE:20190307 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_67 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20200226 +DTEND;VALUE=DATE:20200227 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_68 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20170301 +DTEND;VALUE=DATE:20170302 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_69 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20210217 +DTEND;VALUE=DATE:20210218 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_70 +SUMMARY:Aswoensdag +DTSTART;VALUE=DATE:20220302 +DTEND;VALUE=DATE:20220303 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_71 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20120517 +DTEND;VALUE=DATE:20120518 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_72 +SUMMARY:HEMELVAART +DTSTART;VALUE=DATE:20130509 +DTEND;VALUE=DATE:20130510 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_73 +SUMMARY:Valentijn +DTSTART;VALUE=DATE:20190314 +DTEND;VALUE=DATE:20190315 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_74 +SUMMARY:NIEUWJAAR +RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=1 +DTSTART;VALUE=DATE:20110101 +DTEND;VALUE=DATE:20110102 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_75 +SUMMARY:NATIONALE FEESTDAG +RRULE:FREQ=YEARLY;BYMONTHDAY=21;BYMONTH=7 +DTSTART;VALUE=DATE:20110721 +DTEND;VALUE=DATE:20110722 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_76 +SUMMARY:ONZE LIEVE VROUW HEMELVAART +RRULE:FREQ=YEARLY;BYMONTHDAY=15;BYMONTH=8 +DTSTART;VALUE=DATE:20110815 +DTEND;VALUE=DATE:20110816 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_77 +SUMMARY:ALLERHEILIGEN +RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=11 +DTSTART;VALUE=DATE:20111101 +DTEND;VALUE=DATE:20111102 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_78 +SUMMARY:WAPENSTILSTAND +RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=11 +DTSTART;VALUE=DATE:20111111 +DTEND;VALUE=DATE:20111112 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_79 +SUMMARY:KERSTMIS +RRULE:FREQ=YEARLY;BYMONTHDAY=25;BYMONTH=12 +DTSTART;VALUE=DATE:20111225 +DTEND;VALUE=DATE:20111226 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_80 +SUMMARY:Vlaamse feestdag +RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=7 +DTSTART;VALUE=DATE:20110711 +DTEND;VALUE=DATE:20110712 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_81 +SUMMARY:Valentijn +RRULE:FREQ=YEARLY;BYMONTHDAY=14;BYMONTH=2 +DTSTART;VALUE=DATE:20120214 +DTEND;VALUE=DATE:20120215 +END:VEVENT +BEGIN:VEVENT +STATUS:CONFIRMED +UID:bel_82 +SUMMARY:FEEST VAN DE ARBEID +RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=5 +DTSTART;VALUE=DATE:20110501 +DTEND;VALUE=DATE:20110502 END:VEVENT END:VCALENDAR From 545e09643cd71cedfa0ddfb6e0da76fba9cbacdb Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 3 Nov 2024 21:54:53 +0530 Subject: [PATCH 13/14] Format code --- .../calendar/views/MonthViewWrapper.kt | 40 ++++++++++++++----- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/views/MonthViewWrapper.kt b/app/src/main/kotlin/org/fossify/calendar/views/MonthViewWrapper.kt index 82f8b7060..415161552 100644 --- a/app/src/main/kotlin/org/fossify/calendar/views/MonthViewWrapper.kt +++ b/app/src/main/kotlin/org/fossify/calendar/views/MonthViewWrapper.kt @@ -10,7 +10,11 @@ import org.fossify.calendar.databinding.MonthViewBinding import org.fossify.calendar.extensions.config import org.fossify.calendar.extensions.launchNewEventIntent import org.fossify.calendar.extensions.launchNewTaskIntent -import org.fossify.calendar.helpers.* +import org.fossify.calendar.helpers.COLUMN_COUNT +import org.fossify.calendar.helpers.Formatter +import org.fossify.calendar.helpers.ROW_COUNT +import org.fossify.calendar.helpers.TYPE_EVENT +import org.fossify.calendar.helpers.TYPE_TASK import org.fossify.calendar.models.DayMonthly import org.fossify.commons.compose.extensions.getActivity import org.fossify.commons.dialogs.RadioGroupDialog @@ -18,7 +22,11 @@ import org.fossify.commons.extensions.onGlobalLayout import org.fossify.commons.models.RadioItem // used in the Monthly view fragment, 1 view per screen -class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : FrameLayout(context, attrs, defStyle) { +class MonthViewWrapper( + context: Context, + attrs: AttributeSet, + defStyle: Int +) : FrameLayout(context, attrs, defStyle) { private var dayWidth = 0f private var dayHeight = 0f private var weekDaysLetterHeight = 0 @@ -33,7 +41,8 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F constructor(context: Context, attrs: AttributeSet) : this(context, attrs, 0) init { - val normalTextSize = resources.getDimensionPixelSize(org.fossify.commons.R.dimen.normal_text_size).toFloat() + val normalTextSize = + resources.getDimensionPixelSize(org.fossify.commons.R.dimen.normal_text_size).toFloat() weekDaysLetterHeight = 2 * normalTextSize.toInt() inflater = LayoutInflater.from(context) @@ -76,7 +85,12 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F val childRight = childLeft + childWidth val childBottom = childTop + childHeight - child.layout(childLeft.toInt(), childTop.toInt(), childRight.toInt(), childBottom.toInt()) + child.layout( + childLeft.toInt(), + childTop.toInt(), + childRight.toInt(), + childBottom.toInt() + ) if (curLeft + childWidth <= end) { curLeft += childWidth @@ -89,7 +103,11 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F } } - fun updateDays(newDays: ArrayList, addEvents: Boolean, callback: ((DayMonthly) -> Unit)? = null) { + fun updateDays( + newDays: ArrayList, + addEvents: Boolean, + callback: ((DayMonthly) -> Unit)? = null + ) { setupHorizontalOffset() measureSizes() dayClickCallback = callback @@ -132,7 +150,12 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F background = null } //Accessible label composed by day and month - contentDescription = "${day.value} ${Formatter.getMonthName(context, Formatter.getDateTimeFromCode(day.code).monthOfYear)}" + contentDescription = "${day.value} ${ + Formatter.getMonthName( + context, + Formatter.getDateTimeFromCode(day.code).monthOfYear + ) + }" setOnClickListener { dayClickCallback?.invoke(day) @@ -142,7 +165,7 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F } } - setOnLongClickListener{ + setOnLongClickListener { if (context.config.allowCreatingTasks) { val items = arrayListOf( RadioItem(TYPE_EVENT, context.getString(R.string.event)), @@ -156,8 +179,7 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F context.launchNewTaskIntent(day.code) } } - } - else{ + } else { context.launchNewEventIntent(day.code) } true From edc5f94bb4322c346de4a44362d908195b23b821 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Mon, 4 Nov 2024 15:27:57 +0530 Subject: [PATCH 14/14] Use `getActivityToOpen(isTask)` function --- .../kotlin/org/fossify/calendar/activities/MainActivity.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt index 24c503a7b..50c547255 100644 --- a/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt @@ -421,8 +421,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { intent.removeExtra(IS_TASK) if (eventIdToOpen != 0L && eventOccurrenceToOpen != 0L) { hideKeyboard() - val activityToOpen = if (isTask) TaskActivity::class.java else EventActivity::class.java - Intent(this, activityToOpen).apply { + Intent(this, getActivityToOpen(isTask)).apply { putExtra(EVENT_ID, eventIdToOpen) putExtra(EVENT_OCCURRENCE_TS, eventOccurrenceToOpen) startActivity(this)