From c03e43098b1a6f77846326d91c0428bc3f7893bb Mon Sep 17 00:00:00 2001 From: orz12 Date: Fri, 22 Mar 2024 21:09:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E6=94=B6=E5=88=B0=E7=9A=84=E8=B5=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/setting/extra_setting.dart | 6 ++++++ lib/pages/whisper/controller.dart | 9 ++++++++ lib/pages/whisper/view.dart | 32 +++++++++++++++++----------- lib/utils/storage.dart | 1 + 4 files changed, 35 insertions(+), 13 deletions(-) diff --git a/lib/pages/setting/extra_setting.dart b/lib/pages/setting/extra_setting.dart index 8b9c09d1..281ce3a5 100644 --- a/lib/pages/setting/extra_setting.dart +++ b/lib/pages/setting/extra_setting.dart @@ -198,6 +198,12 @@ class _ExtraSettingState extends State { setKey: SettingBoxKey.enableAi, defaultVal: true, ), + const SetSwitchItem( + title: '消息页禁用“收到的赞”功能', + subTitle: '禁止打开入口,降低网络社交依赖', + setKey: SettingBoxKey.disableLikeMsg, + defaultVal: false, + ), ListTile( dense: false, title: Text('评论展示', style: titleStyle), diff --git a/lib/pages/whisper/controller.dart b/lib/pages/whisper/controller.dart index 5cfb9162..e4d4650f 100644 --- a/lib/pages/whisper/controller.dart +++ b/lib/pages/whisper/controller.dart @@ -6,6 +6,7 @@ import 'package:PiliPalaX/models/msg/account.dart'; import 'package:PiliPalaX/models/msg/session.dart'; import '../../models/msg/msgfeed_unread.dart'; +import '../../utils/storage.dart'; class WhisperController extends GetxController { RxList sessionList = [].obs; @@ -17,24 +18,28 @@ class WhisperController extends GetxController { "name":"回复我的", "icon":Icons.message_outlined, "route": "/replyMe", + "enabled": true, "value": 0 }, { "name":"@我", "icon":Icons.alternate_email_outlined, "route": "/atMe", + "enabled": true, "value": 0 }, { "name":"收到的赞", "icon":Icons.favorite_border_outlined, "route": "/likeMe", + "enabled": true, "value": 0 }, { "name":"系统通知", "icon":Icons.notifications_none_outlined, "route": "/sysMsg", + "enabled": true, "value": 0 }, ].obs; @@ -47,6 +52,10 @@ class WhisperController extends GetxController { msgFeedTop[1]["value"] = msgFeedUnread.value.at; msgFeedTop[2]["value"] = msgFeedUnread.value.like; msgFeedTop[3]["value"] = msgFeedUnread.value.sys_msg; + if (GStrorage.setting.get(SettingBoxKey.disableLikeMsg, defaultValue: false)) { + msgFeedTop[2]["value"] = -1; + msgFeedTop[2]["enabled"] = false; + } // 触发更新 msgFeedTop.refresh(); } else { diff --git a/lib/pages/whisper/view.dart b/lib/pages/whisper/view.dart index 697baa56..ea080fed 100644 --- a/lib/pages/whisper/view.dart +++ b/lib/pages/whisper/view.dart @@ -1,5 +1,6 @@ import 'package:easy_debounce/easy_throttle.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:PiliPalaX/common/widgets/network_img_layer.dart'; import 'package:PiliPalaX/utils/utils.dart'; @@ -103,6 +104,10 @@ class _WhisperPageState extends State { ], ), onTap: () { + if (!_whisperController.msgFeedTop[idx]['enabled']) { + SmartDialog.showToast('已禁用'); + return; + } setState(() { _whisperController.msgFeedTop[idx]['value'] = 0; }); @@ -182,18 +187,18 @@ class _WhisperPageState extends State { .content != '' ? (sessionList[i] - .lastMsg - .content['text'] ?? - sessionList[i] - .lastMsg - .content['content'] ?? - sessionList[i] - .lastMsg - .content['title'] ?? - sessionList[i] - .lastMsg - .content['reply_content']) - : '不支持的消息类型', + .lastMsg + .content['text'] ?? + sessionList[i] + .lastMsg + .content['content'] ?? + sessionList[i] + .lastMsg + .content['title'] ?? + sessionList[i] + .lastMsg + .content['reply_content']) + : '不支持的消息类型', maxLines: 1, overflow: TextOverflow.ellipsis, style: Theme.of(context) @@ -205,7 +210,8 @@ class _WhisperPageState extends State { .outline)), trailing: Text( Utils.dateFormat( - sessionList[i].lastMsg.timestamp, formatType: "day"), + sessionList[i].lastMsg.timestamp, + formatType: "day"), style: Theme.of(context) .textTheme .labelSmall! diff --git a/lib/utils/storage.dart b/lib/utils/storage.dart index b7204a46..365a415b 100644 --- a/lib/utils/storage.dart +++ b/lib/utils/storage.dart @@ -132,6 +132,7 @@ class SettingBoxKey { enableSearchWord = 'enableSearchWord', enableSystemProxy = 'enableSystemProxy', enableAi = 'enableAi', + disableLikeMsg = 'disableLikeMsg', defaultHomePage = 'defaultHomePage'; /// 外观