Skip to content

Version 5#44

Merged
JaffaKetchup merged 96 commits intomainfrom
v5
Aug 3, 2022
Merged

Version 5#44
JaffaKetchup merged 96 commits intomainfrom
v5

Conversation

@JaffaKetchup
Copy link
Copy Markdown
Owner

@JaffaKetchup JaffaKetchup commented Feb 26, 2022

Currently completed tasks:

  • Remove artefacts and deprecated APIs from v3 to v4 migration
  • Use a simpler, shorter API to use most functionality (see below)
  • Separate tile storage from other storage, such as metadata and stat caching - allowing for...
    • Cache expensive statistics in the filesystem, thus greatly increasing performance
    • Add of more complex statistics, such as suggested in a comment (Version 5 #44 (comment))
  • Allow more than one download recovery per store
  • Add metadata - simple key/value pair filesystem based - storage
  • Add filesystem migration detection and methods for v4 stores

Other planned tasks such as:

  • Archiving of stores and exporting to external storage and/or sharing
  • Methods to conveniently use 'flutter_osrm' (currently in unstable alpha)

... will now be implemented at a later stage, potentially as part of v5.1.0


There will be major breaking changes as part of this. Apologies for any inconvenience caused by this.

  • v4 stores will be incompatible with v5 (this may be fixed by a built-in detector and fixer)
  • v4 syntax will be mostly incompatible with v5

There is currently no due date. In fact, at present, there is no guarantee that this will be implemented, due to external limitations. I have not pre-tested anything, so all is subject to change.

Added `recreateStore` to `MapCachingManager`s
@JaffaKetchup JaffaKetchup added the feature This issue requests a new feature label Feb 26, 2022
@JaffaKetchup JaffaKetchup self-assigned this Feb 26, 2022
JaffaKetchup and others added 27 commits March 9, 2022 17:45
Added basics for multi-recovery support
Added basics for recovery identification/description
Added internal extensions on `Directory`
Improved `StoreDirectory` construction
Remove `rootDirectory` option from `StorageCachingTileProvider`
Bug fixes
Improved workflows to enforce consistency
Tried new dot syntax access (broken)
Improved project source file organisation
Improved statistic getters performances
Removed unnecessary 'collection' dependency
Deleted only `MapCachingManager` files
Made `FMTCSettings` easier to use and maintain
Made tile provider easier to use
Removed debugging stopwatch
Started bulk download tools migration
Moved tile provider source file to better location
Improved documentation
Refactored validators and santisers
Fixed documentation comments
Improve recovery system reliability
Introduce `downloadID`
Finish migration from old syntax
Bug fixes
Linting rules changes
Started adding new store screen to example application
Improved example application appearance on Android devices
Overriden dependency on flutter_map to get newest functionality
Fixed bugs in example applications
Fixed potential bug in `invalidateCachedStatistics` method
Improved documentation
Fixed bugs
Added synchronous version of `invalidateCachedStatistics`
Added `checkTileCached(Async)` method
Refactored and reorganised public APIs
Improved `coverImage` (now `tileImage`) methods
Removed unnecessary code
Updated flutter_map version in pubspec.yaml
Improved README documentation
Improved example application
Improved performance
Moved `tileImage` method from `stats` to `manage`
Added project icon
Added example application icon
@JaffaKetchup
Copy link
Copy Markdown
Owner Author

JaffaKetchup commented Jul 29, 2022

Estimated time now until release is by the end of 2 weeks time max, more likely about 1 week. Looking forward to it!

Anyone interested, there are now prebuilt example applications (for Android and Windows) available for you to test and experiment with at https://github.com/JaffaKetchup/flutter_map_tile_caching/tree/v5/prebuiltExampleApplications. These are automatically kept up to date with every commit. Read about how to use them at https://fmtc.jaffaketchup.dev/get-started/example-application.

@JaffaKetchup
Copy link
Copy Markdown
Owner Author

Now's the time to report a bug or a quick feature you want, anyone here. Everything is pretty much ready!

@tonyshkurenko Thanks for your donation, you're now on the Sponsors list!

If anyone else can donate, I now have a verified GitHub Sponsors account: https://github.com/sponsors/JaffaKetchup. Please donate any amount you can spare, one-time or monthly. This update has taken a huge amount of time and effort, so any amount means a lot to me!

@JaffaKetchup
Copy link
Copy Markdown
Owner Author

JaffaKetchup commented Aug 3, 2022

Thanks to everyone who has stayed around and/or supported me. Feels good to finally have this ready, and I'm happy to answer any questions you may have.

In terms of migration, I haven't provided any specific instructions, so you'll need to figure it out from the new documentation or ask me. Feel free to open an issue or discussion here, or ask me over on the Discord server: https://discord.gg/egEGeByf4q.
It is important to note this page: https://fmtc.jaffaketchup.dev/usage/roots-and-stores/migrator. You should definitely add this to your app before publishing a new version of it.

It's taken this long to get this version released, so please, if you can spare any change, donate to me via the button at the top of this page.

Any feedback is appreciated, and I'd love to know your reasons for using this library!

@JaffaKetchup JaffaKetchup merged commit 3b3a658 into main Aug 3, 2022
@JaffaKetchup JaffaKetchup deleted the v5 branch August 3, 2022 10:30
@antonshkurenko
Copy link
Copy Markdown
Contributor

Gratz!

gitbook-com Bot pushed a commit that referenced this pull request Sep 5, 2022
zeykafx pushed a commit to zeykafx/flutter_map_tile_caching that referenced this pull request Jun 26, 2024
* Deprecated old APIs
Added `recreateStore` to `MapCachingManager`s

* Changes to structure of directories

* Added basics for statistic caching
Added basics for multi-recovery support
Added basics for recovery identification/description
Added internal extensions on `Directory`

* Improved `Recovery` time infomation flow
Improved `StoreDirectory` construction
Remove `rootDirectory` option from `StorageCachingTileProvider`
Bug fixes

* Edited report templates
Improved workflows to enforce consistency
Tried new dot syntax access (broken)

* Fully-ish migrated `StoreDirectory` to new access methods
Improved project source file organisation

* Migrate `RootDirectory` to new format similar to `StoreDirectory`
Organise project

* Finished migrating statistic getters
Improved statistic getters performances
Removed unnecessary 'collection' dependency
Deleted only `MapCachingManager` files

* Added watchers

* Migrated tile provider to new system
Made `FMTCSettings` easier to use and maintain
Made tile provider easier to use

* Improved package import files
Removed debugging stopwatch
Started bulk download tools migration
Moved tile provider source file to better location
Improved documentation

* Add Flutter 3 Support

* Changed linter rules to more strict custom linting

* Updated linter rules
Refactored validators and santisers
Fixed documentation comments
Improve recovery system reliability

* Change recovery system to be more reliable
Introduce `downloadID`
Finish migration from old syntax

* Start new example application
Bug fixes
Linting rules changes

* Added basic key-value pair storage as `StoreMetadata`
Started adding new store screen to example application
Improved example application appearance on Android devices
Overriden dependency on flutter_map to get newest functionality
Fixed bugs in example applications
Fixed potential bug in `invalidateCachedStatistics` method

* Prepare for initial prerelease for v5.0.0-dev.1

* Improved example application
Improved documentation
Fixed bugs

* Example application improvements

* Deprecated `preDownloadChecksCallback` argument and associated type
Example application improvements

* Improved example application
Added synchronous version of `invalidateCachedStatistics`
Added `checkTileCached(Async)` method
Refactored and reorganised public APIs
Improved `coverImage` (now `tileImage`) methods
Removed unnecessary code

* Prepared for release of 5.0.0-dev.2 version
Updated flutter_map version in pubspec.yaml
Improved README documentation
Improved example application
Improved performance
Moved `tileImage` method from `stats` to `manage`

* Fix mistake in README

* Fixed README mistake
Added project icon
Added example application icon

* Fixed README mistakes

* Fixed download region areas/positions
Started download start popup
Changed theme primary color

* Updated dependencies
Reorganised code structure
Fixed example application bugs
Updated region drawing methods

* Updated Gradle version of example application
Moved `requestIgnoreBatteryOptimizations` method
Added documentation website to README and pubspec.yaml
Updated dependencies
Added Discord server link to issue template selector
Removed question/help issue template

* Improved example application
Improved statistics watchers

* Improved example application

* Updated dependencies

* Added Basic Downloading Page To Example Application

* Make `FMTCImageProvider` compare store names (JaffaKetchup#57)

* Add credit for @tonyshkurenko

Co-Authored-By: Anton Shkurenko <tonyshkurenko@gmail.com>

* Fixed formatting issues
Fixed lint issues

* Begin changing background download method
Update Gradle version

* Updated to support 'flutter_map' v2
Fixed issue JaffaKetchup#31

* Added Windows build support (JaffaKetchup#58)

Co-authored-by: Mathew Lawrence <Mathew.Lawrence@Snapcomms.com>
Co-authored-by: Luka S <github@jaffaketchup.dev>

* Updated Windows support
Added horizontal orientation support to example application

* Improved background downloading implementation

* Removed unnecessary permissions from example app
Improved in-code documentation
Fixed spelling and grammar mistakes
Refactored internal structure
Removed unecessary code

* Prepared for v5.0.0-dev.3 version release

* Reworked `invalidateCachedStatistics`
Added cache hits and misses statistics

* Fixed cache hits and misses statistics
Updated in-code documentation

* Added v4 to v5 migration methods

* Fixed migrator method

* Prepared for v5.0.0-dev.4 verison release

* Improved example application
Internal refactoring
Improved recovery system
Reworked (partially) statistic change watcher

* Started Reimplementing Estimated Download Durations

* Fixed bugs in example application
Added filesystem sanitiser customisation to `FMTCSettings`
Improved in-code documentation
Broken progress measurements further

* Fixed download estimation calculations
Improved example application
Improved in-code documentation

* Improved example application
Improved in-code documentation

* Improved example application
Prepare for v5.0.0-dev.5 release

* Added example application info page
Improved example application
Removed androidBuilder.sh

* Update README with new donation options

* Fix README donation window

* Improve README donation section

* Attempt 1 @ Adding Auto Build

* Attempt 2 @ Adding Auto Build

* Attempt 3 @ Adding Auto Build

* Attempt 4 @ Adding Auto Build

* Built Example Applications

* Attempt 5 @ Adding Auto Build

* Attempt 6 @ Adding Auto Build

* Attempt 7 @ Adding Auto Build

* Built Example Applications

* Improve auto-builder

* Improve auto-builder

* Test trigger auto-builder

* Built Example Applications

* Improve GitHub Actions Workflows

* Empty Commit

* Revert Changes
Add Automatic Workflow Runs Deleter

* Added Workflow Dipatch To "Delete Old Workflow Runs"

* Improve Workflows
Trigger Example Application Rebuild

* Built Example Applications

* Updated To 'actions/checkout@v3'
Remove 10pt Error Allowance From Package Analysis

* Finished example application

* Built Example Applications

* Fixed spelling mistakes in in-code documentation
Moved `migrator` to `RootDirectory`
Internal structure reorganisation

* Prepare for v5.0.0-dev.6 release
Fixed multiple bugs in library and example application
Added cancel download button to example application
Converted `DownloadManagement` to a singleton object
Improved in-code documentation

* Built Example Applications

* Renamed and refactored internal and public APIs, ready for release
Added `successfulSize` statistic to `DownloadProgress`
Improved example application
Improved documentation
Fixed bugs

* Built Example Applications

* Fixed misleading `DownloadProgress` statistic `remainingTiles`

* Improved documentation

Co-authored-by: Boldizsár Tóth <39193138+sn4k3ch4rm3r@users.noreply.github.com>
Co-authored-by: Anton Shkurenko <tonyshkurenko@gmail.com>
Co-authored-by: FireAndIceFrog <60675668+FireAndIceFrog@users.noreply.github.com>
Co-authored-by: Mathew Lawrence <Mathew.Lawrence@Snapcomms.com>
Co-authored-by: JaffaKetchup <JaffaKetchup@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Former-commit-id: c238a9accef18f4cef0f2dda369e14e91e1b65d8 [formerly 3b3a658]
Former-commit-id: c0cbff97269ae411bd4023f0c15d9be7b49316e2
@astheras astheras mentioned this pull request May 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature This issue requests a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants