Many thanks to my sponsors, no matter how much or how little they donated. Sponsorships & donations allow me to continue my projects and upgrade my hardware/setup, as well as allowing me to have some starting amount for further education and such-like.
- @tonyshkurenko
- @Mmisiek
- @huulbaek
- @andrewames
- @ozzy1873
- @mohammedX6
- @weishuhn
- and 3 anonymous or private donors
- Bulk downloading has been rewritten to use a new implementation that generates tile coordinates at the same time as downloading tiles
check
ing the number of tiles in a region now uses a significantly faster and more efficient implementation- Starting a download no longer causes significant memory bloat, which could crash the app on large regions
- Starting a download is now much quicker and closer to constant time, as tile coordinates don't need to be pre-generated
- Cancelling a download no longer causes many
QueueCancelledException
s to be thrown, which could crash the app - Removed reliance on 'queue' dependency in order to squeeze as much speed as possible out of the new implementation
- Other improvements
initialise
now automatically renames databases if their filename ID doesn't match their name hashinitialise
can now throw a more usefulFMTCInitialisationException
with improved clarity- Methods that require a valid store descriptor object to be present now throw
FMTCDamagedStoreException
if it is not present
- Other bug fixes
FMTCImageProvider
's oldest tile deleter & bulk downloading now respects custom root directoriesFMTCImageProvider
now evicts failed images from Flutter'sImageCache
to prevent errors
- Added support for custom
HttpClient
s/BaseClient
s - Added support for Isar v3.1 (bug fixes & stability improvements)
- Stability improvements
- Starting multiple downloads no longer causes
LateInitializationErrors
- Migrator storage and memory usage no longer spikes as significantly as previously, thanks to transaction batching
- Opening and processing of stores on initialisation is more robust and less error-prone to filename variations
- Root statistic watching now works on all platforms
- Starting multiple downloads no longer causes
- Multiple minor bug fixes and documentation improvements
- Added
maxStoreLength
config to example app
- Minor bug fixes
- Major bug fixes
- Added debug mode
- Added URL query params obscurer feature
- Added
headers
andhttpClient
parameters togetTileProvider
- Minor documentation improvements
- Minor bug fixes
- Minor changes to example application
- Minor bug fixes
- Minor improvements
- Migrated to Isar database
- Major performance improvements, thanks to Isar
- Added buffering to bulk tile downloading
- Added method to catch tile retrieval errors
- Removed v4 -> v5 migrator & added v6 -> v7 migrator
- Removed some synchronous methods from structure management
- Removed 'fmtc_advanced' import file
Plus the usual:
- Minor performance improvements
- Bug fixes
- Dependency updates
- Documentation improvements
- Performance improvements
- Changed license to GPL v3
- Updated dependencies
- Fixed bugs within import functionality
- Added support for notifications on Android 13+
- Improved performance
- Updated dependencies
- Improved stability
- Updated dependencies
- Added support for flutter_map v3
- Fixed bugs
- Improved example application
- Fixed bugs
- Updated dependencies
- Improved example application
- Added import/export functionality
- Improved example application
- Improved documentation
- Fixed bugs
- Renamed and refactored internal and public APIs, ready for release
- Added
successfulSize
statistic toDownloadProgress
- Improved example application
- Improved documentation
- Fixed bugs
- Polish and preparations for full v5 release
- Moved
migrator
intorootDirectory
to fix bugs - Converted
DownloadManagement
to a singleton object - Finished example application
- Improved documentation
- Fixed bugs
- Improved download time estimates and added tiles per second statistic
- Added custom filesystem string sanitiser setting to
FMTCSettings
- Improved statistic watchers
- Improved example application
- Improved documentation
- Fixed bugs
- Added cache hits and misses statistics
- Added v4 to v5 file structure migration methods
- Reworked
invalidateCachedStatistics
- Improved documentation
- Fixed bugs
- Improved example application
- Updated Gradle for example application
- Improved documentation
- Improved background downloading implementation
- Added support for 'flutter_map' v2.0.0
- Added Windows support to example application
- Fixed multiple bugs
- Example application improvements
- README documentation improvements
- Deprecated
preDownloadChecksCallback
- Added
checkTileCached
to tile provider - Refactored and reorganised public APIs (eg. moved
tileImage
fromstats
tomanage
)
- Widespread syntax changes
- Added custom metadata storage functionality
- Added statistic caching to improve performance somewhat
- Start of new example application for better performance and Material 3 support
- Documentation improvements
- Specification of platform support
- Internal refactoring and reorganization
- Fix bug #45 (on GitHub)
- Miscellaneous changes
- Check file system watching is supported before usage
- Incorporate all pre-releases
- Example improvements - new example app still in progress
- Improve estimations for downloading durations (still needs tweaking)
- Upgraded Dart and Flutter versions
- Fix bug #41 (on GitHub)
- Fix bug #41 (on GitHub)
- Bumped 'flutter_local_notifications' version to v9.2.0
- Fixed major performance issues
- Example improvements - new example app still in progress
- Tweaked
AsyncMapCachingManager
&MapCachingManager
- Replaced assertions with throws
- Internal refactoring
- Added build tools
- Recovery system reworked - needs testing
- Added linter
- Added new functionality:
AsyncMapCachingManager
(extension methods) - Added new functionality: debouncing for
watch...
methods inMapCachingManager
- Added new functionality:
emptyStore()
inMapCachingManager
- Fixed inaccurate size reporting
- Example improvements - new example app still in progress
- General changes to README
- New example app (in progress)
- Added
coverImage()
functionality - General improvements
- Fixed issues for web compilation (needs more testing)
- Acknowledged issue with dynamic tile source swapping (see #31 on GitHub), still needs resolving
- Major performance improvements through custom
ImageProvider
- Automatic cache store creation on initialization of
StorageCachingTileProvider
andMapCachingManager
- Added watchable stream to
MapCachingManager
to listen to changes in statistics - Removed 'network_to_file_image' dependency
- Fixed and improved 'browse caching' logic
- Better hidden internal constructors
- Deprecated and removed some functionality
- Added pre-download check functionality
- Added ability to change caching behaviour
- Rewritten tile provider part to be smaller and more efficient
- Updated & fixed example
- Project reorganisation
- Updated tests
- Deprecated circle extensions to match new 'standard'
- Pleased Flutter formatter
- Updated example
- Fixed serious
Isolate
bugs that prevented downloads by removing the isolate system - Added 'prettyPaint'ing to
LineRegion
- Some performance improvements and internal refactoring
- Added more Installation instructions
- BUG
LineRegion
does not report an estimated amount of tiles in the example - Updated tests
- Added multithreading to download loop (thanks to GitHub contributor Abdelrahman-Sherif)
- Add line tile loop (not complete, some bugs)
- Added precise recovery mode (requires testing)
- Changed tests to only use one thread
- Edited README
- Taken some features out of experimental
- Removed broken
compressionQuality
- Removed encoded polyline conversion functionality
- ... and more
- Fix bug #32 (on GitHub)
- Update .gitignore
- Update README to recommend v4
- Created recovery system
- Added new examples
- Improved automated tests
- Deprecated shape chooser
- Deprecated some extension methods
- Working on example app
- Add more customization to background download notifications
- Some testing and bug fixes still required
- Update to documentation README still required
- Created automated tests
- Reworked
DownloadProgress()
, adding many more statistics - Add way to rename existing store
- Large refactoring and reduction of code duplication
- Performance improvements
- Marked some experimental functionality as experimental, ready for release
- Added re-download prevention option
- Added sea tile removal
- Added compression option (needs manual testing)
- Fix bug #20 (on GitHub)
- Updated README
- Bug fixes
- Re-introduction of tile count limiter
- Improve documentation
- Migrate to filesystem API
- Add basic preload surroundings widgets
- Fix bugs
- Improve documentation
- Allow manual control over
forceAlarmManager
, off by default - Remove very old APIs
- Deprecate old APIs
- Removal of tile count limiter
- Fix bug #17 (on GitHub)
- Removed an invalid example
- Updated README
- Last quick fixes
- Publish to pub.dev
- Use AlarmManager for background tasks to resolve issues
- Deprecate old APIs
- Move to more appropriate date system for changelog
- Rewritten documentation
- Improved examples
- Improved easy shape chooser
- Huge refactoring to make methods easier to use and more flexible
- Addition of circle region
- Refactoring of square region
- Removal of tuple from main methods
- Addition of ability to exclude pure sea tiles
- Addition of multiple caching tables
- Performance improvements
- Add donation method
- Add GitHub actions
- Added easy shape chooser
- Publish to pub.dev
- Null safety finalised
- Attempt to publish (failed)
- Increased default values (increased default cache limit (tiles) to 20000 and default cache duration to 31 days)
- Improved readme (added badges, simplified a calculation and increased detail on how to install and import)
- Re-organised file structure to match recommended layout
- Added changelog heading to please linter
- Fixed issues with WMS tile layer options
- DO NOT UPDATE TO THIS VERSION as there is a full new release coming soon
- Enable sound null-safety (Breaking Change: Only SDK
>= 2.12.0
allowed)
- Initial release
- First publish to pub.dev