Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modular architecture with support for different layouts #69

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
c52325e
feat: start refactor to modular architecture
JonasWanke Mar 9, 2021
51765d4
feat: simplify EventProvider
JonasWanke Mar 9, 2021
02a45b1
build: update some dependencies to stable null-safe
JonasWanke Mar 9, 2021
16e7660
change: separate MultiDateBackgroundPainter into Date-/HourDividersPa…
JonasWanke Mar 9, 2021
0c8b8b0
feat(example): paint behind navigation bar
JonasWanke Mar 9, 2021
fe803ac
change: don't coerce TimeIndicators children to fit vertically inside…
JonasWanke Mar 9, 2021
70f4461
change: remove unused child height limits in TimeZoom
JonasWanke Mar 9, 2021
f357d94
fix: make NowIndicatorPainter dynamic again
JonasWanke Mar 9, 2021
261af1e
feat: honor dateController.minDate, .maxDate
JonasWanke Mar 9, 2021
7362733
change: only use millisecond resolution
JonasWanke Mar 12, 2021
76e1205
feat: refactor DateScrollPhysics & VisibleDateRange
JonasWanke Mar 12, 2021
9ac6c89
build: remove unused expandable_page_view dependency
JonasWanke Mar 12, 2021
37699fe
feat: add localizations
JonasWanke Mar 15, 2021
b54cf91
feat: add WeekIndicatorStyle
JonasWanke Mar 15, 2021
3dc1c85
feat: sync left column sizes in MultiDateTimetable
JonasWanke Mar 15, 2021
821cbf5
feat: automatically set Intl locale
JonasWanke Mar 15, 2021
6461277
fix: remove unused style properties
JonasWanke Mar 15, 2021
8727032
refactor: simplify DateEvents layout
JonasWanke Mar 15, 2021
7af9cec
refactor: simplify MultiDateEventsHeader
JonasWanke Mar 15, 2021
c012229
refactor: extract DateContent widget
JonasWanke Mar 15, 2021
2e4037a
feat: support time overlays
JonasWanke Mar 16, 2021
13bccfc
refactor: commit missing/outdated imports
JonasWanke Mar 16, 2021
08138cb
build: reduce CI builds of the main branch to once every day
JonasWanke Mar 27, 2021
050f81e
fix: correct dateTime.dayOfYear
JonasWanke Mar 29, 2021
dd428c1
fix: correct VisibleDateRange calculation
JonasWanke Mar 29, 2021
65cfe6e
feat: add minDate & maxDate
JonasWanke Mar 31, 2021
a047502
fix: honor VisibleDateRange when animating/jumping to date/page
JonasWanke Mar 31, 2021
b61b399
test: move VisibleDateRange tests to proper file
JonasWanke Apr 1, 2021
e6a95fb
test: fix TimetableEvent intersectsInterval test
JonasWanke Apr 1, 2021
7538a48
test: re-add some TimeZoom tests
JonasWanke Apr 1, 2021
4961e02
feat: allow dynamic VisibleDateRange
JonasWanke Apr 9, 2021
daf931b
feat: add MonthIndicator
JonasWanke Apr 9, 2021
519a3fb
build: update tuple dependency to stable
JonasWanke Apr 9, 2021
7024333
feat: add WeekIndicator.forController(…)
JonasWanke Apr 9, 2021
4de3444
feat: add timeOverlay.position
JonasWanke Apr 9, 2021
d59c547
feat(example): add debug_overlay
JonasWanke Apr 9, 2021
b67fa4b
fix: localization errors
JonasWanke Apr 9, 2021
8e1b5ca
change(example): use Column i/o Scaffold
JonasWanke Apr 19, 2021
79e3298
fix: display week of year one-based
JonasWanke Apr 19, 2021
e9ffdf5
feat: add weekIndicator.alwaysUseNarrowestVariant
JonasWanke Apr 19, 2021
56bbfd4
feat: accept custom decoration and textStyle in DateIndicator
JonasWanke Apr 19, 2021
901e08b
feat: add MonthWidget
JonasWanke Apr 19, 2021
bab1f72
fix: display correct days in MonthWidget
JonasWanke Apr 22, 2021
6672bb6
feat: expose monthWidget.dateBuilder
JonasWanke Apr 22, 2021
645b058
refactor: make SizeReportingOverflowPage available internally
JonasWanke Apr 26, 2021
340fb14
feat: add MonthPageView & CompactMonthTimetable
JonasWanke Apr 26, 2021
0f3b7d5
feat: add BuildContext to EventBuilder
JonasWanke Apr 26, 2021
e27b3cc
refactor(example): simplify code
JonasWanke Apr 26, 2021
d63af3d
feat: support drag & drop
JonasWanke Apr 26, 2021
9a82093
refactor: clean up old code
JonasWanke Apr 26, 2021
bf6a332
fix: remove old _height-cache entries
JonasWanke Apr 26, 2021
5b08d4f
change(example): remove more custom example
JonasWanke Apr 26, 2021
90771ae
change: add Default… widgets for controllers, event stuff and overlays
JonasWanke May 6, 2021
ba9ff16
fix: various errors due to previous change
JonasWanke May 6, 2021
68b3e17
change: remove event.showOnTop in favor of TimeOverlays
JonasWanke May 10, 2021
2159e4e
change: update Date-/WeekIndicator to new styling
JonasWanke May 10, 2021
a8ef351
change: merge DefaultAllDayEventBuilder into DefaultEventBuilder
JonasWanke May 11, 2021
b274045
change: update MultiDateEventHeader to new styling & callback handling
JonasWanke May 11, 2021
5b93ca5
change: update DateDividers to new styling
JonasWanke May 11, 2021
5e1d155
change: update HourDividers to new styling
JonasWanke May 11, 2021
9e72891
refactor: minor fixes & simplifications
JonasWanke May 11, 2021
d2277b8
change: update NowIndicator to new styling
JonasWanke May 11, 2021
e7c9b7b
refactor: rename NowIndicator's file to match its name
JonasWanke May 12, 2021
91fd6e9
change: update DateEvents to new styling
JonasWanke May 12, 2021
f059f44
change: update WeekdayIndicator to new styling
JonasWanke May 12, 2021
7daf9a2
change: update MonthIndicator to new styling
JonasWanke May 12, 2021
8f14b2a
change: update MonthWidget & CompactMonthTimetable to new styling
JonasWanke May 12, 2021
f92f66a
change: update DateHeader to new styling & callback handling
JonasWanke May 12, 2021
02104c4
feat: make DateEventsStyle configurable per date
JonasWanke May 12, 2021
54843d1
fix: minor fixes & refactoring
JonasWanke May 12, 2021
9f5060e
change: update TimeIndicator(s) to new styling
JonasWanke May 12, 2021
346854c
refactor: rename TimetableTheme's file to theme
JonasWanke May 12, 2021
1e92397
fix: update outdated exports
JonasWanke May 12, 2021
0a86efc
change: remove compactMonthTimetable.dateController
JonasWanke May 18, 2021
599a84a
feat: add remaining copyWith(…) methods for styles and theme
JonasWanke May 18, 2021
f2d231f
fix: calculate DaysVisibleRange.maxPage correctly
JonasWanke May 18, 2021
3b405b1
fix: make MultiDateEventHeader scrollable
JonasWanke May 18, 2021
47bf68d
feat: make startOfWeek configurable in the theme
JonasWanke May 18, 2021
1141eb1
change: restructure utils export
JonasWanke May 18, 2021
b83cec9
fix: persist & dispose TimetableConfig's controllers
JonasWanke May 18, 2021
82768a1
change: remove mostly unused dateController.startOfWeek
JonasWanke May 18, 2021
9d15890
feat: add dateTime.roundTimeToMultipleOf(…)
JonasWanke May 18, 2021
77d36d0
fix: paint NowIndicator in foreground
JonasWanke May 21, 2021
e32dbea
change: set default timeController.minDuration to one minute
JonasWanke May 21, 2021
5475aac
fix: repaint NowIndicator every frame
JonasWanke May 21, 2021
a27d1bb
change: display future dates in DateIndicator more prominently
JonasWanke May 21, 2021
4e04d20
fix: avoid too lenient daysVisibleRange.maxPage
JonasWanke May 21, 2021
b132370
change: remove DateController from visibleDateRange.applyBoundaryCond…
JonasWanke May 21, 2021
1f5fb2a
feat: add RecurringMultiDateTimetable
JonasWanke May 21, 2021
9dbc1fa
fix: avoid layout jump of shrink-wrapped viewports
JonasWanke May 21, 2021
95e81da
build: remove 🦄 Unicorn
JonasWanke May 22, 2021
d1d347c
refactor: remove unused imports
JonasWanke May 22, 2021
aa37605
fix: avoid NPE in DateContent
JonasWanke May 22, 2021
688e4f8
feat(example): add web support
JonasWanke May 22, 2021
0fc2621
feat: add Scrollbar support
JonasWanke May 22, 2021
5df6702
docs: update documentation
JonasWanke May 22, 2021
c1765d3
docs: improve doc comments
JonasWanke May 29, 2021
19c5b13
change: generalize basicEvent.id & rename .color to .backgroundColor
JonasWanke May 29, 2021
259ff65
refactor: minor changes
JonasWanke May 29, 2021
d9d795c
feat: add AllDayEventBorderRadii & extract BasicAllDayEventWidgetStyle
JonasWanke May 29, 2021
d6b2c04
docs: improve README
JonasWanke May 29, 2021
7653f28
docs: update package description
JonasWanke May 29, 2021
564d789
docs: add doc comments for all widgets
JonasWanke May 30, 2021
ea1a3fd
docs: add more doc comments
JonasWanke May 30, 2021
e9aaeb7
fix: hide WeekIndicator in RecurringMultiDateTimetable
JonasWanke May 30, 2021
9d40ec0
feat: add weekInfo.getDa
JonasWanke May 30, 2021
29913ae
change: rename WeekInfo to Week
JonasWanke May 30, 2021
caaf4a1
feat: add dateIndicator.onTap
JonasWanke May 30, 2021
73c68aa
feat(example): update visible range when
JonasWanke May 30, 2021
3933bb3
docs: display available layouts higher up in the README
JonasWanke May 30, 2021
14bb4d2
fix: actually remove old events in MultiDateEventHeader
JonasWanke Jun 1, 2021
3ab1c88
docs: add missing links to README
JonasWanke Jun 6, 2021
ea80f7e
change: specify TimeOverlay position as TimeOverlayPosition
JonasWanke Jun 6, 2021
dec818f
fix: adapt scroll physics to updated VisibleDateRange
JonasWanke Jun 6, 2021
5a0141e
fix(example): don't use Debug Overlay on web
JonasWanke Jun 6, 2021
e375e2e
build: update required Flutter & Dart versions
JonasWanke Jun 6, 2021
601ead8
docs: add new screenshots and demos
JonasWanke Jun 6, 2021
c03f62a
docs: cleanup README
JonasWanke Jun 6, 2021
e02e0e9
docs: add TimeOverlay documentation to README
JonasWanke Jun 6, 2021
22f5bb4
docs: remove diff links from changelog
JonasWanke Jun 6, 2021
2d59491
build: simplify workflow
JonasWanke Jun 6, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 19 additions & 68 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,95 +4,54 @@ on:
push:
pull_request:
schedule:
- cron: "0 4,11 * * *"
- cron: '0 4 * * *'

