added first initial refresh for new analytics data structure, ensured chat and space list in my analytics is updated
This commit is contained in:
parent
e4357a3e9b
commit
9138940e35
3 changed files with 35 additions and 0 deletions
|
|
@ -331,6 +331,7 @@ class MyAnalyticsController extends BaseController {
|
|||
lastUpdates.add(lastEvent!.content.lastUpdated!);
|
||||
}
|
||||
}
|
||||
if (lastUpdates.isEmpty) return null;
|
||||
return lastUpdates.reduce(
|
||||
(value, element) => value.isAfter(element) ? value : element,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:fluffychat/pangea/constants/pangea_event_types.dart';
|
||||
import 'package:fluffychat/pangea/enum/construct_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/extensions/client_extension/client_extension.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/models/analytics_event.dart';
|
||||
import 'package:fluffychat/pangea/pages/analytics/base_analytics_view.dart';
|
||||
import 'package:fluffychat/pangea/pages/analytics/student_analytics/student_analytics.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
|
@ -46,9 +50,32 @@ class BaseAnalyticsController extends State<BaseAnalyticsPage> {
|
|||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
runFirstRefresh();
|
||||
setChartData();
|
||||
}
|
||||
|
||||
Future<void> runFirstRefresh() async {
|
||||
final analyticsRooms =
|
||||
pangeaController.matrixState.client.allMyAnalyticsRooms;
|
||||
|
||||
final List<AnalyticsEvent> analyticsEvent = [];
|
||||
for (final analyticsRoom in analyticsRooms) {
|
||||
final lastSummaryEvent = await analyticsRoom
|
||||
.getLastAnalyticsEvent(PangeaEventTypes.summaryAnalytics);
|
||||
final lastConstructEvent =
|
||||
await analyticsRoom.getLastAnalyticsEvent(PangeaEventTypes.construct);
|
||||
if (lastSummaryEvent != null) {
|
||||
analyticsEvent.add(lastSummaryEvent);
|
||||
}
|
||||
if (lastConstructEvent != null) {
|
||||
analyticsEvent.add(lastConstructEvent);
|
||||
}
|
||||
}
|
||||
|
||||
if (analyticsEvent.isNotEmpty) return;
|
||||
onRefresh();
|
||||
}
|
||||
|
||||
Future<void> onRefresh() async {
|
||||
await showFutureLoadingDialog(
|
||||
context: context,
|
||||
|
|
|
|||
|
|
@ -27,6 +27,13 @@ class StudentAnalyticsController extends State<StudentAnalyticsPage> {
|
|||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
final listFutures = [
|
||||
_pangeaController.myAnalytics.setStudentChats(),
|
||||
_pangeaController.myAnalytics.setStudentSpaces(),
|
||||
];
|
||||
Future.wait(listFutures).then((_) => setState(() {}));
|
||||
|
||||
stateSub = _pangeaController.myAnalytics.stateStream.listen((_) {
|
||||
setState(() {});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue