From 68ccefc59f01b74daffa014c5c21d2a218bb18ce Mon Sep 17 00:00:00 2001 From: EvadeMaster <93124920+EvadeMaster@users.noreply.github.com> Date: Fri, 3 Mar 2023 18:06:24 +0700 Subject: [PATCH] revert: "refactor: update deprecated and minor code refactors (#710)" This reverts commit 6829d3cdeac94fb305b8885570840fe25769b6a6. Signed-off-by: EvadeMaster <93124920+EvadeMaster@users.noreply.github.com> --- analysis_options.yaml | 2 -- lib/app/app.dart | 5 --- lib/main.dart | 32 +++++++++++-------- lib/services/crowdin_api.dart | 17 ++++------ lib/services/github_api.dart | 14 ++++---- lib/services/manager_api.dart | 12 +++---- lib/services/patcher_api.dart | 26 +++++++-------- lib/services/revanced_api.dart | 16 +++++----- lib/services/root_api.dart | 8 ++--- .../app_selector/app_selector_viewmodel.dart | 2 +- lib/ui/views/home/home_viewmodel.dart | 4 +-- .../views/installer/installer_viewmodel.dart | 22 +++++++------ .../navigation/navigation_viewmodel.dart | 2 +- .../settings_update_language.dart | 14 ++++++-- lib/ui/views/settings/settings_viewmodel.dart | 13 +++----- 15 files changed, 94 insertions(+), 95 deletions(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index 4c75e38f0d..39e7335051 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -12,8 +12,6 @@ include: package:flutter_lints/flutter.yaml analyzer: exclude: - lib/utils/env_class.g.dart - - "**/*.locator.dart" - - "**/*.router.dart" linter: rules: diff --git a/lib/app/app.dart b/lib/app/app.dart index 58f9fcc948..2f10b09a1c 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -15,7 +15,6 @@ import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart'; import 'package:revanced_manager/ui/views/patches_selector/patches_selector_view.dart'; import 'package:revanced_manager/ui/views/settings/settings_view.dart'; import 'package:revanced_manager/ui/widgets/appInfoView/app_info_view.dart'; -import 'package:shared_preferences/shared_preferences.dart'; import 'package:stacked/stacked_annotations.dart'; import 'package:stacked_services/stacked_services.dart'; @@ -41,10 +40,6 @@ import 'package:stacked_services/stacked_services.dart'; LazySingleton(classType: GithubAPI), LazySingleton(classType: CrowdinAPI), LazySingleton(classType: Toast), - Presolve( - classType: SharedPreferences, - presolveUsing: SharedPreferences.getInstance, - ) ], ) class AppSetup {} diff --git a/lib/main.dart b/lib/main.dart index 7d2ff82ecb..9763504aca 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:revanced_manager/app/app.locator.dart'; +import 'package:revanced_manager/services/crowdin_api.dart'; import 'package:revanced_manager/services/github_api.dart'; import 'package:revanced_manager/services/manager_api.dart'; import 'package:revanced_manager/services/patcher_api.dart'; @@ -12,25 +13,27 @@ import 'package:revanced_manager/ui/theme/dynamic_theme_builder.dart'; import 'package:revanced_manager/ui/views/navigation/navigation_view.dart'; import 'package:revanced_manager/utils/environment.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:stacked_themes/stacked_themes.dart'; import 'package:timezone/data/latest.dart' as tz; +late SharedPreferences prefs; Future main() async { - WidgetsFlutterBinding.ensureInitialized(); + await ThemeManager.initialise(); await setupLocator(); - final manager = locator(); - await manager.initialize(); - final String apiUrl = manager.getApiUrl(); - final bool isSentryEnabled = manager.isSentryEnabled(); - final String repoUrl = manager.getRepoUrl(); - - await Future.wait([ - locator().initialize(apiUrl), - locator().initialize(), - ]); + WidgetsFlutterBinding.ensureInitialized(); + await locator().initialize(); + final String apiUrl = locator().getApiUrl(); + await locator().initialize(apiUrl); + await locator().initialize(); + final bool isSentryEnabled = locator().isSentryEnabled(); + final String repoUrl = locator().getRepoUrl(); locator().initialize(repoUrl); + await locator().initialize(); tz.initializeTimeZones(); + prefs = await SharedPreferences.getInstance(); - return SentryFlutter.init( + await SentryFlutter.init( (options) { options ..dsn = isSentryEnabled ? Environment.sentryDSN : '' @@ -48,8 +51,11 @@ Future main() async { } } as BeforeSendCallback?; }, - appRunner: () => runApp(const MyApp()), + appRunner: () { + runApp(const MyApp()); + }, ); + runApp(const MyApp()); } class MyApp extends StatelessWidget { diff --git a/lib/services/crowdin_api.dart b/lib/services/crowdin_api.dart index 0b470261fa..053d5a41ce 100644 --- a/lib/services/crowdin_api.dart +++ b/lib/services/crowdin_api.dart @@ -7,14 +7,11 @@ import 'package:sentry_flutter/sentry_flutter.dart'; @lazySingleton class CrowdinAPI { - CrowdinAPI() { - initialize(); - } - Dio _dio = Dio(); - DioCacheManager get _dioCacheManager => DioCacheManager(CacheConfig()); - String get apiKey => Environment.crowdinKEY; + late Dio _dio = Dio(); + final DioCacheManager _dioCacheManager = DioCacheManager(CacheConfig()); + final apiKey = Environment.crowdinKEY; - void initialize() { + Future initialize() async { try { _dio = Dio( BaseOptions( @@ -27,7 +24,7 @@ class CrowdinAPI { captureFailedRequests: true, ); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -35,7 +32,7 @@ class CrowdinAPI { try { await _dioCacheManager.clearAll(); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -59,7 +56,7 @@ class CrowdinAPI { return targetLanguages; } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return []; } } diff --git a/lib/services/github_api.dart b/lib/services/github_api.dart index 54e1a7a23f..de4676e991 100644 --- a/lib/services/github_api.dart +++ b/lib/services/github_api.dart @@ -42,7 +42,7 @@ class GithubAPI { captureFailedRequests: true, ); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -50,7 +50,7 @@ class GithubAPI { try { await _dioCacheManager.clearAll(); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -62,7 +62,7 @@ class GithubAPI { ); return response.data[0]; } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return null; } } @@ -93,7 +93,7 @@ class GithubAPI { ) .toList(); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return List.empty(); } } @@ -113,7 +113,7 @@ class GithubAPI { } } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return null; } return null; @@ -128,7 +128,7 @@ class GithubAPI { patches = list.map((patch) => Patch.fromJson(patch)).toList(); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return List.empty(); } return patches; @@ -143,7 +143,7 @@ class GithubAPI { return 'Unknown'; } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return ''; } } diff --git a/lib/services/manager_api.dart b/lib/services/manager_api.dart index 350e0e39f9..2c79b3bc36 100644 --- a/lib/services/manager_api.dart +++ b/lib/services/manager_api.dart @@ -1,6 +1,5 @@ import 'dart:convert'; import 'dart:io'; - import 'package:device_apps/device_apps.dart'; import 'package:injectable/injectable.dart'; import 'package:package_info_plus/package_info_plus.dart'; @@ -18,10 +17,10 @@ import 'package:shared_preferences/shared_preferences.dart'; class ManagerAPI { final RevancedAPI _revancedAPI = locator(); final GithubAPI _githubAPI = locator(); - final SharedPreferences _prefs = locator(); final RootAPI _rootAPI = RootAPI(); final String patcherRepo = 'revanced-patcher'; final String cliRepo = 'revanced-cli'; + late SharedPreferences _prefs; String storedPatchesFile = '/selected-patches.json'; String defaultApiUrl = 'https://releases.revanced.app/'; String defaultRepoUrl = 'https://api.github.com'; @@ -32,6 +31,7 @@ class ManagerAPI { String defaultManagerRepo = 'revanced/revanced-manager'; Future initialize() async { + _prefs = await SharedPreferences.getInstance(); storedPatchesFile = (await getApplicationDocumentsDirectory()).path + storedPatchesFile; } @@ -180,7 +180,7 @@ class ManagerAPI { _revancedAPI.clearAllCache(); _githubAPI.clearAllCache(); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -197,7 +197,7 @@ class ManagerAPI { return await _githubAPI.getPatches(repoName); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return []; } } @@ -214,7 +214,7 @@ class ManagerAPI { return await _githubAPI.getLatestReleaseFile('.jar', repoName); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return null; } } @@ -231,7 +231,7 @@ class ManagerAPI { return await _githubAPI.getLatestReleaseFile('.apk', repoName); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return null; } } diff --git a/lib/services/patcher_api.dart b/lib/services/patcher_api.dart index 7e208b4d20..2ea16d1533 100644 --- a/lib/services/patcher_api.dart +++ b/lib/services/patcher_api.dart @@ -50,7 +50,7 @@ class PatcherAPI { _patches = await _managerAPI.getPatches(); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); _patches = List.empty(); } } @@ -92,7 +92,7 @@ class PatcherAPI { } } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); continue; } } @@ -152,7 +152,7 @@ class PatcherAPI { } return originalFilePath; } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return originalFilePath; } } @@ -174,7 +174,7 @@ class PatcherAPI { selectedPatches.add(settingsPatch); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); // ignore } } @@ -207,11 +207,11 @@ class PatcherAPI { 'keyStoreFilePath': _keyStoreFile.path, }, ); - } on Exception catch (e) { + } on Exception catch (e, s) { if (kDebugMode) { print(e); } - rethrow; + throw await Sentry.captureException(e, stackTrace: s); } } } @@ -233,7 +233,7 @@ class PatcherAPI { return await DeviceApps.isAppInstalled(patchedApp.packageName); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return false; } } @@ -244,15 +244,11 @@ class PatcherAPI { try { if (_outFile != null) { final String newName = _getFileName(appName, version); - CRFileSaver.saveFileWithDialog( - SaveFileDialogParams( - sourceFilePath: _outFile!.path, - destinationFileName: newName, - ), - ); + CRFileSaver.saveFileWithDialog(SaveFileDialogParams( + sourceFilePath: _outFile!.path, destinationFileName: newName,),); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + Sentry.captureException(e, stackTrace: s); } } @@ -267,7 +263,7 @@ class PatcherAPI { ShareExtend.share(shareFile.path, 'file'); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + Sentry.captureException(e, stackTrace: s); } } diff --git a/lib/services/revanced_api.dart b/lib/services/revanced_api.dart index 4394aad81f..fb78d63c45 100644 --- a/lib/services/revanced_api.dart +++ b/lib/services/revanced_api.dart @@ -46,7 +46,7 @@ class RevancedAPI { captureFailedRequests: true, ); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -54,7 +54,7 @@ class RevancedAPI { try { await _dioCacheManager.clearAll(); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -68,7 +68,7 @@ class RevancedAPI { contributors[name] = repo['contributors']; } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return {}; } return contributors; @@ -80,7 +80,7 @@ class RevancedAPI { final List patches = response.data; return patches.map((patch) => Patch.fromJson(patch)).toList(); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return List.empty(); } } @@ -98,7 +98,7 @@ class RevancedAPI { (t['name'] as String).endsWith(extension), ); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return null; } } @@ -116,7 +116,7 @@ class RevancedAPI { return release['version']; } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return null; } return null; @@ -133,7 +133,7 @@ class RevancedAPI { return await DefaultCacheManager().getSingleFile(url); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return null; } return null; @@ -154,7 +154,7 @@ class RevancedAPI { return format(timestamp, locale: 'en_short'); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return null; } return null; diff --git a/lib/services/root_api.dart b/lib/services/root_api.dart index 036bb3da14..0153848de7 100644 --- a/lib/services/root_api.dart +++ b/lib/services/root_api.dart @@ -11,7 +11,7 @@ class RootAPI { final bool? isRooted = await Root.isRootAvailable(); return isRooted != null && isRooted; } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return false; } } @@ -25,7 +25,7 @@ class RootAPI { } return false; } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return false; } } @@ -79,7 +79,7 @@ class RootAPI { return apps.map((pack) => pack.trim()).toList(); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return List.empty(); } return List.empty(); @@ -126,7 +126,7 @@ class RootAPI { await mountApk(packageName, originalFilePath); return true; } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return false; } } diff --git a/lib/ui/views/app_selector/app_selector_viewmodel.dart b/lib/ui/views/app_selector/app_selector_viewmodel.dart index 2ee25eb20d..d7019ae746 100644 --- a/lib/ui/views/app_selector/app_selector_viewmodel.dart +++ b/lib/ui/views/app_selector/app_selector_viewmodel.dart @@ -88,7 +88,7 @@ class AppSelectorViewModel extends BaseViewModel { } } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); _toast.showBottom('appSelectorView.errorMessage'); } } diff --git a/lib/ui/views/home/home_viewmodel.dart b/lib/ui/views/home/home_viewmodel.dart index fbb0f46e06..d09ed202aa 100644 --- a/lib/ui/views/home/home_viewmodel.dart +++ b/lib/ui/views/home/home_viewmodel.dart @@ -96,7 +96,7 @@ class HomeViewModel extends BaseViewModel { int.parse(currentVersion.replaceAll(RegExp('[^0-9]'), '')); return latestVersionInt > currentVersionInt; } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); return false; } } @@ -138,7 +138,7 @@ class HomeViewModel extends BaseViewModel { _toast.showBottom('homeView.errorDownloadMessage'); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); _toast.showBottom('homeView.errorInstallMessage'); } } diff --git a/lib/ui/views/installer/installer_viewmodel.dart b/lib/ui/views/installer/installer_viewmodel.dart index 4b29325511..fb89179560 100644 --- a/lib/ui/views/installer/installer_viewmodel.dart +++ b/lib/ui/views/installer/installer_viewmodel.dart @@ -57,7 +57,7 @@ class InstallerViewModel extends BaseViewModel { ), ).then((value) => FlutterBackground.enableBackgroundExecution()); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); // ignore } } @@ -131,13 +131,14 @@ class InstallerViewModel extends BaseViewModel { _app.apkFilePath, _patches, ); - } on Exception catch (e) { + } on Exception catch (e, s) { update( -100.0, 'Aborting...', 'An error occurred! Aborting\nError:\n$e', ); - rethrow; + await Sentry.captureException(e, stackTrace: s); + throw await Sentry.captureException(e, stackTrace: s); } } else { update(-100.0, 'Aborting...', 'No app or patches selected! Aborting'); @@ -145,13 +146,14 @@ class InstallerViewModel extends BaseViewModel { if (FlutterBackground.isBackgroundExecutionEnabled) { try { FlutterBackground.disableBackgroundExecution(); - } on Exception { - rethrow; + } on Exception catch (e, s) { + await Sentry.captureException(e, stackTrace: s); + // ignore } } await Wakelock.disable(); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -210,7 +212,7 @@ class InstallerViewModel extends BaseViewModel { } } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } @@ -218,7 +220,7 @@ class InstallerViewModel extends BaseViewModel { try { _patcherAPI.exportPatchedFile(_app.name, _app.version); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + Sentry.captureException(e, stackTrace: s); } } @@ -226,7 +228,7 @@ class InstallerViewModel extends BaseViewModel { try { _patcherAPI.sharePatchedFile(_app.name, _app.version); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + Sentry.captureException(e, stackTrace: s); } } @@ -241,7 +243,7 @@ class InstallerViewModel extends BaseViewModel { locator().selectedPatches.clear(); locator().notifyListeners(); } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); } } diff --git a/lib/ui/views/navigation/navigation_viewmodel.dart b/lib/ui/views/navigation/navigation_viewmodel.dart index 8d23ddb8ee..0cdf582d2f 100644 --- a/lib/ui/views/navigation/navigation_viewmodel.dart +++ b/lib/ui/views/navigation/navigation_viewmodel.dart @@ -15,9 +15,9 @@ import 'package:stacked/stacked.dart'; @lazySingleton class NavigationViewModel extends IndexTrackingViewModel { - final prefs = locator(); Future initialize(BuildContext context) async { locator().initialize(context); + final SharedPreferences prefs = await SharedPreferences.getInstance(); if (prefs.getBool('permissionsRequested') == null) { await prefs.setBool('permissionsRequested', true); RootAPI().hasRootPermissions().then( diff --git a/lib/ui/views/settings/settingsFragment/settings_update_language.dart b/lib/ui/views/settings/settingsFragment/settings_update_language.dart index 3873a9d184..833d4a879d 100644 --- a/lib/ui/views/settings/settingsFragment/settings_update_language.dart +++ b/lib/ui/views/settings/settingsFragment/settings_update_language.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:revanced_manager/app/app.locator.dart'; +import 'package:revanced_manager/main.dart'; import 'package:revanced_manager/services/crowdin_api.dart'; import 'package:revanced_manager/services/toast.dart'; import 'package:revanced_manager/ui/views/navigation/navigation_viewmodel.dart'; @@ -16,14 +17,23 @@ final _settingViewModel = SettingsViewModel(); class SUpdateLanguage extends BaseViewModel { final CrowdinAPI _crowdinAPI = locator(); - final SharedPreferences _prefs = locator(); final Toast _toast = locator(); + late SharedPreferences _prefs; String selectedLanguage = 'English'; - String get selectedLanguageLocale => _prefs.getString('language') ?? 'en_US'; + String selectedLanguageLocale = prefs.getString('language') ?? 'en_US'; List languages = []; + Future initialize() async { + _prefs = await SharedPreferences.getInstance(); + selectedLanguageLocale = + _prefs.getString('language') ?? selectedLanguageLocale; + notifyListeners(); + } + Future updateLanguage(BuildContext context, String? value) async { if (value != null) { + selectedLanguageLocale = value; + _prefs = await SharedPreferences.getInstance(); await _prefs.setString('language', value); await FlutterI18n.refresh(context, Locale(value)); timeago.setLocaleMessages(value, timeago.EnMessages()); diff --git a/lib/ui/views/settings/settings_viewmodel.dart b/lib/ui/views/settings/settings_viewmodel.dart index 1e9680b5a9..48d41c7619 100644 --- a/lib/ui/views/settings/settings_viewmodel.dart +++ b/lib/ui/views/settings/settings_viewmodel.dart @@ -1,5 +1,4 @@ import 'dart:io'; - import 'package:cr_file_saver/file_saver.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:file_picker/file_picker.dart'; @@ -75,18 +74,14 @@ class SettingsViewModel extends BaseViewModel { if (outFile.existsSync()) { final String dateTime = DateTime.now().toString().replaceAll(' ', '_').split('.').first; - await CRFileSaver.saveFileWithDialog( - SaveFileDialogParams( - sourceFilePath: outFile.path, - destinationFileName: 'selected_patches_$dateTime.json', - ), - ); + await CRFileSaver.saveFileWithDialog(SaveFileDialogParams( + sourceFilePath: outFile.path, destinationFileName: 'selected_patches_$dateTime.json',),); _toast.showBottom('settingsView.exportedPatches'); } else { _toast.showBottom('settingsView.noExportFileFound'); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + Sentry.captureException(e, stackTrace: s); } } @@ -106,7 +101,7 @@ class SettingsViewModel extends BaseViewModel { _toast.showBottom('settingsView.importedPatches'); } } on Exception catch (e, s) { - Sentry.captureException(e, stackTrace: s).ignore(); + await Sentry.captureException(e, stackTrace: s); _toast.showBottom('settingsView.jsonSelectorErrorMessage'); } }