env:
JAVA_VERSION: 12.x
FLUTTER_CHANNEL: stable
FLUTTER_VERSION: 1.17.x
FLUTTER_CHANNEL: beta
FLUTTER_VERSION: 2.x

jobs:
install:
name: Install Flutter & dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v1

- name: Install Java
uses: actions/setup-java@v1
with:
java-version: ${{ env.JAVA_VERSION }}
- name: Install Flutter
uses: subosito/flutter-action@v1
with:
channel: ${{ env.FLUTTER_CHANNEL }}

- name: Install dependencies
run: flutter pub get

- name: Persist current state
uses: actions/upload-artifact@v1
with:
name: source
path: .

test:
name: Run tests
needs: install
runs-on: ubuntu-latest
steps:
- name: Install Java
uses: actions/setup-java@v1
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ env.JAVA_VERSION }}
- name: Install Flutter
uses: subosito/flutter-action@v1
with:
channel: ${{ env.FLUTTER_CHANNEL }}

- name: Checkout source
uses: actions/download-artifact@v2
with:
name: source

- name: Install dependencies
run: flutter pub get
- run: flutter pub get

- name: Run tests
run: flutter test
- run: flutter test

lint:
name: Lint
needs: install
runs-on: ubuntu-latest
steps:
- name: Install Java
uses: actions/setup-java@v1
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ env.JAVA_VERSION }}
- name: Install Flutter
uses: subosito/flutter-action@v1
with:
channel: ${{ env.FLUTTER_CHANNEL }}

