OsmAndMapDownloader

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2025-09-07
13:26
Tests: Use the smallest available map for the full stack test, to reduce test time and server/bandwidth use Leaf check-in: c884a342db user: thomas tags: trunk
13:24
Fix tests for MeteredSeekableHTTPFile check-in: eb5042b1fe user: thomas tags: trunk
11:12
Rip out all SQL-related changes from [17f46436b6498c7a]. Moving the OsmAnd data directory to a writable location (Android/media/net.osmand) is a better solution, and also allows direct, in-line updates without needing to manually move the files to the target directory. check-in: 2ea642b8b9 user: thomas tags: trunk
2025-08-12
09:56
Move logic to (de-)select all shown for download from DownloadSelectionPage into the MapFilterModel. Optimized performance by not emitting the dataChanged signal for each individual table cell. Only emit dataChanged with a range of affected cells once that is completed. This cuts down execution time in GUI code and removes a hacky workaround. check-in: c6df80399f user: thomas tags: release, trunk, v0.6.3
2025-08-10
21:23
Release v0.6.2 with new performance optimizations. check-in: 90ae885560 user: thomas tags: release, trunk, v0.6.2
21:22
DownloadWorker: Also retry on zipfile.BadZipFile errors. Closed-Leaf check-in: 3f4ac98e95 user: thomas tags: optimization_attempts
21:17
MeteredSeekableHTTPFile: Throttle progress reports to 10/s. check-in: 2c62b75535 user: thomas tags: optimization_attempts
21:07
Minor optimizations. Cache common multiplication result and re-order switch-case cases so that the most-common hit one is hit first. check-in: 02d0fa9be1 user: thomas tags: optimization_attempts
20:40
OnlineMapListModel: Remove a workaround in setData that no longer applies. The total file size is set once the source file is opened, so the workaround for rounded data is not needed. check-in: 6324deb5b6 user: thomas tags: optimization_attempts
20:22
OnlineMapListModel: Read map timestamps, if the file is found in the download directory. check-in: ef3f09347d user: thomas tags: optimization_attempts
19:56
DownloadWorker: No longer store the DownloadManager as an attribute. Grab the used paths in __init__ and keep them as attributes. check-in: f9db9698ab user: thomas tags: optimization_attempts
19:42
OnlineMapListModel: Use static ItemDataRole lists in setData() to not re-create them on each call. check-in: 2f276d4cb2 user: thomas tags: optimization_attempts
19:01
OnlineMapListModel: Optimize flags(). Pre-compute all flag combinations. Add ItemNeverHasChildren. Remove ItemIsEnabled and ItemIsSelectable. The latter stops the UI from selecting cells during scrolling, causing a much smoother experience. check-in: aa18cc1d2f user: thomas tags: optimization_attempts
16:34
Optimization: Directly set download progress on the source model, instead of going throught the proxy model. check-in: 0e684a3fb6 user: thomas tags: optimization_attempts
16:15
Remove spammy log lines and log on which thread the DownloadRunner runs. check-in: 0eacaea91d user: thomas tags: optimization_attempts
15:04
Fix wheel: Enable compiling resources during the package build. Release 0.6.1 check-in: 49fac87756 user: thomas tags: optimization_attempts
14:58
Improve compatibility with Android 13+, which doesn't allow access to Android/data/net.osmand/files. Store timestamps in an internal database to log downloads, to have the dates available to show available updates. check-in: 17f46436b6 user: thomas tags: release, trunk, v0.6.0
14:55
Bump version to 0.6.0 Closed-Leaf check-in: da5e7c6f9b user: thomas tags: android_13_compat
14:50
Fix type errors, mismatches in file names between the map list parser and the download manager, and a bug in the resource path resolution. check-in: 9fb8af6190 user: thomas tags: android_13_compat
14:21
Store map timestamps of downloaded maps into a local database. check-in: 10f81478ec user: thomas tags: android_13_compat
11:48
Add support for opening SQLite3 databases with schema population. check-in: 01e2ab4b1d user: thomas tags: android_13_compat
11:44
Moved osmdownload/ui/common.py -> osmdownload/common.py check-in: 887ddcbe23 user: thomas tags: android_13_compat
11:42
Add PyHamcrest 2.0 to the main dependencies. check-in: 1cf36270d2 user: thomas tags: android_13_compat
2025-08-09
21:00
Add a database schema to the compiled resources archive. The database stores timestamps of previously downloaded maps. When a download finishes, the server timestamp will be logged, so that the set of downloaded maps and their last update timestamp will be known, even if reading the directory with them is not possible. check-in: b49721aabc user: thomas tags: android_13_compat
20:55
Update the resource compiler script, add the resources type hinting stub, and include compiled resources in the built wheel. check-in: 36b8cf21f8 user: thomas tags: android_13_compat
15:23
Remove all references to the OSMAnd data directory. That is no longer accessible on Android 13+, unless the device is rooted. check-in: 28c5901d10 user: thomas tags: android_13_compat
15:01
Remove the androidhelper imports that weren't working since the app no longer runs on QDroid. check-in: 37f156aebc user: thomas tags: trunk
12:19
Release v0.5.2, fixing the BadZipFile errors. check-in: 9e40b92b37 user: thomas tags: release, trunk, v0.5.2
12:15
MeteredSeekableHTTPFile: Fix seeking from the end (whence=2). Optimize small positive seeks by simply consuming the data, instead of re-opening the file check-in: cd03dc5507 user: thomas tags: trunk
11:45
Fix warnings about Qt parent/child relationships across threads. Do not pass parent to MeteredSeekableHTTPFile __init__(). check-in: 49078983b5 user: thomas tags: trunk
11:26
MeteredSeekableHTTPFile: Fix warnings and failing tests. check-in: 6d909233c2 user: thomas tags: trunk
11:19
Update pyproject.toml format, fixing deprecation warnings. Update dependencies: Use setuptools 77+, which supports the new format. Require pytest-qt >= 4.5, which fixes warnings when used with PySide6. Depend on PySide 6.8, which is used by PyDroid3 check-in: 5bc51ace9c user: thomas tags: trunk
2025-05-06
09:30
DownloadProgressPage: Hide the server date column. Only show the map name and the progress during downloads. check-in: ddd1ee9e3b user: thomas tags: trunk
09:25
Release v0.5.1 check-in: 393e4d4aef user: thomas tags: release, trunk, v0.5.1
09:23
SettingsPage: Move file system "Browse…" buttons up next to the label. Widen the line edits showing those paths to use the full page width check-in: e258253e53 user: thomas tags: trunk
09:19
Reclaim additional screen space by setting all outer layout margins to zero pixels. check-in: 12c3b6e249 user: thomas tags: trunk
09:16
Disable the "Start Download" button, if no maps are selected to download check-in: c0acc8c86a user: thomas tags: trunk
09:13
Use a shared signal container for slightly improved performance check-in: 1360db73e3 user: thomas tags: trunk
2024-10-18
12:50
All DownloadWorker instances share a single WorkerSignals instance in an attempt to optimize for performance. Also refactor task cancellation Closed-Leaf check-in: 3bd728e0b4 user: thomas tags: shared_signal_container
2023-11-18
13:06
Port to PySide6. Release as version 0.5.0. check-in: 29fa38a55c user: thomas tags: release, trunk, v0.5.0
13:04
Updated README. Closed-Leaf check-in: f9e62b8fd2 user: thomas tags: port_pyside6
13:01
Avoid a segmentation fault in test_map_filter_model.py pytest fixture. The filter model has to be detached in teardown code. Otherwise the garbage collector deletes the source while the filter model still holds a reference, causing a crash. Also simplify other pytest fixtures. check-in: 1c4ac8eaae user: thomas tags: port_pyside6
12:54
Merge with trunk. check-in: f938a4945b user: thomas tags: port_pyside6
2023-09-02
19:42
Release v0.4.0 check-in: e7f1b2ea52 user: thomas tags: release, trunk, v0.4.0
19:41
Redesigned Ui loading to be in line with my other, more recent projects. Packaging is now performed via a script, obsoleting setup.py. For packaging, the UI files are compiled to importable Python modules, which are then imported. Split the base classes and Ui classes. I.e. those are no longer combined via multiple inheritance. check-in: 7bf9ef3380 user: thomas tags: trunk
18:40
Dependencies: Replace the deprecated appdirs with platformdirs. check-in: c42dab3399 user: thomas tags: trunk
18:38
Update the MeteredSeekableHTTPFile to the newest, tested version. check-in: badb185a59 user: thomas tags: trunk
18:21
Update copyright notices. check-in: 9d03b4ea80 user: thomas tags: trunk
18:02
OnlineMapListModel: Completely replace if/elif construct in data() with lambdas in nested dicts. check-in: 130a4259df user: thomas tags: trunk
16:22
OnlineMapListModel: Further simplify setData(). check-in: 99120a83c6 user: thomas tags: trunk