39 lines
1.3 KiB
Dart
39 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../../core/data/models/drama.dart';
|
|
import '../../core/data/repositories/watch_history_repository.dart';
|
|
import '../../core/data/services/android_picture_in_picture.dart';
|
|
import '../../core/data/services/playback_queue.dart';
|
|
import '../../core/data/services/playback_session.dart';
|
|
import '../../core/data/services/video_player_port.dart';
|
|
import '../home/home_feed_sections.dart';
|
|
|
|
class PlayerLogic {
|
|
PlayerLogic({required this.history, required this.pictureInPicture});
|
|
|
|
final WatchHistoryRepository history;
|
|
final AndroidPictureInPicture pictureInPicture;
|
|
|
|
late PageController pages;
|
|
late PlaybackQueue queue;
|
|
late HomeFeedSections homeSections;
|
|
late List<int> visibleIndices;
|
|
HomeFeedCategory category = HomeFeedCategory.recommended;
|
|
int categoryRequest = 0;
|
|
late PlaybackSession session;
|
|
VideoPlayerPort? trackedPlayer;
|
|
Episode? trackedEpisode;
|
|
Drama? trackedDrama;
|
|
DateTime lastProgressWrite = DateTime.fromMillisecondsSinceEpoch(0);
|
|
Future<void> pendingWrite = Future<void>.value();
|
|
int pageRequest = 0;
|
|
bool muted = false;
|
|
bool stoppedAtFeedEnd = false;
|
|
VideoPlayerPort? scrubbingPlayer;
|
|
bool fullscreen = false;
|
|
bool pip = false;
|
|
bool pipPreparing = false;
|
|
|
|
bool get immersive => fullscreen || pip || pipPreparing;
|
|
}
|