- name: Checkout source
uses: actions/download-artifact@v2
with:
name: source

- name: Install dependencies
run: flutter pub get
- run: flutter pub get

- name: Run linter
run: flutter analyze > flutter_analyze_report.txt
continue-on-error: true

- name: Install ruby
uses: actions/setup-ruby@v1
- uses: actions/setup-ruby@v1
if: github.event_name == 'pull_request'
with:
ruby-version: "2.6"
ruby-version: '2.6'
- name: Install ruby gems
run: |
gem install bundler
Expand All @@ -103,35 +62,27 @@ jobs:
if: github.event_name == 'pull_request'
with:
danger_file: Dangerfile
danger_id: "danger-pr"
danger_id: 'danger-pr'
env:
DANGER_GITHUB_API_TOKEN: ${{ secrets.BOT_TOKEN }}

build-example:
name: Build example
needs: install
runs-on: ubuntu-latest
steps:
- name: Install Java
uses: actions/setup-java@v1
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: "12.x"
java-version: '12.x'
- name: Install Flutter
uses: subosito/flutter-action@v1
with:
channel: "stable"

- name: Checkout source
uses: actions/download-artifact@v2
with:
name: source
channel: ${{ env.FLUTTER_CHANNEL }}

- name: Install dependencies
run: flutter pub get
- run: flutter pub get
working-directory: example

