flutter_ethiopian_date_picker 1.1.0
flutter_ethiopian_date_picker: ^1.1.0 copied to clipboard
A customizable Ethiopian (Ge'ez) calendar date picker widget for Flutter.
Changelog #
All notable changes to this project will be documented in this file.
The format follows Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.0 - 2026-08-22 #
Added #
- Calendar Events system (
lib/src/) covering Orthodox, Islamic, national, international/UN, African, Beta Israel, cultural, and traditional events. CalendarEvent,CalendarDateRule, andCalendarTranslationmodels supporting single-day, date-range, traditional, externally-determined, and multi-year events, with locale-keyed translations (English fallback).CalendarSystem,DateRule,DateResolutionStatus,EventType, andEventCategoryenums defining the event architecture.- Date calculators for Ethiopian, Gregorian, Ethiopian Orthodox/Alexandrian
computus (Fasika and all Easter-relative feasts), Islamic (Hijri-based),
and traditional calendar rules (
traditionalSundayWindow,traditionalCalendar,multiYearCycle,externallyDetermined). - Orthodox fasting seasons (Great Lent, Nineveh, Advent, Filseta, Apostles', Gahad, weekly Wednesday/Friday fast) represented as date-range events.
- Regional and traditional cultural events — Irreecha, Gada Ceremony, Fichee-Chambalaalla, Hamer Bull Jumping, Gamo Meskel — represented without fabricating dates for events that are community- or externally-determined.
CalendarServicewithgetEventsForYear,getEventsForDate,getEventsForMonth,getUpcomingEvents,getEventsByType,getEventsByCategory,getPublicHolidays,getOrthodoxEvents,getIslamicEvents,getInternationalEvents,getNationalEvents,getCulturalEvents,getPilgrimages, andgetFastingPeriods.- Localization of all canonical events across English, Amharic, Tigrinya,
and Afaan Oromo, reusing the existing
EthiopianLocaleenum, with guaranteed fallback to English (never a blank name). - Multi-year test coverage (2025–2030) for fixed, Orthodox, Islamic, and traditional event dates, including Ethiopian leap year (Pagume 6) behavior, and dedicated tests confirming externally-determined events never receive a fabricated date.
Notes #
- All additions are new public API surface under
lib/src/, exported fromflutter_ethiopian_date_picker.dart. No existing public API (showEthiopianDatePicker,EthiopianDate, theming, localization, form field integration) was changed or removed. - Ethiopian Orthodox Easter (Fasika) uses the Ethiopian Orthodox/Alexandrian computus specifically — not the Western/Gregorian Easter algorithm.
- Islamic dates follow a single documented Hijri calculation convention; see README for the calculated/tabular-vs-local-moon-sighting caveat.
1.0.1 - 2026-07-24 #
Fixed #
- Updated package metadata, fixed minor documentation typos, and aligned version references across the project.
1.0.0 - 2026-07-23 #
Added #
- Added a complete example application demonstrating picker usage, theme switching, locale switching, range selection, and form integration.
- Added a full README with installation, usage, API reference, a features list, and a screenshot gallery covering light/dark theme, default/custom picker theme, range selection, and Amharic/Afaan Oromo/Tigrinya locales.
- Added GitHub Actions platform verification for Android, Web, Linux, Windows, macOS, and iOS.
- Manually verified functionality on Linux desktop and Web, including a performance pass showing smooth month navigation.
Changed #
- Renamed the package from
ethiopian_date_pickertoflutter_ethiopian_date_pickerbefore the initial public release to avoid a naming collision with an existing package on pub.dev.
Fixed #
- Removed a deprecated lint rule (
avoid_returning_null_for_future) that was removed upstream in Dart 3.3.0 and causedflutter analyzeto fail on current SDKs. - Corrected the README installation snippet and license section to match the published version and license file.
0.4.0 Internal milestone #
Added #
- State management smoke tests confirming
EthiopianCalendarViewworks correctly when driven externally by Provider, Riverpod, and Bloc, with no internal shared mutable state. - Golden test suite covering all theme and locale variants.
PLATFORM_SUPPORT.mdmanual verification script and support matrix.
Fixed #
RenderFlexoverflow when laying out two calendar instances for the no-shared-state test; switched from verticalColumn/Expandedto a horizontalRowlayout.
0.3.0 Internal milestone #
Added #
- Locale files for English, Amharic, Afaan Oromo, and Tigrinya with fallback-to-English behavior.
EthiopianDateFormFieldforForm/FormStateintegration, withvalidatorandonSavedsupport.- Full keyboard navigation, semantic labels, ≥48px touch targets, and high-contrast/scalable-font support.
0.2.0 Internal milestone #
Added #
- Slide/fade transitions on month change, ripple effect on day selection, dialog open/close animation.
EthiopianDateRangemodel and range selection interaction flow (tap start, tap end, re-tap to reset).
0.1.0 Internal milestone #
Added #
EthiopianDatePickerThemewith Material 3 defaults and full override support for colors, spacing, and typography.
0.0.1 Internal milestone #
Added #
EthiopianDatemodel with validation, comparisons, and JSON serialization.- Gregorian ⇄ Ethiopian conversion with leap year and Pagume handling, fuzz-tested across thousands of random dates.
- Calendar grid widget and
showEthiopianDatePicker()dialog. - Error handling: clamping to
firstDate/lastDate, debug assertions for invalid config, safe locale fallback.