From fd7ad7d92b3b97f1f761b3768df107bedd476a9a Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Thu, 16 Apr 2020 11:49:20 +0200 Subject: [PATCH] Generate a random uuid for each user for Sentry This way, we know if one particular user has lots of errors. Firebase Crashlytics used to do this automatically, I think. --- lib/error_reporting.dart | 3 +++ lib/settings.dart | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/error_reporting.dart b/lib/error_reporting.dart index 5c354150..d7eaa922 100644 --- a/lib/error_reporting.dart +++ b/lib/error_reporting.dart @@ -62,6 +62,9 @@ Future get _environmentEvent async { build: packageInfo.buildNumber, ), ), + userContext: User( + id: Settings.instance.pseudoId, + ), ); return environment; } diff --git a/lib/settings.dart b/lib/settings.dart index 115ae786..92220541 100644 --- a/lib/settings.dart +++ b/lib/settings.dart @@ -3,6 +3,8 @@ import 'package:gitjournal/screens/note_editor.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:gitjournal/core/sorting_mode.dart'; +import 'package:uuid/uuid.dart'; + class Settings { static List changeObservers = []; @@ -34,6 +36,9 @@ class Settings { bool proMode = false; + String _pseudoId; + String get pseudoId => _pseudoId; + void load(SharedPreferences pref) { gitAuthor = pref.getString("gitAuthor") ?? gitAuthor; gitAuthorEmail = pref.getString("gitAuthorEmail") ?? gitAuthorEmail; @@ -66,6 +71,12 @@ class Settings { version = pref.getInt("settingsVersion") ?? version; proMode = pref.getBool("proMode") ?? proMode; + + _pseudoId = pref.getString("pseudoId"); + if (_pseudoId == null) { + _pseudoId = Uuid().v4(); + pref.setString("pseudoId", _pseudoId); + } } Future save() async { @@ -112,6 +123,7 @@ class Settings { "folderViewHeaderType": folderViewHeaderType, "version": version, "proMode": proMode, + 'pseudoId': pseudoId, }; }