Sort movies and series by release date/year descending by default - #173
Open
disclosurez wants to merge 3 commits into
Open
Sort movies and series by release date/year descending by default#173disclosurez wants to merge 3 commits into
disclosurez wants to merge 3 commits into
Conversation
- MovieRepositoryImpl: movieReleaseScore/LIBRARY sort by effective year descending (releaseDate > DB year > name extraction), no addedAt fallback - SeriesRepositoryImpl: seriesReleaseScore/LIBRARY sort by effective year descending (releaseDate > name extraction), no lastModified fallback - XtreamProvider.toMovie: extract year from parenthetical (YYYY) in name - Daos: COALESCE(release_date, year) DESC ordering for page queries, restoreYearsFromName() + clearInvalidYears() DB cleanup - Movies/Series Fresh row uses release date ordering for previews - Series catalog sorted by latest episode release date via LEFT JOIN - VodDuplicateHandlingMode default changed to GROUPED
Contributor
Author
|
The issue with provider-added order (added_at) is that batch-synced items all share the same timestamp, so within a batch the fallback is alphabetical — Despicable Me (2010) before Despicable Me 3 (2017) because The old added_at behavior is still available via the sort menu — this PR only changes the default to year-descending. |
Fixes compilation error: MoviesViewModel references getByReleaseDate which existed in SeriesRepository but was missing from MovieRepository.
disclosurez
force-pushed
the
sorting-changes
branch
from
July 17, 2026 07:02
5938cda to
536e3cc
Compare
- Movies/Series Pro layout: Fresh and Top Rated rows now have See All buttons that navigate to the full filtered library view - Home tab: Recent Movies and Recent Series shelves now use release date ordering instead of added_at/last_modified
disclosurez
added a commit
to disclosurez/StreamVault-IPTV
that referenced
this pull request
Jul 18, 2026
- applyMovieBrowseQuery/applySeriesBrowseQuery LIBRARY sort by year descending - movieReleaseScore/seriesReleaseScore with no addedAt/lastModified fallback - XtreamProvider.toMovie extracts year from parenthetical (YYYY) in name - DAO queries use COALESCE(release_date, year) DESC ordering - Fresh/preview rows use getByReleaseDate ordering
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Default sort mode (LIBRARY) now sorts movies and series by effective year descending — newest first.
What changed
applyMovieBrowseQuery/applySeriesBrowseQueryLIBRARY mode uses year descending (movieReleaseScore/seriesReleaseScorewith noaddedAt/lastModifiedfallback)XtreamProvider.toMovieextracts year from parenthetical(YYYY)in name; false positives fixed (Blade Runner 2049, Death Race 2050 no longer extract year from title)COALESCE(release_date, year) DESCordering for page queries;restoreYearsFromName()+clearInvalidYears()one-time DB cleanupgetByReleaseDate(release date ordering) instead ofgetFreshPreview(added_at ordering)VodDuplicateHandlingModedefaults to GROUPEDgetByReleaseDatetoMovieRepositoryinterface and implementation (was missing from the original interface)Files changed
app/.../movies/MoviesScreen.kt— See All buttons on Fresh/Top Rated rowsapp/.../series/SeriesScreen.kt— See All buttons on Fresh/Top Rated rowsapp/.../dashboard/DashboardViewModel.kt— use release date orderingapp/.../movies/MoviesViewModel.kt— fresh row uses getByReleaseDateapp/.../series/SeriesViewModel.kt— fresh row uses getByReleaseDateapp/.../settings/SettingsStateBindings.kt— GROUPED defaultapp/.../settings/SettingsUiStateModel.kt— GROUPED defaultdata/.../dao/Daos.kt— COALESCE ordering, restoreYearsFromName, clearInvalidYearsdata/.../xtream/XtreamProvider.kt— parenthetical-only year extractiondata/.../repository/MovieRepositoryImpl.kt— movieReleaseScore, LIBRARY sort, getByReleaseDatedata/.../repository/SeriesRepositoryImpl.kt— seriesReleaseScore, LIBRARY sortdomain/.../model/VodDuplicateHandlingMode.kt— GROUPED defaultdomain/.../repository/MovieRepository.kt— added getByReleaseDate