You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TTS timing β Voice announcements now adapt to transport mode. Walking uses tighter distances (far 60 m Β· near 15 m); cycling uses intermediate distances (far 150 m Β· near 30 m); driving is unchanged. Back-to-back announcements on short steps are suppressed to prevent the "silencing" effect.
Walking arrival radius β Arrival is now confirmed at 15 m instead of 40 m when navigating on foot, so a 300 m route no longer triggers arrival halfway through.
Arrival screen removed β The π/π feedback dialog is gone. On arrival the destination pin turns green with a β icon and stays visible on the map; a brief banner auto-dismisses after 6 seconds.
Security hardening
EncryptedSharedPreferences enabled β All four FlutterSecureStorage instances now use encryptedSharedPreferences: true, encrypting both keys and values via Android Keystore (not just values).
NWC URI moved to SecureStorage β The nostr+walletconnect:// URI (which contains a Lightning wallet private key) was stored in plain Hive. It is now stored in Android Keystore-backed SecureStorage. Automatic migration from Hive on first launch.
Routing API keys moved to SecureStorage β GraphHopper Cloud and OpenRouteService API keys were stored in plain Hive. Migrated to SecureStorage with the same automatic migration path.
WebView hardened β The Wikipedia/search WebView now blocks any navigation to non-HTTPS URLs via onNavigationRequest.
ADB backup disabled β android:allowBackup="false" added to AndroidManifest.xml. Prevents adb backup from extracting app data (including the Hive settings file) from an unlocked device with USB debugging enabled.
Release logging β Replaced a print() call in gps_service.dart (visible in logcat in release builds) with debugPrint() (stripped in release).
Migration note: NWC URI and routing API keys are migrated automatically from Hive to SecureStorage the first time each relevant screen is used after the update. No manual action required.