From 52de843a648abeccb35455673bd5e2e6fa025dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= <elias@elias-mueller.com> Date: Mon, 18 Sep 2023 21:46:09 +0200 Subject: [PATCH] Added debounce to settings storage for better performance --- lib/storage/base/settingsProvider.dart | 7 ++++++- pubspec.yaml | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/storage/base/settingsProvider.dart b/lib/storage/base/settingsProvider.dart index 8af0145..f8a8d7d 100644 --- a/lib/storage/base/settingsProvider.dart +++ b/lib/storage/base/settingsProvider.dart @@ -1,5 +1,6 @@ import 'dart:convert'; import 'dart:developer'; +import 'package:easy_debounce/easy_debounce.dart'; import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -15,7 +16,11 @@ class SettingsProvider extends ChangeNotifier { Settings val({bool write = false}) { if(write) { notifyListeners(); - Future.delayed(const Duration(milliseconds: 300)).then((_) => update()); + EasyDebounce.debounce( + _fieldName, + const Duration(milliseconds: 500), + update + ); } return _settings; } diff --git a/pubspec.yaml b/pubspec.yaml index 0ed01f6..37b8775 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -93,6 +93,7 @@ dependencies: device_info_plus: ^9.0.3 flutter_app_badger: ^1.5.0 qr_flutter: ^4.1.0 + easy_debounce: ^2.0.3 dev_dependencies: flutter_test: