Files
MayShow/TODO.txt

108 lines
6.5 KiB
Plaintext

----iOS----
-quickstart for loading last edited report on main menu
-duplicate existing report with new name
-cleanup empty uuid folders in case user gets an internal folder created but never saves
*-always save report data (file locations, title, etc.) to internal dir (might already be done?)
-no more option to save data internally -> ALWAYS save report_data.json internally
*-update project title -> should update recently used data
-this sort of works, something is wrong with the upgrade process where the UUID is not brought over properly; need to test and fix (maybe fixed already and my dataset is wrong?)
*-add dropdown to Add Items button to have add items from folder and remove choose working folder option (data always saved internally)
-not going to do this; they can always select multiple items from the current picker
*-Now that the BaseFolder is always internal...update options for PDF output location
-output in internal dir (default)
-always ask me every time (opens save file picker after generating PDF to ask user where they want it)
-always put in X folder (uses existing option)
~-add option to backup added files to internal data directory (always on for iOS)
*-add option
-add to settings view
-add logic to CreatePDFReportViewModel
-programmed in but not tested yet
-make backup of last generated PDF somewhere (another internal folder, most likely);
-save to PDF report data somewhere for safe-keeping
-allow loading by user
-iOS-specific (MAUI essentials?)
-maui community essentials https://learn.microsoft.com/en-us/dotnet/communitytoolkit/maui/get-started?tabs=CommunityToolkitMaui
-I don't think this is what we are looking for ultimately....?
-https://github.com/AvaloniaUI/Avalonia.Essentials
-https://github.com/AvaloniaUI/AvaloniaMauiHybrid -- this may have to be the way to go or perhaps grab code from https://github.com/AvaloniaUI/Avalonia.Controls.Maui/tree/main/src/Avalonia.Controls.Maui.Essentials because we don't need the avalonia tie in stuff if it "just works"...but don't know if it will "just work" yet. apparently native APIs are available through net10.0-ios or whatnot but I'd rather use the existing wrappers/tutorials since those will just work just like we want...
-auto save on every action
-Take picture
-https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/device-media/picker?view=net-maui-10.0&tabs=macios
-Add pic from gallery
-see above link
-Add file (uses Files picking, I think this already mostly works just need to copy to internal data dir)
-Generate PDF -> Share/print screen to share/print
-https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/data/share?view=net-maui-10.0&tabs=macios
-Make sure clipboard works (not sure if it will out of the box or not)
-https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/data/clipboard?view=net-maui-10.0
-show report file size in recent list
-make sure setting for backup files is not available (always backs up files on iOS)
-----------
https://stackoverflow.com/questions/78855900/error-ios-projects-must-build-with-publishtrimmed-true-when-trimming-is-disabl
https://blog.verslu.is/maui/exclude-assemblies-from-trimming/
-p:UseParallelGC=true for faster builds? or /p:MtouchUseLlvm=false? or -p:EnableAssemblyILStripping=false?
possible hints for building publish iOS binaries: https://github.com/dotnet/maui/issues/25022#issuecomment-2385334527
linker stuff: https://blog.verslu.is/maui/exclude-assemblies-from-trimming/
PublishFolderType documentation: https://github.com/dotnet/macios/blob/main/dotnet/BundleContents.md
https://signpath.org/
magick "2026-01-29 — \$210 — WORK PERMIT.pdf" -background white -alpha background -alpha off -density 288 -resize 25% page-%03d.jpg
https://github.com/dlemstra/Magick.NET/blob/main/docs/ConvertPDF.md
https://stackoverflow.com/questions/65089839/add-an-external-pdf-page-to-pdfsharp-migradoc
https://github.com/mephraim/ghostscriptsharp
https://stackoverflow.com/a/71485279/3938401
need a PDF viewer that works with annotations
https://github.com/BobLd/PdfPig.Rendering.Skia/ works but quality is low for some reason, I don't know why. probably need a bug report or some option that is hidden.
using (var document = UglyToad.PdfPig.PdfDocument.Open(filePath, UglyToad.PdfPig.Rendering.Skia.SkiaRenderingParsingOptions.Instance))
{
document.AddSkiaPageFactory(); // Same as document.AddPageFactory<SKPicture, SkiaPageFactory>() and document.AddPageFactory<PdfPageSize, PageSizeFactory>()
for (int p = 1; p <= document.NumberOfPages; p++)
{
using var skBitmap = document.GetPageAsSKBitmap(p, 1);
using (var fs = new FileStream(Path.Combine(convertedDir, $"{fileName}_{p}PIG.jpeg"), FileMode.Create))
using (var ms = document.GetPageAsPng(p, 1, 4))
{
MemoryStream memoryStream = new MemoryStream();
skBitmap.Encode(memoryStream, SkiaSharp.SKEncodedImageFormat.Jpeg, 100);
memoryStream.Position = 0L;
ms.WriteTo(fs);
}
}
}
https://github.com/GowenGit/docnet -- may need to fork this and publish our own package if some OS doesn't work
*-add more items
*-save last opened folder to settings somewhere
---Features---
*-save report to disk
*-separate save button to come back to things later
*-add resort by date option
*-when scanning files don't add kinds we cannot read/use
*-Fix buttons not enabling/disabling appropritely
*-if files not found show user error
*-add preview or open button or something to each item
https://gitflic.ru/project/jackhammer/pdf-forge-net/file?commit=7bdce6132a70ab12664a8f2482003836c7af2ab6
*-check if last remembered dir exists on auto-load!
*-show working directory
*-set DMG title in publish
*-Get linux publish command working and zip up/publish
dotnet publish -c Release -r linux-x64 -p:StripSymbols=False -p:PublishAot=False
dotnet publish -c Release -r linux-arm64 -p:StripSymbols=False -p:PublishAot=False
---Publishing---
*-Published app has unneeded .DSYM file (fixed via .app builder)
*-Published app has Assets folder already copied to it; don't want that in output macOS folder but it's being copied there anyway (fixed via .app builder)
*-macOS x64 build