fix: save activities to analytics room for corresponding language (#5514)

This commit is contained in:
ggurdin 2026-01-29 12:54:58 -05:00 committed by GitHub
parent 85a2b9efe9
commit ed6c2ff5ad
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 4 deletions

View file

@ -9,6 +9,7 @@ import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart
import 'package:fluffychat/pangea/activity_summary/activity_summary_model.dart';
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
import 'package:fluffychat/pangea/common/widgets/error_indicator.dart';
import 'package:fluffychat/pangea/languages/p_language_store.dart';
import 'package:fluffychat/widgets/matrix.dart';
class ActivityFinishedStatusMessage extends StatelessWidget {
@ -28,10 +29,17 @@ class ActivityFinishedStatusMessage extends StatelessWidget {
Future<void> _archiveToAnalytics() async {
try {
final activityPlan = controller.room.activityPlan;
if (activityPlan == null) {
throw Exception("No activity plan found for room");
}
final lang = activityPlan.req.targetLanguage.split("-").first;
final langModel = PLanguageStore.byLangCode(lang)!;
await controller.room.archiveActivity();
await MatrixState
.pangeaController.matrixState.analyticsDataService.updateService
.sendActivityAnalytics(controller.room.id);
.sendActivityAnalytics(controller.room.id, langModel);
} catch (e, s) {
ErrorHandler.logError(
e: e,

View file

@ -128,12 +128,14 @@ class AnalyticsUpdateService {
await future;
}
Future<void> sendActivityAnalytics(String roomId) async {
final analyticsRoom = await _getAnalyticsRoom();
Future<void> sendActivityAnalytics(String roomId, LanguageModel lang) async {
final analyticsRoom = await _getAnalyticsRoom(l2Override: lang);
if (analyticsRoom == null) return;
await analyticsRoom.addActivityRoomId(roomId);
dataService.updateDispatcher.sendActivityAnalyticsUpdate(roomId);
if (lang.langCodeShort == _l2?.langCodeShort) {
dataService.updateDispatcher.sendActivityAnalyticsUpdate(roomId);
}
}
Future<void> blockConstruct(ConstructIdentifier constructId) async {