mirror of
https://gitlab.com/mysocialportal/fediverse-archiving-tools.git
synced 2024-10-18 08:53:31 +00:00
Fix image file preview loading
This commit is contained in:
parent
1ec9939f9b
commit
af69bb910b
3 changed files with 13 additions and 20 deletions
|
@ -55,13 +55,13 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
noImageText: 'No Thumbnail',
|
noImageText: 'No Thumbnail',
|
||||||
noImageOnTapText:
|
noImageOnTapText:
|
||||||
'Click to launch video in external player (No Thumbnail)',
|
'Click to launch video in external player (No Thumbnail)',
|
||||||
onTap: () async =>
|
onTap: () async => await _attemptToPlay(
|
||||||
await _attemptToPlay(context, videoPlayerCommand, path));
|
context, videoPlayerCommand, path.toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return TextButton(
|
return TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await _attemptToPlay(context, videoPlayerCommand, path);
|
await _attemptToPlay(context, videoPlayerCommand, path.toString());
|
||||||
},
|
},
|
||||||
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||||
Text(
|
Text(
|
||||||
|
@ -74,8 +74,7 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mediaAttachment.explicitType == AttachmentMediaType.image) {
|
if (mediaAttachment.explicitType == AttachmentMediaType.image) {
|
||||||
final imageResult =
|
final imageResult = _uriToImage(path, archiveService.pathMappingService);
|
||||||
_uriToImage(mediaAttachment.uri, archiveService.pathMappingService);
|
|
||||||
if (imageResult.image == null) {
|
if (imageResult.image == null) {
|
||||||
final errorPath = imageResult.path.isNotEmpty
|
final errorPath = imageResult.path.isNotEmpty
|
||||||
? imageResult.path
|
? imageResult.path
|
||||||
|
@ -172,13 +171,13 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
return InkWell(onTap: onTap, child: imageWidget);
|
return InkWell(onTap: onTap, child: imageWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
String _calculatePath(ArchiveServiceProvider archiveService) {
|
Uri _calculatePath(ArchiveServiceProvider archiveService) {
|
||||||
final url = mediaAttachment.uri.toString();
|
final url = mediaAttachment.uri.toString();
|
||||||
String basePath = '';
|
String basePath = '';
|
||||||
if (url.startsWith('http')) {
|
if (url.startsWith('http')) {
|
||||||
final localCacheFile = archiveService.getImageByUrl(url);
|
final localCacheFile = archiveService.getImageByUrl(url);
|
||||||
if (localCacheFile.isFailure) {
|
if (localCacheFile.isFailure) {
|
||||||
return url;
|
return mediaAttachment.uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
basePath = localCacheFile.value.localFilename;
|
basePath = localCacheFile.value.localFilename;
|
||||||
|
@ -186,7 +185,7 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
basePath = mediaAttachment.uri.path;
|
basePath = mediaAttachment.uri.path;
|
||||||
}
|
}
|
||||||
|
|
||||||
return archiveService.pathMappingService.toFullPath(basePath);
|
return Uri.parse(basePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,10 @@ class DiasporaPathMappingService implements PathMappingService {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toFullPath(String relPath) {
|
String toFullPath(String relPath) {
|
||||||
|
if (File(relPath).existsSync()) {
|
||||||
|
return relPath;
|
||||||
|
}
|
||||||
|
|
||||||
for (final file in _photoDirectories) {
|
for (final file in _photoDirectories) {
|
||||||
final fullPath = p.join(file.path, relPath);
|
final fullPath = p.join(file.path, relPath);
|
||||||
if (File(fullPath).existsSync()) {
|
if (File(fullPath).existsSync()) {
|
||||||
|
|
|
@ -29,19 +29,9 @@ class FriendicaPathMappingService implements PathMappingService {
|
||||||
}
|
}
|
||||||
_archiveDirectories.clear();
|
_archiveDirectories.clear();
|
||||||
|
|
||||||
try {
|
final recursive = !_calcRootIsSingleArchiveFolder();
|
||||||
if (_calcRootIsSingleArchiveFolder()) {
|
|
||||||
_archiveDirectories.add(Directory(rootFolder));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
_logger
|
|
||||||
.severe('Error thrown while trying to calculate root structure: $e');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_archiveDirectories.addAll(Directory(settings.rootFolder)
|
_archiveDirectories.addAll(Directory(settings.rootFolder)
|
||||||
.listSync(recursive: false)
|
.listSync(recursive: recursive)
|
||||||
.where((element) =>
|
.where((element) =>
|
||||||
element.statSync().type == FileSystemEntityType.directory));
|
element.statSync().type == FileSystemEntityType.directory));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue