From 566d09aa3d72175f7cf7e2b17a73ca46a45cecba Mon Sep 17 00:00:00 2001 From: HankG Date: Wed, 6 Apr 2022 18:12:41 -0400 Subject: [PATCH] Fix error where changing archives doesn't change the image lookup paths. --- .../services/archive_service_provider.dart | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/fediverse_archive_browser/lib/src/services/archive_service_provider.dart b/fediverse_archive_browser/lib/src/services/archive_service_provider.dart index 722a7f3..0f49c38 100644 --- a/fediverse_archive_browser/lib/src/services/archive_service_provider.dart +++ b/fediverse_archive_browser/lib/src/services/archive_service_provider.dart @@ -24,10 +24,7 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService { _archiveService.connectionsManager; ArchiveServiceProvider(this.settings) { - _diasporaArchiveService = DiasporaArchiveService( - pathMappingService: DiasporaPathMappingService(settings)); - _friendicaArchiveService = FriendicaArchiveService( - pathMappingService: FriendicaPathMappingService(settings)); + _buildArchiveServices(); } String get ownersName => _archiveService.ownersName; @@ -35,6 +32,7 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService { void clearCaches() { _friendicaArchiveService.clearCaches(); _diasporaArchiveService.clearCaches(); + _buildArchiveServices(); } FutureResult, ExecError> getPosts() async { @@ -53,6 +51,10 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService { return _archiveService.getImageByUrl(url); } + @override + PathMappingService get pathMappingService => + _archiveService.pathMappingService; + ArchiveService get _archiveService { switch (settings.archiveType) { case ArchiveType.diaspora: @@ -64,7 +66,12 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService { } } - @override - PathMappingService get pathMappingService => - _archiveService.pathMappingService; + + void _buildArchiveServices() { + _diasporaArchiveService = DiasporaArchiveService( + pathMappingService: DiasporaPathMappingService(settings)); + _friendicaArchiveService = FriendicaArchiveService( + pathMappingService: FriendicaPathMappingService(settings)); + } + }