feat(mobile): Various minor performance improvements (#1176)

* Improve scroll performance by introducing repaint boundaries and moving more calculations to providers.

* Add error handing for malformed dates.

* Remove unused method

* Use compute in different places to improve app performance during heavy tasks

* Fix test

* Refactor `List<RenderAssetGridElement>` to separate `RenderList` class and make `fromAssetGroups` a static method of this class.

* Fix loading indicator bug

* Use provider directly

* `RenderList` refactoring

* `AssetNotifier` refactoring

* Move `combine` to static private method

* Extract compute methods in cache services to static private methods.

* Use `tryParse` instead of `parse` with try/catch for dates.

* Fix bug in caching mechanism.

* Fixed state not being used to trigger conditional rendering

* styling

* Corrected state

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Matthias Rupp
2023-01-18 16:59:23 +01:00
committed by GitHub
parent 92972ac776
commit 7a1ae8691e
15 changed files with 312 additions and 242 deletions

View File

@@ -21,7 +21,7 @@ class StorageIndicator extends HookConsumerWidget {
appSettingService.setSetting(AppSettingsEnum.storageIndicator, value);
showStorageIndicator.value = value;
ref.invalidate(assetGroupByDateTimeProvider);
ref.invalidate(assetProvider);
}
useEffect(

View File

@@ -23,7 +23,7 @@ class TilesPerRow extends HookConsumerWidget {
}
void sliderChangedEnd(double _) {
ref.invalidate(assetGroupByDateTimeProvider);
ref.invalidate(assetProvider);
}
useEffect(