From 583479873d08ad625249bd6d4da2fdf5ecd6b7e2 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Wed, 4 Jun 2025 10:41:31 -0400 Subject: [PATCH] chore: add permission to send activity events to newly created chats (#2923) --- assets/l10n/intl_en.arb | 3 ++- .../chat_permissions_settings/permission_list_tile.dart | 3 +++ lib/pangea/chat/constants/default_power_level.dart | 4 ++++ lib/pangea/chat_settings/pages/pangea_chat_details.dart | 6 ++++-- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index 899a6beb5..eb0ac0229 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -4976,5 +4976,6 @@ "canBeFoundViaCodeOrLink": "\u2022 code or link", "canBeFoundViaKnock": "\u2022 request to join and admin approval", "anyoneCanJoin": "Anyone can join! However, admin can kick and ban whoever misbehaves. Those who are banned may not return!", - "createYourSpace": "Create your space" + "createYourSpace": "Create your space", + "sendActivities": "Send activities" } diff --git a/lib/pages/chat_permissions_settings/permission_list_tile.dart b/lib/pages/chat_permissions_settings/permission_list_tile.dart index a8f14e002..bdee6543c 100644 --- a/lib/pages/chat_permissions_settings/permission_list_tile.dart +++ b/lib/pages/chat_permissions_settings/permission_list_tile.dart @@ -4,6 +4,7 @@ import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/events/constants/pangea_event_types.dart'; class PermissionsListTile extends StatelessWidget { final String permissionKey; @@ -100,6 +101,8 @@ class PermissionsListTile extends StatelessWidget { return L10n.of(context).pinMessages; case EventTypes.RoomJoinRules: return L10n.of(context).setJoinRules; + case PangeaEventTypes.activityPlan: + return L10n.of(context).sendActivities; // Pangea# } } diff --git a/lib/pangea/chat/constants/default_power_level.dart b/lib/pangea/chat/constants/default_power_level.dart index c52c65b53..cc354b346 100644 --- a/lib/pangea/chat/constants/default_power_level.dart +++ b/lib/pangea/chat/constants/default_power_level.dart @@ -1,5 +1,7 @@ import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/events/constants/pangea_event_types.dart'; + class RoomDefaults { static StateEvent defaultPowerLevels(String userID) => StateEvent( type: EventTypes.RoomPowerLevels, @@ -10,6 +12,7 @@ class RoomDefaults { "invite": 50, "redact": 50, "events": { + PangeaEventTypes.activityPlan: 0, "m.room.power_levels": 100, "m.room.pinned_events": 50, }, @@ -34,6 +37,7 @@ class RoomDefaults { "invite": 50, "redact": 50, "events": { + PangeaEventTypes.activityPlan: 50, "m.room.power_levels": 100, "m.room.pinned_events": 50, }, diff --git a/lib/pangea/chat_settings/pages/pangea_chat_details.dart b/lib/pangea/chat_settings/pages/pangea_chat_details.dart index 8bd24277c..f6fab45d0 100644 --- a/lib/pangea/chat_settings/pages/pangea_chat_details.dart +++ b/lib/pangea/chat_settings/pages/pangea_chat_details.dart @@ -19,6 +19,7 @@ import 'package:fluffychat/pangea/chat_settings/models/bot_options_model.dart'; import 'package:fluffychat/pangea/chat_settings/utils/delete_room.dart'; import 'package:fluffychat/pangea/chat_settings/widgets/conversation_bot/conversation_bot_settings.dart'; import 'package:fluffychat/pangea/chat_settings/widgets/delete_space_dialog.dart'; +import 'package:fluffychat/pangea/events/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/spaces/utils/load_participants_util.dart'; import 'package:fluffychat/pangea/spaces/widgets/download_space_analytics_dialog.dart'; @@ -316,8 +317,9 @@ class RoomDetailsButtonRowState extends State { title: l10n.activities, icon: const Icon(Icons.event_note_outlined), onPressed: () => context.go("/rooms/${room.id}/details/planner"), - visible: room.canSendDefaultStates || room.isSpace, - enabled: room.canSendDefaultStates, + visible: room.canChangeStateEvent(PangeaEventTypes.activityPlan) || + room.isSpace, + enabled: room.canChangeStateEvent(PangeaEventTypes.activityPlan), ), ButtonDetails( title: l10n.permissions,