opt: item

opt: util

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-04-16 23:48:25 +08:00
parent 12c711424b
commit d886569dc3
85 changed files with 1983 additions and 1964 deletions

View File

@@ -4,8 +4,8 @@ import 'package:PiliPlus/pages/dynamics/view.dart';
import 'package:PiliPlus/pages/emote/controller.dart';
import 'package:PiliPlus/pages/emote/view.dart';
import 'package:PiliPlus/pages/video/detail/reply_new/toolbar_icon_button.dart';
import 'package:PiliPlus/utils/request_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -488,8 +488,8 @@ class _CreateDynPanelState extends CommonPublishPageState<CreateDynPanel> {
if (result['status']) {
Get.back();
SmartDialog.showToast('发布成功');
Utils.insertCreatedDyn(result);
Utils.checkCreatedDyn(
RequestUtils.insertCreatedDyn(result);
RequestUtils.checkCreatedDyn(
id: result['data']?['dyn_id'],
dynText: editController.text,
);

View File

@@ -9,6 +9,8 @@ import 'package:PiliPlus/models/common/reply_sort_type.dart';
import 'package:PiliPlus/pages/dynamics/repost_dyn_panel.dart';
import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item_grpc.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/request_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:easy_debounce/easy_throttle.dart';
@@ -69,7 +71,7 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
vsync: this,
duration: const Duration(milliseconds: 200),
)..forward();
Utils.onHorizontalPreview(
PageUtils.onHorizontalPreview(
_key,
AnimationController(
vsync: this,
@@ -618,7 +620,8 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
Expanded(
child: Builder(
builder: (context) => TextButton.icon(
onPressed: () => Utils.onLikeDynamic(
onPressed: () =>
RequestUtils.onLikeDynamic(
_dynamicDetailController.item,
() {
if (context.mounted) {

View File

@@ -6,8 +6,8 @@ import 'package:PiliPlus/pages/emote/controller.dart';
import 'package:PiliPlus/pages/emote/view.dart';
import 'package:PiliPlus/pages/video/detail/reply_new/toolbar_icon_button.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/request_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -386,8 +386,8 @@ class _RepostPanelState extends CommonPublishPageState<RepostPanel> {
Get.back();
SmartDialog.showToast('转发成功');
widget.callback?.call();
Utils.insertCreatedDyn(result);
Utils.checkCreatedDyn(
RequestUtils.insertCreatedDyn(result);
RequestUtils.checkCreatedDyn(
id: result['data']?['dyn_id'],
dynText: editController.text,
);

View File

@@ -1,5 +1,6 @@
import 'package:PiliPlus/pages/dynamics/repost_dyn_panel.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
@@ -110,7 +111,7 @@ class _ActionPanelState extends State<ActionPanel> {
flex: 1,
child: TextButton.icon(
onPressed: () =>
Utils.pushDynDetail(widget.item, 1, action: 'comment'),
PageUtils.pushDynDetail(widget.item, 1, action: 'comment'),
icon: Icon(
FontAwesomeIcons.comment,
size: 16,

View File

@@ -1,3 +1,4 @@
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
@@ -34,7 +35,7 @@ Widget addWidget(item, context, type, {floor = 1}) {
String cover = dynamicProperty[type].cover;
try {
int cid = await SearchHttp.ab2c(bvid: bvid);
Utils.toViewPage(
PageUtils.toVideoPage(
'bvid=$bvid&cid=$cid',
arguments: {
'pic': cover,

View File

@@ -5,6 +5,7 @@ import 'package:PiliPlus/common/widgets/save_panel.dart';
import 'package:PiliPlus/http/index.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/request_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:dio/dio.dart';
@@ -343,7 +344,7 @@ class AuthorPanel extends StatelessWidget {
ListTile(
onTap: () {
Get.back();
Utils.checkCreatedDyn(id: item.idStr, isManual: true);
RequestUtils.checkCreatedDyn(id: item.idStr, isManual: true);
},
minLeadingWidth: 0,
leading: Stack(

View File

@@ -1,6 +1,6 @@
import 'package:PiliPlus/common/widgets/image_save.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -64,7 +64,7 @@ class DynamicPanel extends StatelessWidget {
'DYNAMIC_TYPE_MEDIALIST',
].contains(item.type).not
? null
: () => Utils.pushDynDetail(item, 1),
: () => PageUtils.pushDynDetail(item, 1),
onLongPress: () {
if (item.type == 'DYNAMIC_TYPE_AV') {
imageSaveDialog(

View File

@@ -4,6 +4,7 @@ import 'package:PiliPlus/common/widgets/image_save.dart';
import 'package:PiliPlus/common/widgets/image_view.dart';
import 'package:PiliPlus/common/widgets/network_img_layer.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart';
@@ -218,7 +219,7 @@ Widget forWard(bool isSave, item, BuildContext context, source, callback,
'MAJOR_TYPE_NONE') {
return;
}
Utils.pushDynDetail(item.orig, floor + 1);
PageUtils.pushDynDetail(item.orig, floor + 1);
},
onLongPress: () {
if (item.orig.modules.moduleDynamic.major?.type ==
@@ -365,10 +366,10 @@ Widget forWard(bool isSave, item, BuildContext context, source, callback,
onTap: () {
try {
String url = item.modules.moduleDynamic.major.common['jump_url'];
if (url.contains('bangumi/play') && Utils.viewPgcFromUri(url)) {
if (url.contains('bangumi/play') && PageUtils.viewPgcFromUri(url)) {
return;
}
Utils.handleWebview(url, inApp: true);
PageUtils.handleWebview(url, inApp: true);
} catch (_) {}
},
child: Container(
@@ -420,7 +421,7 @@ Widget forWard(bool isSave, item, BuildContext context, source, callback,
final Map music = item.modules.moduleDynamic.major.music;
return InkWell(
onTap: () {
Utils.handleWebview("https:${music['jump_url']}");
PageUtils.handleWebview("https:${music['jump_url']}");
},
child: Container(
width: double.infinity,

View File

@@ -1,3 +1,4 @@
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:PiliPlus/common/constants.dart';
@@ -63,7 +64,7 @@ Widget liveRcmdPanel(source, item, context, {floor = 1}) {
const EdgeInsets.symmetric(horizontal: StyleString.safeSpace),
child: GestureDetector(
onTap: () {
Utils.pushDynDetail(item, floor);
PageUtils.pushDynDetail(item, floor);
},
child: LayoutBuilder(builder: (context, box) {
double width = box.maxWidth;

View File

@@ -1,5 +1,6 @@
import 'package:PiliPlus/common/widgets/image_view.dart';
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
@@ -108,7 +109,7 @@ InlineSpan? richNode(item, BuildContext context) {
PiliScheme.routePushFromUrl('https:$url');
return;
}
Utils.handleWebview(
PageUtils.handleWebview(
url.startsWith('//') ? "https://$url" : url,
);
},
@@ -239,7 +240,7 @@ InlineSpan? richNode(item, BuildContext context) {
onTap: () async {
try {
int cid = await SearchHttp.ab2c(bvid: i.rid);
Utils.toViewPage(
PageUtils.toVideoPage(
'bvid=${i.rid}&cid=$cid',
arguments: {
'pic': null,