* opt: cache

* opt: MediaListPanel

* feat: nested replyreply panel

* tweaks

* opt: abstract class

* opt: PageStorageKey

* opt: contextExt

* opt: EpisodePanel

* opt

* opt: context instead GlobalKey

* feat: jump to reply

* refa: reply_reply

* fix: jump

* fix: index

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt: keepalive

* reapply: nested replyreply

* mod: spacing

* opt: CommonSlidePageState

* fix drag bottomsheet

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt reply jump

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt reply2reply

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* reapply: jumpToReply

* fix: padding

* fix: anim

* fix some panels

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt: implements Scaffold

* opt: remove keepalive

* revert: GlobalKey

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2025-09-15 18:45:28 +08:00
committed by GitHub
parent b9a55ccbce
commit 37fb63c3b1
75 changed files with 6300 additions and 1140 deletions

View File

@@ -3,6 +3,7 @@ import 'dart:ui';
import 'package:PiliPlus/common/widgets/pair.dart';
import 'package:PiliPlus/common/widgets/progress_bar/segment_progress_bar.dart';
import 'package:PiliPlus/common/widgets/scaffold/scaffold.dart';
import 'package:PiliPlus/http/constants.dart';
import 'package:PiliPlus/http/fav.dart';
import 'package:PiliPlus/http/init.dart';
@@ -53,7 +54,7 @@ import 'package:dio/dio.dart' show Options;
import 'package:easy_debounce/easy_throttle.dart';
import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/material.dart';
import 'package:flutter/material.dart' hide Scaffold, ScaffoldState;
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:flutter_volume_controller/flutter_volume_controller.dart';
import 'package:get/get.dart' hide ContextExtensionss;
@@ -102,7 +103,6 @@ class VideoDetailController extends GetxController
// 是否开始自动播放 存在多p的情况下第二p需要为true
final RxBool autoPlay = true.obs;
final scaffoldKey = GlobalKey<ScaffoldState>();
final childKey = GlobalKey<ScaffoldState>();
PlPlayerController plPlayerController = PlPlayerController.getInstance()
@@ -154,9 +154,10 @@ class VideoDetailController extends GetxController
late double videoHeight;
void animToTop() {
if (scrollKey.currentState?.outerController.hasClients == true) {
scrollKey.currentState!.outerController.animateTo(
scrollKey.currentState!.outerController.offset,
final outerController = scrollKey.currentState!.outerController;
if (outerController.hasClients) {
outerController.animateTo(
outerController.offset,
duration: const Duration(milliseconds: 500),
curve: Curves.easeInOut,
);
@@ -361,7 +362,7 @@ class VideoDetailController extends GetxController
} catch (_) {}
},
panelTitle: watchLaterTitle,
getBvId: () => bvid,
bvid: bvid,
count: args['count'],
loadMoreMedia: getMediaList,
desc: _mediaDesc,
@@ -1508,8 +1509,8 @@ class VideoDetailController extends GetxController
idx = subtitles.indexWhere((i) => !i.lan!.startsWith('ai')) + 1;
if (idx == 0) {
if (preference == SubtitlePrefType.on ||
(preference == SubtitlePrefType.auto &&
Utils.isMobile &&
(Utils.isMobile &&
preference == SubtitlePrefType.auto &&
(await FlutterVolumeController.getVolume() ?? 0) <= 0)) {
idx = 1;
}