Ensure that local collections are loaded into memory on app init
This commit is contained in:
parent
7fe8f9fa40
commit
95ccf02b2e
2 changed files with 19 additions and 2 deletions
|
@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:photos/core/constants.dart';
|
||||
import 'package:photos/core/configuration.dart';
|
||||
import 'package:photos/services/collections_service.dart';
|
||||
import 'package:photos/services/favorites_service.dart';
|
||||
import 'package:photos/services/memories_service.dart';
|
||||
import 'package:photos/services/sync_service.dart';
|
||||
|
@ -30,6 +31,7 @@ void _main() async {
|
|||
areLogsEnabled: false,
|
||||
);
|
||||
await Configuration.instance.init();
|
||||
await CollectionsService.instance.init();
|
||||
await SyncService.instance.init();
|
||||
await MemoriesService.instance.init();
|
||||
await FavoritesService.instance.init();
|
||||
|
|
|
@ -33,11 +33,22 @@ class CollectionsService {
|
|||
static final CollectionsService instance =
|
||||
CollectionsService._privateConstructor();
|
||||
|
||||
Future<void> init() async {
|
||||
final collections = await _db.getAllCollections();
|
||||
for (final collection in collections) {
|
||||
_cacheOwnedCollectionAttributes(collection);
|
||||
}
|
||||
final sharedCollections = await _db.getAllSharedCollections();
|
||||
for (final collection in sharedCollections) {
|
||||
_collectionIDToSharedCollections[collection.id] = collection;
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> sync() async {
|
||||
final lastCollectionCreationTime =
|
||||
await _db.getLastCollectionCreationTime();
|
||||
var collections =
|
||||
await getOwnedCollections(lastCollectionCreationTime ?? 0);
|
||||
await _getOwnedCollections(lastCollectionCreationTime ?? 0);
|
||||
await _db.insert(collections);
|
||||
collections = await _db.getAllCollections();
|
||||
for (final collection in collections) {
|
||||
|
@ -59,6 +70,10 @@ class CollectionsService {
|
|||
return _localCollections[path];
|
||||
}
|
||||
|
||||
List<Collection> getOwnedCollections() {
|
||||
return _collectionIDToOwnedCollections.values.toList();
|
||||
}
|
||||
|
||||
Future<List<String>> getSharees(int collectionID) {
|
||||
return Dio()
|
||||
.get(
|
||||
|
@ -115,7 +130,7 @@ class CollectionsService {
|
|||
return _cachedKeys[collectionID];
|
||||
}
|
||||
|
||||
Future<List<Collection>> getOwnedCollections(int sinceTime) {
|
||||
Future<List<Collection>> _getOwnedCollections(int sinceTime) {
|
||||
return Dio()
|
||||
.get(
|
||||
Configuration.instance.getHttpEndpoint() + "/collections/owned",
|
||||
|
|
Loading…
Add table
Reference in a new issue