From 62cec74cab5ad0ab25b8bc42b8274c52397d228c Mon Sep 17 00:00:00 2001 From: ggurdin Date: Tue, 12 Nov 2024 11:03:03 -0500 Subject: [PATCH] fix level progress calculation for level 1 --- .../controllers/get_analytics_controller.dart | 15 ++++++++++----- .../controllers/put_analytics_controller.dart | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/pangea/controllers/get_analytics_controller.dart b/lib/pangea/controllers/get_analytics_controller.dart index 49ed77e1f..e9bb72fdd 100644 --- a/lib/pangea/controllers/get_analytics_controller.dart +++ b/lib/pangea/controllers/get_analytics_controller.dart @@ -35,13 +35,19 @@ class GetAnalyticsController { Client get _client => _pangeaController.matrixState.client; // the minimum XP required for a given level - double get _minXPForLevel { - return 12.5 * (2 * pow(constructListModel.level - 1, 2) - 1); + int get _minXPForLevel { + return _calculateMinXpForLevel(constructListModel.level); } // the minimum XP required for the next level - double get _minXPForNextLevel { - return 12.5 * (2 * pow(constructListModel.level, 2) - 1); + int get _minXPForNextLevel { + return _calculateMinXpForLevel(constructListModel.level + 1); + } + + /// Calculates the minimum XP required for a specific level. + int _calculateMinXpForLevel(int level) { + if (level == 1) return 0; // Ensure level 1 starts at 0 XP + return ((100 / 8) * (2 * pow(level - 1, 2))).floor(); } // the progress within the current level as a percentage (0.0 to 1.0) @@ -75,7 +81,6 @@ class GetAnalyticsController { constructListModel.dispose(); _analyticsUpdateSubscription?.cancel(); _analyticsUpdateSubscription = null; - analyticsStream.close(); initCompleter = null; _cache.clear(); } diff --git a/lib/pangea/controllers/put_analytics_controller.dart b/lib/pangea/controllers/put_analytics_controller.dart index 695c524fd..f484520e8 100644 --- a/lib/pangea/controllers/put_analytics_controller.dart +++ b/lib/pangea/controllers/put_analytics_controller.dart @@ -146,7 +146,7 @@ class PutAnalyticsController extends BaseController { ); } - Future _onUpdateLanguages(String previousL2) async { + Future _onUpdateLanguages(String? previousL2) async { await sendLocalAnalyticsToAnalyticsRoom( l2Override: previousL2, );