feat: 添加logo,修复部分ui

This commit is contained in:
chengsiwen committed 2026-07-07 17:56:52 +08:00
1 parent a3426831ed
commit a3f489abe2
18 files changed
+263 -124

No files matched your search

+43 -1
View File
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:novyronst/common/api/user_request.dart';
import 'package:novyronst/common/const/const_color.dart';
import 'package:novyronst/common/model/ny_drama_model.dart';
import 'package:novyronst/tools/widgets/novy_com_widget.dart';
@@ -35,6 +36,7 @@ class _PlayerViewState extends State<PlayerView> {
late final PageController _pageController;
final Map<int, VideoPlayerController> _controllers = {};
final Map<int, Future<VideoPlayerController?>> _initializingControllers = {};
final Set<String> _reportedHistoryKeys = {};
int _currentIndex = 0;
@override
@@ -142,6 +144,7 @@ class _PlayerViewState extends State<PlayerView> {
isPageActive: widget.isActive,
)) {
await controller.play();
_reportHistory(index);
}
} catch (_) {
if (_controllers[index] == controller) {
@@ -181,6 +184,7 @@ class _PlayerViewState extends State<PlayerView> {
isPageActive: widget.isActive,
)) {
await controller.play();
_reportHistory(_currentIndex);
}
}
@@ -224,7 +228,25 @@ class _PlayerViewState extends State<PlayerView> {
!controller.value.isInitialized) {
return;
}
controller.value.isPlaying ? controller.pause() : controller.play();
if (controller.value.isPlaying) {
controller.pause();
} else {
controller.play();
_reportHistory(_currentIndex);
}
}
void _reportHistory(int index) {
if (index < 0 || index >= widget.videos.length) return;
final ids = resolvePlayerHistoryIds(widget.videos[index]);
if (ids == null || _reportedHistoryKeys.contains(ids.key)) return;
_reportedHistoryKeys.add(ids.key);
UserRequest.eventCreateHistory(
shortPlayId: ids.shortPlayId,
videoId: ids.videoId,
).catchError((_) {});
}
@override
@@ -523,3 +545,23 @@ double resolvePlayerMetaBottom({
}) {
return safeAreaBottom + bottomSpacing;
}
class PlayerHistoryIds {
const PlayerHistoryIds({required this.shortPlayId, required this.videoId});
final String shortPlayId;
final String videoId;
String get key => '$shortPlayId:$videoId';
}
PlayerHistoryIds? resolvePlayerHistoryIds(NyDramaModel drama) {
final shortPlayId = drama.shortPlayId ?? drama.shortId;
final videoId = drama.shortPlayVideoId ?? drama.id;
if (videoId == null) return null;
return PlayerHistoryIds(
shortPlayId: shortPlayId.toString(),
videoId: videoId.toString(),
);
}