4480 restrict options in archived activity session chat UI (#4538)

* remove chat UI from archived activities

- only count current, non left or banned activities in list to remove directly deleted activities
- change learning indicators to reflect the same activity list

* revert accidental changes

* import sorting and edge case handling

* chore: update pangea comments

---------

Co-authored-by: ggurdin <ggurdin@gmail.com>
This commit is contained in:
avashilling 2025-10-30 09:11:02 -04:00 committed by GitHub
parent c9d02f6c88
commit b6c61c6683
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 29 additions and 24 deletions

View file

@ -123,9 +123,20 @@ class ChatView extends StatelessWidget {
// ),
// ];
// } else
// Pangea#
if (!controller.room.isArchived) {
// #Pangea
// if (!controller.room.isArchived) {
// return [
// if (AppConfig.experimentalVoip &&
// Matrix.of(context).voipPlugin != null &&
// controller.room.isDirectChat)
// IconButton(
// onPressed: controller.onPhoneButtonTap,
// icon: const Icon(Icons.call_outlined),
// tooltip: L10n.of(context).placeCall,
// ),
// EncryptionButton(controller.room),
// ChatSettingsPopupMenu(controller.room, true),
// ];
if (!(controller.room.isArchived || controller.room.hasArchivedActivity)) {
return [
if (controller.room.activityPlan == null ||
!controller.room.showActivityChatUI)
@ -148,18 +159,6 @@ class ChatView extends StatelessWidget {
},
),
];
// return [
// if (AppConfig.experimentalVoip &&
// Matrix.of(context).voipPlugin != null &&
// controller.room.isDirectChat)
// IconButton(
// onPressed: controller.onPhoneButtonTap,
// icon: const Icon(Icons.call_outlined),
// tooltip: L10n.of(context).placeCall,
// ),
// EncryptionButton(controller.room),
// ChatSettingsPopupMenu(controller.room, true),
// ];
// Pangea#
}
return [];

View file

@ -596,7 +596,19 @@ class GetAnalyticsController extends BaseController {
final Room? analyticsRoom = _client.analyticsRoomLocal(_l2!);
if (analyticsRoom == null) return [];
final ids = analyticsRoom.activityRoomIds;
return ids.map((id) => _client.getRoomById(id)).whereType<Room>().toList();
return ids
.map((id) => _client.getRoomById(id))
.whereType<Room>()
.where(
(room) =>
room.membership != Membership.leave &&
room.membership != Membership.ban,
)
.toList();
}
int get archivedActivitiesCount {
return archivedActivities.length;
}
}

View file

@ -5,7 +5,6 @@ import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:fluffychat/config/themes.dart';
import 'package:fluffychat/pangea/analytics_misc/client_analytics_extension.dart';
import 'package:fluffychat/pangea/analytics_misc/construct_list_model.dart';
import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart';
import 'package:fluffychat/pangea/analytics_misc/get_analytics_controller.dart';
@ -13,7 +12,6 @@ import 'package:fluffychat/pangea/analytics_summary/learning_progress_bar.dart';
import 'package:fluffychat/pangea/analytics_summary/learning_progress_indicator_button.dart';
import 'package:fluffychat/pangea/analytics_summary/progress_indicator.dart';
import 'package:fluffychat/pangea/analytics_summary/progress_indicators_enum.dart';
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
import 'package:fluffychat/pangea/learning_settings/pages/settings_learning.dart';
import 'package:fluffychat/widgets/hover_builder.dart';
import 'package:fluffychat/widgets/matrix.dart';
@ -155,12 +153,8 @@ class LearningProgressIndicatorsState
),
const SizedBox(width: 6.0),
AnimatedFloatingNumber(
number: Matrix.of(context)
.client
.analyticsRoomLocal()
?.activityRoomIds
.length ??
0,
number: MatrixState.pangeaController
.getAnalytics.archivedActivitiesCount,
),
],
),