{ "2.7.1": { "content": [ "• Fixed operator profile selection being lost when moving node position, adjusting direction, or changing profiles" ] }, "2.6.4": { "content": [ "• Added imperial units support (miles, feet) in addition to metric units (km, meters)", "• Moved units setting from Navigation to Language & Region settings page", "• Search text now automatically clears when route planning starts" ] }, "2.6.3": { "content": [ "• Improved first launch experience - location permission is now requested immediately after welcome dialog", "• Prevent edit submissions where nothing (location, tags, direction) has been changed", "• Allow customizing changeset comment on refine tags page", "• Moved upload queue pause toggle to upload queue screen for better discoverability" ] }, "2.6.2": { "content": [ "• Enhanced edit workflow; new '' profile preserves current tags while allowing direction and location edits", "• New '' profile when editing nodes with operator tags; preserves operator details automatically", "• Tag pre-population; existing node values automatically fill empty profile tags to prevent data loss" ] }, "2.6.1": { "content": [ "• Simplified network status indicator - cleaner state management", "• Improved error handling for surveillance data requests", "• Better status reporting for background vs. user-initiated requests" ] }, "2.6.0": { "content": [ "• Fix slow node loading, offline node loading", "• Prevent submissions when we have no data in that area" ] }, "2.5.0": { "content": [ "• NEW: 'Get more...' button in profile dropdowns - easily browse and import profiles from deflock.me/identify", "• NEW: Profile creation choice dialog - when adding profiles in settings, choose between creating custom profiles or importing from website", "• Enhanced profile discovery workflow - clearer path for users to find and import community-created profiles" ] }, "2.4.4": { "content": [ "• Search results now prioritize locations near your current map view" ] }, "2.4.3": { "content": [ "• Fixed 360° FOV rendering - devices with full circle coverage now render as complete rings instead of having a wedge cut out or being a line", "• Fixed 360° FOV submission - now correctly submits '0-360' to OpenStreetMap instead of incorrect '180-180' values, disables direction slider" ] }, "2.4.1": { "content": [ "• Save button moved to top-right corner of profile editor screens", "• Fixed issue where FOV values could not be removed from profiles", "• Direction slider is now disabled for profiles with 360° FOV" ] }, "2.4.0": { "content": [ "• Profile import from website links", "• Visit deflock.me for profile links to auto-populate custom profiles" ] }, "2.3.1": { "content": [ "• Follow-me mode now automatically restores when add/edit/tag sheets are closed", "• Follow-me button is greyed out while node sheets are open (add/edit/tag) since following doesn't make sense during node operations", "• Drop support for approximate location since I can't get it to work reliably; apologies" ] }, "2.3.0": { "content": [ "• Concurrent upload queue processing", "• Each submission is now much faster" ] }, "2.2.1": { "content": [ "• Fixed network status indicator timing out prematurely", "• Improved GPS follow-me reliability - fixed sync issues that could cause tracking to stop working", "• Network status now accurately shows 'taking a while' when requests split or backoff, and only shows 'timed out' for actual network failures" ] }, "2.2.0": { "content": [ "• Fixed follow-me sync issues where tracking would sometimes stop working after mode changes", "• Added cancel button to submission guide dialog - users can now go back and revise their submissions", "• When not logged in, submit/edit buttons now say 'Log In' and navigate to account settings instead of being disabled", "• Improved NSI tag suggestions: now only shows values with sufficient usage (100+ occurrences) to avoid rare/unhelpful suggestions like for 'image=' tags", "• Enhanced tag refinement: refine tags sheet now allows arbitrary text entry like the profile editor, not just dropdown selection", "• New tags are now added to the top of the profile tag list for immediate visibility instead of being hidden at the bottom" ] }, "2.1.3": { "content": [ "• Fixed nodes losing their greyed-out appearance when map is moved while viewing a node's tag sheet", "• Improved GPS location handling - follow-me button is now greyed out when location is unavailable", "• Added approximate location fallback - if precise location is denied, app will use approximate location", "• Higher frequency GPS updates when follow-me modes are active for smoother tracking (1-meter updates vs 5-meter)" ] }, "2.1.2": { "content": [ "• New positioning tutorial - first-time users must drag the map to refine location when creating or editing nodes, helping ensure accurate positioning", "• Tutorial automatically dismisses after moving the map at least 1 meter and never shows again" ] }, "2.1.0": { "content": [ "• Profile tag refinement system - any profile tag with an empty value now shows a dropdown in refine tags", "• OSM Name Suggestion Index (NSI) integration - shows most commonly used tag values from TagInfo API, both when creating/editing profiles and refining tags", "• FIXED: Can now remove FOV values from profiles", "• FIXED: Profile deletion while add/edit sheets are open no longer causes a crash" ] }, "1.8.3": { "content": [ "• Fixed node limit indicator disappearing when navigation sheet opens during search/routing", "• Improved indicator architecture - moved node limit indicator to screen coordinates for consistency with other UI overlays" ] }, "1.8.2": { "content": [ "• Fixed map positioning for node tags and suspected location sheets - map now correctly centers above sheet when opened", "• Improved sheet transition coordination - prevents map bounce when transitioning from tag sheet to edit sheet", "• Enhanced debugging for sheet height measurement and coordination" ] }, "1.8.0": { "content": [ "• Better performance and reduced memory usage when using suspected location data by using a database" ] }, "1.7.0": { "content": [ "• Distance display when selecting second navigation point; shows distance from first location in real-time", "• Long distance warning; routes over 20km display a warning about potential timeouts" ] }, "1.6.3": { "content": [ "• Fixed navigation sheet button flow - route to/from buttons no longer reappear after selecting second location", "• Added cancel button when selecting second route point for easier exit from route planning", "• Removed placeholder FOV values from built-in device profiles - oops" ] }, "1.6.2": { "content": [ "• Improved node rendering bounds - nodes appear slightly before sliding into view and stay visible until just after sliding out, eliminating edge blinking", "• Navigation interaction conflict prevention - nodes and suspected locations are now dimmed and non-clickable during route planning and route overview to prevent state conflicts", "• Enhanced route overview behavior - follow-me is automatically disabled when opening overview and intelligently restored when resuming based on proximity to route", "• Smart route resume - centers on GPS location with follow-me if near route, or route start without follow-me if far away, with configurable proximity threshold" ] }, "1.6.1": { "content": [ "• Navigation route calculation timeout increased from 15 to 30 seconds - better success rate for complex routes in dense areas", "• Route timeout is now configurable in dev_config for easier future adjustments", "• Fix accidentally opening edit sheet on node tap instead of tags sheet" ] }, "1.6.0": { "content": [ "• Internal code organization improvements - better separation of concerns for improved maintainability", "• Extracted specialized manager classes for map data, interactions, sheets, and navigation", "• Improved code modularity while preserving all existing functionality" ] }, "1.5.4": { "content": [ "• OSM message notifications - dot appears on Settings button and OSM Account section when you have unread messages on OpenStreetMap", "• Download area max zoom level is now limited to the currently selected tile provider's maximum zoom level", "• Navigation route planning now prevents selecting start and end locations that are too close together", "• Cleaned up internal 'maxCameras' references to use 'maxNodes' terminology consistently", "• Proximity warnings now consider pending nodes - prevents submitting multiple nodes at the same location without warning", "• Pending nodes now reappear on the map after app restart - queue items repopulate the visual cache on startup", "• Upload queue screen shows when processing is paused (offline mode or manually paused)" ] }, "1.5.3": { "content": [ "• Uploads now correctly track changeset creation, node operation, and changeset closing as separate steps", "• Upload queue processing is now more robust and continues when individual items encounter errors", "• Enhanced upload error handling - failures in each stage (create changeset, upload node, close changeset) are now handled appropriately", "• Improved upload status display - shows 'Creating changeset...', 'Uploading...', and 'Closing changeset...' with time remaining for changeset close", "• You can now tap the error icon (!) on failed uploads to see exactly what went wrong and at which stage", "• Moved 'Delete OSM Account' link from About page to OSM Account page - now only appears when logged in", "• Removing queue items or clearing the queue now properly removes temporary markers from the map", "• Removed placeholder FOV values from built-in profiles - FOV functionality remains available" ] }, "1.5.2": { "content": [ "• Simplified tile loading architecture - replaced HTTP interception with clean TileProvider implementation", "• Improved tile loading performance - eliminate expensive filesystem searches on every tile request", "• Network status indicator now indicates only node data loading, not tile loading", "• Network status indicator no longer shows false timeouts during surveillance data splitting operations", "• Max nodes setting now correctly limits rendering only (not data fetching)", "• New node limit indicator shows when not all devices are displayed due to rendering limit" ] }, "1.5.1": { "content": [ "• NEW: Bing satellite imagery - high-quality satellite tiles used by the iD editor, no API key required", "• IMPROVED: Enhanced tile provider system with quadkey format support (for Bing Maps and similar providers)", "• IMPROVED: Flexible subdomain patterns - supports both 0-3 and 1-4 subdomain ranges for load balancing", "• IMPROVED: Tile URL validation now accepts either {quadkey} or {x}/{y}/{z} coordinate systems" ] }, "1.5.0": { "content": [ "• NEW: First-submission guide popup - provides essential guidance and links before your first device submission", "• NEW: Manual access to dialogs in Settings > About - view welcome message and submission guide anytime" ] }, "1.4.6": { "content": [ "• IMPROVED: Tile fetching reliability - removed retry limits so visible tiles always load eventually", "• FIXED: Queue management - cancel requests for off-screen tiles, ongoing requests continue normally" ] }, "1.4.5": { "content": [ "• NEW: Minimum zoom level (Z15) enforced for adding and editing surveillance nodes to ensure precise positioning", "• NEW: Minimum zoom level (Z10) enforced for offline area downloads to prevent insanely large areas", "• IMPROVED: Offline area download confirmation now shows as popup with 'View Progress in Settings' button instead of snackbar" ] }, "1.4.4": { "content": [ "• FOV range notation parsing - now supports OSM data like '90-270' (180° FOV centered at 180°)", "• Complex range notation support: 'ESE;90-125;290' displays multiple FOV cones correctly", "• Profiles now support optional specific FOV values", "• Smart cone rendering - variable FOV widths, 360° cameras show full circles" ] }, "1.4.3": { "content": [ "• NEW: Proximity warning when placing nodes too close together - prevents accidental duplicate submissions" ] }, "1.4.2": { "content": [ "• NEW: Dedicated 'Upload Queue' page - queue items are now shown in a proper list view instead of a popup", "• NEW: 'OpenStreetMap Account' page for managing OSM login and account settings", "• NEW: 'View My Edits on OSM' button takes you directly to your edit history on OpenStreetMap" ] }, "1.4.1": { "content": [ "• NEW: 'Extract node from way/relation' option for constrained nodes (currently disabled while we decide what that means)" ] }, "1.4.0": { "content": [ "• IMPROVED: Advanced editing options now only show apps available on your platform (iOS/Android)", "• Supported editors: Vespucci (Android), StreetComplete (Android), EveryDoor (both), Go Map!! (iOS)", "• Web editors (iD, RapiD) remain available on all platforms as before" ] }, "1.3.4": { "content": [ "• NEW: 'Pause Upload Queue' toggle in Offline Settings - stops uploads while keeping live data access", "• Useful for metered connections or when you want to batch uploads later", "• FIXED: Sheets now resize when rotating between orientations" ] }, "1.3.3": { "content": [ "• UX: Edits re-enabled. Only nodes which are part of ways/relations cannot be moved", "• NEW: Added builtin surveillance device profiles for Rekor and Axis Communications ALPR cameras", "• NEW: Advanced editing options - access iD Editor, RapiD, Vespucci, StreetComplete, and other OSM editors", "• NEW: 'View on OSM' links to see nodes directly on OpenStreetMap website", "• UX: Auto-clickable URLs in all tag values - any URL becomes a tappable link", "• UX: Tag lists now scroll with max height to keep buttons and map visible" ] }, "1.3.2": { "content": [ "• HOTFIX: Temporarily disabled node editing to prevent OSM database issues while a bug is resolved", "• UX: Fixed Android navigation bar covering settings page content" ] }, "1.3.1": { "content": [ "• UX: Network status indicator always enabled", "• UX: Direction slider wider on small screens", "• UX: Fixed iOS keyboard missing 'Done' in settings", "• UX: Fixed multi-direction nodes in upload queue", "• UX: Improved suspected locations loading indicator; removed popup, fixed stuck spinner" ] }, "1.2.8": { "content": [ "• UX: Profile selection is now a required step to prevent accidental submission of default profile", "• NEW: Note in welcome message about not submitting data you cannot vouch for personally (no street view etc)", "• NEW: Added default operator profiles for the most common private operators nationwide (Lowe's, Home Depot, et al)", "• NEW: Support for cardinal directions in OSM data, multiple directions on a node" ] }, "1.2.7": { "content": [ "• NEW: Compass indicator shows map orientation; tap to spin north-up", "• Smart area caching: Loads 3x larger areas and refreshes data every 60 seconds for much faster browsing", "• Enhanced tile loading: Increased retry attempts with faster delays - tiles load much more reliably", "• Better network status: Simplified loading indicator logic", "• Instant node display: Surveillance devices now appear immediately when data finishes loading", "• Node limit alerts: Get notified when some nodes are not drawn" ] }, "1.2.4": { "content": [ "• New welcome popup for first-time users with essential privacy information", "• Automatic changelog display when app updates (like this one!)", "• Added Release Notes viewer in Settings > About", "• Enhanced user onboarding and transparency about data handling", "• Improved documentation for contributors" ] }, "1.2.3": { "content": [ "• Enhanced map performance and stability", "• Improved offline sync reliability", "• Added better error handling for uploads", "• Various bug fixes and improvements" ] }, "1.2.2": { "content": [ "• New surveillance device profiles added", "• Improved tile loading performance", "• Fixed issue with GPS accuracy", "• Updated translations" ] }, "1.2.0": { "content": [ "• Major UI improvements", "• Added proximity alerts", "• Enhanced offline capabilities", "• New suspected locations feature" ] } }