mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 11:08:03 +08:00
opt gesture
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:PiliPlus/common/skeleton/msg_feed_top.dart';
|
||||
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/list_tile.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/app/im/v1.pbenum.dart'
|
||||
@@ -12,7 +13,8 @@ import 'package:PiliPlus/pages/msg_feed_top/at_me/controller.dart';
|
||||
import 'package:PiliPlus/pages/whisper_settings/view.dart';
|
||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||
import 'package:PiliPlus/utils/date_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:PiliPlus/utils/utils.dart';
|
||||
import 'package:flutter/material.dart' hide ListTile;
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class AtMePage extends StatefulWidget {
|
||||
@@ -91,7 +93,13 @@ class _AtMePageState extends State<AtMePage> {
|
||||
_atMeController.onLoadMore();
|
||||
}
|
||||
final item = response[index];
|
||||
void onLongPress() => showConfirmDialog(
|
||||
context: context,
|
||||
title: '确定删除该通知?',
|
||||
onConfirm: () => _atMeController.onRemove(item.id, index),
|
||||
);
|
||||
return ListTile(
|
||||
safeArea: true,
|
||||
onTap: () {
|
||||
String? nativeUri = item.item?.nativeUri;
|
||||
if (nativeUri == null ||
|
||||
@@ -101,11 +109,8 @@ class _AtMePageState extends State<AtMePage> {
|
||||
}
|
||||
PiliScheme.routePushFromUrl(nativeUri);
|
||||
},
|
||||
onLongPress: () => showConfirmDialog(
|
||||
context: context,
|
||||
title: '确定删除该通知?',
|
||||
onConfirm: () => _atMeController.onRemove(item.id, index),
|
||||
),
|
||||
onLongPress: onLongPress,
|
||||
onSecondaryTap: Utils.isMobile ? null : onLongPress,
|
||||
leading: GestureDetector(
|
||||
onTap: () => Get.toNamed('/member?mid=${item.user?.mid}'),
|
||||
child: NetworkImgLayer(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:PiliPlus/common/skeleton/msg_feed_top.dart';
|
||||
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/list_tile.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/common/widgets/pair.dart';
|
||||
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
||||
@@ -13,7 +14,8 @@ import 'package:PiliPlus/pages/msg_feed_top/like_me/controller.dart';
|
||||
import 'package:PiliPlus/pages/whisper_settings/view.dart';
|
||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||
import 'package:PiliPlus/utils/date_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:PiliPlus/utils/utils.dart';
|
||||
import 'package:flutter/material.dart' hide ListTile;
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class LikeMePage extends StatefulWidget {
|
||||
@@ -162,7 +164,60 @@ class _LikeMePageState extends State<LikeMePage> {
|
||||
MsgLikeItem item,
|
||||
ValueChanged<int?> onRemove,
|
||||
) {
|
||||
void onLongPress() => showDialog(
|
||||
context: context,
|
||||
builder: (context) {
|
||||
final isNotice = item.noticeState == 0;
|
||||
return AlertDialog(
|
||||
clipBehavior: Clip.hardEdge,
|
||||
contentPadding: const EdgeInsets.symmetric(vertical: 12),
|
||||
content: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ListTile(
|
||||
onTap: () {
|
||||
Get.back();
|
||||
showConfirmDialog(
|
||||
context: context,
|
||||
title: '删除',
|
||||
content: '该条通知删除后,当有新点赞时会重新出现在列表,是否继续?',
|
||||
onConfirm: () => onRemove(item.id),
|
||||
);
|
||||
},
|
||||
dense: true,
|
||||
title: const Text(
|
||||
'删除',
|
||||
style: TextStyle(fontSize: 14),
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
onTap: () {
|
||||
Get.back();
|
||||
if (isNotice) {
|
||||
showConfirmDialog(
|
||||
context: context,
|
||||
title: '不再通知',
|
||||
content: '这条内容的点赞将不再通知,但仍可在列表内查看,是否继续?',
|
||||
onConfirm: () =>
|
||||
_likeMeController.onSetNotice(item, isNotice),
|
||||
);
|
||||
} else {
|
||||
_likeMeController.onSetNotice(item, isNotice);
|
||||
}
|
||||
},
|
||||
dense: true,
|
||||
title: Text(
|
||||
isNotice ? '不再通知' : '接收通知',
|
||||
style: const TextStyle(fontSize: 14),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
return ListTile(
|
||||
safeArea: true,
|
||||
onTap: () {
|
||||
String? nativeUri = item.item?.nativeUri;
|
||||
bool isInvalid =
|
||||
@@ -183,58 +238,8 @@ class _LikeMePageState extends State<LikeMePage> {
|
||||
}
|
||||
PiliScheme.routePushFromUrl(nativeUri);
|
||||
},
|
||||
onLongPress: () => showDialog(
|
||||
context: context,
|
||||
builder: (context) {
|
||||
final isNotice = item.noticeState == 0;
|
||||
return AlertDialog(
|
||||
clipBehavior: Clip.hardEdge,
|
||||
contentPadding: const EdgeInsets.symmetric(vertical: 12),
|
||||
content: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ListTile(
|
||||
onTap: () {
|
||||
Get.back();
|
||||
showConfirmDialog(
|
||||
context: context,
|
||||
title: '删除',
|
||||
content: '该条通知删除后,当有新点赞时会重新出现在列表,是否继续?',
|
||||
onConfirm: () => onRemove(item.id),
|
||||
);
|
||||
},
|
||||
dense: true,
|
||||
title: const Text(
|
||||
'删除',
|
||||
style: TextStyle(fontSize: 14),
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
onTap: () {
|
||||
Get.back();
|
||||
if (isNotice) {
|
||||
showConfirmDialog(
|
||||
context: context,
|
||||
title: '不再通知',
|
||||
content: '这条内容的点赞将不再通知,但仍可在列表内查看,是否继续?',
|
||||
onConfirm: () =>
|
||||
_likeMeController.onSetNotice(item, isNotice),
|
||||
);
|
||||
} else {
|
||||
_likeMeController.onSetNotice(item, isNotice);
|
||||
}
|
||||
},
|
||||
dense: true,
|
||||
title: Text(
|
||||
isNotice ? '不再通知' : '接收通知',
|
||||
style: const TextStyle(fontSize: 14),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
onLongPress: onLongPress,
|
||||
onSecondaryTap: Utils.isMobile ? null : onLongPress,
|
||||
leading: Column(
|
||||
children: [
|
||||
const Spacer(),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:PiliPlus/common/skeleton/msg_feed_top.dart';
|
||||
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/list_tile.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/app/im/v1.pbenum.dart'
|
||||
@@ -12,7 +13,8 @@ import 'package:PiliPlus/pages/msg_feed_top/reply_me/controller.dart';
|
||||
import 'package:PiliPlus/pages/whisper_settings/view.dart';
|
||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||
import 'package:PiliPlus/utils/date_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:PiliPlus/utils/utils.dart';
|
||||
import 'package:flutter/material.dart' hide ListTile;
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class ReplyMePage extends StatefulWidget {
|
||||
@@ -92,7 +94,16 @@ class _ReplyMePageState extends State<ReplyMePage> {
|
||||
}
|
||||
|
||||
MsgReplyItem item = response[index];
|
||||
|
||||
void onLongPress() => showConfirmDialog(
|
||||
context: context,
|
||||
title: '确定删除该通知?',
|
||||
onConfirm: () =>
|
||||
_replyMeController.onRemove(item.id, index),
|
||||
);
|
||||
|
||||
return ListTile(
|
||||
safeArea: true,
|
||||
onTap: () {
|
||||
String? nativeUri = item.item?.nativeUri;
|
||||
if (nativeUri == null ||
|
||||
@@ -106,12 +117,8 @@ class _ReplyMePageState extends State<ReplyMePage> {
|
||||
oid: item.item?.subjectId,
|
||||
);
|
||||
},
|
||||
onLongPress: () => showConfirmDialog(
|
||||
context: context,
|
||||
title: '确定删除该通知?',
|
||||
onConfirm: () =>
|
||||
_replyMeController.onRemove(item.id, index),
|
||||
),
|
||||
onLongPress: onLongPress,
|
||||
onSecondaryTap: Utils.isMobile ? null : onLongPress,
|
||||
leading: GestureDetector(
|
||||
onTap: () => Get.toNamed('/member?mid=${item.user?.mid}'),
|
||||
child: NetworkImgLayer(
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:PiliPlus/common/skeleton/msg_feed_sys_msg_.dart';
|
||||
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
|
||||
import 'package:PiliPlus/common/widgets/list_tile.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
@@ -10,7 +11,7 @@ import 'package:PiliPlus/utils/id_utils.dart';
|
||||
import 'package:PiliPlus/utils/page_utils.dart';
|
||||
import 'package:PiliPlus/utils/utils.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/material.dart' hide ListTile;
|
||||
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
@@ -78,13 +79,15 @@ class _SysMsgPageState extends State<SysMsgPage> {
|
||||
_sysMsgController.onLoadMore();
|
||||
}
|
||||
final item = response[index];
|
||||
void onLongPress() => showConfirmDialog(
|
||||
context: context,
|
||||
title: '确定删除该通知?',
|
||||
onConfirm: () => _sysMsgController.onRemove(item.id, index),
|
||||
);
|
||||
return ListTile(
|
||||
onLongPress: () => showConfirmDialog(
|
||||
context: context,
|
||||
title: '确定删除该通知?',
|
||||
onConfirm: () =>
|
||||
_sysMsgController.onRemove(item.id, index),
|
||||
),
|
||||
safeArea: true,
|
||||
onLongPress: onLongPress,
|
||||
onSecondaryTap: Utils.isMobile ? null : onLongPress,
|
||||
title: Text(
|
||||
"${item.title}",
|
||||
style: theme.textTheme.titleMedium,
|
||||
|
||||
Reference in New Issue
Block a user