Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-06 14:14:19 +08:00
parent 1a8c348af1
commit 07843a5e77
239 changed files with 3175 additions and 13237 deletions

View File

@@ -5,10 +5,10 @@ import 'package:PiliPlus/http/dynamics.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
import 'package:PiliPlus/pages/webview/view.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/num_utils.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
Widget? addWidget(
BuildContext context, {
@@ -124,14 +124,9 @@ Widget? addWidget(
recognizer: reserve.desc3!.jumpUrl == null
? null
: (NoDeadlineTapGestureRecognizer()
..onTap = () {
Get.toNamed(
'/webview',
parameters: {
'url': reserve.desc3!.jumpUrl!,
},
);
}),
..onTap = () => WebViewPage.toWebView(
reserve.desc3!.jumpUrl!,
)),
),
],
],
@@ -261,14 +256,9 @@ Widget? addWidget(
recognizer: content.desc!.jumpUrl == null
? null
: (NoDeadlineTapGestureRecognizer()
..onTap = () {
Get.toNamed(
'/webview',
parameters: {
'url': content.desc!.jumpUrl!,
},
);
}),
..onTap = () => WebViewPage.toWebView(
content.desc!.jumpUrl!,
)),
),
],
),

View File

@@ -6,7 +6,6 @@ import 'package:PiliPlus/pages/dynamics/widgets/action_panel.dart';
import 'package:PiliPlus/pages/dynamics/widgets/author_panel.dart';
import 'package:PiliPlus/pages/dynamics/widgets/dyn_content.dart';
import 'package:PiliPlus/pages/dynamics/widgets/interaction.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:flutter/material.dart';
@@ -87,8 +86,6 @@ class DynamicPanel extends StatelessWidget {
padding: const EdgeInsets.fromLTRB(12, 12, 12, 6),
child: authorWidget,
),
if (item.modules.moduleDispute case final moduleDispute?)
_buildDispute(theme, moduleDispute),
...dynContent(
context,
theme: theme,
@@ -252,53 +249,4 @@ class DynamicPanel extends StatelessWidget {
),
);
}
Widget _buildDispute(ThemeData theme, ModuleDispute moduleDispute) {
final child = Container(
width: .infinity,
margin: const .fromLTRB(12, 2, 12, 6),
padding: const .symmetric(horizontal: 8, vertical: 6),
decoration: BoxDecoration(
color: theme.colorScheme.secondaryContainer.withValues(
alpha: theme.isLight ? 0.5 : 0.7,
),
borderRadius: const BorderRadius.all(Radius.circular(6)),
),
child: Text.rich(
style: TextStyle(
height: 1,
fontSize: 13,
color: theme.colorScheme.onSecondaryContainer,
),
strutStyle: const StrutStyle(
leading: 0,
height: 1,
fontSize: 13,
),
TextSpan(
children: [
WidgetSpan(
alignment: .middle,
child: Padding(
padding: const .only(right: 4),
child: Icon(
size: 15,
Icons.warning_rounded,
color: theme.colorScheme.onSecondaryContainer,
),
),
),
TextSpan(text: moduleDispute.title),
],
),
),
);
if (moduleDispute.jumpUrl?.isNotEmpty == true) {
return GestureDetector(
onTap: () => PageUtils.handleWebview(moduleDispute.jumpUrl!),
child: child,
);
}
return child;
}
}

View File

@@ -10,6 +10,7 @@ import 'package:PiliPlus/pages/dynamics/widgets/live_panel.dart';
import 'package:PiliPlus/pages/dynamics/widgets/live_panel_sub.dart';
import 'package:PiliPlus/pages/dynamics/widgets/live_rcmd_panel.dart';
import 'package:PiliPlus/pages/dynamics/widgets/video_panel.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/image_utils.dart';
import 'package:PiliPlus/utils/page_utils.dart';
@@ -124,7 +125,7 @@ Widget module(
PageUtils.viewPgcFromUri(url)) {
return;
}
PageUtils.handleWebview(url, inApp: true);
PiliScheme.routePushFromUrl(url);
} catch (_) {}
},
child: Padding(

View File

@@ -11,6 +11,7 @@ import 'package:PiliPlus/models/common/image_preview_type.dart'
import 'package:PiliPlus/models/common/image_type.dart';
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/material.dart';
@@ -128,7 +129,8 @@ TextSpan? richNode(
style: style,
recognizer: hasLink
? (NoDeadlineTapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(i.jumpUrl!))
..onTap = () =>
PiliScheme.routePushFromUrl(i.jumpUrl!))
: null,
),
);
@@ -193,12 +195,8 @@ TextSpan? richNode(
text: '${i.origText} ',
style: style,
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () => Get.toNamed(
'/webview',
parameters: {
'url':
'https://www.bilibili.com/h5/lottery/result?business_id=${item.idStr}',
},
..onTap = () => PiliScheme.routePushFromUrl(
'https://www.bilibili.com/h5/lottery/result?business_id=${item.idStr}',
),
),
);
@@ -223,7 +221,8 @@ TextSpan? richNode(
recognizer: i.jumpUrl == null
? null
: (NoDeadlineTapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
..onTap = () =>
PiliScheme.routePushFromUrl(i.jumpUrl!)),
),
);
break;
@@ -347,7 +346,8 @@ TextSpan? richNode(
recognizer: i.jumpUrl == null
? null
: (NoDeadlineTapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
..onTap = () =>
PiliScheme.routePushFromUrl(i.jumpUrl!)),
),
);
break;
@@ -359,7 +359,8 @@ TextSpan? richNode(
recognizer: i.jumpUrl == null
? null
: (NoDeadlineTapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
..onTap = () =>
PiliScheme.routePushFromUrl(i.jumpUrl!)),
),
);
break;