- name: Build APK
run: flutter build apk
- run: flutter build apk
working-directory: example

- name: Upload APK as artifact
Expand Down
19 changes: 0 additions & 19 deletions .github/workflows/unicorn.yml

This file was deleted.

64 changes: 0 additions & 64 deletions .unicorn.yml

This file was deleted.

27 changes: 12 additions & 15 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm


<!-- Template:
## [NEW](https://github.com/JonasWanke/timetable/compare/vOLD...vNEW) · 2020-xx-xx
## NEW · 2021-xx-xx
### ⚠ BREAKING CHANGES
### 🎉 New Features
### ⚡ Changes
Expand All @@ -16,10 +16,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
### 📦 Build & CI
-->

## [Unreleased](https://github.com/JonasWanke/timetable/compare/v0.2.7...master)


## [0.2.7](https://github.com/JonasWanke/timetable/compare/v0.2.6...v0.2.7) · 2020-09-02
## 0.2.7 · 2020-09-02

### 🎉 New Features
- add `TimetableThemeData.minimumHourZoom` & `.maximumHourZoom`, closes: [#40](https://github.com/JonasWanke/timetable/issues/40) & [#45](https://github.com/JonasWanke/timetable/issues/45)
Expand All @@ -31,7 +28,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- update <kbd>dartx</kbd> to `^0.5.0`


## [0.2.6](https://github.com/JonasWanke/timetable/compare/v0.2.5...v0.2.6) · 2020-07-12
## 0.2.6 · 2020-07-12

### 🎉 New Features
- add custom builders for date header and leading area of the header (usually a week indicator) ([#28](https://github.com/JonasWanke/timetable/pull/28)), closes: [#27](https://github.com/JonasWanke/timetable/issues/27). Thanks to [@TatsuUkraine](https://github.com/TatsuUkraine)!
Expand All @@ -41,7 +38,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- Expand part-day events to fill empty columns ([#30](https://github.com/JonasWanke/timetable/pull/30)), closes: [#29](https://github.com/JonasWanke/timetable/issues/29)


## [0.2.5](https://github.com/JonasWanke/timetable/compare/v0.2.4...v0.2.5) · 2020-07-06
## 0.2.5 · 2020-07-06

### 📜 Documentation updates
- add Localization section to the README
Expand All @@ -50,7 +47,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- update <kbd>dartx</kbd> to `^0.4.0`


## [0.2.4](https://github.com/JonasWanke/timetable/compare/v0.2.3...v0.2.4) · 2020-06-25
## 0.2.4 · 2020-06-25

### 🎉 New Features
- `Timetable.onEventBackgroundTap`: called when tapping the background, e.g. for creating an event ([#20](https://github.com/JonasWanke/timetable/pull/20)), closes: [#18](https://github.com/JonasWanke/timetable/issues/18). Thanks to [@raLaaaa](https://github.com/raLaaaa)!
Expand All @@ -60,13 +57,13 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- improve streaming `EventProvider` documentation ([e63bfb4](https://github.com/JonasWanke/timetable/commit/e63bfb4f974ce5319fd6f6bb12ebb561d8c5143c)), fixes: [#19](https://github.com/JonasWanke/timetable/issues/19)


## [0.2.3](https://github.com/JonasWanke/timetable/compare/v0.2.2...v0.2.3) · 2020-06-15
## 0.2.3 · 2020-06-15

### 🎉 New Features
- Customizable date/weekday format with `TimetableThemeData.weekDayIndicatorPattern`, `.dateIndicatorPattern` & temporary `.totalDateIndicatorHeight` ([#16](https://github.com/JonasWanke/timetable/pull/16)), closes: [#15](https://github.com/JonasWanke/timetable/issues/15)


## [0.2.2](https://github.com/JonasWanke/timetable/compare/v0.2.1...v0.2.2) · 2020-05-30
## 0.2.2 · 2020-05-30

### 🎉 New Features
- optional `onTap`-parameter for `BasicEventWidget` & `BasicAllDayEventWidget` ([#12](https://github.com/JonasWanke/timetable/pull/12)), closes: [#11](https://github.com/JonasWanke/timetable/issues/11)
Expand All @@ -75,7 +72,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- specify minimum Dart version (v2.7.0) in `pubspec.yaml`


## [0.2.1](https://github.com/JonasWanke/timetable/compare/v0.2.0...v0.2.1) · 2020-05-19
## 0.2.1 · 2020-05-19

### 🎉 New Features
- All-day events (shown at the top) ([#8](https://github.com/JonasWanke/timetable/pull/8)), closes: [#5](https://github.com/JonasWanke/timetable/issues/5)
Expand All @@ -86,7 +83,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- **example:** upload generated APK as artifact


## [0.2.0](https://github.com/JonasWanke/timetable/compare/v0.1.3...v0.2.0) · 2020-05-08
## 0.2.0 · 2020-05-08

### ⚠ BREAKING CHANGES
- fix week scroll alignment ([#6](https://github.com/JonasWanke/timetable/pull/6))
Expand All @@ -96,13 +93,13 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- support Flutter v1.17.0 ([#4](https://github.com/JonasWanke/timetable/pull/4))


## [0.1.3](https://github.com/JonasWanke/timetable/compare/v0.1.2...v0.1.3) · 2020-05-06
## 0.1.3 · 2020-05-06

### 🐛 Bug Fixes
- fix time zooming & add testing ([#3](https://github.com/JonasWanke/timetable/pull/3))


## [0.1.2](https://github.com/JonasWanke/timetable/compare/v0.1.1...v0.1.2) · 2020-05-05
## 0.1.2 · 2020-05-05

### 🎉 New Features
- add `TimetableController.initialTimeRange`, closes: [#1](https://github.com/JonasWanke/timetable/issues/1)
Expand All @@ -111,7 +108,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- fix week alignment with `WeekVisibleRange`, closes: [#2](https://github.com/JonasWanke/timetable/issues/2)


## [0.1.1](https://github.com/JonasWanke/timetable/compare/v0.1.0...v0.1.1) · 2020-04-02
## 0.1.1 · 2020-04-02

### 📜 Documentation updates
- fix broken links in README
Expand Down
Loading