- Add New Episode / New Season badge to the Continue Watching next-up
cards, matching the NuvioTV implementation. Badge fires when a new
episode has aired after the user's last watched timestamp and within
the 60-day recency window.
- Filter shows that are marked as 'dropped' on Trakt from the Continue
Watching in-progress list, next-up seed candidates, and the
enrichment disk cache, matching NuvioTV behaviour.
- Add AirDateUtils.kt with calculateReleaseAlertState() and
parseReleaseDateToEpochMs() helpers used for both badge logic and
correct next-up sort ordering when a release alert is active.
- Persist isReleaseAlert / isNewSeasonRelease in CachedNextUpItem so
badge state survives cold starts without waiting for a full re-fetch.
- Extend translations for the badge strings (airs today / tomorrow /
in N days / on date) across de, el, es, fr, id, it, nb, pl, pt, tr,
cs and the default English strings.
- Add unit tests for parseReleaseDateToEpochMs, calculateReleaseAlertState
inputs/outputs, formatReleaseDateWithoutYear, isoCalendarDateOrNull,
daysUntilExplicitRelease, and isoEpochDay.
- Refactored `AppearanceLanguageBottomSheet` in `AppearanceSettingsPage.kt` to use a `LazyColumn` instead of a standard `Column`.
- Wrapped the sheet title inside an `item` block and used `itemsIndexed` to render the language options.
- This resolves an issue where the language list was truncated and unscrollable, particularly in landscape mode or when the list of translations grows.
Switch Norwegian locale code from "no" to the ISO 639-1 code "nb" for consistency. Updated Android locale_config.xml, renamed resource folder values-no to values-nb (strings moved/renamed accordingly), and changed the AppLanguage enum to use "nb". Also removed a now-duplicate media_series string entry in the renamed resources.