diff --git a/lib/pangea/analytics_data/analytics_data_service.dart b/lib/pangea/analytics_data/analytics_data_service.dart index 0f250f121..31032b887 100644 --- a/lib/pangea/analytics_data/analytics_data_service.dart +++ b/lib/pangea/analytics_data/analytics_data_service.dart @@ -214,6 +214,8 @@ class AnalyticsDataService { await _syncController?.waitForSync(analyticsRoomID); } + DerivedAnalyticsDataModel? get cachedDerivedData => _cachedDerivedStats; + Future get derivedData async { await _ensureInitialized(); diff --git a/lib/pangea/analytics_summary/learning_progress_indicators.dart b/lib/pangea/analytics_summary/learning_progress_indicators.dart index d89851c6c..8c7079d2c 100644 --- a/lib/pangea/analytics_summary/learning_progress_indicators.dart +++ b/lib/pangea/analytics_summary/learning_progress_indicators.dart @@ -206,21 +206,23 @@ class LearningProgressIndicators extends StatelessWidget { child: FutureBuilder( future: analyticsService.derivedData, builder: (context, snapshot) { + final cached = + analyticsService.cachedDerivedData; + final data = snapshot.data ?? cached; return Row( spacing: 8.0, children: [ Expanded( child: LearningProgressBar( height: 24.0, - loading: !snapshot.hasData, - progress: snapshot - .data?.levelProgress ?? - 0.0, + loading: data == null, + progress: + data?.levelProgress ?? 0.0, ), ), - if (snapshot.hasData) + if (data != null) Text( - "⭐ ${snapshot.data!.level}", + "⭐ ${data.level}", style: Theme.of(context) .textTheme .titleLarge