Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AppManager appManager = Provider.of<AppManager>(context, listen: true);
- List<dynamic> books = [];
- List<Book> bbooks = [];
- appManager = Provider.of<AppManager>(context, listen: false);
- if (appManager.selectedAuthor == null) {
- bbooks = appManager.books;
- bbooks.sort((a, b) => (a.title.startsWith('The ')
- ? a.title.replaceFirst('The ', '').toLowerCase()
- : a.title.toLowerCase())
- .compareTo(
- (b.title.startsWith('The ') ? b.title.replaceFirst('The ', '').toLowerCase() : b.title.toLowerCase())));
- books.add(bbooks);
- } else if (appManager.libraryBooksViewType == 'Series View') {
- List<Book> authorBooks = [
- for (Book b in appManager.books)
- if (b.author.name == appManager.selectedAuthor.name) b
- ].toList();
- // this seems to reorder them into alphabetical order by series. Thats the goal at least.
- //authorBooks.sort((a, b) => a.series == null ? 0 : a.series.compareTo(b.series == null ? 1 : b.series));
- authorBooks.sort((a, b) => a.getSeries.compareTo(b.getSeries));
- for (Book b in authorBooks) {
- if (b.series != null) {
- bool found = false;
- for (var entry in books) {
- if (entry is Series && entry.name == b.series) {
- found = true;
- if (b.subseries != null) {
- if (entry.subseries.length > 0) {
- bool foundmore = false;
- for (Subseries subseries in entry.subseries) {
- if (subseries.name == b.subseries) {
- foundmore = true;
- subseries.books.add(b);
- }
- }
- if (foundmore == false) {
- Subseries sub = Subseries();
- sub.name = b.subseries;
- sub.books.add(b);
- entry.subseries.add(sub);
- }
- } else {
- Subseries sub = Subseries();
- sub.name = b.subseries;
- sub.books.add(b);
- entry.subseries.add(sub);
- }
- } else {
- entry.books.add(b);
- }
- }
- }
- if (found == false) {
- Series s = Series();
- s.name = b.series;
- if (b.subseries != null) {
- Subseries sub = Subseries();
- sub.name = b.subseries;
- sub.books.add(b);
- s.subseries.add(sub);
- } else {
- s.books.add(b);
- }
- books.add(s);
- }
- } else {
- bbooks.add(b);
- }
- }
- if (bbooks.length > 0) {
- books.insert(0, bbooks);
- }
- } else {
- List<Book> bbooks = [];
- for (Book b in appManager.books) {
- if (b.author.name == appManager.selectedAuthor.name) {
- bbooks.add(b);
- }
- }
- bbooks.sort((a, b) => (a.title.startsWith('The ')
- ? a.title.replaceFirst('The ', '').toLowerCase()
- : a.title.toLowerCase())
- .compareTo(
- (b.title.startsWith('The ') ? b.title.replaceFirst('The ', '').toLowerCase() : b.title.toLowerCase())));
- books.add(bbooks);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement