From 3be47ab6b0afc6433008fe045cd926f4cbb3354e Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Wed, 14 Jan 2026 13:56:42 -0500 Subject: [PATCH] chore: use knock reason to restrict which spaces analytics request indicator is shown in (#5195) --- .../space_analytics/analytics_request_indicator.dart | 11 +++++++---- lib/pangea/space_analytics/space_analytics.dart | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/pangea/space_analytics/analytics_request_indicator.dart b/lib/pangea/space_analytics/analytics_request_indicator.dart index 87b269e80..180a0bc6f 100644 --- a/lib/pangea/space_analytics/analytics_request_indicator.dart +++ b/lib/pangea/space_analytics/analytics_request_indicator.dart @@ -54,12 +54,15 @@ class AnalyticsRequestIndicatorState extends State { .where((u) => u.powerLevel >= 100); for (final analyticsRoom in widget.room.client.allMyAnalyticsRooms) { - final knocking = - await analyticsRoom.requestParticipants([Membership.knock]); - if (knocking.isEmpty) continue; + final knocking = await analyticsRoom.requestParticipants( + [Membership.knock], + ); + final knockingSpace = + knocking.where((u) => u.content['reason'] == widget.room.id).toList(); + if (knockingSpace.isEmpty) continue; for (final admin in admins) { - if (knocking.any((u) => u.id == admin.id)) { + if (knockingSpace.any((u) => u.id == admin.id)) { _knockingAdmins.putIfAbsent(admin, () => []).add(analyticsRoom); } } diff --git a/lib/pangea/space_analytics/space_analytics.dart b/lib/pangea/space_analytics/space_analytics.dart index 0bf8832ae..bef031cf5 100644 --- a/lib/pangea/space_analytics/space_analytics.dart +++ b/lib/pangea/space_analytics/space_analytics.dart @@ -296,6 +296,7 @@ class SpaceAnalyticsState extends State { (child) => child.roomId == roomId, ) ?.via, + reason: widget.roomId, ); status = RequestStatus.requested; } catch (e) {