Added try catch file access

This commit is contained in:
Thomas Fransolet 2024-01-26 16:20:17 +01:00
parent cdda7d1470
commit 387560fad7
3 changed files with 38 additions and 22 deletions

View File

@ -102,14 +102,19 @@ class CachedCustomResource extends StatelessWidget {
}
Future<File?> _checkIfLocalResourceExists(TabletAppContext tabletAppContext) async {
Directory? appDocumentsDirectory = await getDownloadsDirectory();
String localPath = appDocumentsDirectory!.path;
Directory configurationDirectory = Directory('$localPath/${tabletAppContext.configuration!.id}');
List<FileSystemEntity> fileList = configurationDirectory.listSync();
try {
Directory? appDocumentsDirectory = await getDownloadsDirectory();
String localPath = appDocumentsDirectory!.path;
Directory configurationDirectory = Directory('$localPath/${tabletAppContext.configuration!.id}');
List<FileSystemEntity> fileList = configurationDirectory.listSync();
if(fileList.any((fileL) => fileL.uri.pathSegments.last.contains(resourceDTO.id!))) {
File file = File(fileList.firstWhere((fileL) => fileL.uri.pathSegments.last.contains(resourceDTO.id!)).path);
return file;
if(fileList.any((fileL) => fileL.uri.pathSegments.last.contains(resourceDTO.id!))) {
File file = File(fileList.firstWhere((fileL) => fileL.uri.pathSegments.last.contains(resourceDTO.id!)).path);
return file;
}
} catch(e) {
print("ERROR _checkIfLocalResourceExists CachedCustomResource");
print(e);
}
return null;

View File

@ -8,19 +8,25 @@ import 'package:tablet_app/app_context.dart';
class ImageCustomProvider {
static ImageProvider<Object> getImageProvider(AppContext appContext, String imageId, String imageSource) {
TabletAppContext tabletAppContext = appContext.getContext();
if(appContext.getContext().localPath != null && tabletAppContext.configuration != null) {
Directory configurationDirectory = Directory('${tabletAppContext.localPath!}/${tabletAppContext.configuration!.id!}');
List<FileSystemEntity> fileList = configurationDirectory.listSync();
try {
if(appContext.getContext().localPath != null && tabletAppContext.configuration != null) {
Directory configurationDirectory = Directory('${tabletAppContext.localPath!}/${tabletAppContext.configuration!.id!}');
List<FileSystemEntity> fileList = configurationDirectory.listSync();
print(fileList);
print(fileList);
if (fileList.isNotEmpty) {
File file = File(fileList.first.path);
print("FILE EXISTT");
return FileImage(file);
if (fileList.isNotEmpty) {
File file = File(fileList.first.path);
print("FILE EXISTT");
return FileImage(file);
}
}
} catch(e) {
print("Error getImageProvider");
print(e.toString());
}
// If localpath not found or file missing
print("MISSINGG FILE");
return CachedNetworkImageProvider(imageSource);

View File

@ -165,14 +165,19 @@ class _PDFViewWidget extends State<PDFViewWidget> {
} //_webView
Future<File?> _checkIfLocalResourceExists(TabletAppContext tabletAppContext, String resourceId) async {
Directory? appDocumentsDirectory = await getDownloadsDirectory();
String localPath = appDocumentsDirectory!.path;
Directory configurationDirectory = Directory('$localPath/${tabletAppContext.configuration!.id}');
List<FileSystemEntity> fileList = configurationDirectory.listSync();
try {
Directory? appDocumentsDirectory = await getDownloadsDirectory();
String localPath = appDocumentsDirectory!.path;
Directory configurationDirectory = Directory('$localPath/${tabletAppContext.configuration!.id}');
List<FileSystemEntity> fileList = configurationDirectory.listSync();
if(fileList.any((fileL) => fileL.uri.pathSegments.last.contains(resourceId))) {
File file = File(fileList.firstWhere((fileL) => fileL.uri.pathSegments.last.contains(resourceId)).path);
return file;
if(fileList.any((fileL) => fileL.uri.pathSegments.last.contains(resourceId))) {
File file = File(fileList.firstWhere((fileL) => fileL.uri.pathSegments.last.contains(resourceId)).path);
return file;
}
} catch (e) {
print("ERROR _checkIfLocalResourceExists PDF");
print(e);
}
return null;