From 0218b6c3abab503a7116c3c2172e4e1a558b2e69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lima?= Date: Tue, 5 Mar 2024 10:37:38 +0000 Subject: [PATCH 1/2] hotfix: add proper error handling to PlausibleProvider --- .../plausible/plausible_provider.dart | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/uni/lib/model/providers/plausible/plausible_provider.dart b/uni/lib/model/providers/plausible/plausible_provider.dart index e60f13daa..3d0ed7326 100644 --- a/uni/lib/model/providers/plausible/plausible_provider.dart +++ b/uni/lib/model/providers/plausible/plausible_provider.dart @@ -2,10 +2,12 @@ import 'dart:async'; import 'package:battery_plus/battery_plus.dart'; import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:logger/logger.dart'; import 'package:plausible_analytics/plausible_analytics.dart'; import 'package:provider/provider.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:uni/controller/local_storage/preferences_controller.dart'; class PlausibleProvider extends StatefulWidget { @@ -38,10 +40,19 @@ class _PlausibleProviderState extends State { if (plausible != null) { plausible.enabled = false; - _startListeners(plausible) - .then((_) => _updateBatteryState()) - .then((_) => _updateConnectivityState()) - .then((_) => _updateUsageStatsState()); + unawaited( + _startListeners(plausible) + .then((_) => _updateBatteryState()) + .then((_) => _updateConnectivityState()) + .then((_) => _updateUsageStatsState()) + .onError((error, stackTrace) { + unawaited(Sentry.captureException(error, stackTrace: stackTrace)); + Logger().e( + 'Error initializing plausible: $error', + stackTrace: stackTrace, + ); + }), + ); } } @@ -67,7 +78,10 @@ class _PlausibleProviderState extends State { final battery = Battery(); _batteryLevel = await battery.batteryLevel; - _isInBatterySaveMode = await battery.isInBatterySaveMode; + + try { + _isInBatterySaveMode = await battery.isInBatterySaveMode; + } on PlatformException catch (_) {} _updateAnalyticsState(); } From 1cc79906dbb4bf3b6b89c80c4e251646c75cecb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lima?= Date: Tue, 5 Mar 2024 18:56:24 +0000 Subject: [PATCH 2/2] fix: collect analytics from users without bat save capabilities --- uni/lib/model/providers/plausible/plausible_provider.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/uni/lib/model/providers/plausible/plausible_provider.dart b/uni/lib/model/providers/plausible/plausible_provider.dart index 3d0ed7326..4ea9ab16d 100644 --- a/uni/lib/model/providers/plausible/plausible_provider.dart +++ b/uni/lib/model/providers/plausible/plausible_provider.dart @@ -81,7 +81,9 @@ class _PlausibleProviderState extends State { try { _isInBatterySaveMode = await battery.isInBatterySaveMode; - } on PlatformException catch (_) {} + } on PlatformException catch (_) { + _isInBatterySaveMode = false; + } _updateAnalyticsState(); }