Fix downloadFile

This commit is contained in:
2025-12-30 17:40:08 +01:00
parent 37d66c90d2
commit ce86cba86c
17 changed files with 168 additions and 47 deletions

View File

@@ -0,0 +1,11 @@
using salesbook.Maui.Core.Interface;
namespace salesbook.Maui.Core;
public class FilePreviewService :IFilePreviewService
{
public Task Preview(string fileName, string filePath)
{
throw new NotImplementedException();
}
}

View File

@@ -0,0 +1,24 @@
using QuickLook;
using salesbook.Maui.Core.Interface;
using salesbook.Maui.Helpers;
using UIKit;
namespace salesbook.Maui.Core;
public class FilePreviewService : IFilePreviewService
{
public Task Preview(string fileName, string filePath)
{
var currentController = UIApplication.SharedApplication.KeyWindow?.RootViewController;
while (currentController?.PresentedViewController != null)
currentController = currentController.PresentedViewController;
var currentView = currentController?.View;
var qLPreview = new QLPreviewController();
var item = new QlPreviewItemBundle(fileName, filePath);
qLPreview.DataSource = new PreviewControllerDs(item);
currentController?.PresentViewController(qLPreview, true, null);
return Task.CompletedTask;
}
}

View File

@@ -0,0 +1,16 @@
using QuickLook;
namespace salesbook.Maui.Helpers;
public class PreviewControllerDs(QLPreviewItem item) : QLPreviewControllerDataSource
{
public override nint PreviewItemCount(QLPreviewController controller)
{
return 1;
}
public override IQLPreviewItem GetPreviewItem(QLPreviewController controller, nint index)
{
return item;
}
}

View File

@@ -0,0 +1,19 @@
using Foundation;
using QuickLook;
namespace salesbook.Maui.Helpers;
public class QlPreviewItemBundle(string fileName, string filePath) : QLPreviewItem
{
public override string PreviewItemTitle => fileName;
public override NSUrl PreviewItemUrl
{
get
{
var documents = NSBundle.MainBundle.BundlePath;
var lib = Path.Combine(documents, filePath);
var url = NSUrl.FromFilename(lib);
return url;
}
}
}

View File

@@ -0,0 +1,12 @@
using Foundation;
using QuickLook;
namespace salesbook.Maui.Helpers;
public class QlPreviewItemFileSystem(string fileName, string filePath) : QLPreviewItem
{
public override string PreviewItemTitle => fileName;
public override NSUrl PreviewItemUrl => NSUrl.FromString(filePath);
}