fix: resort movies when changed

main
daniel-michel 2023-11-11 15:08:08 +01:00
parent 8a57992fd5
commit fa0e0bbbcb
1 changed files with 12 additions and 0 deletions

View File

@ -76,6 +76,7 @@ class MovieManager extends ChangeNotifier {
_insertMovie(movie); _insertMovie(movie);
movie.addListener(() { movie.addListener(() {
_moviesModified(withoutAddingOrRemoving: true); _moviesModified(withoutAddingOrRemoving: true);
_resortMovies();
}); });
added = true; added = true;
actualMovies.add(movie); actualMovies.add(movie);
@ -105,6 +106,17 @@ class MovieManager extends ChangeNotifier {
movies.insert(min, movie); movies.insert(min, movie);
} }
void _resortMovies() {
for (int i = 0; i < movies.length; i++) {
var temp = movies[i];
int j = i - 1;
for (; j >= 0 && movies[j].releaseDate.isAfter(temp.releaseDate); j--) {
movies[j + 1] = movies[j];
}
movies[j + 1] = temp;
}
}
void removeMoviesWhere(bool Function(MovieData movie) test) { void removeMoviesWhere(bool Function(MovieData movie) test) {
bool removedMovies = false; bool removedMovies = false;
for (int i = movies.length - 1; i >= 0; i--) { for (int i = movies.length - 1; i >= 0; i--) {