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'; /// 外观