Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-12-25 13:43:20 +08:00
parent 161bf2eedb
commit 20a36e8f9a
97 changed files with 596 additions and 436 deletions

View File

@@ -12,6 +12,7 @@ import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/models_new/pgc/pgc_info_model/episode.dart';
import 'package:PiliPlus/models_new/pgc/pgc_info_model/result.dart';
import 'package:PiliPlus/pages/common/common_intro_controller.dart';
import 'package:PiliPlus/pages/common/publish/publish_route.dart';
import 'package:PiliPlus/pages/contact/view.dart';
import 'package:PiliPlus/pages/fav_panel/view.dart';
import 'package:PiliPlus/pages/share/view.dart';
@@ -20,6 +21,7 @@ import 'package:PiliPlus/services/shutdown_timer_service.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/extension/context_ext.dart';
import 'package:PiliPlus/utils/extension/extension.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart';
import 'package:PiliPlus/utils/extension/string_ext.dart';
import 'package:PiliPlus/utils/feed_back.dart';
import 'package:PiliPlus/utils/global_data.dart';
@@ -32,7 +34,7 @@ import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show FilteringTextInputFormatter;
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart' hide ContextExtensionss;
import 'package:get/get.dart';
import 'package:url_launcher/url_launcher.dart';
abstract final class PageUtils {
@@ -652,49 +654,50 @@ abstract final class PageUtils {
if (!context.mounted) {
return;
}
Get.generalDialog(
barrierLabel: '',
barrierDismissible: true,
pageBuilder: (context, animation, secondaryAnimation) {
if (context.isPortrait) {
Get.key.currentState!.push(
PublishRoute(
pageBuilder: (context, animation, secondaryAnimation) {
if (context.isPortrait) {
return SafeArea(
child: FractionallySizedBox(
heightFactor: 0.7,
widthFactor: 1.0,
alignment: Alignment.bottomCenter,
child: isFullScreen() && padding != null
? Padding(
padding: EdgeInsets.only(bottom: padding),
child: child,
)
: child,
),
);
}
return SafeArea(
child: FractionallySizedBox(
heightFactor: 0.7,
widthFactor: 1.0,
alignment: Alignment.bottomCenter,
child: isFullScreen() && padding != null
? Padding(
padding: EdgeInsets.only(bottom: padding),
child: child,
)
: child,
widthFactor: 0.5,
heightFactor: 1.0,
alignment: Alignment.centerRight,
child: child,
),
);
}
return SafeArea(
child: FractionallySizedBox(
widthFactor: 0.5,
heightFactor: 1.0,
alignment: Alignment.centerRight,
},
transitionDuration: const Duration(milliseconds: 350),
transitionBuilder: (context, animation, secondaryAnimation, child) {
final begin = context.isPortrait
? const Offset(0.0, 1.0)
: const Offset(1.0, 0.0);
return SlideTransition(
position: animation.drive(
Tween(
begin: begin,
end: Offset.zero,
).chain(CurveTween(curve: Curves.easeInOut)),
),
child: child,
),
);
},
transitionDuration: const Duration(milliseconds: 350),
transitionBuilder: (context, animation, secondaryAnimation, child) {
Offset begin = context.isPortrait
? const Offset(0.0, 1.0)
: const Offset(1.0, 0.0);
var tween = Tween(
begin: begin,
end: Offset.zero,
).chain(CurveTween(curve: Curves.easeInOut));
return SlideTransition(
position: animation.drive(tween),
child: child,
);
},
routeSettings: RouteSettings(arguments: Get.arguments),
);
},
settings: RouteSettings(arguments: Get.arguments),
),
);
}