From 41237f85c899519750f90e4724970f1f326ad56f Mon Sep 17 00:00:00 2001 From: Vishnu Mohandas Date: Tue, 27 Apr 2021 21:36:24 +0530 Subject: [PATCH] Cache call to memories --- lib/services/memories_service.dart | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/services/memories_service.dart b/lib/services/memories_service.dart index d862bc38d..b7899b76c 100644 --- a/lib/services/memories_service.dart +++ b/lib/services/memories_service.dart @@ -16,6 +16,7 @@ class MemoriesService extends ChangeNotifier { static final daysAfter = 1; List _cachedMemories; + Future> _future; MemoriesService._privateConstructor(); @@ -31,12 +32,22 @@ class MemoriesService extends ChangeNotifier { void clearCache() { _cachedMemories = null; + _future = null; } Future> getMemories() async { if (_cachedMemories != null) { return _cachedMemories; } + if (_future != null) { + return _future; + } + _future = _fetchMemories(); + return _future; + } + + Future> _fetchMemories() async { + _logger.info("Fetching memories"); final presentTime = DateTime.now(); final present = presentTime.subtract(Duration( hours: presentTime.hour, @@ -61,12 +72,6 @@ class MemoriesService extends ChangeNotifier { memories.add(Memory(file, seenTime)); } } - _logger.info("Number of memories: " + memories.length.toString()); - final endTime = DateTime.now(); - final duration = Duration( - microseconds: endTime.microsecondsSinceEpoch - - presentTime.microsecondsSinceEpoch); - _logger.info("Time taken: " + duration.inMilliseconds.toString() + "ms"); _cachedMemories = memories; return _cachedMemories; }