fix: Incorrect playback reporting (#221)

Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
PartyDonut 2025-02-08 17:05:53 +01:00 committed by GitHub
parent f259151336
commit 3b4b8a9101
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 13 additions and 27 deletions

View file

@ -17,7 +17,6 @@ import 'package:fladder/models/items/trick_play_model.dart';
import 'package:fladder/providers/auth_provider.dart';
import 'package:fladder/providers/image_provider.dart';
import 'package:fladder/providers/user_provider.dart';
import 'package:fladder/util/duration_extensions.dart';
import 'package:fladder/util/jellyfin_extension.dart';
class ServerQueryResult {
@ -492,25 +491,8 @@ class JellyService {
Future<Response> sessionsPlayingStoppedPost({
required PlaybackStopInfo? body,
Duration? totalDuration,
}) async {
final position = body?.positionTicks;
final totalTime = totalDuration?.toRuntimeTicks;
final maxTime = ref.read(userProvider.select((value) => value?.serverConfiguration?.maxResumePct ?? 90));
final response = await api.sessionsPlayingStoppedPost(
body: body?.copyWith(
failed: false,
),
);
//This is a temporary fix
if (totalTime != null && position != null && position > (totalTime * (maxTime / 100))) {
await usersUserIdPlayedItemsItemIdPost(itemId: body?.itemId, datePlayed: DateTime.now());
}
return response;
}
}) =>
api.sessionsPlayingStoppedPost(body: body);
Future<Response> sessionsPlayingProgressPost({required PlaybackProgressInfo? body}) async =>
api.sessionsPlayingProgressPost(body: body);

View file

@ -62,7 +62,7 @@ class VideoPlayerNotifier extends StateNotifier<MediaControlsWrapper> {
final lastPosition = ref.read(mediaPlaybackProvider.select((value) => value.lastPosition));
final diff = (position.inMilliseconds - lastPosition.inMilliseconds).abs();
if (diff > const Duration(seconds: 1, milliseconds: 500).inMilliseconds) {
if (diff > const Duration(seconds: 10).inMilliseconds) {
mediaState.update((value) => value.copyWith(
position: event,
playing: playbackState.playing,