- Changed from new Notification() to registration.showNotification()
- Mobile browsers require ServiceWorkerRegistration API for notifications
- Added vibrate pattern and badge icon for better mobile experience
This fixes the "Illegal constructor" error when enabling push notifications
on Chrome for Android and other mobile browsers.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed showStatus() to updateStatus() in 3 places
- Added proper status types ('success', 'info') for notifications
- Fixes ReferenceError when enabling/disabling push notifications
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Double-tap now requires both taps to be within 30 pixels of each other
- Prevents accidental navigation from taps with different fingers
- If second tap is too far away, it starts a new double-tap sequence
This ensures double-tap only works when intentionally tapping the same spot twice.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Removed quick-tap navigation (was interfering with map panning)
- Keep long-press (500ms hold) as primary navigation method
- Added double-tap as fallback for browsers with touch issues
- Double-click also works on desktop in navigation mode
- No single taps trigger navigation, allowing normal map interaction
This ensures map panning works normally while providing two clear
methods to set navigation destinations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed touch event handlers from L.DomEvent to native addEventListener
- Added passive: false to allow preventDefault on touch events
- Implemented fallback quick-tap navigation for Chrome/PWA compatibility
- Added capture: true for better touch event handling
- Quick taps (<300ms) now trigger navigation dialog immediately
This fixes the issue where tap-to-navigate only worked on Firefox mobile
but not Chrome or installed PWA. Now supports both long-press and quick-tap.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated .gitignore to include output/hikemap.apk
- Added the generated APK file for direct sharing
- APK allows users to install HikeMap on Android devices
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major features added:
- Progressive Web App (PWA) manifest and service worker for offline support
- Push notifications with VAPID authentication
- Mobile-optimized UI with touch navigation fix
- Admin panel with configurable settings
- Geocache sound alerts
- App icons in all required sizes
Technical improvements:
- Fixed mobile touch handling for navigation selection
- Added remesh tool for track point standardization
- Improved pathfinding algorithm for more efficient routes
- WebSocket-based real-time multi-user tracking
- Docker deployment with persistent data volumes
Ready for APK generation via PWA2APK.com or Bubblewrap
Full offline support with map tile caching
Push notifications for geocache alerts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Removed icon switching between read/unread states
- Fixed CSS conflict between transform transition and pulse animation
- Changed proximity detection to directly toggle DOM classes instead of recreating icons
- Now uses classList.add/remove on marker._icon instead of setIcon() to prevent rendering issues
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Created comprehensive README with features, setup instructions, and technical details.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add docker-compose.yml for nginx container deployment
- Add CLAUDE.md with project architecture guidance
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>