diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..f077444 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,83 @@ +name: 🐞 Bug +title: '[BUG] ' +description: File a bug report +labels: ["bug", "to verify"] +assignees: [] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! Please make sure to add as much detail as you can. + - type: textarea + id: description + attributes: + label: Description + description: Please give a detailed description of the issue that you're seeing. You can add screenshots and videos as well. + placeholder: Tell us what you see! + validations: + required: true + - type: textarea + id: repro-steps + attributes: + label: Steps to Reproduce + description: Describe all the steps we need to take to show the behavior that you have observed. Also, include what you expected to happen and what did actually happen. + placeholder: | + 1. Create a File > New App + 2. Add a `Button` like so: `<Button Text="this is a bug" />` + 3. Click the added button and observe the bug 🐞 + + Expected outcome: a bug was added + Actual outcome: a ladybug appeared + validations: + required: true + - type: dropdown + id: platform-with-bug + attributes: + label: Platform with bug + description: What Platform is this bug affecting? + options: + - Core + - Android + - iOS + - MacCatalyst + - Windows + - Skia + - WebAssembly + - Other + validations: + required: true + + - type: dropdown + id: platforms-affected + attributes: + label: Affected platforms + description: Select all or any platform that you see this issue on. This helps us determine if it's something platform-specific or in the core. If you were only able to test on 1 platform, please check the last option to inform us about that. + multiple: true + options: + - Android + - iOS + - MacOS + - MacCatalyst + - Windows + - GTK + - Linux Framebuffer + - WPF + - Skia Desktop + - WebAssembly + - Other + - I was *not* able test on other platforms + validations: + required: true + + - type: textarea + id: workaround + attributes: + label: Did you find any workaround? + description: Did you find any workaround for this issue? This can unblock other people while waiting for this issue to be resolved or even give us a hint on how to fix this. + + - type: textarea + id: logs + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output. This will be auomatically formatted into code, so no need for back ticks. + render: shell diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..47b3fe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,39 @@ +name: Feature Request +description: Suggest an idea for this project +labels: ["enhancement"] +assignees: [] +body: + - type: markdown + attributes: + value: | + Fill in this template with some detail. A detailed description, perhaps supported with some screenshots, mockups, and a (public) API design in pseudo-code. + - type: textarea + id: description + attributes: + label: Description + description: Please give us a detailed description of the feature that you envision. Focus on _what_ this feature does, over the _why_ you want this feature. What would be the end-result when implemented? Feel free to add any diagrams, (mocked up) screenshots, or other materials that support your story. + placeholder: I would love to have a button that I can make shiny. This is something that is supported on all the underlaying platforms. + validations: + required: true + - type: textarea + id: api-changes + attributes: + label: API Changes + description: Include a list of all API changes, additions, subtractions as would be required by your proposal. These APIs should be considered placeholders, so the naming is not as important as getting the concepts correct. If possible you should include some example (pseudo-)code of usage of your new API. + placeholder: | + ```csharp + var button = new Button (); + button.MakeShiny = true; // new API + ``` + + The MakeShiny API works even if the button is already visible. + validations: + required: true + - type: textarea + id: use-case + attributes: + label: Intended Use-Case + description: Provide a detailed example of where your proposal would be used and for what purpose. Focus on _why_ you want this feature instead of _what_ the feature does. + placeholder: I have a situation where I would really want a shiny button to make it stand out from the rest of the plain and boring buttons. + validations: + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/spec.yml b/.github/ISSUE_TEMPLATE/spec.yml new file mode 100644 index 0000000..6abc394 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/spec.yml @@ -0,0 +1,80 @@ +name: Spec +description: An official specification for enhancements. +labels: ["enhancement"] +assignees: [] +body: + - type: markdown + attributes: + value: | + Thank you for taking the time to provide us with a detailed specification of your idea. + + In a spec you will give a detailed and complete representation of the (public) APIs that are implemented as part of this change. Additionally please think about backwards compatibility, breaking changes, supported platforms and the difficulty. + - type: textarea + id: description + attributes: + label: Description + description: Provide a concise description of the feature and the motivation for adding it. This can be a modified version from the feature request prior to this. + validations: + required: true + - type: textarea + id: api-changes + attributes: + label: (Public) API Changes + description: Include a complete list of all API changes, additions, subtractions as would be required by your proposal. + value: | + # [ class ] + + ## Properties + + | API | Description | + | ------------- | ------------- | + | [name] | Gets or sets [description]. | + + ## Events + + | API | Description | + | ------------- | ------------- | + | [name] | [API documentation/description] | + validations: + required: true + - type: textarea + id: usage-scenarios + attributes: + label: Usage Scenarios + description: Give us a couple of scenarios that demonstrate how developers would consume the above APIs. + placeholder: | + # C# Example + ```csharp + var thing = new MyNewControl(); + thing.BeAwesome = true; + thing.Color = Colors.Cornsilk; + ``` + + # XAML Example + ```xaml + <MyNewControl x:Name="thing" BeAwesome="true" Color="Cornsilk" /> + ``` + validations: + required: true + - type: textarea + id: backwards-compatibility + attributes: + label: Backward Compatibility + description: Please describe here anything in terms of backwards compatibility. Will there be breaking changes? Do we need to update dependencies to support this? What are the minimum supported API/OS levels? And lastly, are there any platforms that can't support this and why? + placeholder: | + Minimum API levels? + Breaking changes? + Unsupported platforms? + validations: + required: true + - type: dropdown + id: difficulty + attributes: + label: Difficulty + description: What do you feel will be the difficulty of this change all things considering? No exact science, just your gut feeling. + options: + - Low + - Medium + - High + validations: + required: true \ No newline at end of file diff --git a/.github/Install-WindowsSdkISO.ps1 b/.github/Install-WindowsSdkISO.ps1 new file mode 100644 index 0000000..f4964d2 --- /dev/null +++ b/.github/Install-WindowsSdkISO.ps1 @@ -0,0 +1,314 @@ +[CmdletBinding()] +param([Parameter(Mandatory=$true)] + [string]$buildNumber) + +# Ensure the error action preference is set to the default for PowerShell3, 'Stop' +$ErrorActionPreference = 'Stop' + +# Constants +$WindowsSDKOptions = @("OptionId.UWPCpp") +$WindowsSDKRegPath = "HKLM:\Software\Microsoft\Windows Kits\Installed Roots" +$WindowsSDKRegRootKey = "KitsRoot10" +$WindowsSDKVersion = "10.0.$buildNumber.0" +$WindowsSDKInstalledRegPath = "$WindowsSDKRegPath\$WindowsSDKVersion\Installed Options" +$StrongNameRegPath = "HKLM:\SOFTWARE\Microsoft\StrongName\Verification" +$PublicKeyTokens = @("31bf3856ad364e35") + +function Download-File +{ + param ([string] $outDir, + [string] $downloadUrl, + [string] $downloadName) + + $downloadPath = Join-Path $outDir "$downloadName.download" + $downloadDest = Join-Path $outDir $downloadName + $downloadDestTemp = Join-Path $outDir "$downloadName.tmp" + + Write-Host -NoNewline "Downloading $downloadName..." + + try + { + $webclient = new-object System.Net.WebClient + $webclient.DownloadFile($downloadUrl, $downloadPath) + } + catch [System.Net.WebException] + { + Write-Host + Write-Warning "Failed to fetch updated file from $downloadUrl" + if (!(Test-Path $downloadDest)) + { + throw "$downloadName was not found at $downloadDest" + } + else + { + Write-Warning "$downloadName may be out of date" + } + } + + Unblock-File $downloadPath + + $downloadDestTemp = $downloadPath; + + # Delete and rename to final dest + if (Test-Path -PathType Container $downloadDest) + { + [System.IO.Directory]::Delete($downloadDest, $true) + } + + Move-Item -Force $downloadDestTemp $downloadDest + Write-Host "Done" + + return $downloadDest +} + +function Get-ISODriveLetter +{ + param ([string] $isoPath) + + $diskImage = Get-DiskImage -ImagePath $isoPath + if ($diskImage) + { + $volume = Get-Volume -DiskImage $diskImage + + if ($volume) + { + $driveLetter = $volume.DriveLetter + if ($driveLetter) + { + $driveLetter += ":" + return $driveLetter + } + } + } + + return $null +} + +function Mount-ISO +{ + param ([string] $isoPath) + + # Check if image is already mounted + $isoDrive = Get-ISODriveLetter $isoPath + + if (!$isoDrive) + { + Mount-DiskImage -ImagePath $isoPath -StorageType ISO | Out-Null + } + + $isoDrive = Get-ISODriveLetter $isoPath + Write-Verbose "$isoPath mounted to ${isoDrive}:" +} + +function Dismount-ISO +{ + param ([string] $isoPath) + + $isoDrive = (Get-DiskImage -ImagePath $isoPath | Get-Volume).DriveLetter + + if ($isoDrive) + { + Write-Verbose "$isoPath dismounted" + Dismount-DiskImage -ImagePath $isoPath | Out-Null + } +} + +function Disable-StrongName +{ + param ([string] $publicKeyToken = "*") + + reg ADD "HKLM\SOFTWARE\Microsoft\StrongName\Verification\*,$publicKeyToken" /f | Out-Null + if ($env:PROCESSOR_ARCHITECTURE -eq "AMD64") + { + reg ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,$publicKeyToken" /f | Out-Null + } +} + +function Test-Admin +{ + $identity = [Security.Principal.WindowsIdentity]::GetCurrent() + $principal = New-Object Security.Principal.WindowsPrincipal $identity + $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) +} + +function Test-RegistryPathAndValue +{ + param ( + [parameter(Mandatory=$true)] + [ValidateNotNullOrEmpty()] + [string] $path, + [parameter(Mandatory=$true)] + [ValidateNotNullOrEmpty()] + [string] $value) + + try + { + if (Test-Path $path) + { + Get-ItemProperty -Path $path | Select-Object -ExpandProperty $value -ErrorAction Stop | Out-Null + return $true + } + } + catch + { + } + + return $false +} + +function Test-InstallWindowsSDK +{ + $retval = $true + + if (Test-RegistryPathAndValue -Path $WindowsSDKRegPath -Value $WindowsSDKRegRootKey) + { + # A Windows SDK is installed + # Is an SDK of our version installed with the options we need? + if (Test-RegistryPathAndValue -Path $WindowsSDKInstalledRegPath -Value "$WindowsSDKOptions") + { + # It appears we have what we need. Double check the disk + $sdkRoot = Get-ItemProperty -Path $WindowsSDKRegPath | Select-Object -ExpandProperty $WindowsSDKRegRootKey + if ($sdkRoot) + { + if (Test-Path $sdkRoot) + { + $refPath = Join-Path $sdkRoot "References\$WindowsSDKVersion" + if (Test-Path $refPath) + { + $umdPath = Join-Path $sdkRoot "UnionMetadata\$WindowsSDKVersion" + if (Test-Path $umdPath) + { + # Pretty sure we have what we need + $retval = $false + } + } + } + } + } + } + + return $retval +} + +function Test-InstallStrongNameHijack +{ + foreach($publicKeyToken in $PublicKeyTokens) + { + $key = "$StrongNameRegPath\*,$publicKeyToken" + if (!(Test-Path $key)) + { + return $true + } + } + + return $false +} + +Write-Host -NoNewline "Checking for installed Windows SDK $WindowsSDKVersion..." +$InstallWindowsSDK = Test-InstallWindowsSDK +if ($InstallWindowsSDK) +{ + Write-Host "Installation required" +} +else +{ + Write-Host "INSTALLED" +} + +$StrongNameHijack = Test-InstallStrongNameHijack +Write-Host -NoNewline "Checking if StrongName bypass required..." + +if ($StrongNameHijack) +{ + Write-Host "REQUIRED" +} +else +{ + Write-Host "Done" +} + +if ($StrongNameHijack -or $InstallWindowsSDK) +{ + if (!(Test-Admin)) + { + Write-Host + throw "ERROR: Elevation required" + } +} + +if ($InstallWindowsSDK) +{ + # Static(ish) link for Windows SDK + # Note: there is a delay from Windows SDK announcements to availability via the static link + $uri = "https://go.microsoft.com/fwlink/?prd=11966&pver=1.0&plcid=0x409&clcid=0x409&ar=Flight&sar=Sdsurl&o1=$buildNumber" + + if($buildNumber -eq 18362) + { + # Workaround for removed SDK + $uri = "https://go.microsoft.com/fwlink/?linkid=2083448"; + } + + if($buildNumber -eq 19041) + { + # Workaround for missing SDK + $uri = "https://software-download.microsoft.com/download/pr/19041.1.191206-1406.vb_release_WindowsSDK.iso"; + } + + if ($env:TEMP -eq $null) + { + $env:TEMP = Join-Path $env:SystemDrive 'temp' + } + + $winsdkTempDir = Join-Path $env:TEMP "WindowsSDK" + + if (![System.IO.Directory]::Exists($winsdkTempDir)) + { + [void][System.IO.Directory]::CreateDirectory($winsdkTempDir) + } + + $file = "winsdk_$buildNumber.iso" + + Write-Verbose "Getting WinSDK from $uri" + $downloadFile = Download-File $winsdkTempDir $uri $file + + # TODO Check if zip, exe, iso, etc. + try + { + Write-Host -NoNewline "Mounting ISO $file..." + Mount-ISO $downloadFile + Write-Host "Done" + + $isoDrive = Get-ISODriveLetter $downloadFile + + if (Test-Path $isoDrive) + { + Write-Host -NoNewLine "Installing WinSDK..." + + $setupPath = Join-Path "$isoDrive" "WinSDKSetup.exe" + Start-Process -Wait $setupPath "/features $WindowsSDKOptions /q" + Write-Host "Done" + } + else + { + throw "Could not find mounted ISO at ${isoDrive}" + } + } + finally + { + Write-Host -NoNewline "Dismounting ISO $file..." + #Dismount-ISO $downloadFile + Write-Host "Done" + } +} + +if ($StrongNameHijack) +{ + Write-Host -NoNewline "Disabling StrongName for Windows SDK..." + + foreach($key in $PublicKeyTokens) + { + Disable-StrongName $key + } + + Write-Host "Done" +} diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1147b3a --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: +- package-ecosystem: nuget + directory: "/" + schedule: + interval: weekly + time: "10:00" + open-pull-requests-limit: 10 + labels: + - kind/dependency + - do-not-merge/work-in-progress diff --git a/.github/steps/install_dependencies/action.yml b/.github/steps/install_dependencies/action.yml new file mode 100644 index 0000000..f8cd87b --- /dev/null +++ b/.github/steps/install_dependencies/action.yml @@ -0,0 +1,45 @@ +name: Install Dependencies +description: "" + +inputs: + target-platform: + description: 'The platform to install dependencies for. #See available values at https://platform.uno/docs/articles/external/uno.check/doc/using-uno-check.html' + required: false + default: 'all' + dotnet-version: + description: 'Installs and sets the .NET SDK Version' + required: false + default: '8.0.x' + sdkVersion: + description: 'The version of the Windows Sdk' + required: false + default: '19041' + +runs: + using: "composite" + steps: + # Install .NET + - name: Setup .NET ${{ inputs.dotnet-version }} + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '${{ inputs.dotnet-version }}' + + # Install Windows SDK + - name: Install Windows SDK ${{ inputs.sdkVersion }} + shell: pwsh + if: ${{ runner.os == 'Windows' }} + run: .\.github\Install-WindowsSdkISO.ps1 ${{ inputs.sdkVersion }} + + # Run Uno.Check + - name: Install ${{ inputs.target-platform }} Workloads + shell: pwsh + run: | + dotnet tool install -g uno.check + ("${{ inputs.target-platform }} ".Split(' ') | ForEach-Object { + $target = $_.Replace("_win", "").Replace("_macos", "") + if (![string]::IsNullOrEmpty($target)) { + echo "target: $target" + uno-check -v --ci --non-interactive --fix --target $target --skip vswin --skip vsmac --skip xcode --skip vswinworkloads --skip androidemulator --skip dotnetnewunotemplates + echo "uno-check finished for target: $target " + } + }) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ce41923 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,36 @@ +name: CI + +on: + push: + branches: + - main + - release/** + + pull_request: + types: [opened, synchronize, reopened] + branches: + - main + - release/** +env: + STEP_TIMEOUT_MINUTES: 60 + +jobs: + smoke_test: + name: Smoke Test (Debug Build of Firehose) + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Install Dependencies + timeout-minutes: ${{ fromJSON(env.STEP_TIMEOUT_MINUTES) }} + uses: "./.github/steps/install_dependencies" + + # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1.3.1 + + - name: Build Firehose (Debug) + shell: pwsh + run: msbuild ./Firehose/Firehose.csproj /r diff --git a/.gitignore b/.gitignore index c9ee378..ef88c20 100644 --- a/.gitignore +++ b/.gitignore @@ -399,8 +399,5 @@ FodyWeavers.xsd # Single Target Config solution-config.props -# Windows Publish Profiles -!**/*.Windows/Properties/PublishProfiles/*.pubxml -FirehoseServer/Logs.txt -TheOnceAndFinalKing/FirehoseServer/Logs.txt -TheOnceAndFinalKing/FirehoseServer/Logs.txt +# Publish Profiles +!**/Properties/PublishProfiles/*.pubxml \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..a63ad40 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "unoplatform.vscode" + ], +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..1663467 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,56 @@ +{ + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md + "version": "0.2.0", + "configurations": [ + { + "name": "Uno Platform Mobile", + "type": "Uno", + "request": "launch", + // any Uno* task will do, this is simply to satisfy vscode requirement when a launch.json is present + "preLaunchTask": "Uno: android | Debug | android-x64" + }, + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md + "name": "Debug (Chrome, WebAssembly)", + "type": "chrome", + "request": "launch", + "url": "http://localhost:5000", + "webRoot": "${workspaceFolder}/Firehose", + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "timeout": 30000, + "preLaunchTask": "build-wasm", + "server": { + "runtimeExecutable": "dotnet", + "program": "run", + "args": ["--no-build","-f","net8.0-browserwasm","--launch-profile", "Firehose (WebAssembly)"], + "outputCapture": "std", + "timeout": 30000, + "cwd": "${workspaceFolder}/Firehose" + } + }, + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md + "name": "Uno Platform Desktop (Debug)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build-desktop", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/Firehose/bin/Debug/net8.0-desktop/Firehose.dll", + "args": [], + "launchSettingsProfile": "Firehose (Desktop)", + "env": { + "DOTNET_MODIFIABLE_ASSEMBLIES": "debug" + }, + "cwd": "${workspaceFolder}/Firehose", + // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console + "console": "internalConsole", + "stopAtEntry": false + }, + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..23133fc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.expand": false, + "explorer.fileNesting.patterns": { + "*.xaml": "$(capture).xaml.cs" + } +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..8c75fdc --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,57 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build-wasm", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/Firehose/Firehose.csproj", + "/property:GenerateFullPaths=true", + "/property:TargetFramework=net8.0-browserwasm", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish-wasm", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/Firehose/Firehose.csproj", + "/property:GenerateFullPaths=true", + "/property:TargetFramework=net8.0-browserwasm", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "build-desktop", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/Firehose/Firehose.csproj", + "/property:GenerateFullPaths=true", + "/property:TargetFramework=net8.0-desktop", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish-desktop", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/Firehose/Firehose.csproj", + "/property:GenerateFullPaths=true", + "/property:TargetFramework=net8.0-desktop", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + } + ] +} diff --git a/.vsconfig b/.vsconfig index 072b0c8..7c56eec 100644 --- a/.vsconfig +++ b/.vsconfig @@ -28,7 +28,6 @@ "Microsoft.VisualStudio.Component.Merq", "Component.Xamarin.RemotedSimulator", "Microsoft.VisualStudio.Component.MonoDebugger", - "Component.Xamarin", "Microsoft.VisualStudio.ComponentGroup.Maui.All", "Component.Android.SDK34", "Component.Android.SDK33", diff --git a/Directory.Build.props b/Directory.Build.props index 1187851..c23d736 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,9 +1,7 @@ <Project> <PropertyGroup> - <DotNetVersion>net8.0</DotNetVersion> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> - <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> <!-- @@ -13,8 +11,13 @@ PRI257: Ignore default language (en) not being one of the included resources (eg en-us, en-uk) --> <NoWarn>$(NoWarn);NU1507;NETSDK1201;PRI257</NoWarn> + </PropertyGroup> - <!-- Required for Hot Reload (See https://github.com/dotnet/sdk/issues/36666) --> - <IncludeSourceRevisionInInformationalVersion Condition="'$(Configuration)'=='Debug'">false</IncludeSourceRevisionInInformationalVersion> + <!-- See https://aka.platform.uno/using-uno-sdk#implicit-packages for more information regarding the Implicit Packages version properties. --> + <PropertyGroup> + <UnoExtensionsVersion>4.1.23</UnoExtensionsVersion> + <UnoToolkitVersion>6.0.24</UnoToolkitVersion> + <UnoThemesVersion>5.0.13</UnoThemesVersion> + <UnoCSharpMarkupVersion>5.2.14</UnoCSharpMarkupVersion> </PropertyGroup> </Project> diff --git a/Directory.Packages.props b/Directory.Packages.props index 0a0c85a..ab1dd0f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,4 +1,11 @@ <Project ToolsVersion="15.0"> + <!-- + To update the version of Uno, you should instead update the Sdk version in the global.json file. + + See https://aka.platform.uno/using-uno-sdk for more information. + --> + <ItemGroup> + </ItemGroup> <ItemGroup> <PackageVersion Include="CommunityToolkit.Mvvm" Version="8.2.2" /> <PackageVersion Include="HtmlAgilityPack" Version="1.11.61" /> @@ -38,4 +45,4 @@ <PackageVersion Include="System.ServiceModel.Syndication" Version="8.0.0" /> <PackageVersion Include="YahooFinanceApi" Version="2.3.3" /> </ItemGroup> -</Project> \ No newline at end of file +</Project> diff --git a/Firehose.sln b/Firehose.sln index 3448ef3..7c53ced 100644 --- a/Firehose.sln +++ b/Firehose.sln @@ -1,202 +1,48 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.9.34607.119 +VisualStudioVersion = 17.9.34728.123 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{57B07323-0D93-42C5-9B5E-8CCDBF86CCA7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firehose", "Firehose\Firehose.csproj", "{C3DB8258-3C80-4194-B1FD-70CE8D72C2EB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platforms", "Platforms", "{909C5D26-83DB-46F2-AD71-1923A29A5F08}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirehoseNews", "FirehoseNews\FirehoseNews.csproj", "{7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirehoseNews.Shared", "FirehoseNews.Shared\FirehoseNews.Shared.csproj", "{777A60B5-F64C-42FD-BDB9-25E4D1F726E1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirehoseNews.Mobile", "FirehoseNews.Mobile\FirehoseNews.Mobile.csproj", "{681F6553-2B64-4DA2-8BF4-782EC5B081C8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirehoseNews.Windows", "FirehoseNews.Windows\FirehoseNews.Windows.csproj", "{E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirehoseNews.Wasm", "FirehoseNews.Wasm\FirehoseNews.Wasm.csproj", "{229E558D-FD5C-4258-AB01-67CFC4564DD1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirehoseNews.Skia.Gtk", "FirehoseNews.Skia.Gtk\FirehoseNews.Skia.Gtk.csproj", "{89F60EC2-62E2-478E-90BE-6F9CB931D537}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B582E53A-4D0B-4A6C-9D45-1AE8634BB3F6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CBD5EA04-4313-4078-BD82-883BB7C7A80B}" ProjectSection(SolutionItems) = preProject .gitignore = .gitignore Directory.Build.props = Directory.Build.props Directory.Build.targets = Directory.Build.targets Directory.Packages.props = Directory.Packages.props - HYDRANT\global.json = HYDRANT\global.json - solution-config.props.sample = solution-config.props.sample + global.json = global.json EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HYDRANT", "HYDRANT\HYDRANT.csproj", "{5CD1A253-0975-4190-915D-83FA893E2FDD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HYDRANT", "Hydrant\HYDRANT.csproj", "{2DC2D12B-75CA-4DA3-91B9-309404863A43}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirehoseServer", "FirehoseServer\FirehoseServer.csproj", "{167318B6-C5ED-49E1-9527-FA4A3916BD8F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirehoseServer", "FirehoseServer\FirehoseServer.csproj", "{8BD90A1D-9721-4B71-B7FC-95AA209B167A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|arm64 = Debug|arm64 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - Release|arm64 = Release|arm64 - Release|x64 = Release|x64 - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Debug|arm64.ActiveCfg = Debug|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Debug|arm64.Build.0 = Debug|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Debug|x64.ActiveCfg = Debug|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Debug|x64.Build.0 = Debug|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Debug|x86.ActiveCfg = Debug|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Debug|x86.Build.0 = Debug|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Release|Any CPU.Build.0 = Release|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Release|arm64.ActiveCfg = Release|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Release|arm64.Build.0 = Release|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Release|x64.ActiveCfg = Release|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Release|x64.Build.0 = Release|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Release|x86.ActiveCfg = Release|Any CPU - {7BA81B68-5F64-40F4-B16A-21A3CE67DDB9}.Release|x86.Build.0 = Release|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Debug|arm64.ActiveCfg = Debug|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Debug|arm64.Build.0 = Debug|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Debug|x64.ActiveCfg = Debug|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Debug|x64.Build.0 = Debug|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Debug|x86.ActiveCfg = Debug|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Debug|x86.Build.0 = Debug|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Release|Any CPU.Build.0 = Release|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Release|arm64.ActiveCfg = Release|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Release|arm64.Build.0 = Release|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Release|x64.ActiveCfg = Release|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Release|x64.Build.0 = Release|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Release|x86.ActiveCfg = Release|Any CPU - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1}.Release|x86.Build.0 = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|arm64.ActiveCfg = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|arm64.Build.0 = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|x64.ActiveCfg = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|x64.Build.0 = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|x64.Deploy.0 = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|x86.ActiveCfg = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Debug|x86.Build.0 = Debug|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|Any CPU.Build.0 = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|Any CPU.Deploy.0 = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|arm64.ActiveCfg = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|arm64.Build.0 = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|x64.ActiveCfg = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|x64.Build.0 = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|x86.ActiveCfg = Release|Any CPU - {681F6553-2B64-4DA2-8BF4-782EC5B081C8}.Release|x86.Build.0 = Release|Any CPU - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|Any CPU.ActiveCfg = Debug|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|Any CPU.Build.0 = Debug|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|Any CPU.Deploy.0 = Debug|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|arm64.ActiveCfg = Debug|arm64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|arm64.Build.0 = Debug|arm64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|arm64.Deploy.0 = Debug|arm64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|x64.ActiveCfg = Debug|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|x64.Build.0 = Debug|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|x64.Deploy.0 = Debug|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|x86.ActiveCfg = Debug|x86 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|x86.Build.0 = Debug|x86 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Debug|x86.Deploy.0 = Debug|x86 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|Any CPU.ActiveCfg = Release|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|Any CPU.Build.0 = Release|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|Any CPU.Deploy.0 = Release|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|arm64.ActiveCfg = Release|arm64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|arm64.Build.0 = Release|arm64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|arm64.Deploy.0 = Release|arm64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|x64.ActiveCfg = Release|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|x64.Build.0 = Release|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|x64.Deploy.0 = Release|x64 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|x86.ActiveCfg = Release|x86 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|x86.Build.0 = Release|x86 - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3}.Release|x86.Deploy.0 = Release|x86 - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Debug|arm64.ActiveCfg = Debug|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Debug|arm64.Build.0 = Debug|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Debug|x64.ActiveCfg = Debug|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Debug|x64.Build.0 = Debug|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Debug|x86.ActiveCfg = Debug|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Debug|x86.Build.0 = Debug|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Release|Any CPU.Build.0 = Release|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Release|arm64.ActiveCfg = Release|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Release|arm64.Build.0 = Release|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Release|x64.ActiveCfg = Release|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Release|x64.Build.0 = Release|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Release|x86.ActiveCfg = Release|Any CPU - {229E558D-FD5C-4258-AB01-67CFC4564DD1}.Release|x86.Build.0 = Release|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Debug|Any CPU.Build.0 = Debug|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Debug|arm64.ActiveCfg = Debug|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Debug|arm64.Build.0 = Debug|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Debug|x64.ActiveCfg = Debug|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Debug|x64.Build.0 = Debug|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Debug|x86.ActiveCfg = Debug|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Debug|x86.Build.0 = Debug|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Release|Any CPU.ActiveCfg = Release|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Release|Any CPU.Build.0 = Release|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Release|arm64.ActiveCfg = Release|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Release|arm64.Build.0 = Release|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Release|x64.ActiveCfg = Release|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Release|x64.Build.0 = Release|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Release|x86.ActiveCfg = Release|Any CPU - {89F60EC2-62E2-478E-90BE-6F9CB931D537}.Release|x86.Build.0 = Release|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Debug|arm64.ActiveCfg = Debug|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Debug|arm64.Build.0 = Debug|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Debug|x64.ActiveCfg = Debug|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Debug|x64.Build.0 = Debug|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Debug|x86.ActiveCfg = Debug|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Debug|x86.Build.0 = Debug|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Release|Any CPU.Build.0 = Release|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Release|arm64.ActiveCfg = Release|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Release|arm64.Build.0 = Release|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Release|x64.ActiveCfg = Release|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Release|x64.Build.0 = Release|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Release|x86.ActiveCfg = Release|Any CPU - {5CD1A253-0975-4190-915D-83FA893E2FDD}.Release|x86.Build.0 = Release|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Debug|arm64.ActiveCfg = Debug|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Debug|arm64.Build.0 = Debug|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Debug|x64.ActiveCfg = Debug|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Debug|x64.Build.0 = Debug|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Debug|x86.ActiveCfg = Debug|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Debug|x86.Build.0 = Debug|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Release|Any CPU.Build.0 = Release|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Release|arm64.ActiveCfg = Release|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Release|arm64.Build.0 = Release|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Release|x64.ActiveCfg = Release|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Release|x64.Build.0 = Release|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Release|x86.ActiveCfg = Release|Any CPU - {167318B6-C5ED-49E1-9527-FA4A3916BD8F}.Release|x86.Build.0 = Release|Any CPU + {C3DB8258-3C80-4194-B1FD-70CE8D72C2EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3DB8258-3C80-4194-B1FD-70CE8D72C2EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3DB8258-3C80-4194-B1FD-70CE8D72C2EB}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {C3DB8258-3C80-4194-B1FD-70CE8D72C2EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3DB8258-3C80-4194-B1FD-70CE8D72C2EB}.Release|Any CPU.Build.0 = Release|Any CPU + {C3DB8258-3C80-4194-B1FD-70CE8D72C2EB}.Release|Any CPU.Deploy.0 = Release|Any CPU + {2DC2D12B-75CA-4DA3-91B9-309404863A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DC2D12B-75CA-4DA3-91B9-309404863A43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DC2D12B-75CA-4DA3-91B9-309404863A43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DC2D12B-75CA-4DA3-91B9-309404863A43}.Release|Any CPU.Build.0 = Release|Any CPU + {8BD90A1D-9721-4B71-B7FC-95AA209B167A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BD90A1D-9721-4B71-B7FC-95AA209B167A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BD90A1D-9721-4B71-B7FC-95AA209B167A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BD90A1D-9721-4B71-B7FC-95AA209B167A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {909C5D26-83DB-46F2-AD71-1923A29A5F08} = {57B07323-0D93-42C5-9B5E-8CCDBF86CCA7} - {777A60B5-F64C-42FD-BDB9-25E4D1F726E1} = {909C5D26-83DB-46F2-AD71-1923A29A5F08} - {681F6553-2B64-4DA2-8BF4-782EC5B081C8} = {909C5D26-83DB-46F2-AD71-1923A29A5F08} - {E422EAA0-A0B0-4902-86C5-C50BB6A4BBC3} = {909C5D26-83DB-46F2-AD71-1923A29A5F08} - {229E558D-FD5C-4258-AB01-67CFC4564DD1} = {909C5D26-83DB-46F2-AD71-1923A29A5F08} - {89F60EC2-62E2-478E-90BE-6F9CB931D537} = {909C5D26-83DB-46F2-AD71-1923A29A5F08} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {77D43B65-F103-4887-AB0F-423BC3BF9641} + SolutionGuid = {6B74377C-CBAF-4749-BBFD-8B2B03B845B5} EndGlobalSection EndGlobal diff --git a/FirehoseNews.Shared/AppHead.xaml b/Firehose/App.xaml similarity index 51% rename from FirehoseNews.Shared/AppHead.xaml rename to Firehose/App.xaml index a126877..43c7774 100644 --- a/FirehoseNews.Shared/AppHead.xaml +++ b/Firehose/App.xaml @@ -1,17 +1,22 @@ -<local:App x:Class="FirehoseNews.AppHead" +<Application x:Class="Firehose.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:wasm="http://platform.uno/wasm" - xmlns:local="using:FirehoseNews" + xmlns:utum="using:Uno.Toolkit.UI.Material" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="wasm"> - <local:App.Resources> + <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> - <ResourceDictionary Source="ms-appx:///FirehoseNews/AppResources.xaml" /> + <!-- Load WinUI resources --> + <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" /> + <!-- Load Uno.UI.Toolkit resources --> + <ToolkitResources xmlns="using:Uno.Toolkit.UI" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> - </local:App.Resources> + </Application.Resources> -</local:App> + <!-- Add resources here --> + +</Application> diff --git a/FirehoseNews.Shared/AppHead.xaml.cs b/Firehose/App.xaml.cs similarity index 54% rename from FirehoseNews.Shared/AppHead.xaml.cs rename to Firehose/App.xaml.cs index e70dd4b..d840033 100644 --- a/FirehoseNews.Shared/AppHead.xaml.cs +++ b/Firehose/App.xaml.cs @@ -1,39 +1,88 @@ using System; -using Microsoft.Extensions.Logging; -using Microsoft.UI.Xaml; -using Uno.Resizetizer; - -namespace FirehoseNews; -public sealed partial class AppHead : App +using CommunityToolkit.Mvvm.DependencyInjection; +using Firehose.Preferences; +using Firehose.UI; +using Firehose.Viewmodels; +using HYDRANT; + +namespace Firehose; +public partial class App : Application { - static AppHead() => - InitializeLogging(); - /// <summary> /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// </summary> - public AppHead() + public App() { this.InitializeComponent(); } + public static Window MainWindow { get; private set; } + + protected override async void OnLaunched(LaunchActivatedEventArgs args) + { + MainWindow = new Window(); +#if DEBUG + MainWindow.EnableHotReload(); +#endif + PreferencesModel.Load(); + + configureIOC(); + App.Current.UnhandledException += Current_UnhandledException; + + if (MainWindow.Content is not ArticleList) + { + // Place the frame in the current Window + Glob.Frame.NavigationFailed += OnNavigationFailed; + } + + Glob.Publications = await new API().GetPublications(); + + if (Glob.Frame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + + + //Glob.Frame.Navigate(typeof(ArticleList)); + Glob.DoNavi(new ArticleList()); + } + + + // Ensure the current window is active + MainWindow.Activate(); + } + + void configureIOC() + { + var Services = new ServiceCollection() + .AddSingleton<ShellVM>() + .AddSingleton<ThemeVM>() + .BuildServiceProvider(); + + Ioc.Default.ConfigureServices(Services); + } + + private void Current_UnhandledException(object sender, Microsoft.UI.Xaml.UnhandledExceptionEventArgs e) + { + Console.WriteLine(e.Message); + } + /// <summary> - /// Invoked when the application is launched normally by the end user. Other entry points - /// will be used such as when the application is launched to open a specific file. + /// Invoked when Navigation to a page fails /// </summary> - /// <param name="args">Details about the launch request and process.</param> - protected override void OnLaunched(LaunchActivatedEventArgs args) + /// <param name="sender">The Frame which failed navigation</param> + /// <param name="e">Details about the navigation failure</param> + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) { - base.OnLaunched(args); - - MainWindow.SetWindowIcon(); + throw new InvalidOperationException($"Failed to load {e.SourcePageType.FullName}: {e.Exception}"); } /// <summary> /// Configures global Uno Platform logging /// </summary> - private static void InitializeLogging() + public static void InitializeLogging() { #if DEBUG // Logging is disabled by default for release builds, as it incurs a significant @@ -54,12 +103,12 @@ private static void InitializeLogging() #endif // Exclude logs below this level - builder.SetMinimumLevel(LogLevel.Information); + //builder.SetMinimumLevel(Glob.LogLevel.Information); - // Default filters for Uno Platform namespaces - builder.AddFilter("Uno", LogLevel.Warning); - builder.AddFilter("Windows", LogLevel.Warning); - builder.AddFilter("Microsoft", LogLevel.Warning); + //// Default filters for Uno Platform namespaces + //builder.AddFilter("Uno", Glob.LogLevel.Warning); + //builder.AddFilter("Windows", Glob.LogLevel.Warning); + //builder.AddFilter("Microsoft", Glob.LogLevel.Warning); // Generic Xaml events // builder.AddFilter("Microsoft.UI.Xaml", LogLevel.Debug ); diff --git a/FirehoseNews.Shared/Icons/icon.svg b/Firehose/Assets/Icons/icon.svg similarity index 100% rename from FirehoseNews.Shared/Icons/icon.svg rename to Firehose/Assets/Icons/icon.svg diff --git a/FirehoseNews.Shared/Icons/icon_foreground.svg b/Firehose/Assets/Icons/icon_foreground.svg similarity index 100% rename from FirehoseNews.Shared/Icons/icon_foreground.svg rename to Firehose/Assets/Icons/icon_foreground.svg diff --git a/Firehose/Assets/SharedAssets.md b/Firehose/Assets/SharedAssets.md new file mode 100644 index 0000000..1b84a74 --- /dev/null +++ b/Firehose/Assets/SharedAssets.md @@ -0,0 +1,32 @@ +# Shared Assets + +See documentation about assets here: https://github.com/unoplatform/uno/blob/master/doc/articles/features/working-with-assets.md + +## Here is a cheat sheet + +1. Add the image file to the `Assets` directory of a shared project. +2. Set the build action to `Content`. +3. (Recommended) Provide an asset for various scales/dpi + +### Examples + +```text +\Assets\Images\logo.scale-100.png +\Assets\Images\logo.scale-200.png +\Assets\Images\logo.scale-400.png + +\Assets\Images\scale-100\logo.png +\Assets\Images\scale-200\logo.png +\Assets\Images\scale-400\logo.png +``` + +### Table of scales + +| Scale | WinUI | iOS/MacCatalyst | Android | +|-------|:-----------:|:---------------:|:-------:| +| `100` | scale-100 | @1x | mdpi | +| `125` | scale-125 | N/A | N/A | +| `150` | scale-150 | N/A | hdpi | +| `200` | scale-200 | @2x | xhdpi | +| `300` | scale-300 | @3x | xxhdpi | +| `400` | scale-400 | N/A | xxxhdpi | diff --git a/FirehoseNews.Shared/Splash/splash_screen.svg b/Firehose/Assets/splash.svg similarity index 100% rename from FirehoseNews.Shared/Splash/splash_screen.svg rename to Firehose/Assets/splash.svg diff --git a/Firehose/Firehose.csproj b/Firehose/Firehose.csproj new file mode 100644 index 0000000..77c11b1 --- /dev/null +++ b/Firehose/Firehose.csproj @@ -0,0 +1,114 @@ +<Project Sdk="Uno.Sdk"> + <PropertyGroup> + <TargetFrameworks> + net8.0-android; + net8.0-ios; + net8.0-maccatalyst; + net8.0-windows10.0.19041; + net8.0-desktop; + </TargetFrameworks> + + <OutputType>Exe</OutputType> + <UnoSingleProject>true</UnoSingleProject> + + <!-- Display name --> + <ApplicationTitle>Firehose</ApplicationTitle> + <!-- App Identifier --> + <ApplicationId>net.rarisma.REMNANT</ApplicationId> + <!-- Versions --> + <ApplicationDisplayVersion>1.0</ApplicationDisplayVersion> + <ApplicationVersion>1</ApplicationVersion> + <!-- + If you encounter this error message: + + error NETSDK1148: A referenced assembly was compiled using a newer version of Microsoft.Windows.SDK.NET.dll. + Please update to a newer .NET SDK in order to reference this assembly. + + This means that the two packages below must be aligned with the "build" version number of + the "Microsoft.Windows.SDK.BuildTools" package above, and the "revision" version number + must be the highest found in https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref. + --> + <!-- <WindowsSdkPackageVersion>10.0.22621.28</WindowsSdkPackageVersion> --> + + <!-- + UnoFeatures let's you quickly add and manage implicit package references based on the features you want to use. + https://aka.platform.uno/singleproject-features + --> + <UnoFeatures> + </UnoFeatures> + </PropertyGroup> + <ItemGroup> + <None Remove="Assets\Icons\icon_foreground.svg" /> + <None Remove="Assets\splash.svg" /> + </ItemGroup> + + + <ItemGroup> + <PackageReference Include="CommunityToolkit.Mvvm" /> + <PackageReference Include="OpenGraph-Net" /> + <PackageReference Include="SkiaSharp.Skottie" /> + <PackageReference Include="SkiaSharp.Views.Uno.WinUI" /> + <PackageReference Include="Svg.Skia" /> + <PackageReference Include="Uno.Fonts.Fluent" /> + <PackageReference Include="Uno.Toolkit.WinUI" /> + <PackageReference Include="Uno.WinUI" /> + <PackageReference Include="Uno.WinUI.Lottie" Condition="!$(TargetFramework.Contains('windows10'))" /> + <PackageReference Include="Uno.WinUI.DevServer" Condition="'$(Configuration)'=='Debug' AND !$(TargetFramework.Contains('windows10'))" /> + <PackageReference Include="Uno.Resizetizer"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> + <PackageReference Include="Microsoft.Extensions.Logging.Console" /> + <PackageReference Include="Microsoft.WindowsAppSDK" Condition="$(TargetFramework.Contains('windows10'))" /> + <PackageReference Include="Microsoft.Windows.SDK.BuildTools" Condition="$(TargetFramework.Contains('windows10'))" /> + <PackageReference Include="Uno.WinUI.Svg" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Hydrant\HYDRANT.csproj" /> + </ItemGroup> + <ItemGroup> + <UnoSplashScreen Include="Assets\splash.svg" /> + </ItemGroup> + <ItemGroup> + <None Update="UI\ArticleList.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\Controls\CommonNavigationBar.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\Controls\Filters.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\Controls\PublisherFilter.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\Controls\PublisherInformation.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\Dialogs\AIFeedbackDialog.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\Dialogs\QuickView.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\Preferences.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\ReaderView.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + <None Update="UI\WebView.xaml"> + <Generator>MSBuild:Compile</Generator> + </None> + </ItemGroup> + <ItemGroup> + <Page Update="UI\FrameContainer.xaml"> + <Generator>MSBuild:Compile</Generator> + </Page> + </ItemGroup> + <ItemGroup> + <Page Update="UI\MainPage.xaml"> + <Generator>MSBuild:Compile</Generator> + </Page> + </ItemGroup> +</Project> diff --git a/FirehoseNews/Glob.cs b/Firehose/Glob.cs similarity index 58% rename from FirehoseNews/Glob.cs rename to Firehose/Glob.cs index 5fb06c6..d8110a4 100644 --- a/FirehoseNews/Glob.cs +++ b/Firehose/Glob.cs @@ -1,8 +1,9 @@ using Windows.UI.Core; -using FirehoseNews.Preferences; +using Firehose.Preferences; using HYDRANT.Definitions; + //I'VE GOT A RECKLESS TONGUE -namespace FirehoseNews; +namespace Firehose; public static class Glob { public static Stack<object> NaviStack = new(); @@ -22,13 +23,14 @@ public static class Glob /// </summary> public static void DoNavi() { - Frame.Content = NaviStack.First(); + App.MainWindow.Content = (UIElement)NaviStack.First(); + //Frame.Content = NaviStack.First(); } public static void DoNavi(object PageSource) { NaviStack.Push(PageSource); - Frame.Content = NaviStack.First(); + App.MainWindow.Content = (UIElement)NaviStack.First(); } /// <summary> @@ -61,4 +63,23 @@ public enum LogLevel Err, Sev } + + + public static bool IsDialogOpen { get; private set; } + public static async Task<ContentDialogResult> OpenContentDialog(ContentDialog dialog) + { + if (!IsDialogOpen) + { + IsDialogOpen = true; //Stop any other dialogs from opening + dialog.XamlRoot = App.MainWindow.Content.XamlRoot; //Set XamlRoot + var res = await dialog.ShowAsync(); //Show the dialog + IsDialogOpen = false; //Allow others Dialogs to show + return res; // Return the result + } + else + { + //We can't show a result as there's already a dialog open + return ContentDialogResult.None; + } + } } diff --git a/Firehose/GlobalUsings.cs b/Firehose/GlobalUsings.cs new file mode 100644 index 0000000..2ab264d --- /dev/null +++ b/Firehose/GlobalUsings.cs @@ -0,0 +1,5 @@ +global using System.Collections.Immutable; +global using Microsoft.Extensions.DependencyInjection; +global using Microsoft.Extensions.Logging; +global using Microsoft.Extensions.Options; +global using ApplicationExecutionState = Windows.ApplicationModel.Activation.ApplicationExecutionState; diff --git a/Firehose/MainPage.xaml b/Firehose/MainPage.xaml new file mode 100644 index 0000000..6708bf1 --- /dev/null +++ b/Firehose/MainPage.xaml @@ -0,0 +1,14 @@ +<Page x:Class="Firehose.MainPage" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="using:Firehose" + xmlns:utu="using:Uno.Toolkit.UI" + Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> + <StackPanel utu:SafeArea.Insets="VisibleBounds" + HorizontalAlignment="Center" + VerticalAlignment="Center"> + <TextBlock AutomationProperties.AutomationId="HelloTextBlock" + Text="Hello Uno Platform" + HorizontalAlignment="Center" /> + </StackPanel> +</Page> diff --git a/Firehose/MainPage.xaml.cs b/Firehose/MainPage.xaml.cs new file mode 100644 index 0000000..375ced2 --- /dev/null +++ b/Firehose/MainPage.xaml.cs @@ -0,0 +1,9 @@ +namespace Firehose; + +public sealed partial class MainPage : Page +{ + public MainPage() + { + this.InitializeComponent(); + } +} diff --git a/FirehoseNews.Skia.Gtk/Package.appxmanifest b/Firehose/Package.appxmanifest similarity index 80% rename from FirehoseNews.Skia.Gtk/Package.appxmanifest rename to Firehose/Package.appxmanifest index 9887124..3300a6a 100644 --- a/FirehoseNews.Skia.Gtk/Package.appxmanifest +++ b/Firehose/Package.appxmanifest @@ -7,13 +7,13 @@ IgnorableNamespaces="uap rescap"> <Identity - Name="FirehoseNews" - Publisher="O=HalithonLabs" - Version="1.0.0.0" /> + Name="Firehose" + Publisher="CN=RARI" + Version="1.0.1.0" /> <Properties> - <DisplayName>FirehoseNews</DisplayName> - <PublisherDisplayName>FirehoseNews</PublisherDisplayName> + <DisplayName>Firehose</DisplayName> + <PublisherDisplayName>Firehose</PublisherDisplayName> </Properties> <Dependencies> @@ -30,8 +30,8 @@ Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$"> <uap:VisualElements - DisplayName="FirehoseNews" - Description="FirehoseNews"> + DisplayName="Firehose" + Description="Firehose"> <uap:SplashScreen /> </uap:VisualElements> </Application> diff --git a/Firehose/Platforms/Android/AndroidManifest.xml b/Firehose/Platforms/Android/AndroidManifest.xml new file mode 100644 index 0000000..95ae075 --- /dev/null +++ b/Firehose/Platforms/Android/AndroidManifest.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> + <application android:allowBackup="true" android:supportsRtl="true"></application> +</manifest> diff --git a/FirehoseNews.Mobile/Android/Assets/AboutAssets.txt b/Firehose/Platforms/Android/Assets/AboutAssets.txt similarity index 100% rename from FirehoseNews.Mobile/Android/Assets/AboutAssets.txt rename to Firehose/Platforms/Android/Assets/AboutAssets.txt diff --git a/FirehoseNews.Mobile/Android/Main.Android.cs b/Firehose/Platforms/Android/Main.Android.cs similarity index 91% rename from FirehoseNews.Mobile/Android/Main.Android.cs rename to Firehose/Platforms/Android/Main.Android.cs index 9be7ae9..4244620 100644 --- a/FirehoseNews.Mobile/Android/Main.Android.cs +++ b/Firehose/Platforms/Android/Main.Android.cs @@ -10,9 +10,8 @@ using Android.Widget; using Com.Nostra13.Universalimageloader.Core; using Microsoft.UI.Xaml.Media; -using Uno.UI; -namespace FirehoseNews.Droid; +namespace Firehose.Droid; [global::Android.App.ApplicationAttribute( Label = "@string/ApplicationName", Icon = "@mipmap/icon", @@ -23,7 +22,7 @@ namespace FirehoseNews.Droid; public class Application : Microsoft.UI.Xaml.NativeApplication { public Application(IntPtr javaReference, JniHandleOwnership transfer) - : base(() => new AppHead(), javaReference, transfer) + : base(() => new App(), javaReference, transfer) { ConfigureUniversalImageLoader(); } diff --git a/FirehoseNews.Mobile/Android/MainActivity.Android.cs b/Firehose/Platforms/Android/MainActivity.Android.cs similarity index 88% rename from FirehoseNews.Mobile/Android/MainActivity.Android.cs rename to Firehose/Platforms/Android/MainActivity.Android.cs index 9f85476..3ada673 100644 --- a/FirehoseNews.Mobile/Android/MainActivity.Android.cs +++ b/Firehose/Platforms/Android/MainActivity.Android.cs @@ -1,11 +1,11 @@ +using System.Reflection.Metadata; using Android.App; using Android.Content.PM; using Android.OS; using Android.Views; using Android.Widget; -using Windows.UI.Core; -namespace FirehoseNews.Droid; +namespace Firehose.Droid; [Activity( MainLauncher = true, ConfigurationChanges = global::Uno.UI.ActivityHelper.AllConfigChanges, @@ -17,5 +17,4 @@ public override void OnBackPressed() { Glob.GoBack(); } - } diff --git a/FirehoseNews.Mobile/Android/Resources/AboutResources.txt b/Firehose/Platforms/Android/Resources/AboutResources.txt similarity index 100% rename from FirehoseNews.Mobile/Android/Resources/AboutResources.txt rename to Firehose/Platforms/Android/Resources/AboutResources.txt diff --git a/FirehoseNews.Mobile/Android/Resources/values/Strings.xml b/Firehose/Platforms/Android/Resources/values/Strings.xml similarity index 68% rename from FirehoseNews.Mobile/Android/Resources/values/Strings.xml rename to Firehose/Platforms/Android/Resources/values/Strings.xml index 510e854..80c618a 100644 --- a/FirehoseNews.Mobile/Android/Resources/values/Strings.xml +++ b/Firehose/Platforms/Android/Resources/values/Strings.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <string name="Hello">Hello World, Click Me!</string> - <string name="ApplicationName">Firehose News</string> + <string name="ApplicationName">Firehose</string> </resources> diff --git a/FirehoseNews.Mobile/Android/Resources/values/Styles.xml b/Firehose/Platforms/Android/Resources/values/Styles.xml similarity index 100% rename from FirehoseNews.Mobile/Android/Resources/values/Styles.xml rename to Firehose/Platforms/Android/Resources/values/Styles.xml diff --git a/FirehoseNews.Mobile/Android/environment.conf b/Firehose/Platforms/Android/environment.conf similarity index 100% rename from FirehoseNews.Mobile/Android/environment.conf rename to Firehose/Platforms/Android/environment.conf diff --git a/Firehose/Platforms/Desktop/Program.cs b/Firehose/Platforms/Desktop/Program.cs new file mode 100644 index 0000000..46bf311 --- /dev/null +++ b/Firehose/Platforms/Desktop/Program.cs @@ -0,0 +1,21 @@ +using Uno.UI.Runtime.Skia; + +namespace Firehose; +public class Program +{ + [STAThread] + public static void Main(string[] args) + { + App.InitializeLogging(); + + var host = SkiaHostBuilder.Create() + .App(() => new App()) + .UseX11() + .UseLinuxFrameBuffer() + .UseMacOS() + .UseWindows() + .Build(); + + host.Run(); + } +} diff --git a/FirehoseNews.Mobile/MacCatalyst/Entitlements.plist b/Firehose/Platforms/MacCatalyst/Entitlements.plist similarity index 100% rename from FirehoseNews.Mobile/MacCatalyst/Entitlements.plist rename to Firehose/Platforms/MacCatalyst/Entitlements.plist diff --git a/FirehoseNews.Mobile/MacCatalyst/Info.plist b/Firehose/Platforms/MacCatalyst/Info.plist similarity index 100% rename from FirehoseNews.Mobile/MacCatalyst/Info.plist rename to Firehose/Platforms/MacCatalyst/Info.plist diff --git a/FirehoseNews.Mobile/MacCatalyst/Main.maccatalyst.cs b/Firehose/Platforms/MacCatalyst/Main.maccatalyst.cs similarity index 74% rename from FirehoseNews.Mobile/MacCatalyst/Main.maccatalyst.cs rename to Firehose/Platforms/MacCatalyst/Main.maccatalyst.cs index c6cd9ce..5f54281 100644 --- a/FirehoseNews.Mobile/MacCatalyst/Main.maccatalyst.cs +++ b/Firehose/Platforms/MacCatalyst/Main.maccatalyst.cs @@ -1,7 +1,6 @@ using UIKit; -namespace FirehoseNews.MacCatalyst; - +namespace Firehose.MacCatalyst; public class EntryPoint { // This is the main entry point of the application. @@ -9,6 +8,6 @@ public static void Main(string[] args) { // if you want to use a different Application Delegate class from "AppDelegate" // you can specify it here. - UIApplication.Main(args, null, typeof(AppHead)); + UIApplication.Main(args, null, typeof(App)); } } diff --git a/FirehoseNews.Mobile/MacCatalyst/Media.xcassets/LaunchImages.launchimage/Contents.json b/Firehose/Platforms/MacCatalyst/Media.xcassets/LaunchImages.launchimage/Contents.json similarity index 100% rename from FirehoseNews.Mobile/MacCatalyst/Media.xcassets/LaunchImages.launchimage/Contents.json rename to Firehose/Platforms/MacCatalyst/Media.xcassets/LaunchImages.launchimage/Contents.json diff --git a/FirehoseNews.Wasm/LinkerConfig.xml b/Firehose/Platforms/WebAssembly/LinkerConfig.xml similarity index 68% rename from FirehoseNews.Wasm/LinkerConfig.xml rename to Firehose/Platforms/WebAssembly/LinkerConfig.xml index 28e69b8..289a46b 100644 --- a/FirehoseNews.Wasm/LinkerConfig.xml +++ b/Firehose/Platforms/WebAssembly/LinkerConfig.xml @@ -1,6 +1,5 @@ <linker> - <assembly fullname="FirehoseNews" /> - <assembly fullname="FirehoseNews.Wasm" /> + <assembly fullname="Firehose" /> <!-- Uncomment this section when using JSON.NET diff --git a/FirehoseNews.Wasm/Program.cs b/Firehose/Platforms/WebAssembly/Program.cs similarity index 56% rename from FirehoseNews.Wasm/Program.cs rename to Firehose/Platforms/WebAssembly/Program.cs index 57a2373..095c8bb 100644 --- a/FirehoseNews.Wasm/Program.cs +++ b/Firehose/Platforms/WebAssembly/Program.cs @@ -1,4 +1,4 @@ -namespace FirehoseNews.Wasm; +namespace Firehose; public class Program { @@ -6,7 +6,7 @@ public class Program public static int Main(string[] args) { - Microsoft.UI.Xaml.Application.Start(_ => _app = new AppHead()); + Microsoft.UI.Xaml.Application.Start(_ => _app = new App()); return 0; } diff --git a/FirehoseNews.Wasm/WasmCSS/Fonts.css b/Firehose/Platforms/WebAssembly/WasmCSS/Fonts.css similarity index 100% rename from FirehoseNews.Wasm/WasmCSS/Fonts.css rename to Firehose/Platforms/WebAssembly/WasmCSS/Fonts.css diff --git a/Firehose/Platforms/WebAssembly/WasmScripts/AppManifest.js b/Firehose/Platforms/WebAssembly/WasmScripts/AppManifest.js new file mode 100644 index 0000000..450b920 --- /dev/null +++ b/Firehose/Platforms/WebAssembly/WasmScripts/AppManifest.js @@ -0,0 +1,3 @@ +var UnoAppManifest = { + displayName: "Firehose" +} diff --git a/FirehoseNews.Wasm/manifest.webmanifest b/Firehose/Platforms/WebAssembly/manifest.webmanifest similarity index 60% rename from FirehoseNews.Wasm/manifest.webmanifest rename to Firehose/Platforms/WebAssembly/manifest.webmanifest index 871842b..cc52899 100644 --- a/FirehoseNews.Wasm/manifest.webmanifest +++ b/Firehose/Platforms/WebAssembly/manifest.webmanifest @@ -1,9 +1,9 @@ { "background_color": "#ffffff", - "description": "FirehoseNews", + "description": "Firehose", "display": "standalone", - "name": "FirehoseNews", - "short_name": "FirehoseNews", + "name": "Firehose", + "short_name": "Firehose", "start_url": "/index.html", "theme_color": "#ffffff", "scope": "/" diff --git a/FirehoseNews.Wasm/wwwroot/staticwebapp.config.json b/Firehose/Platforms/WebAssembly/wwwroot/staticwebapp.config.json similarity index 100% rename from FirehoseNews.Wasm/wwwroot/staticwebapp.config.json rename to Firehose/Platforms/WebAssembly/wwwroot/staticwebapp.config.json diff --git a/FirehoseNews.Wasm/wwwroot/web.config b/Firehose/Platforms/WebAssembly/wwwroot/web.config similarity index 100% rename from FirehoseNews.Wasm/wwwroot/web.config rename to Firehose/Platforms/WebAssembly/wwwroot/web.config diff --git a/FirehoseNews.Windows/Properties/PublishProfiles/win-arm64.pubxml b/Firehose/Platforms/Windows/Properties/PublishProfiles/win-arm64.pubxml similarity index 100% rename from FirehoseNews.Windows/Properties/PublishProfiles/win-arm64.pubxml rename to Firehose/Platforms/Windows/Properties/PublishProfiles/win-arm64.pubxml diff --git a/FirehoseNews.Windows/Properties/PublishProfiles/win-x64.pubxml b/Firehose/Platforms/Windows/Properties/PublishProfiles/win-x64.pubxml similarity index 100% rename from FirehoseNews.Windows/Properties/PublishProfiles/win-x64.pubxml rename to Firehose/Platforms/Windows/Properties/PublishProfiles/win-x64.pubxml diff --git a/FirehoseNews.Windows/Properties/PublishProfiles/win-x86.pubxml b/Firehose/Platforms/Windows/Properties/PublishProfiles/win-x86.pubxml similarity index 100% rename from FirehoseNews.Windows/Properties/PublishProfiles/win-x86.pubxml rename to Firehose/Platforms/Windows/Properties/PublishProfiles/win-x86.pubxml diff --git a/FirehoseNews.Mobile/iOS/Entitlements.plist b/Firehose/Platforms/iOS/Entitlements.plist similarity index 100% rename from FirehoseNews.Mobile/iOS/Entitlements.plist rename to Firehose/Platforms/iOS/Entitlements.plist diff --git a/FirehoseNews.Mobile/iOS/Info.plist b/Firehose/Platforms/iOS/Info.plist similarity index 100% rename from FirehoseNews.Mobile/iOS/Info.plist rename to Firehose/Platforms/iOS/Info.plist diff --git a/FirehoseNews.Mobile/iOS/Main.iOS.cs b/Firehose/Platforms/iOS/Main.iOS.cs similarity index 76% rename from FirehoseNews.Mobile/iOS/Main.iOS.cs rename to Firehose/Platforms/iOS/Main.iOS.cs index cb8ff5a..9421e30 100644 --- a/FirehoseNews.Mobile/iOS/Main.iOS.cs +++ b/Firehose/Platforms/iOS/Main.iOS.cs @@ -1,6 +1,6 @@ using UIKit; -namespace FirehoseNews.iOS; +namespace Firehose.iOS; public class EntryPoint { // This is the main entry point of the application. @@ -8,6 +8,6 @@ public static void Main(string[] args) { // if you want to use a different Application Delegate class from "AppDelegate" // you can specify it here. - UIApplication.Main(args, null, typeof(AppHead)); + UIApplication.Main(args, null, typeof(App)); } } diff --git a/FirehoseNews.Mobile/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json b/Firehose/Platforms/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json similarity index 100% rename from FirehoseNews.Mobile/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json rename to Firehose/Platforms/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json diff --git a/Firehose/Platforms/iOS/PrivacyInfo.xcprivacy b/Firehose/Platforms/iOS/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..902abb0 --- /dev/null +++ b/Firehose/Platforms/iOS/PrivacyInfo.xcprivacy @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> + <!-- see https://aka.platform/uno/apple-privacy-manifest for more information --> + + <!-- .NET Runtime/BCL --> + <dict> + <key>NSPrivacyAccessedAPIType</key> + <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> + <key>NSPrivacyAccessedAPITypeReasons</key> + <array> + <string>C617.1</string> + </array> + </dict> + <dict> + <key>NSPrivacyAccessedAPIType</key> + <string>NSPrivacyAccessedAPICategorySystemBootTime</string> + <key>NSPrivacyAccessedAPITypeReasons</key> + <array> + <string>35F9.1</string> + </array> + </dict> + <dict> + <key>NSPrivacyAccessedAPIType</key> + <string>NSPrivacyAccessedAPICategoryDiskSpace</string> + <key>NSPrivacyAccessedAPITypeReasons</key> + <array> + <string>E174.1</string> + </array> + </dict> + + <!-- NSUserDefaults --> + <dict> + <key>NSPrivacyAccessedAPIType</key> + <string>NSPrivacyAccessedAPICategoryUserDefaults</string> + <key>NSPrivacyAccessedAPITypeReasons</key> + <array> + <string>CA92.1</string> + </array> + </dict> +</plist> diff --git a/FirehoseNews/Preferences/PreferencesModel.cs b/Firehose/Preferences/PreferencesModel.cs similarity index 97% rename from FirehoseNews/Preferences/PreferencesModel.cs rename to Firehose/Preferences/PreferencesModel.cs index b504315..6b4b668 100644 --- a/FirehoseNews/Preferences/PreferencesModel.cs +++ b/Firehose/Preferences/PreferencesModel.cs @@ -1,8 +1,7 @@ -using System.Text; using System.Text.Json; using HYDRANT.Definitions; -namespace FirehoseNews.Preferences; +namespace Firehose.Preferences; public class PreferencesModel { diff --git a/Firehose/Properties/PublishProfiles/FolderProfile.pubxml b/Firehose/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 0000000..9ab86a2 --- /dev/null +++ b/Firehose/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +https://go.microsoft.com/fwlink/?LinkID=208121. +--> +<Project> + <PropertyGroup> + <Configuration>Release</Configuration> + <Platform>Any CPU</Platform> + <PublishDir>C:\Users\RARI\Desktop\FHN</PublishDir> + <PublishProtocol>FileSystem</PublishProtocol> + <_TargetId>Folder</_TargetId> + <TargetFramework>net8.0-windows10.0.19041</TargetFramework> + <SelfContained>true</SelfContained> + <RuntimeIdentifier>win-x64</RuntimeIdentifier> + <PublishSingleFile>false</PublishSingleFile> + <PublishReadyToRun>false</PublishReadyToRun> + <PublishTrimmed>false</PublishTrimmed> + </PropertyGroup> +</Project> \ No newline at end of file diff --git a/Firehose/Properties/PublishProfiles/FolderProfile1.pubxml b/Firehose/Properties/PublishProfiles/FolderProfile1.pubxml new file mode 100644 index 0000000..8588c56 --- /dev/null +++ b/Firehose/Properties/PublishProfiles/FolderProfile1.pubxml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +https://go.microsoft.com/fwlink/?LinkID=208121. +--> +<Project> + <PropertyGroup> + <Configuration>Release</Configuration> + <Platform>Any CPU</Platform> + <PublishDir>bin\Release\net8.0-windows10.0.19041\publish\</PublishDir> + <PublishProtocol>FileSystem</PublishProtocol> + <_TargetId>Folder</_TargetId> + <TargetFramework>net8.0-windows10.0.19041</TargetFramework> + <RuntimeIdentifier>win-arm64</RuntimeIdentifier> + <SelfContained>false</SelfContained> + <PublishSingleFile>false</PublishSingleFile> + <PublishReadyToRun>false</PublishReadyToRun> + </PropertyGroup> +</Project> \ No newline at end of file diff --git a/Firehose/Properties/launchSettings.json b/Firehose/Properties/launchSettings.json new file mode 100644 index 0000000..f3026de --- /dev/null +++ b/Firehose/Properties/launchSettings.json @@ -0,0 +1,38 @@ +{ + "profiles": { + "Firehose (WebAssembly IIS Express)": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}" + }, + "Firehose (WinAppSDK Unpackaged)": { + "commandName": "Project", + "compatibleTargetFramework": "windows" + }, + "Firehose (WinAppSDK Packaged)": { + "commandName": "MsixPackage", + "compatibleTargetFramework": "windows" + }, + "Firehose (Desktop)": { + "commandName": "Project", + "compatibleTargetFramework": "desktop" + }, + "Firehose (Desktop WSL2)": { + "commandName": "WSL2", + "commandLineArgs": "{ProjectDir}/bin/Debug/net8.0-desktop/Firehose.dll", + "distributionName": "", + "compatibleTargetFramework": "desktop" + } + }, + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:8080", + "sslPort": 0 + } + } +} \ No newline at end of file diff --git a/FirehoseNews/Strings/en/Resources.resw b/Firehose/Strings/en/Resources.resw similarity index 84% rename from FirehoseNews/Strings/en/Resources.resw rename to Firehose/Strings/en/Resources.resw index d7bb831..ddd1ba5 100644 --- a/FirehoseNews/Strings/en/Resources.resw +++ b/Firehose/Strings/en/Resources.resw @@ -1,17 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <root> - <!-- - Microsoft ResX Schema - + <!-- + Microsoft ResX Schema + Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes associated with the data types. - + Example: - + ... ado.net/XML headers & schema ... <resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="version">2.0</resheader> @@ -26,36 +26,36 @@ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> <comment>This is a comment</comment> </data> - - There are any number of "resheader" rows that contain simple + + There are any number of "resheader" rows that contain simple name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can read any of the formats listed below. - + mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with + value : The object must be serialized with : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. - + mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with + value : The object must be serialized with : System.Runtime.Serialization.Formatters.Soap.SoapFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array + value : The object must be serialized into a byte array : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> @@ -117,13 +117,7 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <data name="AIFeedbackExplainer.Text" xml:space="preserve"> - <value>Firehose News summaries are generated with Large Language Models. -While they are usually good, they can occasionally be inaccurate or fail to summarise the article. -Reporting feedback about the summary can help us to identify issues with faulty summaries and prevent them from happening in the future.</value> - <comment>This is shown to the user in the AI Feedback Window, and explains why AI Generated summaries can be inaccurate or outirght wrong in rare cases.</comment> - </data> <data name="ApplicationName" xml:space="preserve"> - <value>FirehoseNews-en</value> + <value>Firehose-en</value> </data> -</root> \ No newline at end of file +</root> diff --git a/FirehoseNews/UI/ArticleList.xaml b/Firehose/UI/ArticleList.xaml similarity index 98% rename from FirehoseNews/UI/ArticleList.xaml rename to Firehose/UI/ArticleList.xaml index 68d19c2..7661c3c 100644 --- a/FirehoseNews/UI/ArticleList.xaml +++ b/Firehose/UI/ArticleList.xaml @@ -1,5 +1,5 @@ <Page - x:Class="FirehoseNews.UI.ArticleList" + x:Class="Firehose.UI.ArticleList" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" @@ -7,7 +7,7 @@ mc:Ignorable="d" xmlns:hydrant="using:HYDRANT.Definitions" xmlns:utu="using:Uno.Toolkit.UI" - xmlns:controls="using:FirehoseNews.UI.Controls" + xmlns:controls="using:Firehose.UI.Controls" utu:StatusBar.Foreground="{x:Bind Themer.StatusBar}" utu:StatusBar.Background="{x:Bind Themer.MainBrush}" Loaded="ArticleList_OnLoaded"> diff --git a/FirehoseNews/UI/ArticleList.xaml.cs b/Firehose/UI/ArticleList.xaml.cs similarity index 96% rename from FirehoseNews/UI/ArticleList.xaml.cs rename to Firehose/UI/ArticleList.xaml.cs index 9ae4917..6c18449 100644 --- a/FirehoseNews/UI/ArticleList.xaml.cs +++ b/Firehose/UI/ArticleList.xaml.cs @@ -1,13 +1,13 @@ using CommunityToolkit.Mvvm.DependencyInjection; -using FirehoseNews.UI.Controls; -using FirehoseNews.Viewmodels; +using Firehose.UI.Controls; +using Firehose.Viewmodels; using HYDRANT.Definitions; using Microsoft.UI; using Microsoft.UI.Xaml.Input; using Microsoft.UI.Xaml.Media.Imaging; using Uno.Extensions; -namespace FirehoseNews.UI; +namespace Firehose.UI; public sealed partial class ArticleList : Page { @@ -28,7 +28,7 @@ public async Task SetPublisherFilter() SecondaryButtonText = "Clear publisher filter", }; - if (await CD.ShowAsync() == ContentDialogResult.Primary) + if (await Glob.OpenContentDialog(CD) == ContentDialogResult.Primary) { ShellVM.PublisherID = ((CD.Content as PublisherFilter).Content as ListView)!.SelectedIndex + 1; ShellVM.FilterExtension = $"PUBLISHER_ID = {ShellVM.PublisherID}"; @@ -130,7 +130,6 @@ private void ChangeFilter(object sender, RoutedEventArgs e) LoadMoreButton.Visibility = Visibility.Visible; UpdateButtons((Button)sender); - //Set correct filter ShellVM.LoadArticleDataCommand.Execute(null); } @@ -185,11 +184,10 @@ private void ShowBookmarks(object sender, RoutedEventArgs e) LoadMoreButton.Visibility = Visibility.Collapsed; ShellVM.Articles.AddRange(Glob.Model.BookmarkedArticles); + //Show no bookmarks text, so it's not a blank screen if (Glob.Model.BookmarkedArticles.Count == 0) { NoBookmarks.Text = "You have no bookmarked articles."; - - } } diff --git a/FirehoseNews/UI/Controls/ArticleSelector.cs b/Firehose/UI/Controls/ArticleSelector.cs similarity index 95% rename from FirehoseNews/UI/Controls/ArticleSelector.cs rename to Firehose/UI/Controls/ArticleSelector.cs index 8bb3e1e..629c2f8 100644 --- a/FirehoseNews/UI/Controls/ArticleSelector.cs +++ b/Firehose/UI/Controls/ArticleSelector.cs @@ -1,6 +1,7 @@ using HYDRANT.Definitions; + //LIVING WITH DETERMINATION -namespace FirehoseNews.UI.Controls; +namespace Firehose.UI.Controls; /// <summary> /// This determines how an article is displayed in article view. diff --git a/FirehoseNews/UI/Controls/CommonNavigationBar.xaml b/Firehose/UI/Controls/CommonNavigationBar.xaml similarity index 98% rename from FirehoseNews/UI/Controls/CommonNavigationBar.xaml rename to Firehose/UI/Controls/CommonNavigationBar.xaml index dd477ef..894ef61 100644 --- a/FirehoseNews/UI/Controls/CommonNavigationBar.xaml +++ b/Firehose/UI/Controls/CommonNavigationBar.xaml @@ -1,5 +1,5 @@ <Grid - x:Class="FirehoseNews.UI.Controls.CommonNavigationBar" + x:Class="Firehose.UI.Controls.CommonNavigationBar" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" diff --git a/FirehoseNews/UI/Controls/CommonNavigationBar.xaml.cs b/Firehose/UI/Controls/CommonNavigationBar.xaml.cs similarity index 89% rename from FirehoseNews/UI/Controls/CommonNavigationBar.xaml.cs rename to Firehose/UI/Controls/CommonNavigationBar.xaml.cs index a4d31f4..1091b6f 100644 --- a/FirehoseNews/UI/Controls/CommonNavigationBar.xaml.cs +++ b/Firehose/UI/Controls/CommonNavigationBar.xaml.cs @@ -1,8 +1,9 @@ -using FirehoseNews.Preferences; -using FirehoseNews.UI.Dialogs; +using Firehose.Preferences; +using Firehose.UI.Dialogs; +using HYDRANT; using HYDRANT.Definitions; -namespace FirehoseNews.UI.Controls; +namespace Firehose.UI.Controls; public sealed partial class CommonNavigationBar : Grid { @@ -32,7 +33,7 @@ public CommonNavigationBar() private async void ReportSummary(object sender, RoutedEventArgs e) { - ContentDialog CD = new() + ContentDialog d = new() { Title = "Report issue with summary for " + ItemSource.Title, XamlRoot = XamlRoot, @@ -40,10 +41,11 @@ private async void ReportSummary(object sender, RoutedEventArgs e) PrimaryButtonText = "Send Feedback", SecondaryButtonText = "Close" }; + var Res = await Glob.OpenContentDialog(d); - if (await CD.ShowAsync() == ContentDialogResult.Primary) //Send feedback clicked + if (Res == ContentDialogResult.Primary) //Send feedback clicked { - int reason = (((CD.Content as AIFeedbackDialog)!.Content as Grid)!.Children[3] as ComboBox)!.SelectedIndex; + int reason = (((d.Content as AIFeedbackDialog)!.Content as Grid)!.Children[3] as ComboBox)!.SelectedIndex; new API().ReportArticle(ItemSource, reason); } diff --git a/FirehoseNews/UI/Controls/Filters.xaml b/Firehose/UI/Controls/Filters.xaml similarity index 93% rename from FirehoseNews/UI/Controls/Filters.xaml rename to Firehose/UI/Controls/Filters.xaml index 0aab281..951f899 100644 --- a/FirehoseNews/UI/Controls/Filters.xaml +++ b/Firehose/UI/Controls/Filters.xaml @@ -1,5 +1,5 @@ <AppBarButton - x:Class="FirehoseNews.UI.Controls.Filters" + x:Class="Firehose.UI.Controls.Filters" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:FirehoseNews.UI.Controls" diff --git a/FirehoseNews/UI/Controls/Filters.xaml.cs b/Firehose/UI/Controls/Filters.xaml.cs similarity index 96% rename from FirehoseNews/UI/Controls/Filters.xaml.cs rename to Firehose/UI/Controls/Filters.xaml.cs index 0ec9ead..c857821 100644 --- a/FirehoseNews/UI/Controls/Filters.xaml.cs +++ b/Firehose/UI/Controls/Filters.xaml.cs @@ -1,8 +1,8 @@ using CommunityToolkit.Mvvm.DependencyInjection; -using FirehoseNews.Viewmodels; +using Firehose.Viewmodels; using Microsoft.UI; -namespace FirehoseNews.UI.Controls; +namespace Firehose.UI.Controls; public sealed partial class Filters : AppBarButton { ThemeVM Themer = Ioc.Default.GetRequiredService<ThemeVM>(); diff --git a/FirehoseNews/UI/Controls/LoadableCommand.cs b/Firehose/UI/Controls/LoadableCommand.cs similarity index 96% rename from FirehoseNews/UI/Controls/LoadableCommand.cs rename to Firehose/UI/Controls/LoadableCommand.cs index 52830b3..ec9a0ae 100644 --- a/FirehoseNews/UI/Controls/LoadableCommand.cs +++ b/Firehose/UI/Controls/LoadableCommand.cs @@ -1,5 +1,5 @@ //Copied from UNO UI Loadable page -namespace FirehoseNews.UI.Controls; +namespace Firehose.UI.Controls; public class AsyncCommand : ICommand, ILoadable { public event EventHandler? CanExecuteChanged; diff --git a/FirehoseNews/UI/Controls/PublisherFilter.xaml b/Firehose/UI/Controls/PublisherFilter.xaml similarity index 94% rename from FirehoseNews/UI/Controls/PublisherFilter.xaml rename to Firehose/UI/Controls/PublisherFilter.xaml index 351f401..aa9f9ea 100644 --- a/FirehoseNews/UI/Controls/PublisherFilter.xaml +++ b/Firehose/UI/Controls/PublisherFilter.xaml @@ -1,5 +1,5 @@ <Page - x:Class="FirehoseNews.UI.Controls.PublisherFilter" + x:Class="Firehose.UI.Controls.PublisherFilter" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" diff --git a/FirehoseNews/UI/Controls/PublisherFilter.xaml.cs b/Firehose/UI/Controls/PublisherFilter.xaml.cs similarity index 93% rename from FirehoseNews/UI/Controls/PublisherFilter.xaml.cs rename to Firehose/UI/Controls/PublisherFilter.xaml.cs index 7bb16e0..2debe72 100644 --- a/FirehoseNews/UI/Controls/PublisherFilter.xaml.cs +++ b/Firehose/UI/Controls/PublisherFilter.xaml.cs @@ -2,7 +2,7 @@ using HYDRANT.Definitions; using Uno.Extensions; -namespace FirehoseNews.UI.Controls; +namespace Firehose.UI.Controls; /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. diff --git a/FirehoseNews/UI/Controls/PublisherInformation.xaml b/Firehose/UI/Controls/PublisherInformation.xaml similarity index 95% rename from FirehoseNews/UI/Controls/PublisherInformation.xaml rename to Firehose/UI/Controls/PublisherInformation.xaml index 9c8feeb..433f5e2 100644 --- a/FirehoseNews/UI/Controls/PublisherInformation.xaml +++ b/Firehose/UI/Controls/PublisherInformation.xaml @@ -1,5 +1,5 @@ <UserControl - x:Class="FirehoseNews.UI.Controls.PublisherInformation" + x:Class="Firehose.UI.Controls.PublisherInformation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" diff --git a/FirehoseNews/UI/Controls/PublisherInformation.xaml.cs b/Firehose/UI/Controls/PublisherInformation.xaml.cs similarity index 98% rename from FirehoseNews/UI/Controls/PublisherInformation.xaml.cs rename to Firehose/UI/Controls/PublisherInformation.xaml.cs index de06577..fa2d751 100644 --- a/FirehoseNews/UI/Controls/PublisherInformation.xaml.cs +++ b/Firehose/UI/Controls/PublisherInformation.xaml.cs @@ -1,8 +1,9 @@ using CommunityToolkit.Mvvm.DependencyInjection; -using FirehoseNews.Viewmodels; +using Firehose.Viewmodels; using HYDRANT.Definitions; + //NO MORE FREESTYLE -namespace FirehoseNews.UI.Controls; +namespace Firehose.UI.Controls; public sealed partial class PublisherInformation : UserControl { ThemeVM Themer = Ioc.Default.GetRequiredService<ThemeVM>(); diff --git a/FirehoseNews/UI/Dialogs/AIFeedbackDialog.xaml b/Firehose/UI/Dialogs/AIFeedbackDialog.xaml similarity index 97% rename from FirehoseNews/UI/Dialogs/AIFeedbackDialog.xaml rename to Firehose/UI/Dialogs/AIFeedbackDialog.xaml index 7af6653..a7134b0 100644 --- a/FirehoseNews/UI/Dialogs/AIFeedbackDialog.xaml +++ b/Firehose/UI/Dialogs/AIFeedbackDialog.xaml @@ -1,5 +1,5 @@ <Page - x:Class="FirehoseNews.UI.Dialogs.AIFeedbackDialog" + x:Class="Firehose.UI.Dialogs.AIFeedbackDialog" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" diff --git a/FirehoseNews/UI/Dialogs/AIFeedbackDialog.xaml.cs b/Firehose/UI/Dialogs/AIFeedbackDialog.xaml.cs similarity index 85% rename from FirehoseNews/UI/Dialogs/AIFeedbackDialog.xaml.cs rename to Firehose/UI/Dialogs/AIFeedbackDialog.xaml.cs index fa60c34..ee79a15 100644 --- a/FirehoseNews/UI/Dialogs/AIFeedbackDialog.xaml.cs +++ b/Firehose/UI/Dialogs/AIFeedbackDialog.xaml.cs @@ -1,8 +1,9 @@ using CommunityToolkit.Mvvm.DependencyInjection; -using FirehoseNews.Viewmodels; +using Firehose.Viewmodels; using HYDRANT.Definitions; + //Let it ride -namespace FirehoseNews.UI.Dialogs; +namespace Firehose.UI.Dialogs; public sealed partial class AIFeedbackDialog : Page { diff --git a/FirehoseNews/UI/Dialogs/QuickView.xaml b/Firehose/UI/Dialogs/QuickView.xaml similarity index 94% rename from FirehoseNews/UI/Dialogs/QuickView.xaml rename to Firehose/UI/Dialogs/QuickView.xaml index de94cca..040977b 100644 --- a/FirehoseNews/UI/Dialogs/QuickView.xaml +++ b/Firehose/UI/Dialogs/QuickView.xaml @@ -1,5 +1,5 @@ <Page - x:Class="FirehoseNews.UI.Dialogs.QuickView" + x:Class="Firehose.UI.Dialogs.QuickView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" diff --git a/FirehoseNews/UI/Dialogs/QuickView.xaml.cs b/Firehose/UI/Dialogs/QuickView.xaml.cs similarity index 89% rename from FirehoseNews/UI/Dialogs/QuickView.xaml.cs rename to Firehose/UI/Dialogs/QuickView.xaml.cs index 1588b39..6c92d42 100644 --- a/FirehoseNews/UI/Dialogs/QuickView.xaml.cs +++ b/Firehose/UI/Dialogs/QuickView.xaml.cs @@ -1,8 +1,8 @@ using CommunityToolkit.Mvvm.DependencyInjection; -using FirehoseNews.Viewmodels; +using Firehose.Viewmodels; using HYDRANT.Definitions; -namespace FirehoseNews.UI.Dialogs; +namespace Firehose.UI.Dialogs; public sealed partial class QuickView : Page { diff --git a/FirehoseNews/UI/Preferences.xaml b/Firehose/UI/Preferences.xaml similarity index 83% rename from FirehoseNews/UI/Preferences.xaml rename to Firehose/UI/Preferences.xaml index a42eb90..03a1640 100644 --- a/FirehoseNews/UI/Preferences.xaml +++ b/Firehose/UI/Preferences.xaml @@ -1,5 +1,5 @@ <Page - x:Class="FirehoseNews.UI.Preferences" + x:Class="Firehose.UI.Preferences" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" @@ -29,7 +29,10 @@ <!-- Info bar --> <Border BorderBrush="Gray" BorderThickness="1" Margin="20,50,20,20"/> - <TextBlock HorizontalAlignment="Center" Foreground="DarkGray" Opacity="0.3" - Text="Firehose News 1.0.1 Rarisma 2024 El Dorado"/> + <StackPanel> + <TextBlock Text="Firehose News 1.0.2" HorizontalAlignment="Center"/> + <TextBlock Text="Rarisma 2024" HorizontalAlignment="Center"/> + <TextBlock Text="The Galactic Quest for the Ten Mystic Bug Fixes." HorizontalAlignment="Center"/> + </StackPanel> </StackPanel> </Page> diff --git a/FirehoseNews/UI/Preferences.xaml.cs b/Firehose/UI/Preferences.xaml.cs similarity index 88% rename from FirehoseNews/UI/Preferences.xaml.cs rename to Firehose/UI/Preferences.xaml.cs index 5671a96..921c59c 100644 --- a/FirehoseNews/UI/Preferences.xaml.cs +++ b/Firehose/UI/Preferences.xaml.cs @@ -1,6 +1,6 @@ -using FirehoseNews.Preferences; +using Firehose.Preferences; -namespace FirehoseNews.UI; +namespace Firehose.UI; /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> diff --git a/FirehoseNews/UI/ReaderView.xaml b/Firehose/UI/ReaderView.xaml similarity index 90% rename from FirehoseNews/UI/ReaderView.xaml rename to Firehose/UI/ReaderView.xaml index 5315dad..310745e 100644 --- a/FirehoseNews/UI/ReaderView.xaml +++ b/Firehose/UI/ReaderView.xaml @@ -1,11 +1,11 @@ <Page - x:Class="FirehoseNews.UI.ReaderMode" + x:Class="Firehose.UI.ReaderMode" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:local="using:FirehoseNews" + xmlns:local="using:Firehose" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:controls="using:FirehoseNews.UI.Controls" + xmlns:controls="using:Firehose.UI.Controls" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> diff --git a/FirehoseNews/UI/ReaderView.xaml.cs b/Firehose/UI/ReaderView.xaml.cs similarity index 91% rename from FirehoseNews/UI/ReaderView.xaml.cs rename to Firehose/UI/ReaderView.xaml.cs index 2149656..95b1bd3 100644 --- a/FirehoseNews/UI/ReaderView.xaml.cs +++ b/Firehose/UI/ReaderView.xaml.cs @@ -1,6 +1,6 @@ using HYDRANT.Definitions; -namespace FirehoseNews.UI; +namespace Firehose.UI; public sealed partial class ReaderMode : Page { diff --git a/FirehoseNews/UI/WebView.xaml b/Firehose/UI/WebView.xaml similarity index 70% rename from FirehoseNews/UI/WebView.xaml rename to Firehose/UI/WebView.xaml index 581346c..11b05a8 100644 --- a/FirehoseNews/UI/WebView.xaml +++ b/Firehose/UI/WebView.xaml @@ -1,10 +1,10 @@ <Page - x:Class="FirehoseNews.UI.ArticleView" + x:Class="Firehose.UI.ArticleView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:controls="using:FirehoseNews.UI.Controls" + xmlns:controls="using:Firehose.UI.Controls" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> @@ -15,9 +15,7 @@ <controls:CommonNavigationBar ItemSource="{x:Bind Article}"/> - <ScrollViewer Grid.Row="1"> - <WebView2 Source="{x:Bind Article.Url}" HorizontalAlignment="Stretch" - VerticalAlignment="Stretch"/> - </ScrollViewer> + <WebView2 Source="{x:Bind Article.Url}" HorizontalAlignment="Stretch" + VerticalAlignment="Stretch" Grid.Row="1"/> </Grid> </Page> diff --git a/FirehoseNews/UI/WebView.xaml.cs b/Firehose/UI/WebView.xaml.cs similarity index 94% rename from FirehoseNews/UI/WebView.xaml.cs rename to Firehose/UI/WebView.xaml.cs index 32da1d4..b5fc959 100644 --- a/FirehoseNews/UI/WebView.xaml.cs +++ b/Firehose/UI/WebView.xaml.cs @@ -1,7 +1,7 @@ using HYDRANT.Definitions; using Microsoft.UI; -namespace FirehoseNews.UI; +namespace Firehose.UI; public sealed partial class ArticleView : Page { diff --git a/FirehoseNews/Viewmodels/AppDataVM.cs b/Firehose/Viewmodels/AppDataVM.cs similarity index 88% rename from FirehoseNews/Viewmodels/AppDataVM.cs rename to Firehose/Viewmodels/AppDataVM.cs index a630fdc..038cece 100644 --- a/FirehoseNews/Viewmodels/AppDataVM.cs +++ b/Firehose/Viewmodels/AppDataVM.cs @@ -1,4 +1,4 @@ -namespace FirehoseNews.Viewmodels; +namespace Firehose.Viewmodels; internal class AppDataVM { /// <summary> diff --git a/FirehoseNews/Viewmodels/ShellVM.cs b/Firehose/Viewmodels/ShellVM.cs similarity index 94% rename from FirehoseNews/Viewmodels/ShellVM.cs rename to Firehose/Viewmodels/ShellVM.cs index 2c2b6d6..0dcda6b 100644 --- a/FirehoseNews/Viewmodels/ShellVM.cs +++ b/Firehose/Viewmodels/ShellVM.cs @@ -1,12 +1,13 @@ using System.Collections.ObjectModel; using CommunityToolkit.Mvvm.ComponentModel; -using FirehoseNews.UI.Controls; -using FirehoseNews.UI; -using FirehoseNews.UI.Dialogs; +using Firehose.UI; +using Firehose.UI.Controls; +using Firehose.UI.Dialogs; +using HYDRANT; using HYDRANT.Definitions; using Uno.Extensions; -namespace FirehoseNews.Viewmodels; +namespace Firehose.Viewmodels; class ShellVM : ObservableObject { @@ -110,17 +111,18 @@ public async void OpenArticle(Article article, bool IgnoreQuickView = false) public async Task OpenQuickView(Article article) { // Create content dialog - ContentDialog CD = new() + var res = await Glob.OpenContentDialog(new() { Content = new QuickView(article), XamlRoot = Glob.XamlRoot, Title = $"Summary for {article.Title}", PrimaryButtonText = "Open Article", SecondaryButtonText = "Close" - }; + }); + // Perform actions based on dialog result - if (await CD.ShowAsync() == ContentDialogResult.Primary) + if (res == ContentDialogResult.Primary) { OpenArticle(article, true); } diff --git a/FirehoseNews/Viewmodels/ThemeVM.cs b/Firehose/Viewmodels/ThemeVM.cs similarity index 98% rename from FirehoseNews/Viewmodels/ThemeVM.cs rename to Firehose/Viewmodels/ThemeVM.cs index 100a5f6..53e5467 100644 --- a/FirehoseNews/Viewmodels/ThemeVM.cs +++ b/Firehose/Viewmodels/ThemeVM.cs @@ -2,7 +2,7 @@ using CommunityToolkit.Mvvm.ComponentModel; using Microsoft.UI; -namespace FirehoseNews.Viewmodels; +namespace Firehose.Viewmodels; /// <summary> /// Controls application color and theming diff --git a/FirehoseNews.Windows/app.manifest b/Firehose/app.manifest similarity index 94% rename from FirehoseNews.Windows/app.manifest rename to Firehose/app.manifest index 0be2307..9a86701 100644 --- a/FirehoseNews.Windows/app.manifest +++ b/Firehose/app.manifest @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> - <assemblyIdentity version="1.0.0.0" name="FirehoseNews.Windows.app"/> + <assemblyIdentity version="1.0.0.0" name="Firehose.Windows.app"/> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> diff --git a/FirehoseNews.Mobile/Android/AndroidManifest.xml b/FirehoseNews.Mobile/Android/AndroidManifest.xml deleted file mode 100644 index 40fbe39..0000000 --- a/FirehoseNews.Mobile/Android/AndroidManifest.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.rarisma.REMNANT" android:versionName="1.0.0" android:versionCode="1"> - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> - <uses-permission android:name="android.permission.INTERNET" /> - <application android:allowBackup="true" android:supportsRtl="true" android:label="Firehose News"></application> - <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="34" /> -</manifest> \ No newline at end of file diff --git a/FirehoseNews.Mobile/Android/Resources/firehose_news1024.jpg b/FirehoseNews.Mobile/Android/Resources/firehose_news1024.jpg deleted file mode 100644 index 5ecfc08..0000000 Binary files a/FirehoseNews.Mobile/Android/Resources/firehose_news1024.jpg and /dev/null differ diff --git a/FirehoseNews.Mobile/FirehoseNews.Mobile.csproj b/FirehoseNews.Mobile/FirehoseNews.Mobile.csproj deleted file mode 100644 index f77843c..0000000 --- a/FirehoseNews.Mobile/FirehoseNews.Mobile.csproj +++ /dev/null @@ -1,152 +0,0 @@ -<Project Sdk="Uno.Sdk"> - <PropertyGroup> - <TargetFrameworks>net8.0-ios;net8.0-maccatalyst;net8.0-android34.0</TargetFrameworks> - <TargetFrameworks Condition="'$(OverrideTargetFramework)'!=''">$(OverrideTargetFramework)</TargetFrameworks> - <SingleProject>true</SingleProject> - <OutputType>Exe</OutputType> - <!-- Display name --> - <ApplicationTitle>FirehoseNews</ApplicationTitle> - <!-- App Identifier --> - <ApplicationId>com.HALITHON.FirehoseNews</ApplicationId> - <ApplicationIdGuid>B5A4D293-1B99-4FB7-932B-F624ECBBB8BD</ApplicationIdGuid> - <!-- Versions --> - <ApplicationDisplayVersion>1.0</ApplicationDisplayVersion> - <ApplicationVersion>1</ApplicationVersion> - - <!-- Debugger workaround https://github.com/dotnet/maui-samples/blob/8aa6b8780b12e97b157514c3bdc54bb4a13001cd/HelloMacCatalyst/HelloMacCatalyst.csproj#L7 --> - <!-- <MtouchExtraArgs Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">$(MtouchExtraArgs) -setenv:MONO_THREADS_SUSPEND=preemptive</MtouchExtraArgs> --> - <!-- Required for C# Hot Reload --> - <UseInterpreter Condition="'$(Configuration)' == 'Debug' and $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) != 'maccatalyst'">True</UseInterpreter> - <IsUnoHead>true</IsUnoHead> - <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">26.0</SupportedOSPlatformVersion> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-android34.0|AnyCPU'"> - <EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk> - <ApplicationTitle>Firehose News</ApplicationTitle> - <AndroidKeyStore>False</AndroidKeyStore> - <ApplicationId>net.Rarisma.REMNANT</ApplicationId> - <AndroidUseAapt2>True</AndroidUseAapt2> - <AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi> - <AndroidPackageFormat>aab</AndroidPackageFormat> - <JavaMaximumHeapSize>2G</JavaMaximumHeapSize> - <EnableLLVM>True</EnableLLVM> - <ApplicationDisplayVersion>1.0.1</ApplicationDisplayVersion> - <ApplicationVersion>2</ApplicationVersion> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-android34.0|AnyCPU'"> - <AndroidPackageFormat>aab</AndroidPackageFormat> - <ApplicationTitle>Firehose News</ApplicationTitle> - <AndroidKeyStore>False</AndroidKeyStore> - <ApplicationId>net.Rarisma.REMNANT</ApplicationId> - <AndroidUseAapt2>True</AndroidUseAapt2> - <AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi> - <JavaMaximumHeapSize>2G</JavaMaximumHeapSize> - <AndroidLinkTool>r8</AndroidLinkTool> - <EnableLLVM>True</EnableLLVM> - <ApplicationDisplayVersion>1.0.1</ApplicationDisplayVersion> - <ApplicationVersion>2</ApplicationVersion> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-ios|AnyCPU'"> - <ApplicationTitle>Firehose News</ApplicationTitle> - <ApplicationId>net.Rarisma.REMNANT</ApplicationId> - <ApplicationDisplayVersion>1.0.1</ApplicationDisplayVersion> - <ApplicationVersion>2</ApplicationVersion> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-maccatalyst|AnyCPU'"> - <ApplicationTitle>Firehose News</ApplicationTitle> - <ApplicationId>net.Rarisma.REMNANT</ApplicationId> - <ApplicationDisplayVersion>1.0.1</ApplicationDisplayVersion> - <ApplicationVersion>2</ApplicationVersion> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-ios|AnyCPU'"> - <ApplicationTitle>Firehose News</ApplicationTitle> - <ApplicationId>net.Rarisma.REMNANT</ApplicationId> - <ApplicationDisplayVersion>1.0.1</ApplicationDisplayVersion> - <ApplicationVersion>2</ApplicationVersion> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'"> - <ApplicationTitle>Firehose News</ApplicationTitle> - <ApplicationId>net.Rarisma.REMNANT</ApplicationId> - <ApplicationDisplayVersion>1.0.1</ApplicationDisplayVersion> - <ApplicationVersion>2</ApplicationVersion> - </PropertyGroup> - - <ItemGroup> - <PackageReference Include="Uno.Fonts.Fluent" /> - <PackageReference Include="Uno.Toolkit.WinUI" /> - <PackageReference Include="Uno.WinUI" /> - <PackageReference Include="Microsoft.Extensions.Logging.Console" /> - <PackageReference Include="Uno.Extensions.Logging.OSLog" /> - <PackageReference Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" /> - <PackageReference Include="Uno.WinUI.DevServer" Condition="'$(Configuration)'=='Debug'" /> - <PackageReference Include="Uno.WinUI.Svg" /> - </ItemGroup> - <Choose> - <When Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'"> - <ItemGroup> - - <PackageReference Include="Xamarin.Google.Android.Material" /> - <PackageReference Include="Uno.UniversalImageLoader" /> - </ItemGroup> - </When> - <When Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'"> - <PropertyGroup> - <MtouchExtraArgs>$(MtouchExtraArgs) --setenv=MONO_GC_PARAMS=soft-heap-limit=512m,nursery-size=64m,evacuation-threshold=66,major=marksweep,concurrent-sweep</MtouchExtraArgs> - <!-- See https://github.com/unoplatform/uno/issues/9430 for more details. --> - <MtouchExtraArgs>$(MtouchExtraArgs) --registrar:static</MtouchExtraArgs> - <RuntimeIdentifier Condition="'$(RuntimeIdentifier)'==''">iossimulator-x64</RuntimeIdentifier> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)'=='Release'"> - <!-- https://github.com/xamarin/xamarin-macios/issues/14812 --> - <MtouchExtraArgs>$(MtouchExtraArgs) --marshal-objectivec-exceptions:disable</MtouchExtraArgs> - </PropertyGroup> - </When> - <When Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'"> - <PropertyGroup> - <!-- Configure the GC --> - <MtouchExtraArgs>$(MtouchExtraArgs) --setenv=MONO_GC_PARAMS=soft-heap-limit=512m,nursery-size=64m,evacuation-threshold=66,major=marksweep,concurrent-sweep</MtouchExtraArgs> - <!-- Required for unknown crash as of .NET 6 Mobile Preview 13 --> - <MtouchExtraArgs>$(MtouchExtraArgs) --registrar:static</MtouchExtraArgs> - <!-- Full globalization is required for Uno --> - <InvariantGlobalization>false</InvariantGlobalization> - <RuntimeIdentifier Condition="'$(RuntimeIdentifier)'==''">maccatalyst-x64</RuntimeIdentifier> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)'=='Release'"> - <!-- https://github.com/xamarin/xamarin-macios/issues/14812 --> - <MtouchExtraArgs>$(MtouchExtraArgs) --marshal-objectivec-exceptions:disable</MtouchExtraArgs> - </PropertyGroup> - </When> - </Choose> - <ItemGroup> - <ProjectReference Include="..\FirehoseNews\FirehoseNews.csproj" /> - </ItemGroup> - <Import Project="..\FirehoseNews.Shared\base.props" /> - - <Target Name="ValidateOverrides" BeforeTargets="Restore;_CheckForUnsupportedTargetFramework" Condition="'$(OverrideTargetFramework)' != ''"> - <Error Text="OverrideTargetFramework set to '$(OverrideTargetFramework)' is missing valid target. Set OverrideTargetFramework to one of the TargetFrameworks for this project or skip building this project (eg unload the project in Visual Studio)" Condition="$(OverrideTargetFramework.Contains('windows10')) or !$(OverrideTargetFrameork.Contains('-'))" /> - </Target> - - <ItemGroup> - <None Remove="Android\Resources\firehose_news1024.jpg" /> - <None Remove="C:\Users\RARI\Documents\Repos\Personal\REMNANT\FirehoseNews.Shared\Splash\splash_screen.svg" /> - </ItemGroup> - - <ItemGroup> - <PackageReference Update="Uno.Resizetizer"> - <PrivateAssets>all</PrivateAssets> - <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> - </PackageReference> - </ItemGroup> - - <ItemGroup> - <Folder Include="drawable\" /> - </ItemGroup> - - <ItemGroup> - <Content Include="Android\Resources\firehose_news1024.jpg" Link="Android\Resources\firehose_news1024.jpg" /> - </ItemGroup> - - <ItemGroup> - <UnoIcon Include="Android\Resources\firehose_news1024.jpg" /> - </ItemGroup> -</Project> diff --git a/FirehoseNews.Shared/FirehoseNews.Shared.csproj b/FirehoseNews.Shared/FirehoseNews.Shared.csproj deleted file mode 100644 index 836d8be..0000000 --- a/FirehoseNews.Shared/FirehoseNews.Shared.csproj +++ /dev/null @@ -1,15 +0,0 @@ -<Project Sdk="Microsoft.Build.NoTargets"> - <PropertyGroup> - <!-- NOTE: The TargetFramework is required by MSBuild but not used as this project is not built. --> - <TargetFramework>$(DotNetVersion)</TargetFramework> - <EnableDefaultItems>false</EnableDefaultItems> - </PropertyGroup> - - <ItemGroup> - <None Include="**\*" Exclude="obj\**;bin\**;*.csproj" /> - <PackageReference Include="Uno.Fonts.Fluent" /> - <PackageReference Include="Uno.Toolkit.WinUI" /> - <PackageReference Include="Uno.WinUI.Svg" /> - <None Update="AppHead.xaml.cs" DependentUpon="AppHead.xaml" /> - </ItemGroup> -</Project> diff --git a/FirehoseNews.Shared/Splash/SplashScreen.png b/FirehoseNews.Shared/Splash/SplashScreen.png deleted file mode 100644 index 0a4b604..0000000 Binary files a/FirehoseNews.Shared/Splash/SplashScreen.png and /dev/null differ diff --git a/FirehoseNews.Shared/base.props b/FirehoseNews.Shared/base.props deleted file mode 100644 index 1846763..0000000 --- a/FirehoseNews.Shared/base.props +++ /dev/null @@ -1,30 +0,0 @@ -<Project> - <ItemGroup> - <PackageReference Include="Uno.Resizetizer" /> - </ItemGroup> - - <ItemGroup> - <None Include="$(MSBuildThisFileDirectory)AppHead.xaml" /> - <ApplicationDefinition Include="$(MSBuildThisFileDirectory)AppHead.xaml" - SubType="Designer" - XamlRuntime="WinUI" - Generator="MSBuild:Compile" - Link="AppHead.xaml" /> - <Compile Include="$(MSBuildThisFileDirectory)AppHead.xaml.cs" - XamlRuntime="WinUI" - DependentUpon="AppHead.xaml" - Link="AppHead.xaml.cs" /> - <UnoIcon Include="$(MSBuildThisFileDirectory)Icons\icon.svg" - ForegroundFile="$(MSBuildThisFileDirectory)Icons\icon_foreground.svg" - ForegroundScale="0.65" - Color="#00000000" /> - <UnoSplashScreen - Include="$(MSBuildThisFileDirectory)Splash\splash_screen.svg" - BaseSize="128,128" - Color="#FFFFFF" /> - <!-- NOTE: Files explicitly linked to display in the head projects for clarity. --> - <None Include="$(MSBuildThisFileDirectory)Icons\icon.svg" Link="Icons\icon.svg" /> - <None Include="$(MSBuildThisFileDirectory)Icons\icon_foreground.svg" Link="Icons\icon_foreground.svg" /> - <None Include="$(MSBuildThisFileDirectory)Splash\splash_screen.svg" Link="Splash\splash_screen.svg" /> - </ItemGroup> -</Project> diff --git a/FirehoseNews.Skia.Gtk/FirehoseNews.Skia.Gtk.csproj b/FirehoseNews.Skia.Gtk/FirehoseNews.Skia.Gtk.csproj deleted file mode 100644 index 9212245..0000000 --- a/FirehoseNews.Skia.Gtk/FirehoseNews.Skia.Gtk.csproj +++ /dev/null @@ -1,40 +0,0 @@ -<Project Sdk="Uno.Sdk"> - <PropertyGroup> - <OutputType Condition="'$(Configuration)'=='Release'">WinExe</OutputType> - <OutputType Condition="'$(Configuration)'=='Debug'">Exe</OutputType> - <TargetFramework>$(DotNetVersion)</TargetFramework> - <ApplicationManifest>app.manifest</ApplicationManifest> - </PropertyGroup> - <ItemGroup> - <EmbeddedResource Include="Package.appxmanifest" /> - <Manifest Include="$(ApplicationManifest)" /> - </ItemGroup> - - <ItemGroup> - <PackageReference Include="Svg.Skia" /> - <PackageReference Include="Uno.Fonts.Fluent" /> - <PackageReference Include="Uno.Toolkit.WinUI" /> - <PackageReference Include="Uno.WinUI.Skia.Gtk" /> - <PackageReference Include="Microsoft.Extensions.Logging.Console" /> - <PackageReference Include="SkiaSharp.Views.Uno.WinUI" /> - <PackageReference Include="SkiaSharp.Skottie" /> - <PackageReference Include="Uno.WinUI.DevServer" Condition="'$(Configuration)'=='Debug'" /> - <PackageReference Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" /> - <PackageReference Include="Uno.WinUI.Svg" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\FirehoseNews\FirehoseNews.csproj" /> - </ItemGroup> - <Import Project="..\FirehoseNews.Shared\base.props" /> - - <Target Name="ValidateOverrides" BeforeTargets="Restore;_CheckForUnsupportedTargetFramework" Condition="'$(OverrideTargetFramework)' != ''"> - <Error Text="OverrideTargetFramework set to '$(OverrideTargetFramework)' is invalid. Set OverrideTargetFramework to $([MSBuild]::Escape('$'))(DotNetVersion) or skip building this project (eg unload the project in Visual Studio)" Condition="'$(OverrideTargetFramework)'!='$(DotNetVersion)'" /> - </Target> - - <ItemGroup> - <PackageReference Update="Uno.Resizetizer"> - <PrivateAssets>all</PrivateAssets> - <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> - </PackageReference> - </ItemGroup> -</Project> diff --git a/FirehoseNews.Skia.Gtk/Program.cs b/FirehoseNews.Skia.Gtk/Program.cs deleted file mode 100644 index 8f2dd7a..0000000 --- a/FirehoseNews.Skia.Gtk/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using GLib; -using Uno.UI.Runtime.Skia.Gtk; - -namespace FirehoseNews.Skia.Gtk; -public class Program -{ - public static void Main(string[] args) - { - ExceptionManager.UnhandledException += delegate (UnhandledExceptionArgs expArgs) - { - Console.WriteLine("GLIB UNHANDLED EXCEPTION" + expArgs.ExceptionObject.ToString()); - expArgs.ExitApplication = true; - }; - - var host = new GtkHost(() => new AppHead()); - - host.Run(); - } -} diff --git a/FirehoseNews.Skia.Gtk/app.manifest b/FirehoseNews.Skia.Gtk/app.manifest deleted file mode 100644 index 15dead0..0000000 --- a/FirehoseNews.Skia.Gtk/app.manifest +++ /dev/null @@ -1,77 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> - <assemblyIdentity version="1.0.0.0" name="FirehoseNews.Gtk"/> - <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> - <security> - <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> - <!-- UAC Manifest Options - If you want to change the Windows User Account Control level replace the - requestedExecutionLevel node with one of the following. - - <requestedExecutionLevel level="asInvoker" uiAccess="false" /> - <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> - <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> - - Specifying requestedExecutionLevel element will disable file and registry virtualization. - Remove this element if your application requires this virtualization for backwards - compatibility. - --> - <requestedExecutionLevel level="asInvoker" uiAccess="false" /> - </requestedPrivileges> - </security> - </trustInfo> - - <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> - <application> - <!-- A list of the Windows versions that this application has been tested on - and is designed to work with. Uncomment the appropriate elements - and Windows will automatically select the most compatible environment. --> - - <!-- Windows Vista --> - <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />--> - - <!-- Windows 7 --> - <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />--> - - <!-- Windows 8 --> - <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />--> - - <!-- Windows 8.1 --> - <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />--> - - <!-- Windows 10 --> - <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />--> - - </application> - </compatibility> - - <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher - DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need - to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should - also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. --> - - <application xmlns="urn:schemas-microsoft-com:asm.v3"> - <windowsSettings> - <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware> - <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness> - </windowsSettings> - </application> - - - <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) --> - <!-- - <dependency> - <dependentAssembly> - <assemblyIdentity - type="win32" - name="Microsoft.Windows.Common-Controls" - version="6.0.0.0" - processorArchitecture="*" - publicKeyToken="6595b64144ccf1df" - language="*" - /> - </dependentAssembly> - </dependency> - --> - -</assembly> diff --git a/FirehoseNews.Wasm/FirehoseNews.Wasm.csproj b/FirehoseNews.Wasm/FirehoseNews.Wasm.csproj deleted file mode 100644 index c2c2ed3..0000000 --- a/FirehoseNews.Wasm/FirehoseNews.Wasm.csproj +++ /dev/null @@ -1,83 +0,0 @@ -<Project Sdk="Uno.Sdk"> - - <PropertyGroup> - <OutputType>Exe</OutputType> - <TargetFramework>$(DotNetVersion)</TargetFramework> - <NoWarn>$(NoWarn);NU1504;NU1505;NU1701</NoWarn> - <!-- Disabled due to issue with Central Package Management with implicit using --> - <ImplicitUsings>disable</ImplicitUsings> - <WasmPWAManifestFile>manifest.webmanifest</WasmPWAManifestFile> - <AppDesignerFolder>Properties</AppDesignerFolder> - <!-- - Supports Deep Linking Routes - https://aka.platform.uno/wasm-deeplink - --> - <WasmShellWebAppBasePath>/</WasmShellWebAppBasePath> - - <!-- - Enable WebAssembly Threads - https://aka.platform.uno/wasm-threading - - NOTE: This feature is still considered experimental by the dotnet team - --> - <WasmShellEnableThreads>true</WasmShellEnableThreads> - <WasmShellPThreadsPoolSize>8</WasmShellPThreadsPoolSize> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)'=='Debug'"> - <MonoRuntimeDebuggerEnabled>true</MonoRuntimeDebuggerEnabled> - <DefineConstants>$(DefineConstants);TRACE;DEBUG</DefineConstants> - <DebugType>portable</DebugType> - <DebugSymbols>true</DebugSymbols> - <!-- - IL Linking is disabled in Debug configuration. - When building in Release, see https://platform.uno/docs/articles/features/using-il-linker-WebAssembly.html - --> - <WasmShellILLinkerEnabled>false</WasmShellILLinkerEnabled> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)'=='Release'"> - <!-- XAML Resource trimming https://aka.platform.uno/xaml-trimming --> - <!--<UnoXamlResourcesTrimming>true</UnoXamlResourcesTrimming>--> - <!-- Improve performance with AOT builds https://aka.platform.uno/wasm-aot --> - <!-- <WasmShellMonoRuntimeExecutionMode>InterpreterAndAOT</WasmShellMonoRuntimeExecutionMode> --> - <!-- Temporarily uncomment to generate an AOT profile https://aka.platform.uno/wasm-aot-profile --> - <!-- <WasmShellGenerateAOTProfile>true</WasmShellGenerateAOTProfile> --> - </PropertyGroup> - <ItemGroup> - <Content Include="manifest.webmanifest" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="WasmCSS\Fonts.css" /> - <EmbeddedResource Include="WasmScripts\AppManifest.js" /> - </ItemGroup> - <ItemGroup> - <LinkerDescriptor Include="LinkerConfig.xml" /> - </ItemGroup> - <ItemGroup> - <PackageReference Include="Microsoft.Windows.Compatibility" /> - <PackageReference Include="Uno.Fonts.Fluent" /> - <PackageReference Include="Uno.Toolkit.WinUI" /> - <PackageReference Include="Uno.Wasm.Bootstrap" /> - <PackageReference Include="Uno.Wasm.Bootstrap.DevServer" /> - <PackageReference Include="Uno.WinUI.Svg" /> - <PackageReference Include="Uno.WinUI.WebAssembly" /> - <PackageReference Include="Uno.WinUI.DevServer" Condition="'$(Configuration)'=='Debug'" /> - <PackageReference Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" /> - <PackageReference Include="Uno.Extensions.Logging.WebAssembly.Console" /> - <PackageReference Include="Microsoft.Extensions.Logging.Console" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\FirehoseNews\FirehoseNews.csproj" /> - </ItemGroup> - <Import Project="..\FirehoseNews.Shared\base.props" /> - - <Target Name="ValidateOverrides" BeforeTargets="Restore;_CheckForUnsupportedTargetFramework" Condition="'$(OverrideTargetFramework)' != ''"> - <Error Text="OverrideTargetFramework set to '$(OverrideTargetFramework)' is invalid. Set OverrideTargetFramework to $([MSBuild]::Escape('$'))(DotNetVersion) or skip building this project (eg unload the project in Visual Studio)" Condition="'$(OverrideTargetFramework)'!='$(DotNetVersion)'" /> - </Target> - - <ItemGroup> - <PackageReference Update="Uno.Resizetizer"> - <PrivateAssets>all</PrivateAssets> - <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> - </PackageReference> - </ItemGroup> -</Project> diff --git a/FirehoseNews.Wasm/Properties/launchSettings.json b/FirehoseNews.Wasm/Properties/launchSettings.json deleted file mode 100644 index 9b9ae09..0000000 --- a/FirehoseNews.Wasm/Properties/launchSettings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:8080", - "sslPort": 0 - } - }, - "profiles": { - "FirehoseNews.Wasm": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "http://localhost:5001", - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} diff --git a/FirehoseNews.Wasm/WasmScripts/AppManifest.js b/FirehoseNews.Wasm/WasmScripts/AppManifest.js deleted file mode 100644 index 13400e8..0000000 --- a/FirehoseNews.Wasm/WasmScripts/AppManifest.js +++ /dev/null @@ -1,3 +0,0 @@ -var UnoAppManifest = { - displayName: "FirehoseNews" -} diff --git a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-16.png b/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-16.png deleted file mode 100644 index 2a45a24..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-16.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-24.png b/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-24.png deleted file mode 100644 index 81f9714..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-24.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-256.png b/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-256.png deleted file mode 100644 index 23bacbf..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-256.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-32.png b/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-32.png deleted file mode 100644 index 6de3379..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-32.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-48.png b/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-48.png deleted file mode 100644 index 20bf0ac..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-lightunplated_targetsize-48.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-16.png b/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-16.png deleted file mode 100644 index 2a45a24..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-16.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-24.png b/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-24.png deleted file mode 100644 index 81f9714..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-24.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-256.png b/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-256.png deleted file mode 100644 index 23bacbf..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-256.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-32.png b/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-32.png deleted file mode 100644 index 6de3379..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-32.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-48.png b/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-48.png deleted file mode 100644 index 20bf0ac..0000000 Binary files a/FirehoseNews.Windows/AppIcon.altform-unplated_targetsize-48.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.scale-100.png b/FirehoseNews.Windows/AppIcon.scale-100.png deleted file mode 100644 index 8cb580e..0000000 Binary files a/FirehoseNews.Windows/AppIcon.scale-100.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.scale-125.png b/FirehoseNews.Windows/AppIcon.scale-125.png deleted file mode 100644 index 3c029a5..0000000 Binary files a/FirehoseNews.Windows/AppIcon.scale-125.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.scale-150.png b/FirehoseNews.Windows/AppIcon.scale-150.png deleted file mode 100644 index 699af65..0000000 Binary files a/FirehoseNews.Windows/AppIcon.scale-150.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.scale-200.png b/FirehoseNews.Windows/AppIcon.scale-200.png deleted file mode 100644 index 686a059..0000000 Binary files a/FirehoseNews.Windows/AppIcon.scale-200.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.scale-400.png b/FirehoseNews.Windows/AppIcon.scale-400.png deleted file mode 100644 index a79568d..0000000 Binary files a/FirehoseNews.Windows/AppIcon.scale-400.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.targetsize-16.png b/FirehoseNews.Windows/AppIcon.targetsize-16.png deleted file mode 100644 index a851331..0000000 Binary files a/FirehoseNews.Windows/AppIcon.targetsize-16.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.targetsize-24.png b/FirehoseNews.Windows/AppIcon.targetsize-24.png deleted file mode 100644 index 19fee06..0000000 Binary files a/FirehoseNews.Windows/AppIcon.targetsize-24.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.targetsize-256.png b/FirehoseNews.Windows/AppIcon.targetsize-256.png deleted file mode 100644 index cc04cb2..0000000 Binary files a/FirehoseNews.Windows/AppIcon.targetsize-256.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.targetsize-32.png b/FirehoseNews.Windows/AppIcon.targetsize-32.png deleted file mode 100644 index 26d09c9..0000000 Binary files a/FirehoseNews.Windows/AppIcon.targetsize-32.png and /dev/null differ diff --git a/FirehoseNews.Windows/AppIcon.targetsize-48.png b/FirehoseNews.Windows/AppIcon.targetsize-48.png deleted file mode 100644 index 3ab6daf..0000000 Binary files a/FirehoseNews.Windows/AppIcon.targetsize-48.png and /dev/null differ diff --git a/FirehoseNews.Windows/BadgeLogo.scale-100.png b/FirehoseNews.Windows/BadgeLogo.scale-100.png deleted file mode 100644 index a2cf99b..0000000 Binary files a/FirehoseNews.Windows/BadgeLogo.scale-100.png and /dev/null differ diff --git a/FirehoseNews.Windows/BadgeLogo.scale-125.png b/FirehoseNews.Windows/BadgeLogo.scale-125.png deleted file mode 100644 index a567663..0000000 Binary files a/FirehoseNews.Windows/BadgeLogo.scale-125.png and /dev/null differ diff --git a/FirehoseNews.Windows/BadgeLogo.scale-150.png b/FirehoseNews.Windows/BadgeLogo.scale-150.png deleted file mode 100644 index a244e3f..0000000 Binary files a/FirehoseNews.Windows/BadgeLogo.scale-150.png and /dev/null differ diff --git a/FirehoseNews.Windows/BadgeLogo.scale-200.png b/FirehoseNews.Windows/BadgeLogo.scale-200.png deleted file mode 100644 index b7f12d2..0000000 Binary files a/FirehoseNews.Windows/BadgeLogo.scale-200.png and /dev/null differ diff --git a/FirehoseNews.Windows/BadgeLogo.scale-400.png b/FirehoseNews.Windows/BadgeLogo.scale-400.png deleted file mode 100644 index 3e79f1d..0000000 Binary files a/FirehoseNews.Windows/BadgeLogo.scale-400.png and /dev/null differ diff --git a/FirehoseNews.Windows/FirehoseNews.Windows.csproj b/FirehoseNews.Windows/FirehoseNews.Windows.csproj deleted file mode 100644 index 956da73..0000000 --- a/FirehoseNews.Windows/FirehoseNews.Windows.csproj +++ /dev/null @@ -1,58 +0,0 @@ -<Project Sdk="Uno.Sdk"> - <PropertyGroup> - <OutputType>WinExe</OutputType> - <TargetFramework>$(DotNetVersion)-windows10.0.19041.0</TargetFramework> - <RootNamespace>FirehoseNews.Windows</RootNamespace> - <Platforms>x86;x64;arm64</Platforms> - - - <!-- Bundles the WinAppSDK binaries --> - <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained> - - <!-- <SelfContained>true</SelfContained> --> - </PropertyGroup> - - <ItemGroup> - <PackageReference Include="Uno.Fonts.Fluent" /> - <PackageReference Include="Uno.Toolkit.WinUI" /> - <PackageReference Include="Uno.WinUI" /> - <PackageReference Include="Microsoft.WindowsAppSDK" /> - <PackageReference Include="Microsoft.Windows.SDK.BuildTools" /> - <PackageReference Include="Microsoft.Extensions.Logging.Console" /> - <PackageReference Include="Uno.Core.Extensions.Logging.Singleton" /> - <PackageReference Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" /> - </ItemGroup> - - <ItemGroup><!-- - If you encounter this error message: - - error NETSDK1148: A referenced assembly was compiled using a newer version of Microsoft.Windows.SDK.NET.dll. - Please update to a newer .NET SDK in order to reference this assembly. - - This means that the two packages below must be aligned with the "build" version number of - the "Microsoft.Windows.SDK.BuildTools" package above, and the "revision" version number - must be the highest found in https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref. - --> - <!-- <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.22621.28" /> - <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.22621.28" /> --> - - <PackageReference Include="Uno.WinUI.Svg" /> - </ItemGroup> - - <ItemGroup> - <ProjectReference Include="..\FirehoseNews\FirehoseNews.csproj" /> - </ItemGroup> - - <Import Project="..\FirehoseNews.Shared\base.props" /> - - <Target Name="ValidateOverrides" BeforeTargets="Restore;_CheckForUnsupportedTargetFramework" Condition="'$(OverrideTargetFramework)' != ''"> - <Error Text="OverrideTargetFramework set to '$(OverrideTargetFramework)' is missing Windows target. Set OverrideTargetFramework to $([MSBuild]::Escape('$'))(DotNetVersion)-windows10.0.19041.0 or skip building this project (eg unload the project in Visual Studio)" Condition="!$(OverrideTargetFramework.Contains('windows10'))" /> - </Target> - - <ItemGroup> - <PackageReference Update="Uno.Resizetizer"> - <PrivateAssets>all</PrivateAssets> - <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> - </PackageReference> - </ItemGroup> -</Project> diff --git a/FirehoseNews.Windows/LargeTile.scale-100.png b/FirehoseNews.Windows/LargeTile.scale-100.png deleted file mode 100644 index 8cd1b92..0000000 Binary files a/FirehoseNews.Windows/LargeTile.scale-100.png and /dev/null differ diff --git a/FirehoseNews.Windows/LargeTile.scale-125.png b/FirehoseNews.Windows/LargeTile.scale-125.png deleted file mode 100644 index 459d934..0000000 Binary files a/FirehoseNews.Windows/LargeTile.scale-125.png and /dev/null differ diff --git a/FirehoseNews.Windows/LargeTile.scale-150.png b/FirehoseNews.Windows/LargeTile.scale-150.png deleted file mode 100644 index f0cc86e..0000000 Binary files a/FirehoseNews.Windows/LargeTile.scale-150.png and /dev/null differ diff --git a/FirehoseNews.Windows/LargeTile.scale-200.png b/FirehoseNews.Windows/LargeTile.scale-200.png deleted file mode 100644 index f9935e4..0000000 Binary files a/FirehoseNews.Windows/LargeTile.scale-200.png and /dev/null differ diff --git a/FirehoseNews.Windows/LargeTile.scale-400.png b/FirehoseNews.Windows/LargeTile.scale-400.png deleted file mode 100644 index e282cc6..0000000 Binary files a/FirehoseNews.Windows/LargeTile.scale-400.png and /dev/null differ diff --git a/FirehoseNews.Windows/MediumTile.scale-100.png b/FirehoseNews.Windows/MediumTile.scale-100.png deleted file mode 100644 index 75f8aba..0000000 Binary files a/FirehoseNews.Windows/MediumTile.scale-100.png and /dev/null differ diff --git a/FirehoseNews.Windows/MediumTile.scale-125.png b/FirehoseNews.Windows/MediumTile.scale-125.png deleted file mode 100644 index c8f689b..0000000 Binary files a/FirehoseNews.Windows/MediumTile.scale-125.png and /dev/null differ diff --git a/FirehoseNews.Windows/MediumTile.scale-150.png b/FirehoseNews.Windows/MediumTile.scale-150.png deleted file mode 100644 index 3656675..0000000 Binary files a/FirehoseNews.Windows/MediumTile.scale-150.png and /dev/null differ diff --git a/FirehoseNews.Windows/MediumTile.scale-200.png b/FirehoseNews.Windows/MediumTile.scale-200.png deleted file mode 100644 index d0c3ed6..0000000 Binary files a/FirehoseNews.Windows/MediumTile.scale-200.png and /dev/null differ diff --git a/FirehoseNews.Windows/MediumTile.scale-400.png b/FirehoseNews.Windows/MediumTile.scale-400.png deleted file mode 100644 index 55d7e8d..0000000 Binary files a/FirehoseNews.Windows/MediumTile.scale-400.png and /dev/null differ diff --git a/FirehoseNews.Windows/Package.appxmanifest b/FirehoseNews.Windows/Package.appxmanifest deleted file mode 100644 index 7535bf0..0000000 --- a/FirehoseNews.Windows/Package.appxmanifest +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<Package - xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" - xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" - xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" - IgnorableNamespaces="uap rescap"> - - <Identity - Name="FirehoseNews" - Publisher="O=HalithonLabs" - Version="1.0.0.0" /> - - <Properties> - <DisplayName>Firehose News</DisplayName> - <PublisherDisplayName>Rarisma</PublisherDisplayName> - </Properties> - - <Dependencies> - <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" /> - <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" /> - </Dependencies> - - <Resources> - <Resource Language="x-generate"/> - </Resources> - - <Applications> - <Application Id="App" - Executable="$targetnametoken$.exe" - EntryPoint="$targetentrypoint$"> - <uap:VisualElements - DisplayName="Firehose News" - Description="newsapp"> - <uap:SplashScreen /> - <uap:DefaultTile/> - </uap:VisualElements> - </Application> - </Applications> - - <Capabilities> - <rescap:Capability Name="runFullTrust" /> - </Capabilities> -</Package> diff --git a/FirehoseNews.Windows/PackageLogo.scale-100.png b/FirehoseNews.Windows/PackageLogo.scale-100.png deleted file mode 100644 index 302a585..0000000 Binary files a/FirehoseNews.Windows/PackageLogo.scale-100.png and /dev/null differ diff --git a/FirehoseNews.Windows/PackageLogo.scale-125.png b/FirehoseNews.Windows/PackageLogo.scale-125.png deleted file mode 100644 index df154f8..0000000 Binary files a/FirehoseNews.Windows/PackageLogo.scale-125.png and /dev/null differ diff --git a/FirehoseNews.Windows/PackageLogo.scale-150.png b/FirehoseNews.Windows/PackageLogo.scale-150.png deleted file mode 100644 index 244c7ab..0000000 Binary files a/FirehoseNews.Windows/PackageLogo.scale-150.png and /dev/null differ diff --git a/FirehoseNews.Windows/PackageLogo.scale-200.png b/FirehoseNews.Windows/PackageLogo.scale-200.png deleted file mode 100644 index 6ea09d1..0000000 Binary files a/FirehoseNews.Windows/PackageLogo.scale-200.png and /dev/null differ diff --git a/FirehoseNews.Windows/PackageLogo.scale-400.png b/FirehoseNews.Windows/PackageLogo.scale-400.png deleted file mode 100644 index a6e36f3..0000000 Binary files a/FirehoseNews.Windows/PackageLogo.scale-400.png and /dev/null differ diff --git a/FirehoseNews.Windows/Properties/launchsettings.json b/FirehoseNews.Windows/Properties/launchsettings.json deleted file mode 100644 index 39765fa..0000000 --- a/FirehoseNews.Windows/Properties/launchsettings.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "profiles": { - "FirehoseNews.Windows (Unpackaged)": { - "commandName": "Project", - "nativeDebugging": true, - "sqlDebugging": true - }, - "FirehoseNews.Windows (Package)": { - "commandName": "MsixPackage" - } - } -} \ No newline at end of file diff --git a/FirehoseNews.Windows/Resources.lang-en-us.resw b/FirehoseNews.Windows/Resources.lang-en-us.resw deleted file mode 100644 index fad04be..0000000 --- a/FirehoseNews.Windows/Resources.lang-en-us.resw +++ /dev/null @@ -1,123 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <data name="Placeholder" xml:space="preserve"> - <value>Hello World!</value> - </data> -</root> \ No newline at end of file diff --git a/FirehoseNews.Windows/SmallTile.scale-100.png b/FirehoseNews.Windows/SmallTile.scale-100.png deleted file mode 100644 index 6ccc742..0000000 Binary files a/FirehoseNews.Windows/SmallTile.scale-100.png and /dev/null differ diff --git a/FirehoseNews.Windows/SmallTile.scale-125.png b/FirehoseNews.Windows/SmallTile.scale-125.png deleted file mode 100644 index 22011d4..0000000 Binary files a/FirehoseNews.Windows/SmallTile.scale-125.png and /dev/null differ diff --git a/FirehoseNews.Windows/SmallTile.scale-150.png b/FirehoseNews.Windows/SmallTile.scale-150.png deleted file mode 100644 index de9906f..0000000 Binary files a/FirehoseNews.Windows/SmallTile.scale-150.png and /dev/null differ diff --git a/FirehoseNews.Windows/SmallTile.scale-200.png b/FirehoseNews.Windows/SmallTile.scale-200.png deleted file mode 100644 index 82aa18a..0000000 Binary files a/FirehoseNews.Windows/SmallTile.scale-200.png and /dev/null differ diff --git a/FirehoseNews.Windows/SmallTile.scale-400.png b/FirehoseNews.Windows/SmallTile.scale-400.png deleted file mode 100644 index 30f4643..0000000 Binary files a/FirehoseNews.Windows/SmallTile.scale-400.png and /dev/null differ diff --git a/FirehoseNews.Windows/SplashScreen.png b/FirehoseNews.Windows/SplashScreen.png deleted file mode 100644 index 0a4b604..0000000 Binary files a/FirehoseNews.Windows/SplashScreen.png and /dev/null differ diff --git a/FirehoseNews.Windows/SplashScreen.scale-100.png b/FirehoseNews.Windows/SplashScreen.scale-100.png deleted file mode 100644 index ea7baca..0000000 Binary files a/FirehoseNews.Windows/SplashScreen.scale-100.png and /dev/null differ diff --git a/FirehoseNews.Windows/SplashScreen.scale-125.png b/FirehoseNews.Windows/SplashScreen.scale-125.png deleted file mode 100644 index b940923..0000000 Binary files a/FirehoseNews.Windows/SplashScreen.scale-125.png and /dev/null differ diff --git a/FirehoseNews.Windows/SplashScreen.scale-150.png b/FirehoseNews.Windows/SplashScreen.scale-150.png deleted file mode 100644 index 09917de..0000000 Binary files a/FirehoseNews.Windows/SplashScreen.scale-150.png and /dev/null differ diff --git a/FirehoseNews.Windows/SplashScreen.scale-200.png b/FirehoseNews.Windows/SplashScreen.scale-200.png deleted file mode 100644 index d1584b9..0000000 Binary files a/FirehoseNews.Windows/SplashScreen.scale-200.png and /dev/null differ diff --git a/FirehoseNews.Windows/SplashScreen.scale-400.png b/FirehoseNews.Windows/SplashScreen.scale-400.png deleted file mode 100644 index 95b7810..0000000 Binary files a/FirehoseNews.Windows/SplashScreen.scale-400.png and /dev/null differ diff --git a/FirehoseNews.Windows/WideTile.scale-100.png b/FirehoseNews.Windows/WideTile.scale-100.png deleted file mode 100644 index 5d4c76f..0000000 Binary files a/FirehoseNews.Windows/WideTile.scale-100.png and /dev/null differ diff --git a/FirehoseNews.Windows/WideTile.scale-125.png b/FirehoseNews.Windows/WideTile.scale-125.png deleted file mode 100644 index 9ac8c78..0000000 Binary files a/FirehoseNews.Windows/WideTile.scale-125.png and /dev/null differ diff --git a/FirehoseNews.Windows/WideTile.scale-150.png b/FirehoseNews.Windows/WideTile.scale-150.png deleted file mode 100644 index 3312ebc..0000000 Binary files a/FirehoseNews.Windows/WideTile.scale-150.png and /dev/null differ diff --git a/FirehoseNews.Windows/WideTile.scale-200.png b/FirehoseNews.Windows/WideTile.scale-200.png deleted file mode 100644 index ea7baca..0000000 Binary files a/FirehoseNews.Windows/WideTile.scale-200.png and /dev/null differ diff --git a/FirehoseNews.Windows/WideTile.scale-400.png b/FirehoseNews.Windows/WideTile.scale-400.png deleted file mode 100644 index d1584b9..0000000 Binary files a/FirehoseNews.Windows/WideTile.scale-400.png and /dev/null differ diff --git a/FirehoseNews/App.cs b/FirehoseNews/App.cs deleted file mode 100644 index 1d38e09..0000000 --- a/FirehoseNews/App.cs +++ /dev/null @@ -1,82 +0,0 @@ -using CommunityToolkit.Mvvm.DependencyInjection; -using FirehoseNews.Preferences; -using FirehoseNews.UI; -using FirehoseNews.Viewmodels; - -namespace FirehoseNews; - -public class App : Application -{ - protected Window? MainWindow { get; private set; } - - protected override async void OnLaunched(LaunchActivatedEventArgs args) - { -#if NET6_0_OR_GREATER && WINDOWS && !HAS_UNO - MainWindow = new Window(); -#else - MainWindow = Microsoft.UI.Xaml.Window.Current; -#endif - -#if DEBUG - MainWindow.EnableHotReload(); -#endif -#if !WINDOWS - -#endif - PreferencesModel.Load(); - - configureIOC(); - App.Current.UnhandledException += Current_UnhandledException; - - // Do not repeat app initialization when the Window already has content, - // just ensure that the window is active - if (MainWindow.Content is not Frame rootFrame) - { - // Place the frame in the current Window - MainWindow.Content = Glob.Frame; - Glob.Frame.NavigationFailed += OnNavigationFailed; - } - - Glob.Publications = await new API().GetPublications(); - - if (Glob.Frame.Content == null) - { - // When the navigation stack isn't restored navigate to the first page, - // configuring the new page by passing required information as a navigation - // parameter - Glob.NaviStack.Push(new ArticleList()); - Glob.DoNavi(); - - } - - - // Ensure the current window is active - MainWindow.Activate(); - - } - - void configureIOC() - { - var Services = new ServiceCollection() - .AddSingleton<ShellVM>() - .AddSingleton<ThemeVM>() - .BuildServiceProvider(); - - Ioc.Default.ConfigureServices(Services); - } - - private void Current_UnhandledException(object sender, Microsoft.UI.Xaml.UnhandledExceptionEventArgs e) - { - Console.WriteLine(e.Message); - } - - /// <summary> - /// Invoked when Navigation to a page fails - /// </summary> - /// <param name="sender">The Frame which failed navigation</param> - /// <param name="e">Details about the navigation failure</param> - void OnNavigationFailed(object sender, NavigationFailedEventArgs e) - { - throw new InvalidOperationException($"Failed to load {e.SourcePageType.FullName}: {e.Exception}"); - } -} diff --git a/FirehoseNews/AppResources.xaml b/FirehoseNews/AppResources.xaml deleted file mode 100644 index 5077a69..0000000 --- a/FirehoseNews/AppResources.xaml +++ /dev/null @@ -1,11 +0,0 @@ -<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" - xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> - - <ResourceDictionary.MergedDictionaries> - <!-- Load WinUI resources --> - <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" /> - - </ResourceDictionary.MergedDictionaries> - <!-- Add resources here --> - -</ResourceDictionary> diff --git a/FirehoseNews/Assets/Icons/back.svg b/FirehoseNews/Assets/Icons/back.svg deleted file mode 100644 index bcd7851..0000000 --- a/FirehoseNews/Assets/Icons/back.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M16 7H3.83L9.42 1.41L8 0L0 8L8 16L9.41 14.59L3.83 9H16V7Z" fill="#1C1B1F"/> -</svg> diff --git a/FirehoseNews/FirehoseNews.csproj b/FirehoseNews/FirehoseNews.csproj deleted file mode 100644 index 0bfd2f6..0000000 --- a/FirehoseNews/FirehoseNews.csproj +++ /dev/null @@ -1,109 +0,0 @@ -<Project Sdk="Uno.Sdk"> - <PropertyGroup> - <TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) or '$(EnableWindowsTargeting)' == 'true'">$(TargetFrameworks);$(DotNetVersion)-windows10.0.19041</TargetFrameworks> - <TargetFrameworks>$(TargetFrameworks);$(DotNetVersion);$(DotNetVersion)-android;$(DotNetVersion)-ios;$(DotNetVersion)-maccatalyst</TargetFrameworks> - <TargetFrameworks Condition="'$(OverrideTargetFramework)'!=''">$(OverrideTargetFramework)</TargetFrameworks> - - <!-- Ensures the .xr.xml files are generated in a proper layout folder --> - <GenerateLibraryLayout>true</GenerateLibraryLayout> - <!-- - If you encounter this error message: - - error NETSDK1148: A referenced assembly was compiled using a newer version of Microsoft.Windows.SDK.NET.dll. - Please update to a newer .NET SDK in order to reference this assembly. - - This means that the two packages below must be aligned with the "build" version number of - the "Microsoft.Windows.SDK.BuildTools" package above, and the "revision" version number - must be the highest found in https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref. - --> - <!-- <WindowsSdkPackageVersion>10.0.22621.28</WindowsSdkPackageVersion> --> - </PropertyGroup> - <ItemGroup> - <None Remove="ArticleList.xaml" /> - <None Remove="ArticleView.xaml" /> - <None Remove="UI\AIFeedbackDialog.xaml" /> - <None Remove="UI\Controls\CommonNavigationBar.xaml" /> - <None Remove="UI\Controls\Filters.xaml" /> - <None Remove="UI\PublisherFilter.xaml" /> - <None Remove="UI\PublisherInformation.xaml" /> - <None Remove="UI\QuickView.xaml" /> - <None Remove="Preferences.xaml" /> - <None Remove="ReaderMode.xaml" /> - </ItemGroup> - - <ItemGroup> - <PackageReference Include="CommunityToolkit.Mvvm" /> - <PackageReference Include="OpenGraph-Net" /> - <PackageReference Include="Uno.Fonts.Fluent" /> - <PackageReference Include="Uno.Toolkit.WinUI" /> - <PackageReference Include="Uno.WinUI" /> - <PackageReference Include="Uno.WinUI.Lottie" Condition="!$(TargetFramework.Contains('windows10'))" /> - <PackageReference Include="Uno.WinUI.DevServer" Condition="'$(Configuration)'=='Debug' AND !$(TargetFramework.Contains('windows10'))" /> - <PackageReference Include="Uno.Resizetizer"> - <PrivateAssets>all</PrivateAssets> - <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> - </PackageReference> - <PackageReference Include="Microsoft.Extensions.Logging.Console" /> - <PackageReference Include="Microsoft.WindowsAppSDK" Condition="$(TargetFramework.Contains('windows10'))" /> - <PackageReference Include="Microsoft.Windows.SDK.BuildTools" Condition="$(TargetFramework.Contains('windows10'))" /> - <PackageReference Include="Uno.WinUI.Svg" /> - </ItemGroup> - - <ItemGroup> - <ProjectReference Include="..\HYDRANT\HYDRANT.csproj" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="ArticleView.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="ArticleList.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="ReaderMode.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="UI\PublisherInformation.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="Preferences.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="UI\AIFeedbackDialog.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="UI\PublisherFilter.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="UI\QuickView.xaml" /> - </ItemGroup> - - <ItemGroup> - <Folder Include="UI\Dialogs\" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="UI\WebView.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="UI\ReaderView.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="UI\Controls\CommonNavigationBar.xaml" /> - </ItemGroup> - - <ItemGroup> - <UpToDateCheckInput Remove="UI\Controls\Filters.xaml" /> - </ItemGroup> - - -</Project> diff --git a/FirehoseNews/GlobalUsings.cs b/FirehoseNews/GlobalUsings.cs deleted file mode 100644 index 72547f9..0000000 --- a/FirehoseNews/GlobalUsings.cs +++ /dev/null @@ -1,14 +0,0 @@ -global using System.Collections.Immutable; -global using System.Windows.Input; -global using Microsoft.Extensions.DependencyInjection; -global using Windows.Networking.Connectivity; -global using Windows.Storage; -global using Microsoft.Extensions.Logging; -global using Microsoft.UI.Xaml; -global using Microsoft.UI.Xaml.Controls; -global using Microsoft.UI.Xaml.Media; -global using Microsoft.UI.Xaml.Navigation; -global using Uno.UI; -global using Windows.ApplicationModel; -global using ApplicationExecutionState = Windows.ApplicationModel.Activation.ApplicationExecutionState; -global using HYDRANT; diff --git a/FirehoseServer/Controllers/Article.cs b/FirehoseServer/Controllers/Article.cs index 257b8e0..1397891 100644 --- a/FirehoseServer/Controllers/Article.cs +++ b/FirehoseServer/Controllers/Article.cs @@ -10,18 +10,18 @@ public class ArticlesController : ControllerBase { [HttpGet("GetArticles")] - public IActionResult GetArticles(int limit = 200, int Offset = 0, string Filter = "") + public IActionResult GetArticles(int limit = 200, int Offset = 0, string Filter = "", bool Minimal = false) { try { // ReSharper disable once RedundantTypeArgumentsOfMethod if (Filter == "") { - return Ok(JsonSerializer.Serialize<List<Article>>(Program.MySQLReadOnly.GetArticles(limit, Offset))); + return Ok(JsonSerializer.Serialize<List<Article>>(Program.MySQLReadOnly.GetArticles(limit, Offset, Minimal:Minimal))); } else { - return Ok(JsonSerializer.Serialize<List<Article>>(Program.MySQLReadOnly.GetArticles(limit, Offset, Filter: Filter))); + return Ok(JsonSerializer.Serialize<List<Article>>(Program.MySQLReadOnly.GetArticles(limit, Offset, Filter: Filter, Minimal))); } } catch (Exception ex) diff --git a/FirehoseServer/LLM.cs b/FirehoseServer/LLM.cs index 9b9b384..19ca9b7 100644 --- a/FirehoseServer/LLM.cs +++ b/FirehoseServer/LLM.cs @@ -18,7 +18,7 @@ public static class LLM public static string[] ModelNames = [ - "lmstudio-community/gemma-1.1-2b-it-GGUF/gemma-1.1-2b-it-Q8_0.gguf", + "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF", //"lmstudio-community/gemma-1.1-2b-it-GGUF/gemma-1.1-2b-it-Q8_0.gguf:2" ]; @@ -45,7 +45,7 @@ public static async Task<string> SendPostRequest(string systemPrompt, string use new { role = "user", content = userMessage } }, temperature = 0.2, - model = ModelNames[ID] + //model = ModelNames[ID] }; try diff --git a/FirehoseServer/Logs.txt b/FirehoseServer/Logs.txt new file mode 100644 index 0000000..6f2e304 --- /dev/null +++ b/FirehoseServer/Logs.txt @@ -0,0 +1,2 @@ +Request from IP 127.0.0.1 - GET: /Articles/GetArticles at 13/05/2024 15:19:54 QueryString: ?limit=200&Offset=0 +Response: 200 at 13/05/2024 15:19:54 diff --git a/Hydrant/API.cs b/Hydrant/API.cs index b867a35..319a90e 100644 --- a/Hydrant/API.cs +++ b/Hydrant/API.cs @@ -33,10 +33,12 @@ public API(string endpoint = "https://www.hallon.rarisma.net:5000") /// <param name="Limit">How many articles you want to set</param> /// <param name="Offset">Skip this amount of articles</param> /// <param name="Filter">Filter articles via SQL</param> + /// <param name="Minimal">Minimal Mode</param> /// <returns>List of articles if successful.</returns> - public async Task<List<Article>?> GetArticles(int Limit = 20, int Offset = 0, string Filter = "ORDER BY PUBLISH_DATE DESC") + public async Task<List<Article>?> GetArticles(int Limit = 20, int Offset = 0, + string Filter = "ORDER BY PUBLISH_DATE DESC", bool Minimal=true) { - var endpoint = $"/Articles/GetArticles?limit={Limit}&offset={Offset}&filter={Filter}"; + var endpoint = $"/Articles/GetArticles?limit={Limit}&offset={Offset}&filter={Filter}&minimal={Minimal}"; using HttpClient client = new(); //client.DefaultRequestHeaders.Add("ApiKey", API_KEY); diff --git a/Hydrant/SQL.cs b/Hydrant/SQL.cs index c7ccebf..652a011 100644 --- a/Hydrant/SQL.cs +++ b/Hydrant/SQL.cs @@ -23,15 +23,27 @@ public SQL(string connectionString) /// </summary> /// <returns>list of articles.</returns> internal List<Article> GetArticles(int Limit = 0, int Offset = 0, - string Filter = "ORDER BY PUBLISH_DATE DESC") - { - string query = $@"SELECT URL, TITLE, RSS_SUMMARY, PUBLISH_DATE, HEADLINE, - PAYWALL, SUMMARY, ImageURL,ARTICLE_TEXT, PUBLISHER_ID, BUSINESS_RELATED, - COMPANIES_MENTIONED, AUTHOR, SECTORS FROM ARTICLES {Filter} LIMIT {Limit} - OFFSET {Offset};"; + string Filter = "ORDER BY PUBLISH_DATE DESC", bool Minimal = true) + { + string query; + //Select queries, minimal mode is much quicker for large queries. + if (Minimal) + { + query = @"SELECT URL, TITLE, RSS_SUMMARY, PUBLISH_DATE, HEADLINE, + SUMMARY, ImageURL, PUBLISHER_ID, AUTHOR"; + } + else + { + query = @"SELECT URL, TITLE, RSS_SUMMARY, PUBLISH_DATE, HEADLINE, + PAYWALL, SUMMARY, ImageURL,ARTICLE_TEXT, PUBLISHER_ID, BUSINESS_RELATED, + COMPANIES_MENTIONED, AUTHOR, SECTORS"; + } + + //Add common filtering stuff + query += $" FROM ARTICLES {Filter} LIMIT {Limit} OFFSET {Offset};"; - //Run command - MySqlConnection DB = new() { ConnectionString = Connection }; + //Run command + MySqlConnection DB = new() { ConnectionString = Connection }; DB.Open(); MySqlCommand cmd = new MySqlCommand(query, DB); @@ -39,24 +51,45 @@ internal List<Article> GetArticles(int Limit = 0, int Offset = 0, List<Article> articles = new(); while (reader.Read()) { - //'deserialize' into article - var article = new Article - { - Url = reader["URL"].ToString() ?? string.Empty, - Title = reader["TITLE"].ToString() ?? "", - RSSSummary = reader["RSS_SUMMARY"].ToString() ?? "", - PublishDate = Convert.ToDateTime(reader["PUBLISH_DATE"]), - IsHeadline = Convert.ToBoolean(reader["HEADLINE"]), - IsPaywall = Convert.ToBoolean(reader["PAYWALL"]), - Summary = reader["SUMMARY"].ToString()!, - ImageURL = reader["ImageURL"].ToString(), - Text = reader["ARTICLE_TEXT"].ToString()!, - PublisherID = (int)reader["PUBLISHER_ID"], - Business = Convert.ToBoolean(reader["BUSINESS_RELATED"]), - CompaniesMentioned = reader["COMPANIES_MENTIONED"].ToString()!, - Author = reader["AUTHOR"].ToString()!, - Sectors = reader["SECTORS"].ToString()!, - }; + //'deserialize' into article + Article article; + if (Minimal) + { + article = new() + { + Url = reader["URL"].ToString() ?? string.Empty, + Title = reader["TITLE"].ToString() ?? "", + RSSSummary = reader["RSS_SUMMARY"].ToString() ?? "", + PublishDate = Convert.ToDateTime(reader["PUBLISH_DATE"]), + IsHeadline = Convert.ToBoolean(reader["HEADLINE"] ?? true), + IsPaywall = false, + Summary = reader["SUMMARY"].ToString()!, + ImageURL = reader["ImageURL"].ToString(), + PublisherID = (int)reader["PUBLISHER_ID"], + Author = reader["AUTHOR"].ToString()!, + }; + } + else + { + article = new() + { + Url = reader["URL"].ToString() ?? string.Empty, + Title = reader["TITLE"].ToString() ?? "", + RSSSummary = reader["RSS_SUMMARY"].ToString() ?? "", + PublishDate = Convert.ToDateTime(reader["PUBLISH_DATE"]), + IsHeadline = Convert.ToBoolean(reader["HEADLINE"] ?? true), + IsPaywall = Convert.ToBoolean(reader["PAYWALL"] ?? true), + Summary = reader["SUMMARY"].ToString()!, + ImageURL = reader["ImageURL"].ToString(), + Text = reader["ARTICLE_TEXT"].ToString() ?? "Article Text unavailable.", + PublisherID = (int)reader["PUBLISHER_ID"], + Business = Convert.ToBoolean(reader["BUSINESS_RELATED"]), + CompaniesMentioned = reader["COMPANIES_MENTIONED"].ToString()!, + Author = reader["AUTHOR"].ToString()!, + Sectors = reader["SECTORS"].ToString()!, + }; + } + //Add to collection articles.Add(article); diff --git a/README.md b/README.md deleted file mode 100644 index 66ddeaa..0000000 --- a/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Firehose -#### A (not so) simple way to scrape article data and make AI summaries - -### What is firehose? -Firehose is a project designed to scrape news articles and make AI news summaries. -As this is a large project, it has several subprojects - - -#### HYDRANT -HYDRANT provides common class defintions and tooling to access the database. - - -#### FirehoseServer -Firehose server is ASP.NET server that provides readonly access to the database. -It also scrapes and summarises news articles from a range of sources. - - -#### FirehoseApp -FirehoseApp is a UNO UI news app written in C#. diff --git a/global.json b/global.json index 76784ad..25b13a8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { + // To update the version of Uno please update the version of the Uno.Sdk here. See https://aka.platform.uno/upgrade-uno-packages for more information. "msbuild-sdks": { - "Uno.Sdk": "5.2.139", - "Microsoft.Build.NoTargets": "3.7.56" + "Uno.Sdk": "5.2.139" } } diff --git a/solution-config.props.sample b/solution-config.props.sample deleted file mode 100644 index 2b1133d..0000000 --- a/solution-config.props.sample +++ /dev/null @@ -1,30 +0,0 @@ -<Project> - <!-- - This file is used to control the platforms compiled by Visual Studio, and allow for a faster - build when testing for a single platform. This will also result in better intellisense, as - the compiler will only load the assemblies for the platform that is being built. You do not - need to use this when compiling from Visual Studio Code, the command line or other IDEs. - - Instructions: - 1) Copy this file and remove the ".sample" name - 2) Uncomment the single property below for the target you want to build - 3) Make sure to do a Rebuild, so that nuget restores the proper packages for the new target - - Notes: - - You may optionally close the solution before making changes and reload the solution afterwards. This will avoid Visual Studio - asking you to reload any projects, it will also ensure that the changes are picked up by Visual Studio, and trigger a restore of - the packages. - - You may want to unload the platform heads that you are not going to build for. This will ensure that Visual Studio does not - try to build them, and will speed up the build process. - --> - - <PropertyGroup> - <!-- Uncomment each line for each platform that you want to build: --> - - <!-- <OverrideTargetFramework Condition="''!='hint: Windows App Sdk (WinUI)'">$(DotNetVersion)-windows10.0.19041.0</OverrideTargetFramework> --> - <!-- <OverrideTargetFramework Condition="''!='hint: WASM, Skia'">$(DotNetVersion)</OverrideTargetFramework> --> - <!-- <OverrideTargetFramework Condition="''!='hint: iOS'">$(DotNetVersion)-ios</OverrideTargetFramework> --> - <!-- <OverrideTargetFramework Condition="''!='hint: Android'">$(DotNetVersion)-android</OverrideTargetFramework> --> - <!-- <OverrideTargetFramework Condition="''!='hint: MacCatalyst'">$(DotNetVersion)-maccatalyst</OverrideTargetFramework> --> - </PropertyGroup> -</Project>