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

Version 9 #123

Merged
merged 169 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
e66fd54
Added `StoreManagement.pruneTilesOlderThan` method (#122)
JaffaKetchup May 6, 2023
ed1f488
Built Example Applications
github-actions[bot] May 6, 2023
15415f3
Minor refactoring
JaffaKetchup May 7, 2023
ba6380a
Built Example Applications
github-actions[bot] May 7, 2023
4f1dfc2
Updated build tool versions
JaffaKetchup May 9, 2023
be072a2
Built Example Applications
github-actions[bot] May 9, 2023
1572819
Update to better support Flutter 3.10
JaffaKetchup May 11, 2023
9921302
Revert commit 1572819cb810ced2ad066a13fa86bc05677dd181 [formerly 07a1…
JaffaKetchup May 11, 2023
da33621
Added support for Flutter 3.10 to example app
JaffaKetchup May 11, 2023
10b6b2b
Bumped version
JaffaKetchup May 11, 2023
6deec52
Bumped version to v9
JaffaKetchup May 15, 2023
e0074e4
Update windowsApplicationInstallerSetup.iss
JaffaKetchup May 15, 2023
6380f2f
Built Example Applications
github-actions[bot] May 15, 2023
94fb014
Improve GitHub Workflow
JaffaKetchup May 15, 2023
5926a61
Added support for line region to example application
JaffaKetchup May 20, 2023
a0fdbea
Attempt to fix workflow
JaffaKetchup May 20, 2023
b2184da
Updated dependencies
JaffaKetchup May 30, 2023
bc01f93
Upgraded dependencies
JaffaKetchup Jun 4, 2023
91b7dbf
Added secondary check to tile images retrieved across the network in …
JaffaKetchup Jun 27, 2023
db0482a
Minor changes
JaffaKetchup Jul 1, 2023
025e188
Reimplemented bulk downloading
JaffaKetchup Jul 3, 2023
d416c6e
Added pause and resume functionality to bulk downloading
JaffaKetchup Jul 4, 2023
fdeb4ad
Added rate limiting to bulk downloading
JaffaKetchup Jul 6, 2023
8912d9d
Removed TODO comment
JaffaKetchup Jul 6, 2023
6d8071e
Fixed dependency
JaffaKetchup Jul 6, 2023
89110c3
Reduced redundant tiles generated in `LineRegion`
JaffaKetchup Jul 6, 2023
0606ef4
Updated CHANGELOG
JaffaKetchup Jul 11, 2023
29ce073
Changed `startForeground` arguments
JaffaKetchup Jul 11, 2023
cef1ae0
Added simple location tracking to example application
JaffaKetchup Jul 12, 2023
7e7ce0d
Improved documentation
JaffaKetchup Jul 20, 2023
663bd7f
Added initial tests for tile generation
JaffaKetchup Jul 20, 2023
6b8be22
Fixed bugs
JaffaKetchup Jul 24, 2023
608cc9d
Temporarily resolved tests
JaffaKetchup Jul 24, 2023
1206e1e
Minor syntactic improvements
JaffaKetchup Jul 26, 2023
316613d
Added miniature testing tile server
JaffaKetchup Jul 26, 2023
f27232c
Adjust GitHub workflow
JaffaKetchup Jul 26, 2023
676ffbd
Attempt to fix GitHub workflow
JaffaKetchup Jul 26, 2023
47c0240
Adjusted GitHub workflows
JaffaKetchup Jul 26, 2023
eb7fd91
Reimplemented bulk downloading TPS calculations
JaffaKetchup Jul 26, 2023
52f0b7c
Fixed bugs
JaffaKetchup Jul 27, 2023
8168ae4
Attempt to add tile server compilation to GitHub workflow
JaffaKetchup Jul 27, 2023
f9cb295
Attempt (2) to add tile server compilation to GitHub workflow
JaffaKetchup Jul 27, 2023
c6a54d7
Attempt (3) to add tile server compilation to GitHub workflow
JaffaKetchup Jul 27, 2023
6001f17
Fixed bug with testing tile server
JaffaKetchup Jul 27, 2023
b7a8037
Fixed lints
JaffaKetchup Jul 27, 2023
2239b43
Moved tile server directory
JaffaKetchup Jul 28, 2023
03d12de
Generate tile server images with GitHub Actions
JaffaKetchup Jul 28, 2023
7de0de3
Minor update to GitHub workflow
JaffaKetchup Jul 28, 2023
1c2a8f2
Updated dependencies
JaffaKetchup Jul 29, 2023
eb3d59d
Updated GitHub workflow
JaffaKetchup Jul 29, 2023
865ee7b
Reduced code duplication
JaffaKetchup Jul 29, 2023
cd5d901
Added earcutting triangulation algorithm
JaffaKetchup Jul 30, 2023
908431d
Added GPL notice to top of files
JaffaKetchup Jul 30, 2023
f3b7122
Implemented `CustomPolygonRegion`
JaffaKetchup Jul 31, 2023
7bcbb12
Fixed Custom Polygon tile generation
JaffaKetchup Aug 1, 2023
87a3403
Started reimplementing example app's region selector page
JaffaKetchup Aug 2, 2023
ebff008
Improved example application
JaffaKetchup Aug 3, 2023
75ffca2
Increased speed & reduced RAM consumption of `CustomPolygonRegion` ti…
JaffaKetchup Aug 3, 2023
8dc8805
Transferred `Earcut` to independent package
JaffaKetchup Aug 3, 2023
db826d9
Improved example application's state handling
JaffaKetchup Aug 4, 2023
0c019a7
Fixed incorrect dependency location
JaffaKetchup Aug 4, 2023
a72cec6
Fixed formatting
JaffaKetchup Aug 4, 2023
5af51e5
Fixed bugs
JaffaKetchup Aug 4, 2023
a238833
Improved example application
JaffaKetchup Aug 5, 2023
1286676
Improved tests & testing tile server
JaffaKetchup Aug 7, 2023
e699eb2
Empty commit
JaffaKetchup Aug 8, 2023
a76c358
Fixed lints
JaffaKetchup Aug 23, 2023
eaa0fc3
Increased timeouts on tests
JaffaKetchup Aug 23, 2023
3f5edc9
Migrate to flutter_map v6.0.0-dev.3
JaffaKetchup Sep 10, 2023
328c142
Upgrade to FM v6
JaffaKetchup Oct 7, 2023
9d0f607
Updated pubspec
JaffaKetchup Oct 9, 2023
d43c348
Added download follow/tiles preview functionality to example app
JaffaKetchup Oct 21, 2023
5a24b46
Fix failing Windows build
JaffaKetchup Oct 21, 2023
c779107
Improved follow download live feature in example app
JaffaKetchup Oct 22, 2023
e91c0c8
Updated CHANGELOG
JaffaKetchup Oct 23, 2023
a008d16
Initial transition work to ObjectBox from Isar
JaffaKetchup Nov 3, 2023
58fe6a3
Finished initial uber-basic implementation of `ObjectBoxBackend`
JaffaKetchup Nov 4, 2023
5aa4ef8
Updated .gitignore
JaffaKetchup Nov 4, 2023
fb5839b
Applied new .gitignore
JaffaKetchup Nov 4, 2023
d7808ec
Handle store statistics in `ObjectBoxBackend`
JaffaKetchup Nov 5, 2023
15d483c
Progress with migration to ObjectBox
JaffaKetchup Nov 24, 2023
816e742
Complete(?) implementation of `removeOldestTile`
JaffaKetchup Nov 24, 2023
c843a60
Added cache hits & misses retrieval
JaffaKetchup Dec 26, 2023
446f5bd
Improved backend worker lifecycle & communications stability
JaffaKetchup Dec 29, 2023
9ebba07
General backend-worker comms improvements
JaffaKetchup Dec 30, 2023
cb61e89
Removed synchronous operations to improve simplicity and DX
JaffaKetchup Dec 31, 2023
fc26ec1
Added `removeOldestTilesAboveLimit` & `removeTilesOlderThan` to backend
JaffaKetchup Jan 1, 2024
8d9627e
Added `tileExistsInStore` method to backend
JaffaKetchup Jan 4, 2024
6c86b74
Added `readLatestTile` method to backend
JaffaKetchup Jan 4, 2024
07c988f
Renamed `StoreDirectory` to `FMTCStore` with deprecation typedef
JaffaKetchup Jan 4, 2024
4a00ccf
Added mini copyright header to new files
JaffaKetchup Jan 4, 2024
07583bc
Added metadata support
JaffaKetchup Jan 4, 2024
b2e984c
Removed `FMTC`/`FlutterMapTileCaching`
JaffaKetchup Feb 14, 2024
3e23c9a
Add support to ObjectBox backend for root statistics
JaffaKetchup Feb 14, 2024
2171e9e
Start of implementation of recovery system in ObjectBox
JaffaKetchup Feb 15, 2024
f43c886
Start migration of example application
JaffaKetchup Feb 19, 2024
42cb06b
Made `FMTCTileProviderSettings` an independent singleton
JaffaKetchup Feb 20, 2024
bfa1ef2
Finished `ObjectBoxBackend` implementation of recovery system and int…
JaffaKetchup Feb 20, 2024
872cde0
Implemented initial cache hit/miss logic
JaffaKetchup Feb 21, 2024
6f13a76
**0 syntax issues 🎉**
JaffaKetchup Feb 21, 2024
3a5e5fa
Implemented watching
JaffaKetchup Feb 21, 2024
b2f9017
Fixed bugs
JaffaKetchup Feb 21, 2024
bace724
Fixed bug
JaffaKetchup Feb 21, 2024
8bf52f8
Fixed bugs
JaffaKetchup Feb 22, 2024
eaa1b63
Fixed bugs
JaffaKetchup Feb 22, 2024
40dfd0d
Fixed support for database watching
JaffaKetchup Feb 22, 2024
be89d2e
Updated lints
JaffaKetchup Feb 24, 2024
3061e2c
Added support for bulk downloading to ObjectBox backend
JaffaKetchup Feb 24, 2024
63df69b
Minor fix in example app
JaffaKetchup Feb 24, 2024
f1da734
Minor performance improvements
JaffaKetchup Feb 25, 2024
b4a21e2
Fixed minor bug in tile server
JaffaKetchup Feb 25, 2024
ab1d9a1
Added deprecations
JaffaKetchup Feb 25, 2024
67eb20c
Added `FMTCTileProviderSettings.fallbackToAlternativeStore`
JaffaKetchup Feb 25, 2024
77a1a4b
Improved error/exception handling
JaffaKetchup Feb 26, 2024
0f062ca
Fixed bugs in `deleteTiles`
JaffaKetchup Feb 27, 2024
0f11718
Updated minimum SDK requirements
JaffaKetchup Feb 27, 2024
0b5d495
Updated GitHub Workflow
JaffaKetchup Feb 27, 2024
c0fe062
Updated GitHub Workflow
JaffaKetchup Feb 27, 2024
6345ea4
Updated GitHub Workflow
JaffaKetchup Feb 27, 2024
987c1d9
Updated GitHub Workflow
JaffaKetchup Feb 27, 2024
ae854c9
Updated GitHub Workflow
JaffaKetchup Feb 27, 2024
7a3adac
Updated Windows installation bundler setup config
JaffaKetchup Feb 27, 2024
28f731e
Moved `tileImage` back to `StoreStats`
JaffaKetchup Feb 28, 2024
c714726
Updated GitHub Workflow
JaffaKetchup Feb 28, 2024
ab7a6a7
Updated GitHub Workflow
JaffaKetchup Feb 28, 2024
27e8291
Fixed bug in `removeOldestTilesAboveLimit`
JaffaKetchup Feb 28, 2024
29bafba
Fixed bug in bulk downloader (`htWriteTile(s)`)
JaffaKetchup Feb 28, 2024
84b14c3
Fixed bug in `rootSize` calculation
JaffaKetchup Feb 28, 2024
417cdfe
Improved error handling
JaffaKetchup Feb 29, 2024
cfca5f5
Improved error handling
JaffaKetchup Mar 1, 2024
d98070e
Updated GitHub Workflow
JaffaKetchup Mar 2, 2024
2f8be26
Implemented exporting stores functionality
JaffaKetchup Mar 4, 2024
06e70e9
Progressed with importing implementation
JaffaKetchup Mar 5, 2024
f2a2b02
Prepared for v9.0.0-dev.6 prerelease
JaffaKetchup Mar 7, 2024
3e7848f
Added generated code to package
JaffaKetchup Mar 7, 2024
41ae35e
Fixed formatting issue
JaffaKetchup Mar 7, 2024
a493ce8
Converted named library part-of directives to string paths
JaffaKetchup Mar 7, 2024
f964180
Minor improvements
JaffaKetchup Mar 7, 2024
798f5ff
Fixed GitHub Workflow
JaffaKetchup Mar 7, 2024
be9164b
Fixed GitHub Workflow
JaffaKetchup Mar 7, 2024
39fc313
Added documentation to all remaining public members & improved existi…
JaffaKetchup Mar 17, 2024
ec513e7
Added initialisation error handler to example app
JaffaKetchup Mar 17, 2024
52a0aff
Improved documentation
JaffaKetchup Mar 19, 2024
effd926
Updated README
JaffaKetchup Mar 20, 2024
f007704
Minor documentation improvements
JaffaKetchup Mar 24, 2024
2a9d71a
Minor improvements
JaffaKetchup Mar 31, 2024
92df6c7
Fixed severe bug with browse caching
JaffaKetchup Mar 31, 2024
f27ac76
Implemented import phase 1
JaffaKetchup Mar 31, 2024
9f1b716
Fixed bugs
JaffaKetchup Mar 31, 2024
3437111
Implemented (worker side) tile importing (for `skip` and `rename` `Im…
JaffaKetchup Mar 31, 2024
50627c8
Fixed bugs
JaffaKetchup Apr 2, 2024
c6fd6f1
Made download progress UI responsive in example app
JaffaKetchup Apr 2, 2024
fdbbcad
Added support for `ImportConflictStrategy.replace`
JaffaKetchup Apr 2, 2024
22ccf01
Fixed GitHub workflow
JaffaKetchup Apr 2, 2024
2c35146
Partially added (buggy) support for `ImportConflictStrategy.merge`
JaffaKetchup Apr 2, 2024
5887d27
Fixed bugs
JaffaKetchup Apr 3, 2024
96c25a3
Prepared for final prerelease
JaffaKetchup Apr 3, 2024
0d38b5b
Empty Commit
JaffaKetchup Apr 3, 2024
75cf594
Improved automated tests
JaffaKetchup Apr 3, 2024
bc54ce6
Fixed GitHub Workflow
JaffaKetchup Apr 4, 2024
210b92f
Added more tests
JaffaKetchup Apr 4, 2024
94b8de7
Fixed "User-Agent" "FMTC" identifier injection
JaffaKetchup Apr 7, 2024
0c270eb
Improved `removeOldestTilesAboveLimit` debouncing mechanism and retur…
JaffaKetchup Apr 8, 2024
8177408
Improved documentation
JaffaKetchup Apr 9, 2024
9de462f
Fixed deprecations
JaffaKetchup Apr 9, 2024
f3f5bc7
Added tracking support to recovery system to skip downloading already…
JaffaKetchup Apr 11, 2024
67c0c16
Fixed failing tests
JaffaKetchup Apr 11, 2024
eff5034
Reduced unnecessary storage consumption
JaffaKetchup Apr 11, 2024
cd50945
Prepare for v9 release
JaffaKetchup Apr 11, 2024
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
16 changes: 0 additions & 16 deletions .github/workflows/delete_old_runs.yml

This file was deleted.

256 changes: 171 additions & 85 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,89 +1,175 @@
name: Analyse & Build
on: [push, workflow_dispatch]
name: CI/CD
on:
push:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true

jobs:
package-analysis:
name: "Analyse Package"
runs-on: ubuntu-latest
if: github.event.head_commit.message != 'Built Example Applications'
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Run Dart Package Analyser
uses: axel-op/dart-package-analyzer@v3
id: analysis
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
- name: Check Package Scores
env:
TOTAL: ${{ steps.analysis.outputs.total }}
TOTAL_MAX: ${{ steps.analysis.outputs.total_max }}
run: |
if (( $TOTAL < $TOTAL_MAX ))
then
echo Total score below expected minimum score. Improve the score!
exit 1
fi
score-package:
name: "Score Package"
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@master
- name: Run Dart Package Analyser
uses: axel-op/dart-package-analyzer@master
id: analysis
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
- name: Check Package Scores
env:
TOTAL: ${{ steps.analysis.outputs.total }}
TOTAL_MAX: ${{ steps.analysis.outputs.total_max }}
run: |
if (( $TOTAL < $TOTAL_MAX ))
then
echo Package score less than available score. Improve the score!
exit 1
fi

analyse-code:
name: "Analyse Code"
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@master
- name: Setup Flutter Environment
uses: subosito/flutter-action@main
with:
channel: "beta"
- name: Get Package Dependencies
run: flutter pub get
- name: Get Example Dependencies
run: flutter pub get -C example
- name: Get Test Tile Server Dependencies
run: dart pub get -C tile_server
- name: Check Formatting
run: dart format --output=none --set-exit-if-changed .
- name: Check Lints
run: dart analyze --fatal-warnings

run-tests:
name: "Run Tests"
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@master
- name: Setup Flutter Environment
uses: subosito/flutter-action@main
with:
channel: "beta"
- name: Get Dependencies
run: flutter pub get
- name: Install ObjectBox Libs For Testing
run: cd test && bash <(curl -s https://raw.githubusercontent.com/objectbox/objectbox-dart/main/install.sh) --quiet
- name: Run Tests
run: flutter test -r expanded

content-analysis:
name: "Analyse Contents"
runs-on: ubuntu-latest
if: github.event.head_commit.message != 'Built Example Applications'
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Flutter Environment
uses: subosito/flutter-action@v2
with:
channel: "stable"
- name: Get All Dependencies
run: flutter pub get
- name: Check Formatting
run: dart format --output=none --set-exit-if-changed .
- name: Check Lints
run: dart analyze --fatal-infos --fatal-warnings
build-demo-android:
name: "Build Demo App (Android)"
runs-on: ubuntu-latest
needs: [analyse-code, run-tests]
defaults:
run:
working-directory: ./example
steps:
- name: Checkout Repository
uses: actions/checkout@master
- name: Setup Java 17 Environment
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "17"
- name: Setup Flutter Environment
uses: subosito/flutter-action@main
with:
channel: "beta"
- name: Build
run: flutter build apk --obfuscate --split-debug-info=./symbols
- name: Upload Artifact
uses: actions/[email protected]
with:
name: android-demo
path: example/build/app/outputs/apk/release
if-no-files-found: error

build-example:
name: "Build Example Applications"
runs-on: windows-latest
needs: [content-analysis, package-analysis]
if: github.event.head_commit.message != 'Built Example Applications'
defaults:
run:
working-directory: ./example
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Java 17 Environment
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "17"
- name: Setup Flutter Environment
uses: subosito/flutter-action@v2
with:
channel: "stable"
- name: Remove Existing Prebuilt Applications
run: Remove-Item "prebuiltExampleApplications" -Recurse -ErrorAction Ignore
working-directory: .
- name: Create Prebuilt Applications (Output) Directory
run: md prebuiltExampleApplications
working-directory: .
- name: Get All Dependencies
run: flutter pub get
- name: Build Android Application
run: flutter build apk --obfuscate --split-debug-info=/symbols
- name: Move Android Application To Output Directory
run: move "example\build\app\outputs\flutter-apk\app-release.apk" "prebuiltExampleApplications\AndroidApplication.apk"
working-directory: .
- name: Build Windows Application
run: flutter build windows --obfuscate --split-debug-info=/symbols
- name: Create Windows Application Installer
run: iscc "windowsApplicationInstallerSetup.iss"
working-directory: .
- name: Commit Output Directory
uses: EndBug/[email protected]
with:
message: "Built Example Applications"
add: "prebuiltExampleApplications/"
default_author: github_actions
build-demo-windows:
name: "Build Demo App (Windows)"
runs-on: windows-latest
needs: [analyse-code, run-tests]
defaults:
run:
working-directory: ./example
steps:
- name: Checkout Repository
uses: actions/checkout@master
- name: Setup Flutter Environment
uses: subosito/flutter-action@main
with:
channel: "beta"
- name: Build
run: flutter build windows --obfuscate --split-debug-info=./symbols
- name: Create Installer
run: iscc "windowsApplicationInstallerSetup.iss"
working-directory: .
- name: Upload Artifact
uses: actions/[email protected]
with:
name: windows-demo
path: windowsTemp/WindowsApplication.exe
if-no-files-found: error

build-tile-server-windows:
name: "Build Tile Server (Windows)"
runs-on: windows-latest
needs: [analyse-code, run-tests]
defaults:
run:
working-directory: ./tile_server
steps:
- name: Checkout Repository
uses: actions/checkout@master
- name: Setup Dart Environment
uses: dart-lang/[email protected]
- name: Get Dependencies
run: dart pub get
- name: Get Dart Dependencies
run: dart pub get
- name: Generate Tile Images
run: dart run bin/generate_dart_images.dart
- name: Compile
run: dart compile exe bin/tile_server.dart
- name: Upload Artifact
uses: actions/[email protected]
with:
name: windows-ts
path: tile_server/bin/tile_server.exe
if-no-files-found: error

build-tile-server-linux:
name: "Build Tile Server (Linux/Ubuntu)"
runs-on: ubuntu-latest
needs: [analyse-code, run-tests]
defaults:
run:
working-directory: ./tile_server
steps:
- name: Checkout Repository
uses: actions/checkout@master
- name: Setup Dart Environment
uses: dart-lang/[email protected]
- name: Get Dependencies
run: dart pub get
- name: Run Pre-Compile Generator
run: dart run bin/generate_dart_images.dart
- name: Compile
run: dart compile exe bin/tile_server.dart
- name: Upload Artifact
uses: actions/[email protected]
with:
name: linux-ts
path: tile_server/bin/tile_server.exe
if-no-files-found: error
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Custom
local/
.fvm/
test/lib/

# Miscellaneous
*.class
Expand Down
1 change: 0 additions & 1 deletion .pubignore

This file was deleted.

2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"version": "0.2.0",
"configurations": [
{
"name": "Run Example App",
"name": "Run Demo App",
"request": "launch",
"type": "dart",
"program": "example/lib/main.dart"
Expand Down
6 changes: 0 additions & 6 deletions .vscode/settings.json

This file was deleted.

10 changes: 4 additions & 6 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,19 @@
"version": "2.0.0",
"tasks": [
{
"type": "flutter",
"command": "flutter",
"type": "dart",
"command": "dart",
"args": [
"pub",
"run",
"build_runner",
"build",
"--delete-conflicting-outputs"
"build"
],
"problemMatcher": [
"$dart-build_runner"
],
"group": "build",
"label": "Run Code Generator",
"detail": "flutter pub run build_runner build"
"detail": "dart run build_runner build"
}
]
}
Loading
Loading