From c5ee235ebd3e305b2628e28b9326dcc5caa26640 Mon Sep 17 00:00:00 2001 From: Pierre Hubert Date: Thu, 4 Aug 2022 13:45:10 +0200 Subject: [PATCH] Users can report their own generated content (thanks Google Play reviewers) --- lib/helpers/server_config_helper.dart | 2 ++ lib/models/server_config.dart | 7 ++++++- lib/ui/screens/user_page_sections/about_user_section.dart | 4 +++- lib/ui/tiles/comment_tile.dart | 4 +++- lib/ui/tiles/conversation_message_tile.dart | 6 ++++-- lib/ui/tiles/post_tile.dart | 4 +++- 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lib/helpers/server_config_helper.dart b/lib/helpers/server_config_helper.dart index 1f04969..d7cab06 100644 --- a/lib/helpers/server_config_helper.dart +++ b/lib/helpers/server_config_helper.dart @@ -104,6 +104,8 @@ class ServerConfigurationHelper { label: new Map.from(cause["label"]))) .toList()), maxCommentLength: reportPolicy["max_comment_length"], + canUserReportHisOwnContent: + reportPolicy["can_user_report_his_own_content"], )); } diff --git a/lib/models/server_config.dart b/lib/models/server_config.dart index 1b02ff9..adf8c4a 100644 --- a/lib/models/server_config.dart +++ b/lib/models/server_config.dart @@ -151,8 +151,13 @@ class ReportCause { class ReportPolicy { final List causes; final int maxCommentLength; + final bool canUserReportHisOwnContent; - const ReportPolicy({required this.causes, required this.maxCommentLength}); + const ReportPolicy({ + required this.causes, + required this.maxCommentLength, + required this.canUserReportHisOwnContent, + }); } class ServerConfig { diff --git a/lib/ui/screens/user_page_sections/about_user_section.dart b/lib/ui/screens/user_page_sections/about_user_section.dart index c89849f..a80d4fa 100644 --- a/lib/ui/screens/user_page_sections/about_user_section.dart +++ b/lib/ui/screens/user_page_sections/about_user_section.dart @@ -135,7 +135,9 @@ class _AboutUserSectionState extends State { ), // Report user - !widget.user.isCurrentUser && srvConfig!.isReportingEnabled + srvConfig!.isReportingEnabled && + (!widget.user.isCurrentUser || + srvConfig!.reportPolicy!.canUserReportHisOwnContent) ? ListTile( textColor: Colors.red, leading: Icon(Icons.flag, color: Colors.red), diff --git a/lib/ui/tiles/comment_tile.dart b/lib/ui/tiles/comment_tile.dart index dfe0645..c918368 100644 --- a/lib/ui/tiles/comment_tile.dart +++ b/lib/ui/tiles/comment_tile.dart @@ -112,7 +112,9 @@ class CommentTile extends StatelessWidget { child: Text(tr("Delete")!), value: _CommentAction.DELETE, ), - ]..addAll(srvConfig!.isReportingEnabled && !comment.isOwner + ]..addAll(srvConfig!.isReportingEnabled && + (!comment.isOwner || + srvConfig!.reportPolicy!.canUserReportHisOwnContent) ? [ PopupMenuItem( child: Text(tr("Report abuse")!), diff --git a/lib/ui/tiles/conversation_message_tile.dart b/lib/ui/tiles/conversation_message_tile.dart index c0dd9d3..6c46961 100644 --- a/lib/ui/tiles/conversation_message_tile.dart +++ b/lib/ui/tiles/conversation_message_tile.dart @@ -97,8 +97,10 @@ class ConversationMessageTile extends StatelessWidget { // Report the message PopupMenuItem( - enabled: - srvConfig!.isReportingEnabled && !message.isOwner, + enabled: srvConfig!.isReportingEnabled && + (!message.isOwner || + srvConfig!.reportPolicy! + .canUserReportHisOwnContent), value: _MenuChoices.REPORT, child: Text(tr("Report abuse")!), ), diff --git a/lib/ui/tiles/post_tile.dart b/lib/ui/tiles/post_tile.dart index b295606..6b4fbfc 100644 --- a/lib/ui/tiles/post_tile.dart +++ b/lib/ui/tiles/post_tile.dart @@ -156,7 +156,9 @@ class _PostTileState extends State { value: _PostActions.DELETE, enabled: widget.post.canDelete, ), - ]..addAll(srvConfig!.isReportingEnabled && !widget.post.isOwner + ]..addAll(srvConfig!.isReportingEnabled && + (!widget.post.isOwner || + srvConfig!.reportPolicy!.canUserReportHisOwnContent) ? [ PopupMenuItem( child: Text(tr("Report abuse")!),