From fa0e0bbbcbeb88e64ca6c9c8a639ccdae32dd357 Mon Sep 17 00:00:00 2001 From: daniel-michel <65034538+daniel-michel@users.noreply.github.com> Date: Sat, 11 Nov 2023 15:08:08 +0100 Subject: [PATCH] fix: resort movies when changed --- lib/model/movie_manager.dart | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/model/movie_manager.dart b/lib/model/movie_manager.dart index dc64894..74be0f5 100644 --- a/lib/model/movie_manager.dart +++ b/lib/model/movie_manager.dart @@ -76,6 +76,7 @@ class MovieManager extends ChangeNotifier { _insertMovie(movie); movie.addListener(() { _moviesModified(withoutAddingOrRemoving: true); + _resortMovies(); }); added = true; actualMovies.add(movie); @@ -105,6 +106,17 @@ class MovieManager extends ChangeNotifier { 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) { bool removedMovies = false; for (int i = movies.length - 1; i >= 0; i--) {