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
Yahoo Finance is now the primary quote source — Google Finance HTML scraping is kept as a fallback only, reducing breakage from Google's page structure changes
Live FX exchange rates — EUR, GBP, JPY, INR rates are now fetched from Yahoo Finance on every refresh instead of using hardcoded values; approximate values are used as a fallback if the fetch fails
Foreground-only polling — the 5-minute auto-refresh now suspends automatically when the app is backgrounded, preventing unnecessary network calls when the screen is off
Data integrity
Fixed currency conversion incorrectly mutating stored purchase prices — original USD values are now always preserved in the database
Price display in cost basis table now correctly shows the selected currency throughout
Price alert checks are now awaited as part of the refresh cycle rather than running as a detached coroutine
Features
Custom sector tags — any ticker not in the built-in sector map can now be assigned a sector via ViewModel.setCustomSector(ticker, sector), persisted across sessions
Price alert trigger logic deduplicated — LOW and STOP_LOSS share a single code path; distinction is reflected in the notification message
Quality
HTTP request/response logging is now disabled in release builds (BuildConfig.DEBUG gate)
Room database migration infrastructure added — future schema changes will use explicit migrations rather than silent data wipes
Removed dead FinnhubApiService code
Fixed parsePriceValue to correctly handle comma-as-thousands-separator (e.g. 1,234.56)