* Revert "opt gesture"

This reverts commit bd97f9a500.

* revert: late init

* update [skip ci]

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

---------

Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2026-01-24 11:46:00 +08:00
committed by GitHub
parent 777c3c2278
commit 7eaf05839a
13 changed files with 52 additions and 60 deletions

View File

@@ -1,6 +1,5 @@
import 'dart:math' as math;
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/cached_network_svg_image.dart';
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
@@ -19,6 +18,7 @@ import 'package:PiliPlus/utils/image_utils.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:get/get_core/src/get_main.dart';
import 'package:get/get_navigation/src/extension_navigation.dart';
@@ -69,7 +69,7 @@ class OpusContent extends StatelessWidget {
? null
: colorScheme.primary,
),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
switch (rich.type) {
case 'RICH_TEXT_NODE_TYPE_AT':
@@ -293,7 +293,7 @@ class OpusContent extends StatelessWidget {
return TextSpan(
text: '${hasUrl ? '\u{1F517}' : ''}$text',
recognizer: hasUrl
? (ImmediateTapGestureRecognizer()
? (TapGestureRecognizer()
..onTap = () =>
PiliScheme.routePushFromUrl(jumpUrl))
: null,

View File

@@ -3,7 +3,6 @@ import 'dart:math' show min;
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/button/icon_button.dart';
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/progress_bar/audio_video_progress_bar.dart';
import 'package:PiliPlus/grpc/bilibili/app/listener/v1.pb.dart';
@@ -25,6 +24,7 @@ import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/storage_key.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/gestures.dart' show TapGestureRecognizer;
import 'package:flutter/material.dart' hide DraggableScrollableSheet;
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart';
@@ -920,7 +920,7 @@ class _AudioPageState extends State<AudioPage> {
TextSpan(
text: audioItem.arc.displayedOid,
style: TextStyle(color: colorScheme.secondary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => Utils.copyText(
audioItem.arc.displayedOid,
),

View File

@@ -60,16 +60,11 @@ abstract class CommonRichTextPubPageState<T extends CommonRichTextPubPage>
late final RichTextEditingController editController;
@override
void initState() {
super.initState();
void initPubState() {
editController = RichTextEditingController(
items: widget.items,
onMention: onMention,
);
}
@override
void initPubState() {
if (editController.rawText.trim().isNotEmpty) {
enablePublish.value = true;
}

View File

@@ -15,14 +15,11 @@ abstract class CommonTextPubPageState<T extends CommonTextPubPage>
@override
late final TextEditingController editController;
@override
void initState() {
super.initState();
editController = TextEditingController(text: widget.initialValue);
}
@override
void initPubState() {
editController = TextEditingController(
text: widget.initialValue,
);
if (widget.initialValue?.trim().isNotEmpty == true) {
enablePublish.value = true;
}

View File

@@ -1,6 +1,5 @@
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/flutter/dyn/ink_well.dart';
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/http/dynamics.dart';
import 'package:PiliPlus/http/loading_state.dart';
@@ -9,6 +8,7 @@ import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/num_utils.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart' hide InkWell;
import 'package:get/get.dart';
@@ -125,7 +125,7 @@ Widget addWidget(
),
recognizer: reserve.desc3!.jumpUrl == null
? null
: (ImmediateTapGestureRecognizer()
: (TapGestureRecognizer()
..onTap = () {
Get.toNamed(
'/webview',
@@ -261,7 +261,7 @@ Widget addWidget(
),
recognizer: content.desc!.jumpUrl == null
? null
: (ImmediateTapGestureRecognizer()
: (TapGestureRecognizer()
..onTap = () {
Get.toNamed(
'/webview',

View File

@@ -1,6 +1,6 @@
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get_core/src/get_main.dart';
@@ -78,7 +78,7 @@ Widget _item(
? null
: TextStyle(color: theme.colorScheme.onSurfaceVariant),
recognizer: isAt
? (ImmediateTapGestureRecognizer()
? (TapGestureRecognizer()
..onTap = () => Get.toNamed('/member?mid=${e.rid}'))
: null,
);

View File

@@ -1,6 +1,5 @@
import 'dart:io' show Platform;
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/http/dynamics.dart';
@@ -13,6 +12,7 @@ import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -70,7 +70,7 @@ TextSpan? richNode(
TextSpan(
text: ' ${i.text}',
style: style,
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => Get.toNamed('/member?mid=${i.rid}'),
),
);
@@ -81,7 +81,7 @@ TextSpan? richNode(
TextSpan(
text: i.origText,
style: style,
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => Get.toNamed(
'/searchResult',
parameters: {
@@ -113,7 +113,7 @@ TextSpan? richNode(
style: style,
recognizer: i.origText == null
? null
: (ImmediateTapGestureRecognizer()
: (TapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(i.origText!)),
),
);
@@ -135,7 +135,7 @@ TextSpan? richNode(
TextSpan(
text: '投票:${i.text}',
style: style,
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
final dynIdStr = item.basic?.commentIdStr;
final dynId = dynIdStr != null
@@ -177,7 +177,7 @@ TextSpan? richNode(
TextSpan(
text: '${i.origText} ',
style: style,
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => Get.toNamed(
'/webview',
parameters: {
@@ -207,7 +207,7 @@ TextSpan? richNode(
style: style,
recognizer: i.jumpUrl == null
? null
: (ImmediateTapGestureRecognizer()
: (TapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
),
);
@@ -229,7 +229,7 @@ TextSpan? richNode(
TextSpan(
text: '${i.text} ',
style: style,
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () async {
try {
int? cid = await SearchHttp.ab2c(bvid: i.rid);
@@ -272,7 +272,7 @@ TextSpan? richNode(
TextSpan(
text: i.text,
style: style,
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
void onView(List<OpusPicModel> list) {
PageUtils.imageView(
@@ -328,7 +328,7 @@ TextSpan? richNode(
style: style,
recognizer: i.jumpUrl == null
? null
: (ImmediateTapGestureRecognizer()
: (TapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
),
);
@@ -340,7 +340,7 @@ TextSpan? richNode(
style: style,
recognizer: i.jumpUrl == null
? null
: (ImmediateTapGestureRecognizer()
: (TapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
),
);

View File

@@ -1,5 +1,4 @@
import 'package:PiliPlus/common/widgets/flutter/popup_menu.dart';
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/http/live.dart';
import 'package:PiliPlus/models/common/image_type.dart';
@@ -12,6 +11,7 @@ import 'package:PiliPlus/utils/accounts.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -84,7 +84,7 @@ class LiveRoomChatPanel extends StatelessWidget {
),
recognizer: item.uid == 0
? null
: (ImmediateTapGestureRecognizer()
: (TapGestureRecognizer()
..onTapUp = (e) => _showMsgMenu(
context,
itemContext,
@@ -99,7 +99,7 @@ class LiveRoomChatPanel extends StatelessWidget {
color: primary,
fontSize: 14,
),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () =>
Get.toNamed('/member?mid=${reply.mid}'),
),

View File

@@ -2,7 +2,6 @@ import 'package:PiliPlus/common/skeleton/msg_feed_sys_msg_.dart';
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
import 'package:PiliPlus/common/widgets/flutter/list_tile.dart';
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models_new/msg/msg_sys/data.dart';
@@ -11,6 +10,7 @@ import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/id_utils.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart' hide ListTile;
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -145,7 +145,7 @@ class _SysMsgPageState extends State<SysMsgPage> {
TextSpan(
text: match[1],
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
try {
PiliScheme.routePushFromUrl(url);
@@ -176,7 +176,7 @@ class _SysMsgPageState extends State<SysMsgPage> {
TextSpan(
text: match[3],
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
PiliScheme.videoPush(validAv, validBv);
},
@@ -195,7 +195,7 @@ class _SysMsgPageState extends State<SysMsgPage> {
TextSpan(
text: '查看动态',
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
PageUtils.pushDynFromId(id: dynId).catchError(
(err) => SmartDialog.showToast(err.toString()),
@@ -212,7 +212,7 @@ class _SysMsgPageState extends State<SysMsgPage> {
TextSpan(
text: '\u{1F517}网页链接',
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
PiliScheme.routePushFromUrl(matchStr);
},

View File

@@ -1,10 +1,10 @@
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/models_new/video/video_ai_conclusion/model_result.dart';
import 'package:PiliPlus/pages/common/slide/common_slide_page.dart';
import 'package:PiliPlus/pages/video/controller.dart';
import 'package:PiliPlus/pages/video/introduction/ugc/widgets/selectable_text.dart';
import 'package:PiliPlus/utils/duration_utils.dart';
import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -99,7 +99,7 @@ class AiConclusionPanel extends CommonSlidePage {
)
: null,
recognizer: tap
? (ImmediateTapGestureRecognizer()
? (TapGestureRecognizer()
..onTap = () {
try {
Get.find<VideoDetailController>(

View File

@@ -1,6 +1,5 @@
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
@@ -36,6 +35,7 @@ import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/request_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:expandable/expandable.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@@ -639,7 +639,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () async {
if (videoDetailCtr
.plPlayerController
@@ -702,7 +702,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => PiliScheme.videoPush(aid, null),
),
);
@@ -716,7 +716,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => PiliScheme.videoPush(null, matchStr),
),
);
@@ -728,7 +728,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
try {
Get.find<VideoDetailController>(
@@ -757,7 +757,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
return TextSpan(
text: '@${currentDesc.rawText}',
style: TextStyle(color: colorSchemePrimary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => Get.toNamed('/member?mid=${currentDesc.bizId}'),
);
default:

View File

@@ -4,7 +4,6 @@ import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/dialog/report.dart';
import 'package:PiliPlus/common/widgets/flutter/text/text.dart' as custom_text;
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
@@ -34,6 +33,7 @@ import 'package:PiliPlus/utils/utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:fixnum/fixnum.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -483,7 +483,7 @@ class ReplyItemGrpc extends StatelessWidget {
style: TextStyle(
color: theme.colorScheme.primary,
),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
feedBack();
Get.toNamed(
@@ -616,7 +616,7 @@ class ReplyItemGrpc extends StatelessWidget {
style: TextStyle(
color: theme.colorScheme.primary,
),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
if (url.appUrlSchema.isEmpty) {
if (RegExp(
@@ -695,7 +695,7 @@ class ReplyItemGrpc extends StatelessWidget {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () =>
Get.toNamed('/member?mid=${content.atNameToMid[name]}'),
),
@@ -705,7 +705,7 @@ class ReplyItemGrpc extends StatelessWidget {
TextSpan(
text: '投票: ${content.vote.title}',
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () =>
showVoteDialog(context, content.vote.id.toInt()),
),
@@ -730,7 +730,7 @@ class ReplyItemGrpc extends StatelessWidget {
? TextStyle(color: theme.colorScheme.primary)
: null,
recognizer: isValid
? (ImmediateTapGestureRecognizer()
? (TapGestureRecognizer()
..onTap = () {
// 跳转到指定位置
try {
@@ -761,7 +761,7 @@ class ReplyItemGrpc extends StatelessWidget {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
Get.toNamed(
'/searchResult',
@@ -775,7 +775,7 @@ class ReplyItemGrpc extends StatelessWidget {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(matchStr),
),
);
@@ -816,7 +816,7 @@ class ReplyItemGrpc extends StatelessWidget {
: theme.colorScheme.secondary,
),
recognizer: hasClickUrl
? (ImmediateTapGestureRecognizer()
? (TapGestureRecognizer()
..onTap = () =>
PageUtils.handleWebview(content.richText.note.clickUrl))
: null,

View File

@@ -3,7 +3,6 @@ import 'dart:math';
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/grpc/bilibili/im/interfaces/v1.pb.dart'
show EmotionInfo;
@@ -20,6 +19,7 @@ import 'package:PiliPlus/utils/id_utils.dart';
import 'package:PiliPlus/utils/image_utils.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -663,7 +663,7 @@ class ChatItem extends StatelessWidget {
TextSpan(
text: matchStr,
style: style.copyWith(color: theme.colorScheme.primary),
recognizer: ImmediateTapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () => PiliScheme.routePushFromUrl(matchStr),
),
);