fix: Remove specials from nextUp selection (#343)

Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
PartyDonut 2025-05-17 14:47:24 +02:00 committed by GitHub
parent 4d7c89b9eb
commit d1d7cbd74d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 8 deletions

View file

@ -199,15 +199,18 @@ extension EpisodeListExtensions on List<EpisodeModel> {
}
EpisodeModel? get nextUp {
final lastProgress =
lastIndexWhere((element) => element.userData.progress != 0 && element.status == EpisodeStatus.available);
final episodes = whereNot((element) => element.season <= 0).toList();
final lastProgress = episodes
.lastIndexWhere((element) => element.userData.progress != 0 && element.status == EpisodeStatus.available);
final lastPlayed =
lastIndexWhere((element) => element.userData.played && element.status == EpisodeStatus.available);
episodes.lastIndexWhere((element) => element.userData.played && element.status == EpisodeStatus.available);
if (lastProgress == -1 && lastPlayed == -1) {
return firstWhereOrNull((element) => element.status == EpisodeStatus.available);
return episodes.firstWhereOrNull((element) => element.status == EpisodeStatus.available);
} else {
return getRange(lastProgress > lastPlayed ? lastProgress : lastPlayed + 1, length)
return episodes
.getRange(lastProgress > lastPlayed ? lastProgress : lastPlayed + 1, episodes.length)
.firstWhereOrNull((element) => element.status == EpisodeStatus.available);
}
}

View file

@ -1,15 +1,15 @@
import 'package:chopper/chopper.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/providers/service_provider.dart';
import 'package:fladder/providers/sync_provider.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/models/items/episode_model.dart';
import 'package:fladder/models/items/season_model.dart';
import 'package:fladder/models/items/series_model.dart';
import 'package:fladder/providers/api_provider.dart';
import 'package:fladder/providers/related_provider.dart';
import 'package:fladder/providers/service_provider.dart';
import 'package:fladder/providers/sync_provider.dart';
final seriesDetailsProvider =
StateNotifierProvider.autoDispose.family<SeriesDetailViewNotifier, SeriesModel?, String>((ref, id) {