mirror of
https://github.com/claunia/marechai.git
synced 2025-12-16 11:04:25 +00:00
Add initial project structure and configuration files for Marechai.App
This commit is contained in:
19
Marechai.App/App.xaml
Normal file
19
Marechai.App/App.xaml
Normal file
@@ -0,0 +1,19 @@
|
||||
<Application x:Class="Marechai.App.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<!-- Load WinUI resources -->
|
||||
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
|
||||
<!-- Load Uno.UI.Toolkit resources -->
|
||||
<ToolkitResources xmlns="using:Uno.Toolkit.UI" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<!-- Add resources here -->
|
||||
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
|
||||
</Application>
|
||||
114
Marechai.App/App.xaml.cs
Normal file
114
Marechai.App/App.xaml.cs
Normal file
@@ -0,0 +1,114 @@
|
||||
using System.Net.Http;
|
||||
using Microsoft.UI.Xaml;
|
||||
using Uno.Extensions;
|
||||
using Uno.Extensions.Configuration;
|
||||
using Uno.Extensions.Hosting;
|
||||
using Uno.Extensions.Localization;
|
||||
using Uno.Extensions.Navigation;
|
||||
using Uno.Resizetizer;
|
||||
using Uno.UI;
|
||||
|
||||
namespace Marechai.App;
|
||||
|
||||
public partial class App : Application
|
||||
{
|
||||
/// <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 App()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
protected Window? MainWindow { get; private set; }
|
||||
protected IHost? Host { get; private set; }
|
||||
|
||||
protected async override void OnLaunched(LaunchActivatedEventArgs args)
|
||||
{
|
||||
var builder = this.CreateBuilder(args)
|
||||
// Add navigation support for toolkit controls such as TabBar and NavigationView
|
||||
.UseToolkitNavigation()
|
||||
.Configure(host => host
|
||||
#if DEBUG
|
||||
// Switch to Development environment when running in DEBUG
|
||||
.UseEnvironment(Environments.Development)
|
||||
#endif
|
||||
.UseLogging(configure: (context, logBuilder) =>
|
||||
{
|
||||
// Configure log levels for different categories of logging
|
||||
logBuilder
|
||||
.SetMinimumLevel(
|
||||
context.HostingEnvironment.IsDevelopment() ? LogLevel.Information : LogLevel.Warning)
|
||||
|
||||
// Default filters for core Uno Platform namespaces
|
||||
.CoreLogLevel(LogLevel.Warning);
|
||||
|
||||
// Uno Platform namespace filter groups
|
||||
// Uncomment individual methods to see more detailed logging
|
||||
//// Generic Xaml events
|
||||
//logBuilder.XamlLogLevel(LogLevel.Debug);
|
||||
//// Layout specific messages
|
||||
//logBuilder.XamlLayoutLogLevel(LogLevel.Debug);
|
||||
//// Storage messages
|
||||
//logBuilder.StorageLogLevel(LogLevel.Debug);
|
||||
//// Binding related messages
|
||||
//logBuilder.XamlBindingLogLevel(LogLevel.Debug);
|
||||
//// Binder memory references tracking
|
||||
//logBuilder.BinderMemoryReferenceLogLevel(LogLevel.Debug);
|
||||
//// DevServer and HotReload related
|
||||
//logBuilder.HotReloadCoreLogLevel(LogLevel.Information);
|
||||
//// Debug JS interop
|
||||
//logBuilder.WebAssemblyLogLevel(LogLevel.Debug);
|
||||
}, enableUnoLogging: true)
|
||||
.UseSerilog(consoleLoggingEnabled: true, fileLoggingEnabled: true)
|
||||
.UseConfiguration(configure: configBuilder =>
|
||||
configBuilder
|
||||
.EmbeddedSource<App>()
|
||||
.Section<AppConfig>()
|
||||
)
|
||||
// Enable localization (see appsettings.json for supported languages)
|
||||
.UseLocalization()
|
||||
.UseHttp((context, services) =>
|
||||
{
|
||||
#if DEBUG
|
||||
// DelegatingHandler will be automatically injected
|
||||
services.AddTransient<DelegatingHandler, DebugHttpHandler>();
|
||||
#endif
|
||||
})
|
||||
.ConfigureServices((context, services) =>
|
||||
{
|
||||
// TODO: Register your services
|
||||
//services.AddSingleton<IMyService, MyService>();
|
||||
})
|
||||
.UseNavigation(RegisterRoutes)
|
||||
);
|
||||
MainWindow = builder.Window;
|
||||
|
||||
#if DEBUG
|
||||
MainWindow.UseStudio();
|
||||
#endif
|
||||
MainWindow.SetWindowIcon();
|
||||
|
||||
Host = await builder.NavigateAsync<Shell>();
|
||||
}
|
||||
|
||||
private static void RegisterRoutes(IViewRegistry views, IRouteRegistry routes)
|
||||
{
|
||||
views.Register(
|
||||
new ViewMap(ViewModel: typeof(ShellViewModel)),
|
||||
new ViewMap<MainPage, MainViewModel>(),
|
||||
new DataViewMap<SecondPage, SecondViewModel, Entity>()
|
||||
);
|
||||
|
||||
routes.Register(
|
||||
new RouteMap("", View: views.FindByViewModel<ShellViewModel>(),
|
||||
Nested:
|
||||
[
|
||||
new("Main", View: views.FindByViewModel<MainViewModel>(), IsDefault: true),
|
||||
new("Second", View: views.FindByViewModel<SecondViewModel>()),
|
||||
]
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
42
Marechai.App/Assets/Icons/icon.svg
Normal file
42
Marechai.App/Assets/Icons/icon.svg
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="456"
|
||||
height="456"
|
||||
viewBox="0 0 456 456"
|
||||
version="1.1"
|
||||
id="svg453"
|
||||
sodipodi:docname="icon.svg"
|
||||
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs457" />
|
||||
<sodipodi:namedview
|
||||
id="namedview455"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.8574561"
|
||||
inkscape:cx="228.26919"
|
||||
inkscape:cy="228.26919"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1027"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg453" />
|
||||
<rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="456"
|
||||
height="456"
|
||||
fill="#FFFFFF"
|
||||
id="rect451" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
137
Marechai.App/Assets/Icons/icon_foreground.svg
Normal file
137
Marechai.App/Assets/Icons/icon_foreground.svg
Normal file
@@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="450"
|
||||
height="450"
|
||||
viewBox="0 0 50.369617 49.826836"
|
||||
version="1.1"
|
||||
id="svg151"
|
||||
sodipodi:docname="icon_foreground.svg"
|
||||
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview153"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.250876"
|
||||
inkscape:cx="218.64677"
|
||||
inkscape:cy="175.87674"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1027"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g149" />
|
||||
<defs
|
||||
id="defs105">
|
||||
<path
|
||||
id="aj28a0fd1a"
|
||||
d="M 1.738,0.156 3.927,2.323 2.347,3.919 0.101,1.81 Z" />
|
||||
<path
|
||||
id="fdje57jgic"
|
||||
d="M 2.201,0.066 3.855,1.703 1.69,3.894 0.093,2.311 Z" />
|
||||
<path
|
||||
id="6bg72xwlze"
|
||||
d="M 2.398,0.044 3.994,1.624 1.886,3.869 0.232,2.232 Z" />
|
||||
<path
|
||||
id="eaqjnja8wg"
|
||||
d="M 1.736,0.023 3.981,2.132 2.344,3.786 0.156,1.619 Z" />
|
||||
</defs>
|
||||
<g
|
||||
fill="none"
|
||||
fill-rule="evenodd"
|
||||
id="g149"
|
||||
transform="translate(-2.9304427e-4,-1.6465461e-4)">
|
||||
<g
|
||||
id="g147">
|
||||
<g
|
||||
id="g145">
|
||||
<path
|
||||
fill="#7a67f8"
|
||||
d="M 34.758,38.865 H 34.746 C 31.892,38.86 29.342,36.882 26.152,33.692 l -6.93,-6.873 2.166,-2.188 6.937,6.88 c 3.075,3.074 4.876,4.272 6.427,4.275 h 0.005 c 1.567,0 3.467,-1.262 6.558,-4.353 l 3.541,-3.587 c 1.784,-1.784 2.57,-3.34 2.408,-4.762 -0.13,-1.156 -0.894,-2.397 -2.401,-3.904 L 44.83,19.146 C 43.202,17.414 41.211,15.483 39.131,14.414 38.745,12.437 37.48,10.881 37.3,10.596 c 3.803,0.559 7.197,3.703 9.758,6.424 2.788,2.794 5.803,7.176 -0.018,12.996 l -3.54,3.588 c -3.251,3.25 -5.844,5.261 -8.742,5.261"
|
||||
id="path107" />
|
||||
<path
|
||||
fill="#f85977"
|
||||
d="m 25.399,28.608 6.492,-6.562 c 3.076,-3.076 4.274,-4.877 4.276,-6.428 0.004,-1.567 -1.257,-3.469 -4.352,-6.563 L 28.228,5.515 C 24.58,1.867 22.369,2.699 19.561,5.507 L 19.528,5.54 c -1.54,1.448 -3.237,3.182 -4.346,5.01 -1.031,0.073 -2.361,0.424 -3.997,1.518 0.906,-3.397 3.737,-6.422 6.216,-8.755 2.794,-2.789 7.177,-5.804 12.997,0.017 l 3.588,3.54 c 3.255,3.256 5.266,5.851 5.26,8.754 -0.005,2.854 -1.982,5.404 -5.172,8.594 l -6.489,6.559 z"
|
||||
id="path109" />
|
||||
<path
|
||||
fill="#159bff"
|
||||
d="M 12.522,38.707 C 8.939,37.946 5.746,34.972 3.308,32.382 2.035,31.106 0.321,29.13 0.042,26.663 c -0.274,-2.414 0.8,-4.795 3.283,-7.278 l 3.542,-3.588 c 3.25,-3.25 5.843,-5.261 8.74,-5.261 h 0.013 c 2.854,0.005 5.404,1.983 8.593,5.172 l 7.046,6.976 -2.165,2.19 -7.053,-6.983 c -3.076,-3.076 -4.876,-4.273 -6.427,-4.276 h -0.006 c -1.566,0 -3.466,1.261 -6.557,4.352 L 5.51,21.555 c -1.784,1.784 -2.57,3.34 -2.409,4.762 0.131,1.156 0.894,2.396 2.402,3.904 l 0.033,0.034 c 1.55,1.649 3.43,3.479 5.401,4.573 0.168,1.739 1.2,3.297 1.585,3.88"
|
||||
id="path111" />
|
||||
<path
|
||||
fill="#67e5ad"
|
||||
d="m 26.32,49.827 c -1.925,0 -4.114,-0.886 -6.557,-3.33 l -3.588,-3.54 C 9.167,35.949 9.151,32.546 16.086,25.61 l 6.802,-6.872 2.193,2.162 -6.812,6.882 c -3.076,3.076 -4.273,4.877 -4.276,6.427 -0.003,1.568 1.258,3.47 4.352,6.563 l 3.588,3.541 c 3.646,3.647 5.858,2.816 8.666,0.008 l 0.034,-0.033 c 1.654,-1.555 3.5,-3.46 4.593,-5.437 1.661,-0.14 2.9,-0.841 3.835,-1.438 -0.8,3.537 -3.738,6.69 -6.302,9.102 -1.62,1.618 -3.777,3.312 -6.439,3.312"
|
||||
id="path113" />
|
||||
<g
|
||||
transform="translate(21.154,18.577)"
|
||||
id="g120">
|
||||
<mask
|
||||
id="8jptpqrneb"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#aj28a0fd1a"
|
||||
id="use115" />
|
||||
</mask>
|
||||
<path
|
||||
d="M 0.101,1.81 1.738,0.156 3.927,2.323 2.347,3.919 Z"
|
||||
mask="url(#8jptpqrneb)"
|
||||
id="path118" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(27.404,20.981)"
|
||||
id="g127">
|
||||
<mask
|
||||
id="b2iljpfwbd"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#fdje57jgic"
|
||||
id="use122" />
|
||||
</mask>
|
||||
<path
|
||||
d="M 2.201,0.066 3.855,1.703 1.69,3.894 0.093,2.311 Z"
|
||||
mask="url(#b2iljpfwbd)"
|
||||
id="path125" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(18.99,24.587)"
|
||||
id="g134">
|
||||
<mask
|
||||
id="gj70tyfpnf"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#6bg72xwlze"
|
||||
id="use129" />
|
||||
</mask>
|
||||
<path
|
||||
d="M 1.886,3.869 0.232,2.232 2.398,0.044 3.994,1.624 Z"
|
||||
mask="url(#gj70tyfpnf)"
|
||||
id="path132" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(25.24,26.99)"
|
||||
id="g141">
|
||||
<mask
|
||||
id="z7vhvduckh"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#eaqjnja8wg"
|
||||
id="use136" />
|
||||
</mask>
|
||||
<path
|
||||
d="M 3.981,2.132 2.344,3.786 0.156,1.619 1.736,0.023 Z"
|
||||
mask="url(#z7vhvduckh)"
|
||||
id="path139" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
32
Marechai.App/Assets/SharedAssets.md
Normal file
32
Marechai.App/Assets/SharedAssets.md
Normal file
@@ -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 | 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 |
|
||||
137
Marechai.App/Assets/Splash/splash_screen.svg
Normal file
137
Marechai.App/Assets/Splash/splash_screen.svg
Normal file
@@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="450"
|
||||
height="450"
|
||||
viewBox="0 0 50.369617 49.826836"
|
||||
version="1.1"
|
||||
id="svg151"
|
||||
sodipodi:docname="icon_foreground.svg"
|
||||
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview153"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.250876"
|
||||
inkscape:cx="218.64677"
|
||||
inkscape:cy="175.87674"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1027"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g149" />
|
||||
<defs
|
||||
id="defs105">
|
||||
<path
|
||||
id="aj28a0fd1a"
|
||||
d="M 1.738,0.156 3.927,2.323 2.347,3.919 0.101,1.81 Z" />
|
||||
<path
|
||||
id="fdje57jgic"
|
||||
d="M 2.201,0.066 3.855,1.703 1.69,3.894 0.093,2.311 Z" />
|
||||
<path
|
||||
id="6bg72xwlze"
|
||||
d="M 2.398,0.044 3.994,1.624 1.886,3.869 0.232,2.232 Z" />
|
||||
<path
|
||||
id="eaqjnja8wg"
|
||||
d="M 1.736,0.023 3.981,2.132 2.344,3.786 0.156,1.619 Z" />
|
||||
</defs>
|
||||
<g
|
||||
fill="none"
|
||||
fill-rule="evenodd"
|
||||
id="g149"
|
||||
transform="translate(-2.9304427e-4,-1.6465461e-4)">
|
||||
<g
|
||||
id="g147">
|
||||
<g
|
||||
id="g145">
|
||||
<path
|
||||
fill="#7a67f8"
|
||||
d="M 34.758,38.865 H 34.746 C 31.892,38.86 29.342,36.882 26.152,33.692 l -6.93,-6.873 2.166,-2.188 6.937,6.88 c 3.075,3.074 4.876,4.272 6.427,4.275 h 0.005 c 1.567,0 3.467,-1.262 6.558,-4.353 l 3.541,-3.587 c 1.784,-1.784 2.57,-3.34 2.408,-4.762 -0.13,-1.156 -0.894,-2.397 -2.401,-3.904 L 44.83,19.146 C 43.202,17.414 41.211,15.483 39.131,14.414 38.745,12.437 37.48,10.881 37.3,10.596 c 3.803,0.559 7.197,3.703 9.758,6.424 2.788,2.794 5.803,7.176 -0.018,12.996 l -3.54,3.588 c -3.251,3.25 -5.844,5.261 -8.742,5.261"
|
||||
id="path107" />
|
||||
<path
|
||||
fill="#f85977"
|
||||
d="m 25.399,28.608 6.492,-6.562 c 3.076,-3.076 4.274,-4.877 4.276,-6.428 0.004,-1.567 -1.257,-3.469 -4.352,-6.563 L 28.228,5.515 C 24.58,1.867 22.369,2.699 19.561,5.507 L 19.528,5.54 c -1.54,1.448 -3.237,3.182 -4.346,5.01 -1.031,0.073 -2.361,0.424 -3.997,1.518 0.906,-3.397 3.737,-6.422 6.216,-8.755 2.794,-2.789 7.177,-5.804 12.997,0.017 l 3.588,3.54 c 3.255,3.256 5.266,5.851 5.26,8.754 -0.005,2.854 -1.982,5.404 -5.172,8.594 l -6.489,6.559 z"
|
||||
id="path109" />
|
||||
<path
|
||||
fill="#159bff"
|
||||
d="M 12.522,38.707 C 8.939,37.946 5.746,34.972 3.308,32.382 2.035,31.106 0.321,29.13 0.042,26.663 c -0.274,-2.414 0.8,-4.795 3.283,-7.278 l 3.542,-3.588 c 3.25,-3.25 5.843,-5.261 8.74,-5.261 h 0.013 c 2.854,0.005 5.404,1.983 8.593,5.172 l 7.046,6.976 -2.165,2.19 -7.053,-6.983 c -3.076,-3.076 -4.876,-4.273 -6.427,-4.276 h -0.006 c -1.566,0 -3.466,1.261 -6.557,4.352 L 5.51,21.555 c -1.784,1.784 -2.57,3.34 -2.409,4.762 0.131,1.156 0.894,2.396 2.402,3.904 l 0.033,0.034 c 1.55,1.649 3.43,3.479 5.401,4.573 0.168,1.739 1.2,3.297 1.585,3.88"
|
||||
id="path111" />
|
||||
<path
|
||||
fill="#67e5ad"
|
||||
d="m 26.32,49.827 c -1.925,0 -4.114,-0.886 -6.557,-3.33 l -3.588,-3.54 C 9.167,35.949 9.151,32.546 16.086,25.61 l 6.802,-6.872 2.193,2.162 -6.812,6.882 c -3.076,3.076 -4.273,4.877 -4.276,6.427 -0.003,1.568 1.258,3.47 4.352,6.563 l 3.588,3.541 c 3.646,3.647 5.858,2.816 8.666,0.008 l 0.034,-0.033 c 1.654,-1.555 3.5,-3.46 4.593,-5.437 1.661,-0.14 2.9,-0.841 3.835,-1.438 -0.8,3.537 -3.738,6.69 -6.302,9.102 -1.62,1.618 -3.777,3.312 -6.439,3.312"
|
||||
id="path113" />
|
||||
<g
|
||||
transform="translate(21.154,18.577)"
|
||||
id="g120">
|
||||
<mask
|
||||
id="8jptpqrneb"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#aj28a0fd1a"
|
||||
id="use115" />
|
||||
</mask>
|
||||
<path
|
||||
d="M 0.101,1.81 1.738,0.156 3.927,2.323 2.347,3.919 Z"
|
||||
mask="url(#8jptpqrneb)"
|
||||
id="path118" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(27.404,20.981)"
|
||||
id="g127">
|
||||
<mask
|
||||
id="b2iljpfwbd"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#fdje57jgic"
|
||||
id="use122" />
|
||||
</mask>
|
||||
<path
|
||||
d="M 2.201,0.066 3.855,1.703 1.69,3.894 0.093,2.311 Z"
|
||||
mask="url(#b2iljpfwbd)"
|
||||
id="path125" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(18.99,24.587)"
|
||||
id="g134">
|
||||
<mask
|
||||
id="gj70tyfpnf"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#6bg72xwlze"
|
||||
id="use129" />
|
||||
</mask>
|
||||
<path
|
||||
d="M 1.886,3.869 0.232,2.232 2.398,0.044 3.994,1.624 Z"
|
||||
mask="url(#gj70tyfpnf)"
|
||||
id="path132" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(25.24,26.99)"
|
||||
id="g141">
|
||||
<mask
|
||||
id="z7vhvduckh"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#eaqjnja8wg"
|
||||
id="use136" />
|
||||
</mask>
|
||||
<path
|
||||
d="M 3.981,2.132 2.344,3.786 0.156,1.619 1.736,0.023 Z"
|
||||
mask="url(#z7vhvduckh)"
|
||||
id="path139" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
13
Marechai.App/GlobalUsings.cs
Normal file
13
Marechai.App/GlobalUsings.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
global using System.Collections.Immutable;
|
||||
global using Microsoft.Extensions.DependencyInjection;
|
||||
global using Microsoft.Extensions.Hosting;
|
||||
global using Microsoft.Extensions.Localization;
|
||||
global using Microsoft.Extensions.Logging;
|
||||
global using Microsoft.Extensions.Options;
|
||||
global using Marechai.App.Models;
|
||||
global using Marechai.App.Presentation;
|
||||
global using Marechai.App.Services.Endpoints;
|
||||
global using Uno.Extensions.Http.Kiota;
|
||||
global using ApplicationExecutionState = Windows.ApplicationModel.Activation.ApplicationExecutionState;
|
||||
global using CommunityToolkit.Mvvm.ComponentModel;
|
||||
global using CommunityToolkit.Mvvm.Input;
|
||||
42
Marechai.App/Marechai.App.csproj
Normal file
42
Marechai.App/Marechai.App.csproj
Normal file
@@ -0,0 +1,42 @@
|
||||
<Project Sdk="Uno.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net10.0-android;net10.0-browserwasm;net10.0-desktop</TargetFrameworks>
|
||||
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) Or $([MSBuild]::IsOSPlatform('macos'))">$(TargetFrameworks);net10.0-ios</TargetFrameworks>
|
||||
|
||||
<OutputType>Exe</OutputType>
|
||||
<UnoSingleProject>true</UnoSingleProject>
|
||||
|
||||
<!-- Display name -->
|
||||
<ApplicationTitle>Marechai.App</ApplicationTitle>
|
||||
<!-- App Identifier -->
|
||||
<ApplicationId>net.marechai.app</ApplicationId>
|
||||
<!-- Versions -->
|
||||
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>1</ApplicationVersion>
|
||||
<!-- Package Publisher -->
|
||||
<ApplicationPublisher>O=Marechai.App</ApplicationPublisher>
|
||||
<!-- Package Description -->
|
||||
<Description>Marechai.App powered by Uno Platform.</Description>
|
||||
|
||||
<!--
|
||||
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>
|
||||
Lottie;
|
||||
Hosting;
|
||||
Toolkit;
|
||||
Logging;
|
||||
LoggingSerilog;
|
||||
Mvvm;
|
||||
Configuration;
|
||||
HttpKiota;
|
||||
Serialization;
|
||||
Localization;
|
||||
Navigation;
|
||||
ThemeService;
|
||||
SkiaRenderer;
|
||||
</UnoFeatures>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
6
Marechai.App/Models/AppConfig.cs
Normal file
6
Marechai.App/Models/AppConfig.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Marechai.App.Models;
|
||||
|
||||
public record AppConfig
|
||||
{
|
||||
public string? Environment { get; init; }
|
||||
}
|
||||
3
Marechai.App/Models/Entity.cs
Normal file
3
Marechai.App/Models/Entity.cs
Normal file
@@ -0,0 +1,3 @@
|
||||
namespace Marechai.App.Models;
|
||||
|
||||
public record Entity(string Name);
|
||||
31
Marechai.App/Package.appxmanifest
Normal file
31
Marechai.App/Package.appxmanifest
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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 />
|
||||
<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 />
|
||||
</Application>
|
||||
</Applications>
|
||||
|
||||
<Capabilities>
|
||||
<rescap:Capability Name="runFullTrust" />
|
||||
</Capabilities>
|
||||
</Package>
|
||||
4
Marechai.App/Platforms/Android/AndroidManifest.xml
Normal file
4
Marechai.App/Platforms/Android/AndroidManifest.xml
Normal file
@@ -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>
|
||||
22
Marechai.App/Platforms/Android/Assets/AboutAssets.txt
Normal file
22
Marechai.App/Platforms/Android/Assets/AboutAssets.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
To add cross-platform image assets for your Uno Platform app, use the Assets folder
|
||||
in the shared project instead. Assets in this folder are Android-only assets.
|
||||
|
||||
Any raw assets you want to be deployed with your application can be placed in
|
||||
this directory (and child directories) and given a Build Action of "AndroidAsset".
|
||||
|
||||
These files will be deployed with your package and will be accessible using Android's
|
||||
AssetManager, like this:
|
||||
|
||||
public class ReadAsset : Activity
|
||||
{
|
||||
protected override void OnCreate (Bundle bundle)
|
||||
{
|
||||
base.OnCreate (bundle);
|
||||
|
||||
InputStream input = Assets.Open ("my_asset.txt");
|
||||
}
|
||||
}
|
||||
|
||||
Additionally, some Android functions will automatically load asset files:
|
||||
|
||||
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
|
||||
28
Marechai.App/Platforms/Android/Main.Android.cs
Normal file
28
Marechai.App/Platforms/Android/Main.Android.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
using Android.OS;
|
||||
using Android.Runtime;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using Microsoft.UI.Xaml.Media;
|
||||
|
||||
namespace Marechai.App.Droid;
|
||||
|
||||
[global::Android.App.ApplicationAttribute(
|
||||
Label = "@string/ApplicationName",
|
||||
Icon = "@mipmap/icon",
|
||||
LargeHeap = true,
|
||||
HardwareAccelerated = true,
|
||||
Theme = "@style/Theme.App.Starting"
|
||||
)]
|
||||
public class Application : Microsoft.UI.Xaml.NativeApplication
|
||||
{
|
||||
public Application(IntPtr javaReference, JniHandleOwnership transfer)
|
||||
: base(() => new App(), javaReference, transfer)
|
||||
{
|
||||
}
|
||||
}
|
||||
22
Marechai.App/Platforms/Android/MainActivity.Android.cs
Normal file
22
Marechai.App/Platforms/Android/MainActivity.Android.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using Android.App;
|
||||
using Android.Content.PM;
|
||||
using Android.OS;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
|
||||
namespace Marechai.App.Droid;
|
||||
|
||||
[Activity(
|
||||
MainLauncher = true,
|
||||
ConfigurationChanges = global::Uno.UI.ActivityHelper.AllConfigChanges,
|
||||
WindowSoftInputMode = SoftInput.AdjustNothing | SoftInput.StateHidden
|
||||
)]
|
||||
public class MainActivity : Microsoft.UI.Xaml.ApplicationActivity
|
||||
{
|
||||
protected override void OnCreate(Bundle? savedInstanceState)
|
||||
{
|
||||
global::AndroidX.Core.SplashScreen.SplashScreen.InstallSplashScreen(this);
|
||||
|
||||
base.OnCreate(savedInstanceState);
|
||||
}
|
||||
}
|
||||
47
Marechai.App/Platforms/Android/Resources/AboutResources.txt
Normal file
47
Marechai.App/Platforms/Android/Resources/AboutResources.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
To add cross-platform image assets for your Uno Platform app, use the Assets folder
|
||||
in the shared project instead. Resources in this folder are Android-only.
|
||||
|
||||
Images, layout descriptions, binary blobs and string dictionaries can be included
|
||||
in your application as resource files. Various Android APIs are designed to
|
||||
operate on the resource IDs instead of dealing with images, strings or binary blobs
|
||||
directly.
|
||||
|
||||
For example, a sample Android app that contains a user interface layout (main.axml),
|
||||
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
|
||||
would keep its resources in the "Resources" directory of the application:
|
||||
|
||||
Resources/
|
||||
drawable/
|
||||
icon.png
|
||||
|
||||
layout/
|
||||
main.axml
|
||||
|
||||
values/
|
||||
strings.xml
|
||||
|
||||
In order to get the build system to recognize Android resources, set the build action to
|
||||
"AndroidResource". The native Android APIs do not operate directly with filenames, but
|
||||
instead operate on resource IDs. When you compile an Android application that uses resources,
|
||||
the build system will package the resources for distribution and generate a class called "R"
|
||||
(this is an Android convention) that contains the tokens for each one of the resources
|
||||
included. For example, for the above Resources layout, this is what the R class would expose:
|
||||
|
||||
public class R {
|
||||
public class drawable {
|
||||
public const int icon = 0x123;
|
||||
}
|
||||
|
||||
public class layout {
|
||||
public const int main = 0x456;
|
||||
}
|
||||
|
||||
public class strings {
|
||||
public const int first_string = 0xabc;
|
||||
public const int second_string = 0xbcd;
|
||||
}
|
||||
}
|
||||
|
||||
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
|
||||
to reference the layout/main.axml file, or R.strings.first_string to reference the first
|
||||
string in the dictionary file values/strings.xml.
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="Hello">Hello World, Click Me!</string>
|
||||
<string name="ApplicationName">Marechai.App</string>
|
||||
</resources>
|
||||
25
Marechai.App/Platforms/Android/Resources/values/Styles.xml
Normal file
25
Marechai.App/Platforms/Android/Resources/values/Styles.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<resources>
|
||||
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
|
||||
<!-- This removes the ActionBar -->
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="android:windowActionBar">false</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.App.Starting" parent="Theme.SplashScreen">
|
||||
<!-- uno_splash_color and uno_splash_image are generated by Uno.Resizetizer -->
|
||||
<!-- This property is used for the splash screen -->
|
||||
<item name="android:windowSplashScreenBackground">@color/uno_splash_color</item>
|
||||
<item name="android:windowBackground">@drawable/uno_splash_image</item>
|
||||
<item name="android:windowSplashScreenAnimatedIcon">@drawable/uno_splash_image</item>
|
||||
|
||||
<item name="postSplashScreenTheme">@style/AppTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.AppCompat.Translucent">
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation</item>
|
||||
</style>
|
||||
</resources>
|
||||
2
Marechai.App/Platforms/Android/environment.conf
Normal file
2
Marechai.App/Platforms/Android/environment.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
# See this for more details: http://developer.xamarin.com/guides/android/advanced_topics/garbage_collection/
|
||||
MONO_GC_PARAMS=bridge-implementation=new,nursery-size=32m,soft-heap-limit=256m
|
||||
21
Marechai.App/Platforms/Desktop/Program.cs
Normal file
21
Marechai.App/Platforms/Desktop/Program.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using Uno.UI.Hosting;
|
||||
|
||||
namespace Marechai.App;
|
||||
|
||||
internal class Program
|
||||
{
|
||||
[STAThread]
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
var host = UnoPlatformHostBuilder.Create()
|
||||
.App(() => new App())
|
||||
.UseX11()
|
||||
.UseLinuxFrameBuffer()
|
||||
.UseMacOS()
|
||||
.UseWin32()
|
||||
.Build();
|
||||
|
||||
host.Run();
|
||||
}
|
||||
}
|
||||
10
Marechai.App/Platforms/WebAssembly/LinkerConfig.xml
Normal file
10
Marechai.App/Platforms/WebAssembly/LinkerConfig.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<linker>
|
||||
<assembly fullname="Marechai.App" />
|
||||
|
||||
<!--
|
||||
Uncomment this section when using JSON.NET
|
||||
<assembly fullname="System.Core">
|
||||
<type fullname="System.Linq.Expressions*" />
|
||||
</assembly>
|
||||
-->
|
||||
</linker>
|
||||
17
Marechai.App/Platforms/WebAssembly/Program.cs
Normal file
17
Marechai.App/Platforms/WebAssembly/Program.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System.Threading.Tasks;
|
||||
using Uno.UI.Hosting;
|
||||
|
||||
namespace Marechai.App;
|
||||
|
||||
public class Program
|
||||
{
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
var host = UnoPlatformHostBuilder.Create()
|
||||
.App(() => new App())
|
||||
.UseWebAssembly()
|
||||
.Build();
|
||||
|
||||
await host.RunAsync();
|
||||
}
|
||||
}
|
||||
28
Marechai.App/Platforms/WebAssembly/WasmCSS/Fonts.css
Normal file
28
Marechai.App/Platforms/WebAssembly/WasmCSS/Fonts.css
Normal file
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
When adding fonts here, make sure to add them using a base64 data uri, otherwise
|
||||
fonts loading are delayed, and text may get displayed incorrectly.
|
||||
*/
|
||||
|
||||
/* https://github.com/unoplatform/uno/issues/3954 */
|
||||
@font-face {
|
||||
font-family: 'Segoe UI';
|
||||
src: local('Segoe UI'), local('-apple-system'), local('BlinkMacSystemFont'), local('Inter'), local('Cantarell'), local('Ubuntu'), local('Roboto'), local('Open Sans'), local('Noto Sans'), local('Helvetica Neue'), local('sans-serif');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url(./Uno.Fonts.Roboto/Fonts/Roboto-Light.ttf) format('truetype');
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url(./Uno.Fonts.Roboto/Fonts/Roboto-Regular.ttf) format('truetype');
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url(./Uno.Fonts.Roboto/Fonts/Roboto-Medium.ttf) format('truetype');
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
var UnoAppManifest = {
|
||||
displayName: "Marechai.App"
|
||||
}
|
||||
10
Marechai.App/Platforms/WebAssembly/manifest.webmanifest
Normal file
10
Marechai.App/Platforms/WebAssembly/manifest.webmanifest
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"background_color": "#ffffff",
|
||||
"description": "Marechai.App",
|
||||
"display": "standalone",
|
||||
"name": "Marechai.App",
|
||||
"short_name": "Marechai.App",
|
||||
"start_url": "/index.html",
|
||||
"theme_color": "#ffffff",
|
||||
"scope": "/"
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"navigationFallback": {
|
||||
"rewrite": "/index.html",
|
||||
"exclude": [
|
||||
"*.{css,js}",
|
||||
"*.{png}",
|
||||
"*.{c,h,wasm,clr,pdb,dat,txt}"
|
||||
]
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"route": "/package_*",
|
||||
"headers": {
|
||||
"cache-control": "public, immutable, max-age=31536000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"route": "/*.ttf",
|
||||
"headers": {
|
||||
"cache-control": "public, immutable, max-age=31536000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"route": "/*",
|
||||
"headers": {
|
||||
"cache-control": "must-revalidate, max-age=3600"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
78
Marechai.App/Platforms/WebAssembly/wwwroot/web.config
Normal file
78
Marechai.App/Platforms/WebAssembly/wwwroot/web.config
Normal file
@@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.web>
|
||||
<customErrors mode="Off"/>
|
||||
</system.web>
|
||||
|
||||
<system.webServer>
|
||||
|
||||
<!-- Disable compression as we're doing it through pre-compressed files -->
|
||||
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" />
|
||||
|
||||
<staticContent>
|
||||
<remove fileExtension=".dll" />
|
||||
<remove fileExtension=".wasm" />
|
||||
<remove fileExtension=".woff" />
|
||||
<remove fileExtension=".woff2" />
|
||||
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
|
||||
<mimeMap fileExtension=".clr" mimeType="application/octet-stream" />
|
||||
<mimeMap fileExtension=".pdb" mimeType="application/octet-stream" />
|
||||
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
|
||||
<mimeMap fileExtension=".woff2" mimeType="application/font-woff" />
|
||||
<mimeMap fileExtension=".dat" mimeType="application/octet-stream" />
|
||||
<!-- Required for PWAs -->
|
||||
<mimeMap fileExtension=".json" mimeType="application/octet-stream" />
|
||||
</staticContent>
|
||||
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Lookup for pre-compressed brotli file" stopProcessing="true">
|
||||
<match url="(.*)$"/>
|
||||
<conditions>
|
||||
<!-- Match brotli requests -->
|
||||
<add input="{HTTP_ACCEPT_ENCODING}" pattern="br" />
|
||||
|
||||
<!-- Match all but pre-compressed files -->
|
||||
<add input="{REQUEST_URI}" pattern="^(?!/_compressed_br/)(.*)$" />
|
||||
|
||||
<!-- Check if the pre-compressed file exists on the disk -->
|
||||
<add input="{DOCUMENT_ROOT}/_compressed_br/{C:0}" matchType="IsFile" negate="false" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="/_compressed_br{C:0}" />
|
||||
</rule>
|
||||
|
||||
<rule name="Lookup for pre-compressed gzip file" stopProcessing="true">
|
||||
<match url="(.*)$"/>
|
||||
<conditions>
|
||||
<!-- Match gzip requests -->
|
||||
<add input="{HTTP_ACCEPT_ENCODING}" pattern="gzip" />
|
||||
|
||||
<!-- Match all but pre-compressed files -->
|
||||
<add input="{REQUEST_URI}" pattern="^(?!/_compressed_gz/)(.*)$" />
|
||||
|
||||
<!-- Check if the pre-compressed file exists on the disk -->
|
||||
<add input="{DOCUMENT_ROOT}/_compressed_gz/{C:0}" matchType="IsFile" negate="false" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="/_compressed_gz{C:0}" />
|
||||
</rule>
|
||||
</rules>
|
||||
|
||||
<outboundRules>
|
||||
<rule name="Adjust content encoding for gzip pre-compressed files" enabled="true" stopProcessing="true">
|
||||
<match serverVariable="RESPONSE_CONTENT_ENCODING" pattern="" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_URI}" pattern="/_compressed_gz/.*$" />
|
||||
</conditions>
|
||||
<action type="Rewrite" value="gzip"/>
|
||||
</rule>
|
||||
<rule name="Adjust content encoding for brotli pre-compressed files" enabled="true" stopProcessing="true">
|
||||
<match serverVariable="RESPONSE_CONTENT_ENCODING" pattern="" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_URI}" pattern="/_compressed_br/.*$" />
|
||||
</conditions>
|
||||
<action type="Rewrite" value="br"/>
|
||||
</rule>
|
||||
</outboundRules>
|
||||
</rewrite>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
6
Marechai.App/Platforms/iOS/Entitlements.plist
Normal file
6
Marechai.App/Platforms/iOS/Entitlements.plist
Normal file
@@ -0,0 +1,6 @@
|
||||
<?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">
|
||||
<dict>
|
||||
</dict>
|
||||
</plist>
|
||||
43
Marechai.App/Platforms/iOS/Info.plist
Normal file
43
Marechai.App/Platforms/iOS/Info.plist
Normal file
@@ -0,0 +1,43 @@
|
||||
<?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">
|
||||
<dict>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>XSAppIconAssets</key>
|
||||
<string>Assets.xcassets/icon.appiconset</string>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
|
||||
<!--
|
||||
Adjust this to your application's encryption usage.
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
-->
|
||||
</dict>
|
||||
</plist>
|
||||
18
Marechai.App/Platforms/iOS/Main.iOS.cs
Normal file
18
Marechai.App/Platforms/iOS/Main.iOS.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using UIKit;
|
||||
using Uno.UI.Hosting;
|
||||
|
||||
namespace Marechai.App.iOS;
|
||||
|
||||
public class EntryPoint
|
||||
{
|
||||
// This is the main entry point of the application.
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
var host = UnoPlatformHostBuilder.Create()
|
||||
.App(() => new App())
|
||||
.UseAppleUIKit()
|
||||
.Build();
|
||||
|
||||
host.Run();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"images": [
|
||||
{
|
||||
"orientation": "portrait",
|
||||
"extent": "full-screen",
|
||||
"minimum-system-version": "7.0",
|
||||
"scale": "2x",
|
||||
"size": "640x960",
|
||||
"idiom": "iphone"
|
||||
},
|
||||
{
|
||||
"orientation": "portrait",
|
||||
"extent": "full-screen",
|
||||
"minimum-system-version": "7.0",
|
||||
"subtype": "retina4",
|
||||
"scale": "2x",
|
||||
"size": "640x1136",
|
||||
"idiom": "iphone"
|
||||
},
|
||||
{
|
||||
"orientation": "portrait",
|
||||
"extent": "full-screen",
|
||||
"minimum-system-version": "7.0",
|
||||
"scale": "1x",
|
||||
"size": "768x1024",
|
||||
"idiom": "ipad"
|
||||
},
|
||||
{
|
||||
"orientation": "landscape",
|
||||
"extent": "full-screen",
|
||||
"minimum-system-version": "7.0",
|
||||
"scale": "1x",
|
||||
"size": "1024x768",
|
||||
"idiom": "ipad"
|
||||
},
|
||||
{
|
||||
"orientation": "portrait",
|
||||
"extent": "full-screen",
|
||||
"minimum-system-version": "7.0",
|
||||
"scale": "2x",
|
||||
"size": "1536x2048",
|
||||
"idiom": "ipad"
|
||||
},
|
||||
{
|
||||
"orientation": "landscape",
|
||||
"extent": "full-screen",
|
||||
"minimum-system-version": "7.0",
|
||||
"scale": "2x",
|
||||
"size": "2048x1536",
|
||||
"idiom": "ipad"
|
||||
}
|
||||
],
|
||||
"properties": {},
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": ""
|
||||
}
|
||||
}
|
||||
41
Marechai.App/Platforms/iOS/PrivacyInfo.xcprivacy
Normal file
41
Marechai.App/Platforms/iOS/PrivacyInfo.xcprivacy
Normal file
@@ -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>
|
||||
29
Marechai.App/Presentation/MainPage.xaml
Normal file
29
Marechai.App/Presentation/MainPage.xaml
Normal file
@@ -0,0 +1,29 @@
|
||||
<Page x:Class="Marechai.App.Presentation.MainPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:Marechai.App.Presentation"
|
||||
xmlns:uen="using:Uno.Extensions.Navigation.UI"
|
||||
xmlns:utu="using:Uno.Toolkit.UI"
|
||||
NavigationCacheMode="Required"
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<ScrollViewer IsTabStop="True">
|
||||
<Grid utu:SafeArea.Insets="VisibleBounds">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<utu:NavigationBar Content="{Binding Title}" />
|
||||
|
||||
<StackPanel Grid.Row="1"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Spacing="16">
|
||||
<TextBox Text="{Binding Name, Mode=TwoWay}"
|
||||
PlaceholderText="Enter your name:" />
|
||||
<Button Content="Go to Second Page"
|
||||
AutomationProperties.AutomationId="SecondPageButton"
|
||||
Command="{Binding GoToSecond}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</ScrollViewer>
|
||||
</Page>
|
||||
11
Marechai.App/Presentation/MainPage.xaml.cs
Normal file
11
Marechai.App/Presentation/MainPage.xaml.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Microsoft.UI.Xaml.Controls;
|
||||
|
||||
namespace Marechai.App.Presentation;
|
||||
|
||||
public sealed partial class MainPage : Page
|
||||
{
|
||||
public MainPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
}
|
||||
33
Marechai.App/Presentation/MainViewModel.cs
Normal file
33
Marechai.App/Presentation/MainViewModel.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
using Uno.Extensions.Navigation;
|
||||
|
||||
namespace Marechai.App.Presentation;
|
||||
|
||||
public partial class MainViewModel : ObservableObject
|
||||
{
|
||||
private INavigator _navigator;
|
||||
|
||||
[ObservableProperty] private string? name;
|
||||
|
||||
public MainViewModel(
|
||||
IStringLocalizer localizer,
|
||||
IOptions<AppConfig> appInfo,
|
||||
INavigator navigator)
|
||||
{
|
||||
_navigator = navigator;
|
||||
Title = "Main";
|
||||
Title += $" - {localizer["ApplicationName"]}";
|
||||
Title += $" - {appInfo?.Value?.Environment}";
|
||||
GoToSecond = new AsyncRelayCommand(GoToSecondView);
|
||||
}
|
||||
|
||||
public string? Title { get; }
|
||||
|
||||
public ICommand GoToSecond { get; }
|
||||
|
||||
private async Task GoToSecondView()
|
||||
{
|
||||
await _navigator.NavigateViewModelAsync<SecondViewModel>(this, data: new Entity(Name!));
|
||||
}
|
||||
}
|
||||
27
Marechai.App/Presentation/SecondPage.xaml
Normal file
27
Marechai.App/Presentation/SecondPage.xaml
Normal file
@@ -0,0 +1,27 @@
|
||||
<Page x:Class="Marechai.App.Presentation.SecondPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:Marechai.App.Presentation"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:uen="using:Uno.Extensions.Navigation.UI"
|
||||
xmlns:utu="using:Uno.Toolkit.UI"
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
|
||||
<Grid utu:SafeArea.Insets="VisibleBounds">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<utu:NavigationBar Content="Second Page" />
|
||||
<StackPanel Grid.Row="1"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding Entity.Name}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Margin="8" />
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</Page>
|
||||
11
Marechai.App/Presentation/SecondPage.xaml.cs
Normal file
11
Marechai.App/Presentation/SecondPage.xaml.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Microsoft.UI.Xaml.Controls;
|
||||
|
||||
namespace Marechai.App.Presentation;
|
||||
|
||||
public sealed partial class SecondPage : Page
|
||||
{
|
||||
public SecondPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
}
|
||||
5
Marechai.App/Presentation/SecondViewModel.cs
Normal file
5
Marechai.App/Presentation/SecondViewModel.cs
Normal file
@@ -0,0 +1,5 @@
|
||||
namespace Marechai.App.Presentation;
|
||||
|
||||
public partial record SecondViewModel(Entity Entity)
|
||||
{
|
||||
}
|
||||
36
Marechai.App/Presentation/Shell.xaml
Normal file
36
Marechai.App/Presentation/Shell.xaml
Normal file
@@ -0,0 +1,36 @@
|
||||
<UserControl x:Class="Marechai.App.Presentation.Shell"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:Marechai.App.Presentation"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:utu="using:Uno.Toolkit.UI"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300"
|
||||
d:DesignWidth="400">
|
||||
<Border Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<utu:ExtendedSplashScreen x:Name="Splash"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Stretch"
|
||||
VerticalContentAlignment="Stretch">
|
||||
<utu:ExtendedSplashScreen.LoadingContentTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="2*" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<ProgressRing IsActive="True"
|
||||
Grid.Row="1"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
Height="100"
|
||||
Width="100" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</utu:ExtendedSplashScreen.LoadingContentTemplate>
|
||||
</utu:ExtendedSplashScreen>
|
||||
</Border>
|
||||
</UserControl>
|
||||
14
Marechai.App/Presentation/Shell.xaml.cs
Normal file
14
Marechai.App/Presentation/Shell.xaml.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using Microsoft.UI.Xaml.Controls;
|
||||
using Uno.Extensions.Hosting;
|
||||
|
||||
namespace Marechai.App.Presentation;
|
||||
|
||||
public sealed partial class Shell : UserControl, IContentControlProvider
|
||||
{
|
||||
public Shell()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
public ContentControl ContentControl => Splash;
|
||||
}
|
||||
15
Marechai.App/Presentation/ShellViewModel.cs
Normal file
15
Marechai.App/Presentation/ShellViewModel.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using Uno.Extensions.Navigation;
|
||||
|
||||
namespace Marechai.App.Presentation;
|
||||
|
||||
public class ShellViewModel
|
||||
{
|
||||
private readonly INavigator _navigator;
|
||||
|
||||
public ShellViewModel(
|
||||
INavigator navigator)
|
||||
{
|
||||
_navigator = navigator;
|
||||
// Add code here to initialize or attach event handlers to singleton services
|
||||
}
|
||||
}
|
||||
50
Marechai.App/Services/Endpoints/DebugHandler.cs
Normal file
50
Marechai.App/Services/Endpoints/DebugHandler.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Uno.Extensions.Logging;
|
||||
|
||||
namespace Marechai.App.Services.Endpoints;
|
||||
|
||||
internal class DebugHttpHandler : DelegatingHandler
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public DebugHttpHandler(ILogger<DebugHttpHandler> logger, HttpMessageHandler? innerHandler = null)
|
||||
: base(innerHandler ?? new HttpClientHandler())
|
||||
{
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
protected async override Task<HttpResponseMessage> SendAsync(
|
||||
HttpRequestMessage request,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var response = await base.SendAsync(request, cancellationToken);
|
||||
#if DEBUG
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
_logger.LogDebugMessage("Unsuccessful API Call");
|
||||
if (request.RequestUri is not null)
|
||||
{
|
||||
_logger.LogDebugMessage($"{request.RequestUri} ({request.Method})");
|
||||
}
|
||||
|
||||
foreach ((var key, var values) in request.Headers.ToDictionary(x => x.Key, x => string.Join(", ", x.Value)))
|
||||
{
|
||||
_logger.LogDebugMessage($"{key}: {values}");
|
||||
}
|
||||
|
||||
var content = request.Content is not null ? await request.Content.ReadAsStringAsync() : null;
|
||||
if (!string.IsNullOrEmpty(content))
|
||||
{
|
||||
_logger.LogDebugMessage(content);
|
||||
}
|
||||
|
||||
// Uncomment to automatically break when an API call fails while debugging
|
||||
// System.Diagnostics.Debugger.Break();
|
||||
}
|
||||
#endif
|
||||
return response;
|
||||
}
|
||||
}
|
||||
123
Marechai.App/Strings/en/Resources.resw
Normal file
123
Marechai.App/Strings/en/Resources.resw
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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="ApplicationName" xml:space="preserve">
|
||||
<value>Marechai.App-en</value>
|
||||
</data>
|
||||
</root>
|
||||
123
Marechai.App/Strings/es/Resources.resw
Normal file
123
Marechai.App/Strings/es/Resources.resw
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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="ApplicationName" xml:space="preserve">
|
||||
<value>Marechai.App-es</value>
|
||||
</data>
|
||||
</root>
|
||||
123
Marechai.App/Strings/fr/Resources.resw
Normal file
123
Marechai.App/Strings/fr/Resources.resw
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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="ApplicationName" xml:space="preserve">
|
||||
<value>Marechai.App-fr</value>
|
||||
</data>
|
||||
</root>
|
||||
123
Marechai.App/Strings/pt-BR/Resources.resw
Normal file
123
Marechai.App/Strings/pt-BR/Resources.resw
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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="ApplicationName" xml:space="preserve">
|
||||
<value>Marechai.App-pt-BR</value>
|
||||
</data>
|
||||
</root>
|
||||
25
Marechai.App/app.manifest
Normal file
25
Marechai.App/app.manifest
Normal file
@@ -0,0 +1,25 @@
|
||||
<?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="Marechai.App.Windows.app"/>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!--The ID below informs the system that this application is compatible with OS features first introduced in Windows 8.
|
||||
For more info see https://docs.microsoft.com/windows/win32/sysinfo/targeting-your-application-at-windows-8-1
|
||||
|
||||
It is also necessary to support features in unpackaged applications, for example the custom titlebar implementation.-->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<!-- The combination of below two tags have the following effect:
|
||||
1) Per-Monitor for >= Windows 10 Anniversary Update
|
||||
2) System < Windows 10 Anniversary Update
|
||||
-->
|
||||
<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>
|
||||
</assembly>
|
||||
9
Marechai.App/appsettings.development.json
Normal file
9
Marechai.App/appsettings.development.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"AppConfig": {
|
||||
"Environment": "Development"
|
||||
},
|
||||
"ApiClient": {
|
||||
"Url": "https://localhost:5002",
|
||||
"UseNativeHandler": true
|
||||
}
|
||||
}
|
||||
16
Marechai.App/appsettings.json
Normal file
16
Marechai.App/appsettings.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"AppConfig": {
|
||||
"Environment": "Production"
|
||||
},
|
||||
"ApiClient": {
|
||||
"UseNativeHandler": true
|
||||
},
|
||||
"LocalizationConfiguration": {
|
||||
"Cultures": [
|
||||
"es",
|
||||
"fr",
|
||||
"pt-BR",
|
||||
"en"
|
||||
]
|
||||
}
|
||||
}
|
||||
8
global.json
Normal file
8
global.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"msbuild-sdks": {
|
||||
"Uno.Sdk": "6.4.24"
|
||||
},
|
||||
"sdk": {
|
||||
"allowPrerelease": true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user