diff --git a/reference/ToDo/README.md b/reference/ToDo/README.md
index af3501209..0b647325f 100644
--- a/reference/ToDo/README.md
+++ b/reference/ToDo/README.md
@@ -1,17 +1,28 @@
+# ToDo App
+
-
+
-# Uno Platform "Uno To Do" reference app
-`Uno To Do` is a beautifully designed sample app for [Uno Platform](https://platform.uno/) using the latest [Material Design 3 system](https://m3.material.io/).
+Uno ToDo is a beautifully designed sample app for [Uno Platform](https://platform.uno/) using the latest [Material Design 3 system](https://m3.material.io/).
The design template makes it easy to jump-start or learn Uno Platform-powered mobile, web, and desktop applications. The app provides common functions such as logging on, recording tasks, adding due dates, setting reminders, and more.
In addition, the sample code utilizes [Uno.Extensions](https://aka.platform.uno/uno-extensions) and establishes the best practices for cross-platform application design and development considering multiple screen sizes, accessibility, enforcing brand guidelines, and more.
-## Acknowledgments
-- [Uno Platform](https://platform.uno)
-- [Uno.Extensions Documentation](https://aka.platform.uno/uno-extensions)
-- [Uno Platform for Figma plugin](https://aka.platform.uno/uno-figma-plugin)
-- [Uno Platform Material Toolkit for Figma](https://aka.platform.uno/uno-figma-material-toolkit)
-- [Material Design 3](https://m3.material.io/)
\ No newline at end of file
+![ToDoApp Gif](doc/assets/ToDoApp.gif)
+
+## Codebase
+
+* [**WelcomeViewModel.cs**](src/ToDo/Presentation/WelcomeViewModel.cs) accessing tokens with Authentication.
+* [**TaskListViewModel.cs**](src/ToDo/Presentation/TaskListViewModel.cs) common Navigation methods.
+* [**HomeViewModel.cs**](src/ToDo/Presentation/HomeViewModel.cs) changing the language with Localization via the model.
+* [**TaskListPage.xaml**](src/ToDo/Views/TaskListPage.xaml) adapting the language in the Xaml with Localization via `x:Uid`.
+* [**SettingsViewModel.cs**](src/ToDo/Presentation/SettingsViewModel.cs) theme switching with ThemeService.
+* [**TaskListViewModel.cs**](src/ToDo/Presentation/TaskListViewModel.cs) Reactive ListFeeds with [**TaskListPage.xaml**](src/ToDo/Views/TaskListPage.xaml) FeedViews.
+
+
+## What is the Uno Platform
+
+[Uno Platform](https://platform.uno) is an open-source .NET platform for building single codebase native mobile, web, desktop, and embedded apps quickly.
+For additional information about Uno Platform or if you have any feedback to share, please refer to the [README.md](../../README.md) file in this Samples repository.
\ No newline at end of file
diff --git a/reference/ToDo/doc/assets/ToDoApp.gif b/reference/ToDo/doc/assets/ToDoApp.gif
new file mode 100644
index 000000000..d18f3fb64
Binary files /dev/null and b/reference/ToDo/doc/assets/ToDoApp.gif differ
diff --git a/reference/ToDo/doc/assets/To_Do_App_Banner.png b/reference/ToDo/doc/assets/ToDoApp_Banner.png
similarity index 100%
rename from reference/ToDo/doc/assets/To_Do_App_Banner.png
rename to reference/ToDo/doc/assets/ToDoApp_Banner.png
diff --git a/reference/ToDo/src/.editorconfig b/reference/ToDo/src/.editorconfig
new file mode 100644
index 000000000..b947be645
--- /dev/null
+++ b/reference/ToDo/src/.editorconfig
@@ -0,0 +1,167 @@
+; This file is for unifying the coding style for different editors and IDEs.
+; More information at http://editorconfig.org
+
+# This file is the top-most EditorConfig file
+root = true
+
+##########################################
+# Common Settings
+##########################################
+
+[*]
+indent_style = space
+end_of_line = crlf
+trim_trailing_whitespace = true
+insert_final_newline = true
+charset = utf-8
+
+##########################################
+# File Extension Settings
+##########################################
+
+[*.{yml,yaml}]
+indent_size = 2
+
+[.vsconfig]
+indent_size = 2
+end_of_line = lf
+
+[*.sln]
+indent_style = tab
+indent_size = 2
+
+[*.{csproj,proj,projitems,shproj}]
+indent_size = 2
+
+[*.{json,slnf}]
+indent_size = 2
+end_of_line = lf
+
+[*.{props,targets}]
+indent_size = 2
+
+[*.xaml]
+indent_size = 2
+charset = utf-8-bom
+
+[*.xml]
+indent_size = 2
+end_of_line = lf
+
+[*.plist]
+indent_size = 2
+indent_style = tab
+end_of_line = lf
+
+[*.manifest]
+indent_size = 2
+
+[*.appxmanifest]
+indent_size = 2
+
+[*.{json,css,webmanifest}]
+indent_size = 2
+end_of_line = lf
+
+[web.config]
+indent_size = 2
+end_of_line = lf
+
+[*.sh]
+indent_size = 2
+end_of_line = lf
+
+[*.cs]
+# EOL should be normalized by Git. See https://github.com/dotnet/format/issues/1099
+end_of_line = unset
+
+# See https://github.com/dotnet/roslyn/issues/20356#issuecomment-310143926
+trim_trailing_whitespace = false
+
+tab_width = 4
+indent_size = 4
+
+# Sort using and Import directives with System.* appearing first
+dotnet_sort_system_directives_first = true
+
+# Avoid "this." and "Me." if not necessary
+dotnet_style_qualification_for_field = false:suggestion
+dotnet_style_qualification_for_property = false:suggestion
+dotnet_style_qualification_for_method = false:suggestion
+dotnet_style_qualification_for_event = false:suggestion
+
+#### Naming styles ####
+
+# Naming rules
+
+dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
+dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
+dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
+
+dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.types_should_be_pascal_case.symbols = types
+dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
+dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
+
+# Symbol specifications
+
+dotnet_naming_symbols.interface.applicable_kinds = interface
+dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.interface.required_modifiers =
+
+dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
+dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.types.required_modifiers =
+
+dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
+dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.non_field_members.required_modifiers =
+
+# Naming styles
+
+dotnet_naming_style.begins_with_i.required_prefix = I
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.capitalization = pascal_case
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
+dotnet_style_prefer_auto_properties = true:silent
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
+dotnet_style_prefer_conditional_expression_over_assignment = true:silent
+dotnet_style_prefer_conditional_expression_over_return = true:silent
+dotnet_style_explicit_tuple_names = true:suggestion
+dotnet_style_prefer_inferred_tuple_names = true:suggestion
+
+csharp_indent_labels = one_less_than_current
+csharp_using_directive_placement = outside_namespace:silent
+csharp_prefer_simple_using_statement = true:suggestion
+csharp_prefer_braces = true:silent
+csharp_style_namespace_declarations = file_scoped:warning
+csharp_style_prefer_method_group_conversion = true:silent
+csharp_style_prefer_top_level_statements = true:silent
+csharp_style_prefer_primary_constructors = true:suggestion
+csharp_style_expression_bodied_methods = false:silent
+csharp_style_expression_bodied_constructors = false:silent
+csharp_style_expression_bodied_operators = false:silent
+csharp_style_expression_bodied_properties = true:silent
+csharp_style_expression_bodied_indexers = true:silent
+csharp_style_expression_bodied_accessors = true:silent
+csharp_style_expression_bodied_lambdas = true:silent
+csharp_style_expression_bodied_local_functions = false:silent
diff --git a/reference/ToDo/src/.gitignore b/reference/ToDo/src/.gitignore
new file mode 100644
index 000000000..ef88c2053
--- /dev/null
+++ b/reference/ToDo/src/.gitignore
@@ -0,0 +1,403 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.tlog
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio 6 auto-generated project file (contains which files were open etc.)
+*.vbp
+
+# Visual Studio 6 workspace and project file (working project files containing files to include in project)
+*.dsw
+*.dsp
+
+# Visual Studio 6 technical files
+*.ncb
+*.aps
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# Visual Studio History (VSHistory) files
+.vshistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
+
+# VS Code files for those working on multiple tools
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+*.code-workspace
+
+# Local History for Visual Studio Code
+.history/
+
+# Windows Installer files from build outputs
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# JetBrains Rider
+*.sln.iml
+
+# Single Target Config
+solution-config.props
+# Publish Profiles
+!**/Properties/PublishProfiles/*.pubxml
\ No newline at end of file
diff --git a/reference/ToDo/src/.vscode/launch.json b/reference/ToDo/src/.vscode/launch.json
new file mode 100644
index 000000000..5d3e9dd30
--- /dev/null
+++ b/reference/ToDo/src/.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}/ToDo",
+ "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", "ToDo (WebAssembly)"],
+ "outputCapture": "std",
+ "timeout": 30000,
+ "cwd": "${workspaceFolder}/ToDo"
+ }
+ },
+ {
+ // 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}/ToDo/bin/Debug/net8.0-desktop/ToDo.dll",
+ "args": [],
+ "launchSettingsProfile": "ToDo (Desktop)",
+ "env": {
+ "DOTNET_MODIFIABLE_ASSEMBLIES": "debug"
+ },
+ "cwd": "${workspaceFolder}/ToDo",
+ // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
+ "console": "internalConsole",
+ "stopAtEntry": false
+ },
+ ]
+}
diff --git a/reference/ToDo/src/.vscode/settings.json b/reference/ToDo/src/.vscode/settings.json
new file mode 100644
index 000000000..23133fc7c
--- /dev/null
+++ b/reference/ToDo/src/.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/reference/ToDo/src/.vscode/tasks.json b/reference/ToDo/src/.vscode/tasks.json
new file mode 100644
index 000000000..f33026523
--- /dev/null
+++ b/reference/ToDo/src/.vscode/tasks.json
@@ -0,0 +1,57 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build-wasm",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/ToDo/ToDo.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:TargetFramework=net8.0-browserwasm",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish-wasm",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/ToDo/ToDo.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:TargetFramework=net8.0-browserwasm",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "build-desktop",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/ToDo/ToDo.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:TargetFramework=net8.0-desktop",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish-desktop",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/ToDo/ToDo.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:TargetFramework=net8.0-desktop",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
diff --git a/reference/ToDo/src/.vsconfig b/reference/ToDo/src/.vsconfig
index 99c343c05..7c56eecf7 100644
--- a/reference/ToDo/src/.vsconfig
+++ b/reference/ToDo/src/.vsconfig
@@ -3,110 +3,36 @@
"components": [
"Microsoft.VisualStudio.Component.CoreEditor",
"Microsoft.VisualStudio.Workload.CoreEditor",
- "Microsoft.NetCore.Component.Runtime.3.1",
"Microsoft.NetCore.Component.SDK",
- "Microsoft.VisualStudio.Component.NuGet",
- "Microsoft.Net.Component.4.6.1.TargetingPack",
- "Microsoft.VisualStudio.Component.Roslyn.Compiler",
- "Microsoft.VisualStudio.Component.Roslyn.LanguageServices",
"Microsoft.NetCore.Component.DevelopmentTools",
- "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions",
- "Microsoft.VisualStudio.Component.DockerTools",
- "Microsoft.NetCore.Component.Web",
- "Microsoft.Net.Component.4.8.SDK",
- "Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.Net.ComponentGroup.DevelopmentPrerequisites",
- "Microsoft.VisualStudio.Component.TypeScript.4.0",
- "Microsoft.VisualStudio.Component.JavaScript.TypeScript",
- "Microsoft.VisualStudio.Component.JavaScript.Diagnostics",
- "Microsoft.Component.MSBuild",
"Microsoft.VisualStudio.Component.TextTemplating",
- "Component.Microsoft.VisualStudio.RazorExtension",
+ "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions",
+ "Microsoft.NetCore.Component.Web",
"Microsoft.VisualStudio.Component.IISExpress",
- "Microsoft.VisualStudio.Component.SQL.ADAL",
- "Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime",
- "Microsoft.VisualStudio.Component.Common.Azure.Tools",
- "Microsoft.VisualStudio.Component.SQL.CLR",
- "Microsoft.VisualStudio.Component.MSODBC.SQL",
- "Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils",
- "Microsoft.VisualStudio.Component.ManagedDesktop.Core",
- "Microsoft.Net.Component.4.5.2.TargetingPack",
- "Microsoft.Net.Component.4.5.TargetingPack",
- "Microsoft.VisualStudio.Component.SQL.SSDT",
- "Microsoft.VisualStudio.Component.SQL.DataSources",
"Component.Microsoft.Web.LibraryManager",
"Microsoft.VisualStudio.ComponentGroup.Web",
"Microsoft.VisualStudio.Component.Web",
- "Microsoft.VisualStudio.Component.IntelliCode",
- "Component.Microsoft.VisualStudio.LiveShare",
"Microsoft.VisualStudio.ComponentGroup.Web.Client",
- "Microsoft.Net.Component.4.TargetingPack",
- "Microsoft.Net.Component.4.5.1.TargetingPack",
- "Microsoft.Net.Component.4.6.TargetingPack",
- "Microsoft.Net.ComponentGroup.TargetingPacks.Common",
- "Component.Microsoft.VisualStudio.Web.AzureFunctions",
- "Microsoft.VisualStudio.ComponentGroup.AzureFunctions",
- "Microsoft.VisualStudio.Component.Azure.Compute.Emulator",
- "Microsoft.VisualStudio.Component.Azure.Storage.Emulator",
- "Microsoft.VisualStudio.Component.Azure.ClientLibs",
- "Microsoft.VisualStudio.Component.Azure.AuthoringTools",
- "Microsoft.VisualStudio.Component.CloudExplorer",
- "Microsoft.VisualStudio.ComponentGroup.Web.CloudTools",
- "Microsoft.VisualStudio.Component.DiagnosticTools",
- "Microsoft.VisualStudio.Component.EntityFramework",
- "Microsoft.VisualStudio.Component.AspNet45",
- "Microsoft.VisualStudio.Component.AppInsights.Tools",
- "Microsoft.VisualStudio.Component.WebDeploy",
- "Microsoft.VisualStudio.Component.Wcf.Tooling",
- "Microsoft.Net.Component.4.6.2.TargetingPack",
- "Microsoft.Net.Component.4.7.TargetingPack",
- "Microsoft.Net.Component.4.7.1.TargetingPack",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites",
- "Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools",
- "Microsoft.VisualStudio.Component.Azure.Waverton",
- "Microsoft.Component.Azure.DataLake.Tools",
- "Microsoft.VisualStudio.Component.Azure.Kubernetes.Tools",
- "Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools",
- "Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools",
- "Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices",
- "Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools",
"Microsoft.VisualStudio.Workload.Azure",
- "Microsoft.VisualStudio.Component.VC.CoreIde",
- "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
- "Microsoft.VisualStudio.Component.Graphics.Tools",
+ "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
+ "Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging",
"Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites",
- "Microsoft.ComponentGroup.Blend",
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
- "Microsoft.VisualStudio.Component.PortableLibrary",
- "Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
- "Microsoft.VisualStudio.Component.Windows10SDK.18362",
- "Microsoft.VisualStudio.Component.Windows10SDK.17763",
"Microsoft.Component.NetFX.Native",
- "Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard",
"Microsoft.VisualStudio.Component.Graphics",
- "Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin",
- "Microsoft.VisualStudio.ComponentGroup.UWP.Support",
- "Microsoft.VisualStudio.Component.VC.Tools.ARM64",
- "Microsoft.VisualStudio.Component.UWP.VC.ARM64",
- "Microsoft.VisualStudio.Component.VC.Tools.ARM",
- "Microsoft.VisualStudio.ComponentGroup.UWP.VC",
- "Microsoft.VisualStudio.Workload.Universal",
- "Component.OpenJDK",
- "Microsoft.VisualStudio.Component.MonoDebugger",
"Microsoft.VisualStudio.Component.Merq",
"Component.Xamarin.RemotedSimulator",
- "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine",
- "Component.Xamarin",
- "Component.Android.SDK28",
+ "Microsoft.VisualStudio.Component.MonoDebugger",
+ "Microsoft.VisualStudio.ComponentGroup.Maui.All",
+ "Component.Android.SDK34",
+ "Component.Android.SDK33",
+ "Component.OpenJDK",
"Microsoft.VisualStudio.Workload.NetCrossPlat",
- "Microsoft.VisualStudio.Workload.NetCoreTools",
- "Microsoft.Net.Component.4.6.1.SDK",
- "Microsoft.Net.Component.4.6.2.SDK",
- "Microsoft.Net.Component.4.7.SDK",
- "Microsoft.Net.Component.4.7.1.SDK",
- "Microsoft.Net.Component.4.7.2.SDK"
+ "Microsoft.VisualStudio.Workload.NetCoreTools"
]
}
diff --git a/reference/ToDo/src/Directory.Build.props b/reference/ToDo/src/Directory.Build.props
index eaf37f538..08d2de097 100644
--- a/reference/ToDo/src/Directory.Build.props
+++ b/reference/ToDo/src/Directory.Build.props
@@ -1,24 +1,23 @@
-
-
- 10.0
- True
- enable
+
+
+ enable
+ enable
+ true
- true
- true
-
+
+ $(NoWarn);NU1507;NETSDK1201;PRI257
+
-
- portable
- True
- Uno0001;CS1998;CA1416;NU1504;NU1505;NU1507
- true
-
-
-
- 5.1.87
- 4.0.0
- 5.1.7
- 4.1.1
-
+
+
+ 4.1.28
+ 6.0.24
+ 5.0.13
+ 4.61.3
+
diff --git a/reference/ToDo/src/Directory.Build.targets b/reference/ToDo/src/Directory.Build.targets
index f52f159c0..f75adf7e4 100644
--- a/reference/ToDo/src/Directory.Build.targets
+++ b/reference/ToDo/src/Directory.Build.targets
@@ -1,7 +1,2 @@
-
-
-
-
+
diff --git a/reference/ToDo/src/Directory.Packages.props b/reference/ToDo/src/Directory.Packages.props
new file mode 100644
index 000000000..fd420a070
--- /dev/null
+++ b/reference/ToDo/src/Directory.Packages.props
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/reference/ToDo/src/Extensions.props b/reference/ToDo/src/Extensions.props
deleted file mode 100644
index cb7ba4fc1..000000000
--- a/reference/ToDo/src/Extensions.props
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/Extensions.winui.props b/reference/ToDo/src/Extensions.winui.props
deleted file mode 100644
index d7c992f50..000000000
--- a/reference/ToDo/src/Extensions.winui.props
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo-vsmac.slnf b/reference/ToDo/src/ToDo-vsmac.slnf
deleted file mode 100644
index da2bbdda6..000000000
--- a/reference/ToDo/src/ToDo-vsmac.slnf
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "solution": {
- "path": "ToDo.sln",
- "projects": [
- "ToDo.UI\\ToDo.UI.shproj",
-
- "ToDo.Wasm\\ToDo.Wasm.csproj",
- "ToDo\\ToDo.csproj",
- "ToDo.Mobile\\ToDo.Mobile.csproj",
-
- "ToDo.Skia.Gtk\\ToDo.Skia.Gtk.csproj",
- "ToDo.Tests\\ToDo.Tests.csproj"
- ]
- }
-}
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/AndroidManifest.xml b/reference/ToDo/src/ToDo.Mobile/Android/AndroidManifest.xml
deleted file mode 100644
index f57372e42..000000000
--- a/reference/ToDo/src/ToDo.Mobile/Android/AndroidManifest.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/uno-fluentui-assets.ttf b/reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index fedc86ff3..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Main.Android.cs b/reference/ToDo/src/ToDo.Mobile/Android/Main.Android.cs
deleted file mode 100644
index cc8ee3e2d..000000000
--- a/reference/ToDo/src/ToDo.Mobile/Android/Main.Android.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using Android.App;
-using Android.Content;
-using Android.OS;
-using Android.Runtime;
-using Android.Views;
-using Android.Widget;
-using Com.Nostra13.Universalimageloader.Core;
-using Microsoft.UI.Xaml.Media;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace ToDo.Droid
-{
- [global::Android.App.ApplicationAttribute(
- Label = "@string/ApplicationName",
- Icon = "@mipmap/ic_launcher",
- RoundIcon = "@mipmap/ic_launcher_round",
- LargeHeap = true,
- HardwareAccelerated = true,
- Theme = "@style/AppTheme"
- )]
- public class Application : Microsoft.UI.Xaml.NativeApplication
- {
- public Application(IntPtr javaReference, JniHandleOwnership transfer)
- : base(() => new App(), javaReference, transfer)
- {
- ConfigureUniversalImageLoader();
- }
-
- private void ConfigureUniversalImageLoader()
- {
- // Create global configuration and initialize ImageLoader with this config
- ImageLoaderConfiguration config = new ImageLoaderConfiguration
- .Builder(Context)
- .Build();
-
- ImageLoader.Instance.Init(config);
-
- ImageSource.DefaultImageLoader = ImageLoader.Instance.LoadImageAsync;
- }
- }
-}
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/MainActivity.Android.cs b/reference/ToDo/src/ToDo.Mobile/Android/MainActivity.Android.cs
deleted file mode 100644
index 4c3e1f4dd..000000000
--- a/reference/ToDo/src/ToDo.Mobile/Android/MainActivity.Android.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using Android.App;
-using Android.Content;
-using Android.Content.PM;
-using Android.OS;
-using Android.Views;
-using Android.Widget;
-using Microsoft.Identity.Client;
-
-namespace ToDo
-{
- [Activity(
- MainLauncher = true,
- ConfigurationChanges = global::Uno.UI.ActivityHelper.AllConfigChanges,
- WindowSoftInputMode = SoftInput.AdjustPan | SoftInput.StateHidden
- )]
- public class MainActivity : Microsoft.UI.Xaml.ApplicationActivity
- {
- protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
- {
- base.OnActivityResult(requestCode, resultCode, data);
- AuthenticationContinuationHelper
- .SetAuthenticationContinuationEventArgs(requestCode, resultCode, data);
- }
- }
-}
-
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-hdpi/SplashScreen.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-hdpi/SplashScreen.png
deleted file mode 100644
index 89bfcee8a..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-hdpi/SplashScreen.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-mdpi/SplashScreen.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-mdpi/SplashScreen.png
deleted file mode 100644
index fe9500477..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-mdpi/SplashScreen.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xhdpi/SplashScreen.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xhdpi/SplashScreen.png
deleted file mode 100644
index 7cebf25fc..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xhdpi/SplashScreen.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xxhdpi/SplashScreen.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xxhdpi/SplashScreen.png
deleted file mode 100644
index 596e5f112..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xxhdpi/SplashScreen.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xxxhdpi/SplashScreen.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xxxhdpi/SplashScreen.png
deleted file mode 100644
index 65f493e5e..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable-xxxhdpi/SplashScreen.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable/splash.xml b/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable/splash.xml
deleted file mode 100644
index 47c4320a9..000000000
--- a/reference/ToDo/src/ToDo.Mobile/Android/Resources/drawable/splash.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- -
-
-
-
-
- -
-
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-anydpi-v26/ic_launcher.xml b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index 943cbc553..000000000
--- a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index b7eecea0b..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_background.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_background.png
deleted file mode 100644
index 126130169..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_background.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_foreground.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_foreground.png
deleted file mode 100644
index 4ae36671d..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_round.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100644
index 9435347b7..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-hdpi/ic_launcher_round.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 56ea39bc2..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_background.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_background.png
deleted file mode 100644
index 4e59734b1..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_background.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_foreground.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_foreground.png
deleted file mode 100644
index 09881d77a..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_round.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100644
index 247f6d5fe..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-mdpi/ic_launcher_round.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 8690daa4e..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_background.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_background.png
deleted file mode 100644
index 84e37c8e0..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_background.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png
deleted file mode 100644
index abee267fe..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_round.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100644
index 026a7911c..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 7bdb828a8..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_background.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_background.png
deleted file mode 100644
index b568563b1..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_background.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png
deleted file mode 100644
index 02e3e4ac2..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_round.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100644
index bde163af8..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 813ad9f78..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_background.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_background.png
deleted file mode 100644
index 353089d68..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_background.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png
deleted file mode 100644
index 4b652bace..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png b/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100644
index c105607ca..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/values/Strings.xml b/reference/ToDo/src/ToDo.Mobile/Android/Resources/values/Strings.xml
deleted file mode 100644
index e4cb66d39..000000000
--- a/reference/ToDo/src/ToDo.Mobile/Android/Resources/values/Strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- Hello World, Click Me!
- ToDo
-
diff --git a/reference/ToDo/src/ToDo.Mobile/Directory.Build.props b/reference/ToDo/src/ToDo.Mobile/Directory.Build.props
deleted file mode 100644
index 15061a4fe..000000000
--- a/reference/ToDo/src/ToDo.Mobile/Directory.Build.props
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Info.plist b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Info.plist
deleted file mode 100644
index 14925a4bf..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Info.plist
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
- CFBundleName
- ToDo
- CFBundleDisplayName
- ToDo
- CFBundleIdentifier
- com.companyname.changeme
- CFBundleShortVersionString
- 1.0
- CFBundleVersion
- 1.0
- UIDeviceFamily
-
- 2
-
- LSApplicationCategoryType
- public.app-category.utilities
- UILaunchStoryboardName
- LaunchScreen
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- XSAppIconAssets
- Media.xcassets/AppIcon.appiconset
- UIAppFonts
-
- Fonts/uno-fluentui-assets.ttf
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/LaunchScreen.storyboard b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/LaunchScreen.storyboard
deleted file mode 100644
index 04a81ae75..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/LaunchScreen.storyboard
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Main.maccatalyst.cs b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Main.maccatalyst.cs
deleted file mode 100644
index 36104a5df..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Main.maccatalyst.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using UIKit;
-
-namespace ToDo
-{
- public class EntryPoint
- {
- // This is the main entry point of the application.
- 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(App));
- }
- }
-}
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Contents.json b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Contents.json
deleted file mode 100644
index a5c670237..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Contents.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "images": [
- {
- "scale": "2x",
- "size": "29x29",
- "idiom": "iphone",
- "filename": "Icon58.png"
- },
- {
- "scale": "3x",
- "size": "29x29",
- "idiom": "iphone",
- "filename": "Icon87.png"
- },
- {
- "scale": "2x",
- "size": "40x40",
- "idiom": "iphone",
- "filename": "Icon80.png"
- },
- {
- "scale": "3x",
- "size": "60x60",
- "idiom": "iphone",
- "filename": "Icon180.png"
- },
- {
- "scale": "1x",
- "size": "20x20",
- "idiom": "ipad",
- "filename": "Icon20.png"
- },
- {
- "scale": "2x",
- "size": "20x20",
- "idiom": "ipad",
- "filename": "Icon40.png"
- },
- {
- "scale": "1x",
- "size": "29x29",
- "idiom": "ipad",
- "filename": "Icon29.png"
- },
- {
- "scale": "2x",
- "size": "29x29",
- "idiom": "ipad",
- "filename": "Icon58.png"
- },
- {
- "scale": "1x",
- "size": "40x40",
- "idiom": "ipad",
- "filename": "Icon40.png"
- },
- {
- "scale": "2x",
- "size": "40x40",
- "idiom": "ipad",
- "filename": "Icon80.png"
- },
- {
- "scale": "1x",
- "size": "76x76",
- "idiom": "ipad",
- "filename": "Icon76.png"
- },
- {
- "scale": "2x",
- "size": "20x20",
- "idiom": "iphone",
- "filename": "Icon40.png"
- },
- {
- "scale": "3x",
- "size": "20x20",
- "idiom": "iphone",
- "filename": "Icon60.png"
- },
- {
- "scale": "3x",
- "size": "40x40",
- "idiom": "iphone",
- "filename": "Icon120.png"
- },
- {
- "scale": "2x",
- "size": "60x60",
- "idiom": "iphone",
- "filename": "Icon120.png"
- },
- {
- "scale": "2x",
- "size": "76x76",
- "idiom": "ipad",
- "filename": "Icon152.png"
- },
- {
- "scale": "2x",
- "size": "83.5x83.5",
- "idiom": "ipad",
- "filename": "Icon167.png"
- },
- {
- "scale": "1x",
- "size": "1024x1024",
- "idiom": "ios-marketing",
- "filename": "Icon1024.png"
- }
- ],
- "properties": {},
- "info": {
- "version": 1,
- "author": "xcode"
- }
-}
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon1024.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon1024.png
deleted file mode 100644
index c7e45b700..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon1024.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon120.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon120.png
deleted file mode 100644
index 5f2aea5eb..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon120.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon152.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon152.png
deleted file mode 100644
index c28bde8fe..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon152.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon167.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon167.png
deleted file mode 100644
index aeeb0769b..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon167.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon180.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon180.png
deleted file mode 100644
index 0a851b8d7..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon180.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon20.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon20.png
deleted file mode 100644
index 6f1a958b7..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon20.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon29.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon29.png
deleted file mode 100644
index 2d1ce7977..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon29.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon40.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon40.png
deleted file mode 100644
index a0ab12a4e..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon40.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon58.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon58.png
deleted file mode 100644
index 26ef6c932..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon58.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon60.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon60.png
deleted file mode 100644
index 84bfd00e1..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon60.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon76.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon76.png
deleted file mode 100644
index b5ee36118..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon76.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon80.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon80.png
deleted file mode 100644
index 5de98b1c6..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon80.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon87.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon87.png
deleted file mode 100644
index 53147588c..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon87.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/Default-568h@2x.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/Default-568h@2x.png
deleted file mode 100644
index 29973dcbe..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/Default-568h@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/Fonts/uno-fluentui-assets.ttf b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index fedc86ff3..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/SplashScreen@2x.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/SplashScreen@2x.png
deleted file mode 100644
index f8e793d9e..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/SplashScreen@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/SplashScreen@3x.png b/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/SplashScreen@3x.png
deleted file mode 100644
index 8c5f3984c..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Resources/SplashScreen@3x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png
deleted file mode 100644
index 5757c31d2..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png
deleted file mode 100644
index d0fb35728..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png
deleted file mode 100644
index 17d637b23..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png
deleted file mode 100644
index cf3a6e3ef..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png
deleted file mode 100644
index dcaaf7fad..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png
deleted file mode 100644
index 4810d2d0b..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png
deleted file mode 100644
index c02a2268a..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png
deleted file mode 100644
index d257b83aa..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png
deleted file mode 100644
index a90995087..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png
deleted file mode 100644
index da4b8a992..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 6b2854529..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "images": [
- {
- "filename": "AppIcon-16.png",
- "size": "16x16",
- "scale": "1x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-16@2x.png",
- "size": "16x16",
- "scale": "2x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-32.png",
- "size": "32x32",
- "scale": "1x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-32@2x.png",
- "size": "32x32",
- "scale": "2x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-128.png",
- "size": "128x128",
- "scale": "1x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-128@2x.png",
- "size": "128x128",
- "scale": "2x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-256.png",
- "size": "256x256",
- "scale": "1x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-256@2x.png",
- "size": "256x256",
- "scale": "2x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-512.png",
- "size": "512x512",
- "scale": "1x",
- "idiom": "mac"
- },
- {
- "filename": "AppIcon-512@2x.png",
- "size": "512x512",
- "scale": "2x",
- "idiom": "mac"
- }
- ],
- "info": {
- "version": 1,
- "author": "xcode"
- }
-}
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/Contents.json b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/Contents.json
deleted file mode 100644
index 4caf392f9..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/Contents.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/unologo.imageset/Contents.json b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/unologo.imageset/Contents.json
deleted file mode 100644
index 9b481d06d..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/unologo.imageset/Contents.json
+++ /dev/null
@@ -1,528 +0,0 @@
-{
- "images": [
- {
- "idiom": "universal"
- },
- {
- "scale": "1x",
- "idiom": "universal"
- },
- {
- "filename": "unoplatform.jpg",
- "scale": "2x",
- "idiom": "universal"
- },
- {
- "scale": "3x",
- "idiom": "universal"
- },
- {
- "idiom": "iphone"
- },
- {
- "scale": "1x",
- "idiom": "iphone"
- },
- {
- "scale": "2x",
- "idiom": "iphone"
- },
- {
- "subtype": "retina4",
- "scale": "2x",
- "idiom": "iphone"
- },
- {
- "scale": "3x",
- "idiom": "iphone"
- },
- {
- "idiom": "ipad"
- },
- {
- "scale": "1x",
- "idiom": "ipad"
- },
- {
- "scale": "2x",
- "idiom": "ipad"
- },
- {
- "idiom": "watch"
- },
- {
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "screenWidth": "{130,145}",
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "screenWidth": "{146,165}",
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "idiom": "mac"
- },
- {
- "scale": "1x",
- "idiom": "mac"
- },
- {
- "scale": "2x",
- "idiom": "mac"
- },
- {
- "idiom": "car"
- },
- {
- "scale": "2x",
- "idiom": "car"
- },
- {
- "scale": "3x",
- "idiom": "car"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "idiom": "universal"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "1x",
- "idiom": "universal"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "universal"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "3x",
- "idiom": "universal"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "idiom": "iphone"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "1x",
- "idiom": "iphone"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "iphone"
- },
- {
- "subtype": "retina4",
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "iphone"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "3x",
- "idiom": "iphone"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "idiom": "ipad"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "1x",
- "idiom": "ipad"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "ipad"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "idiom": "watch"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "screenWidth": "{130,145}",
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "screenWidth": "{146,165}",
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "idiom": "mac"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "1x",
- "idiom": "mac"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "mac"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "idiom": "car"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "2x",
- "idiom": "car"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "dark"
- }
- ],
- "scale": "3x",
- "idiom": "car"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "idiom": "universal"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "1x",
- "idiom": "universal"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "universal"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "3x",
- "idiom": "universal"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "idiom": "iphone"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "1x",
- "idiom": "iphone"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "iphone"
- },
- {
- "subtype": "retina4",
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "iphone"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "3x",
- "idiom": "iphone"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "idiom": "ipad"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "1x",
- "idiom": "ipad"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "ipad"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "idiom": "watch"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "screenWidth": "{130,145}",
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "screenWidth": "{146,165}",
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "watch"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "idiom": "mac"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "1x",
- "idiom": "mac"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "mac"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "idiom": "car"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "2x",
- "idiom": "car"
- },
- {
- "appearances": [
- {
- "appearance": "luminosity",
- "value": "light"
- }
- ],
- "scale": "3x",
- "idiom": "car"
- }
- ],
- "info": {
- "version": 1,
- "author": "xcode"
- }
-}
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/unologo.imageset/unoplatform.jpg b/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/unologo.imageset/unoplatform.jpg
deleted file mode 100644
index da3230e55..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Assets.xcassets/unologo.imageset/unoplatform.jpg and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Directory.Build.props b/reference/ToDo/src/ToDo.Mobile/MacOS/Directory.Build.props
deleted file mode 100644
index 15061a4fe..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacOS/Directory.Build.props
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Info.plist b/reference/ToDo/src/ToDo.Mobile/MacOS/Info.plist
deleted file mode 100644
index e1405b2c4..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacOS/Info.plist
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- CFBundleName
- ToDo.macOS
- CFBundleIdentifier
- uno.platform.todoapp
- CFBundleShortVersionString
- 1.0
- CFBundleVersion
- 1
- LSMinimumSystemVersion
- 10.14
- CFBundleDevelopmentRegion
- en
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundlePackageType
- APPL
- CFBundleSignature
- ????
- NSHumanReadableCopyright
- ${AuthorCopyright:HtmlEncode}
- NSPrincipalClass
- NSApplication
- XSAppIconAssets
- Assets.xcassets/AppIcon.appiconset
- ATSApplicationFontsPath
- Fonts
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Main.cs b/reference/ToDo/src/ToDo.Mobile/MacOS/Main.cs
deleted file mode 100644
index 126c69778..000000000
--- a/reference/ToDo/src/ToDo.Mobile/MacOS/Main.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using AppKit;
-
-namespace ToDo.macOS
-{
- internal static class MainClass
- {
- static void Main(string[] args)
- {
- NSApplication.Init();
- NSApplication.SharedApplication.Delegate = new App();
- NSApplication.Main(args);
- }
- }
-}
-
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Light.ttf b/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Light.ttf
deleted file mode 100644
index 0e977514f..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Light.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Medium.ttf b/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Medium.ttf
deleted file mode 100644
index e89b0b79a..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Medium.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Regular.ttf b/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Regular.ttf
deleted file mode 100644
index 3d6861b42..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/Roboto-Regular.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/uno-fluentui-assets.ttf b/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index fedc86ff3..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/MacOS/Resources/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/ToDo.Mobile.csproj b/reference/ToDo/src/ToDo.Mobile/ToDo.Mobile.csproj
deleted file mode 100644
index ac7eb50b6..000000000
--- a/reference/ToDo/src/ToDo.Mobile/ToDo.Mobile.csproj
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
- net8.0-android;net8.0-ios;net8.0-maccatalyst
-
- true
- Exe
-
- iossimulator-x64
- maccatalyst-x64
- osx-x64
-
-
-
-
-
- true
-
- 14.2
- 14.0
- 21.0
- 10.14
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(MtouchExtraArgs) --setenv=MONO_GC_PARAMS=soft-heap-limit=512m,nursery-size=64m,evacuation-threshold=66,major=marksweep,concurrent-sweep
-
- $(MtouchExtraArgs) --marshal-objectivec-exceptions:disable --registrar:static
-
-
-
-
-
-
-
-
-
-
-
-
- $(MtouchExtraArgs) --setenv=MONO_GC_PARAMS=soft-heap-limit=512m,nursery-size=64m,evacuation-threshold=66,major=marksweep,concurrent-sweep
-
- $(MtouchExtraArgs) --registrar:static
-
- $(MtouchExtraArgs) --marshal-objectivec-exceptions:disable
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Directory.Build.props b/reference/ToDo/src/ToDo.Mobile/iOS/Directory.Build.props
deleted file mode 100644
index 15061a4fe..000000000
--- a/reference/ToDo/src/ToDo.Mobile/iOS/Directory.Build.props
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Entitlements.plist b/reference/ToDo/src/ToDo.Mobile/iOS/Entitlements.plist
deleted file mode 100644
index 302908ebc..000000000
--- a/reference/ToDo/src/ToDo.Mobile/iOS/Entitlements.plist
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- keychain-access-groups
-
- $(AppIdentifierPrefix)9TB54R6A6V.com.horus.unoplatform.todoapp
-
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Info.plist b/reference/ToDo/src/ToDo.Mobile/iOS/Info.plist
deleted file mode 100644
index 36805ba83..000000000
--- a/reference/ToDo/src/ToDo.Mobile/iOS/Info.plist
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
- CFBundleDisplayName
- ToDo
- CFBundleIdentifier
- uno.platform.todoapp
- CFBundleShortVersionString
- 1.0
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- UIDeviceFamily
-
- 1
- 2
-
- UILaunchStoryboardName
- LaunchScreen
- UIRequiredDeviceCapabilities
-
- armv7
- arm64
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UIAppFonts
-
- Fonts/uno-fluentui-assets.ttf
- Fonts/Roboto-Light.ttf
- Fonts/Roboto-Medium.ttf
- Fonts/Roboto-Regular.ttf
-
- UIViewControllerBasedStatusBarAppearance
-
- UILaunchImageMinimumOSVersion
- 9.0
- UILaunchImageOrientation
- Portrait
- UILaunchImageSize
- {320, 568}
- UIApplicationSupportsIndirectInputEvents
-
- CFBundleURLTypes
-
-
- CFBundleURLName
- MSAL
- CFBundleURLSchemes
-
- uno-todoapp
-
- CFBundleTypeRole
- None
-
-
- XSAppIconAssets
- Media.xcassets/AppIcons.appiconset
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/LaunchScreen.storyboard b/reference/ToDo/src/ToDo.Mobile/iOS/LaunchScreen.storyboard
deleted file mode 100644
index cdf5a3a3a..000000000
--- a/reference/ToDo/src/ToDo.Mobile/iOS/LaunchScreen.storyboard
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Main.iOS.cs b/reference/ToDo/src/ToDo.Mobile/iOS/Main.iOS.cs
deleted file mode 100644
index 36104a5df..000000000
--- a/reference/ToDo/src/ToDo.Mobile/iOS/Main.iOS.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using UIKit;
-
-namespace ToDo
-{
- public class EntryPoint
- {
- // This is the main entry point of the application.
- 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(App));
- }
- }
-}
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Contents.json b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Contents.json
deleted file mode 100644
index a5c670237..000000000
--- a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Contents.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "images": [
- {
- "scale": "2x",
- "size": "29x29",
- "idiom": "iphone",
- "filename": "Icon58.png"
- },
- {
- "scale": "3x",
- "size": "29x29",
- "idiom": "iphone",
- "filename": "Icon87.png"
- },
- {
- "scale": "2x",
- "size": "40x40",
- "idiom": "iphone",
- "filename": "Icon80.png"
- },
- {
- "scale": "3x",
- "size": "60x60",
- "idiom": "iphone",
- "filename": "Icon180.png"
- },
- {
- "scale": "1x",
- "size": "20x20",
- "idiom": "ipad",
- "filename": "Icon20.png"
- },
- {
- "scale": "2x",
- "size": "20x20",
- "idiom": "ipad",
- "filename": "Icon40.png"
- },
- {
- "scale": "1x",
- "size": "29x29",
- "idiom": "ipad",
- "filename": "Icon29.png"
- },
- {
- "scale": "2x",
- "size": "29x29",
- "idiom": "ipad",
- "filename": "Icon58.png"
- },
- {
- "scale": "1x",
- "size": "40x40",
- "idiom": "ipad",
- "filename": "Icon40.png"
- },
- {
- "scale": "2x",
- "size": "40x40",
- "idiom": "ipad",
- "filename": "Icon80.png"
- },
- {
- "scale": "1x",
- "size": "76x76",
- "idiom": "ipad",
- "filename": "Icon76.png"
- },
- {
- "scale": "2x",
- "size": "20x20",
- "idiom": "iphone",
- "filename": "Icon40.png"
- },
- {
- "scale": "3x",
- "size": "20x20",
- "idiom": "iphone",
- "filename": "Icon60.png"
- },
- {
- "scale": "3x",
- "size": "40x40",
- "idiom": "iphone",
- "filename": "Icon120.png"
- },
- {
- "scale": "2x",
- "size": "60x60",
- "idiom": "iphone",
- "filename": "Icon120.png"
- },
- {
- "scale": "2x",
- "size": "76x76",
- "idiom": "ipad",
- "filename": "Icon152.png"
- },
- {
- "scale": "2x",
- "size": "83.5x83.5",
- "idiom": "ipad",
- "filename": "Icon167.png"
- },
- {
- "scale": "1x",
- "size": "1024x1024",
- "idiom": "ios-marketing",
- "filename": "Icon1024.png"
- }
- ],
- "properties": {},
- "info": {
- "version": 1,
- "author": "xcode"
- }
-}
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon-167.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon-167.png
deleted file mode 100644
index 638da0b35..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon-167.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon-180.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon-180.png
deleted file mode 100644
index 879538651..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon-180.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon1024.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon1024.png
deleted file mode 100644
index 19c321e11..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon1024.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon120.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon120.png
deleted file mode 100644
index 065158212..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon120.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon152.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon152.png
deleted file mode 100644
index 06297af10..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon152.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon167.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon167.png
deleted file mode 100644
index 638da0b35..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon167.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon180.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon180.png
deleted file mode 100644
index 879538651..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon180.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon20.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon20.png
deleted file mode 100644
index 92aa84baa..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon20.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon29.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon29.png
deleted file mode 100644
index d0f78c7b1..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon29.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon40.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon40.png
deleted file mode 100644
index a73472fac..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon40.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon58.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon58.png
deleted file mode 100644
index ab73c475f..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon58.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon60.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon60.png
deleted file mode 100644
index 9a9dcd5a9..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon60.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon76.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon76.png
deleted file mode 100644
index 8592794d5..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon76.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon80.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon80.png
deleted file mode 100644
index 9eebf4256..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon80.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon87.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon87.png
deleted file mode 100644
index 3d26b47f9..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon87.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/iTunesArtwork@2x.png b/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/iTunesArtwork@2x.png
deleted file mode 100644
index 19c321e11..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Media.xcassets/AppIcons.appiconset/iTunesArtwork@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Default-568h@2x.png b/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Default-568h@2x.png
deleted file mode 100644
index 29973dcbe..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Default-568h@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Light.ttf b/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Light.ttf
deleted file mode 100644
index 0e977514f..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Light.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Medium.ttf b/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Medium.ttf
deleted file mode 100644
index e89b0b79a..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Medium.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Regular.ttf b/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Regular.ttf
deleted file mode 100644
index 3d6861b42..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/Roboto-Regular.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/uno-fluentui-assets.ttf b/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index fedc86ff3..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen.png b/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen.png
deleted file mode 100644
index fe9500477..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen@2x.png b/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen@2x.png
deleted file mode 100644
index 7cebf25fc..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen@2x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen@3x.png b/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen@3x.png
deleted file mode 100644
index 596e5f112..000000000
Binary files a/reference/ToDo/src/ToDo.Mobile/iOS/Resources/SplashScreen@3x.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Mobile/iOS/appsettings.platform.json b/reference/ToDo/src/ToDo.Mobile/iOS/appsettings.platform.json
deleted file mode 100644
index 37c0f4462..000000000
--- a/reference/ToDo/src/ToDo.Mobile/iOS/appsettings.platform.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Auth": {
- "KeychainSecurityGroup": "uno.platform.todoapp"
- }
-}
diff --git a/reference/ToDo/src/ToDo.Skia.Gtk/Assets/Fonts/uno-fluentui-assets.ttf b/reference/ToDo/src/ToDo.Skia.Gtk/Assets/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index fedc86ff3..000000000
Binary files a/reference/ToDo/src/ToDo.Skia.Gtk/Assets/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Skia.Gtk/Program.cs b/reference/ToDo/src/ToDo.Skia.Gtk/Program.cs
deleted file mode 100644
index 583a09dc4..000000000
--- a/reference/ToDo/src/ToDo.Skia.Gtk/Program.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using GLib;
-using Uno.UI.Runtime.Skia.Gtk;
-
-namespace ToDo.Skia.Gtk
-{
- class Program
- {
- 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 App());
-
- host.Run();
- }
- }
-}
diff --git a/reference/ToDo/src/ToDo.Skia.Gtk/ToDo.Skia.Gtk.csproj b/reference/ToDo/src/ToDo.Skia.Gtk/ToDo.Skia.Gtk.csproj
deleted file mode 100644
index e4c197938..000000000
--- a/reference/ToDo/src/ToDo.Skia.Gtk/ToDo.Skia.Gtk.csproj
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
- WinExe
- Exe
- net8.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Skia.WPF/App.xaml b/reference/ToDo/src/ToDo.Skia.WPF/App.xaml
deleted file mode 100644
index b1542371f..000000000
--- a/reference/ToDo/src/ToDo.Skia.WPF/App.xaml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Skia.WPF/App.xaml.cs b/reference/ToDo/src/ToDo.Skia.WPF/App.xaml.cs
deleted file mode 100644
index c00a7e546..000000000
--- a/reference/ToDo/src/ToDo.Skia.WPF/App.xaml.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using WpfApp = System.Windows.Application;
-
-namespace ToDo.WPF;
-
-public partial class App : WpfApp
-{
-}
diff --git a/reference/ToDo/src/ToDo.Skia.WPF/Assets/Fonts/uno-fluentui-assets.ttf b/reference/ToDo/src/ToDo.Skia.WPF/Assets/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index fedc86ff3..000000000
Binary files a/reference/ToDo/src/ToDo.Skia.WPF/Assets/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Skia.WPF/MainWindow.xaml b/reference/ToDo/src/ToDo.Skia.WPF/MainWindow.xaml
deleted file mode 100644
index f4543fed4..000000000
--- a/reference/ToDo/src/ToDo.Skia.WPF/MainWindow.xaml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
diff --git a/reference/ToDo/src/ToDo.Skia.WPF/MainWindow.xaml.cs b/reference/ToDo/src/ToDo.Skia.WPF/MainWindow.xaml.cs
deleted file mode 100644
index 8a27774ce..000000000
--- a/reference/ToDo/src/ToDo.Skia.WPF/MainWindow.xaml.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using Uno.UI.Runtime.Skia.Wpf;
-using Window = System.Windows.Window;
-
-namespace ToDo.WPF;
-
-public partial class MainWindow : Window
-{
- public MainWindow()
- {
- InitializeComponent();
-
- root.Content = new WpfHost(Dispatcher, () => new ToDo.App());
- }
-}
diff --git a/reference/ToDo/src/ToDo.Skia.WPF/ToDo.Skia.WPF.csproj b/reference/ToDo/src/ToDo.Skia.WPF/ToDo.Skia.WPF.csproj
deleted file mode 100644
index 88051df46..000000000
--- a/reference/ToDo/src/ToDo.Skia.WPF/ToDo.Skia.WPF.csproj
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
- WinExe
- Exe
- net8.0-windows
- true
- $(NoWarn);NU1701
-
-
-
- <_Parameter1>false
-
-
- <_Parameter1>System.Windows.ResourceDictionaryLocation.None
- <_Parameter1_IsLiteral>true
- <_Parameter2>System.Windows.ResourceDictionaryLocation.SourceAssembly
- <_Parameter2_IsLiteral>true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.UI/App.xaml b/reference/ToDo/src/ToDo.UI/App.xaml
deleted file mode 100644
index 58d583b5e..000000000
--- a/reference/ToDo/src/ToDo.UI/App.xaml
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #51000000
-
-
- #51FFFFFF
-
-
-
-
-
-
-
-
-
-
- 500
-
-
-
- 800
- 1000
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.UI/App.xaml.cs b/reference/ToDo/src/ToDo.UI/App.xaml.cs
deleted file mode 100644
index 2b49dec0d..000000000
--- a/reference/ToDo/src/ToDo.UI/App.xaml.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-
-#pragma warning disable 109 // Remove warning for Window property on iOS
-
-
-namespace ToDo;
-
-public sealed partial class App : Application
-{
-#pragma warning disable CS8632 // The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
- private Window? _window;
- public new Window? Window => _window;
-#pragma warning restore CS8632 // The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
-
- public App()
- {
- this.InitializeComponent();
- }
-
- ///
- /// 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.
- ///
- /// Details about the launch request and process.
- protected async override void OnLaunched(LaunchActivatedEventArgs args)
- {
-#if USE_UITESTS
- Uno.UI.FeatureConfiguration.UIElement.AssignDOMXamlName = true;
-#endif
-
-
-#if DEBUG
- if (System.Diagnostics.Debugger.IsAttached)
- {
- // this.DebugSettings.EnableFrameRateCounter = true;
- }
-#endif
-
-#if NET5_0_OR_GREATER && WINDOWS && !HAS_UNO
- _window = new Window();
-#else
- _window = Microsoft.UI.Xaml.Window.Current;
-#endif
- var appRoot = new Shell();
- appRoot.SplashScreen.Initialize(_window, args);
-
- _window.Content = appRoot;
- _window.Activate();
-
- _host = await _window.InitializeNavigationAsync(
- async () =>
- {
- return BuildAppHost();
- },
- navigationRoot: appRoot.SplashScreen
- );
-
- var notif = _host.Services.GetRequiredService();
- notif.RouteChanged += RouteUpdated;
-
-
- var appSettings = _host.Services.GetRequiredService>();
- var isDark = appSettings.Value?.IsDark ?? false;
- SystemThemeHelper.SetRootTheme(_window.Content.XamlRoot, isDark);
- }
-
-#pragma warning disable CS8632 // The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
- public void RouteUpdated(object? sender, RouteChangedEventArgs e)
-#pragma warning restore CS8632 // The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
- {
- try
- {
- var rootRegion = e.Region.Root();
- var route = rootRegion.GetRoute();
- }
- catch (Exception ex)
- {
- Console.WriteLine("Error: " + ex.Message);
- }
- }
-}
diff --git a/reference/ToDo/src/ToDo.UI/App.xaml.host.cs b/reference/ToDo/src/ToDo.UI/App.xaml.host.cs
deleted file mode 100644
index 589ce7350..000000000
--- a/reference/ToDo/src/ToDo.UI/App.xaml.host.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-#pragma warning disable 109 // Remove warning for Window property on iOS
-
-namespace ToDo;
-
-public sealed partial class App : Application
-{
- private IHost? _host { get; set; }
-
- private static IHost BuildAppHost()
- {
- return UnoHost
- .CreateDefaultBuilder()
-#if DEBUG
- // Switch to Development environment when running in DEBUG
- .UseEnvironment(Environments.Development)
-#endif
-
- // Add platform specific log providers
- .UseLogging(configure: (context, logBuilder) =>
- // Configure log levels for different categories of logging
- logBuilder
- .SetMinimumLevel(
- context.HostingEnvironment.IsDevelopment() ?
- LogLevel.Information :
- LogLevel.Warning))
-
- .UseConfiguration(configure: configBuilder =>
- configBuilder
- // Load configuration information from appconfig.json
- .EmbeddedSource()
- .EmbeddedSource("platform")
-
- // Load OAuth configuration
- .Section()
-
- // Load Mock configuration
- .Section()
-
- // Enable app settings
- .Section()
- )
-
- // Register Json serializers (ISerializer and IStreamSerializer)
- .UseSerialization()
-
- // Register services for the application
- .ConfigureServices(
- (context, services) =>
- {
-
- var section = context.Configuration.GetSection(nameof(Mock));
- var useMocks = bool.TryParse(section[nameof(Mock.IsEnabled)], out var isMocked) ? isMocked : false;
-#if USE_MOCKS
- // This is required for UI Testing where USE_MOCKS is enabled
- useMocks=true;;
-#endif
-
- services
- .AddScoped()
- .AddEndpoints(context, useMocks: useMocks)
- .AddServices(useMocks: useMocks);
- })
-
- // Enable navigation, including registering views and viewmodels
- .UseNavigation(ReactiveViewModelMappings.ViewModelMappings, RegisterRoutes)
-
- // Add navigation support for toolkit controls such as TabBar and NavigationView
- .UseToolkitNavigation()
-
- // Add localization support
- .UseLocalization()
-
- .Build(enableUnoLogging: true);
- }
-
- private static void RegisterRoutes(IViewRegistry views, IRouteRegistry routes)
- {
- LocalizableMessageDialogViewMap BuildDialogViewMap(string section, bool delayUserInput, int defaultButtonIndex, params (object Id, string labelKeyPath)[] buttons)
- {
- return new LocalizableMessageDialogViewMap
- (
- Content: localizer => localizer![ResourceKey(ResourceKeys.DialogContent)],
- Title: localizer => localizer![ResourceKey(ResourceKeys.DialogTitle)],
- DelayUserInput: delayUserInput,
- DefaultButtonIndex: defaultButtonIndex,
- Buttons: buttons
- .Select(x => new LocalizableDialogAction(LabelProvider: localizer => localizer![ResourceKey(x.labelKeyPath)], Id: x.Id))
- .ToArray()
- );
- string ResourceKey(string keyPath)
- {
- // map absolute/relative path accordingly
- return keyPath.StartsWith("./") ? keyPath.Substring(2) : $"Dialog_{section}_{keyPath}";
- }
- }
-
- var deleteButton = (DialogResults.Affirmative, ResourceKeys.DeleteButton);
- var cancelButton = (DialogResults.Negative, ResourceKeys.CancelButton);
- var confirmDeleteListDialog = BuildDialogViewMap(Dialog.ConfirmDeleteList, true, 0, deleteButton, cancelButton);
- var confirmDeleteTaskDialog = BuildDialogViewMap(Dialog.ConfirmDeleteTask, true, 0, deleteButton, cancelButton);
- var confirmSignOutDialog = BuildDialogViewMap(Dialog.ConfirmSignOut, true, 0, (DialogResults.Affirmative, ResourceKeys.SignOutButton), cancelButton);
-
- views.Register(
- // Dialogs and Flyouts
- new ViewMap(),
- new ViewMap(),
- new ViewMap(Data: new DataMap()),
- new ViewMap(),
-
- // Views
- new ViewMap(),
- new ViewMap(),
- new ViewMap(),
- new ViewMap(),
- new ViewMap(ViewModel: typeof(ShellViewModel)),
- new ViewMap(),
- new DataViewMap(),
- new DataViewMap(),
- confirmDeleteListDialog,
- confirmDeleteTaskDialog,
- confirmSignOutDialog
- );
-
- routes.Register(
- new RouteMap("", View: views.FindByViewModel(), Nested: new RouteMap[]
- {
- new("Welcome", View: views.FindByViewModel()),
- new("Home", View: views.FindByViewModel()),
- new("TaskList", View: views.FindByViewModel(), Nested: new[]
- {
- new RouteMap("ToDo", IsDefault:true),
- new RouteMap("Completed")
- }),
- new("Task", View: views.FindByViewModel(), DependsOn:"TaskList"),
- new("TaskSearch", View: views.FindByView(), Nested: new RouteMap[]
- {
- new("Search", View: views.FindByViewModel(), IsDefault: true)
- }),
- new("Settings", View: views.FindByViewModel()),
- new("AddTask", View: views.FindByViewModel()),
- new("AddList", View: views.FindByViewModel()),
- new("ExpirationDate", View: views.FindByViewModel()),
- new("RenameList", View: views.FindByViewModel()),
- new(Dialog.ConfirmDeleteList, confirmDeleteListDialog),
- new(Dialog.ConfirmDeleteTask, confirmDeleteTaskDialog),
- new(Dialog.ConfirmSignOut, confirmSignOutDialog)
- })
- );
- }
-}
-
diff --git a/reference/ToDo/src/ToDo.UI/AppTheme.cs b/reference/ToDo/src/ToDo.UI/AppTheme.cs
deleted file mode 100644
index 302da1351..000000000
--- a/reference/ToDo/src/ToDo.UI/AppTheme.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-namespace ToDo;
-
-// TODO: Extract these to uno extensions
-// See https://github.com/unoplatform/uno.extensions/discussions/420
-public class AppTheme : IAppTheme
-{
- private readonly Window _window;
- private readonly IDispatcher _dispatcher;
- public AppTheme(Window window, IDispatcher dispatcher)
- {
- _window = window;
- _dispatcher = dispatcher;
- }
- public bool IsDark => SystemThemeHelper.IsRootInDarkMode(_window.Content.XamlRoot!);
-
- public async Task SetThemeAsync(bool darkMode)
- {
- await _dispatcher.ExecuteAsync(() =>
- {
- SystemThemeHelper.SetRootTheme(_window.Content.XamlRoot, darkMode);
- });
- }
-}
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Light.ttf b/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Light.ttf
deleted file mode 100644
index 0e977514f..000000000
Binary files a/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Light.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Medium.ttf b/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Medium.ttf
deleted file mode 100644
index e89b0b79a..000000000
Binary files a/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Medium.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Regular.ttf b/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Regular.ttf
deleted file mode 100644
index 3d6861b42..000000000
Binary files a/reference/ToDo/src/ToDo.UI/Assets/Fonts/Material/Roboto-Regular.ttf and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.UI/GlobalUsings.cs b/reference/ToDo/src/ToDo.UI/GlobalUsings.cs
deleted file mode 100644
index 3fd371954..000000000
--- a/reference/ToDo/src/ToDo.UI/GlobalUsings.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-global using System;
-global using System.Collections.Generic;
-global using System.Globalization;
-global using System.Linq;
-global using System.Threading.Tasks;
-global using Microsoft.Extensions.DependencyInjection;
-global using Microsoft.Extensions.Hosting;
-global using Microsoft.Extensions.Logging;
-global using Microsoft.UI.Xaml;
-global using Microsoft.UI.Xaml.Controls;
-global using Microsoft.UI.Xaml.Data;
-global using Microsoft.UI.Xaml.Markup;
-global using Microsoft.UI.Xaml.Media;
-global using ToDo.Business.Models;
-global using ToDo.Configuration;
-global using ToDo.Presentation;
-global using ToDo.Presentation.Dialogs;
-global using ToDo.Views;
-global using ToDo.Views.Dialogs;
-global using Uno.Extensions;
-global using Uno.Extensions.Configuration;
-global using Uno.Extensions.Hosting;
-global using Uno.Extensions.Localization;
-global using Uno.Extensions.Navigation;
-global using Uno.Extensions.Navigation.Regions;
-global using Uno.Toolkit.UI;
diff --git a/reference/ToDo/src/ToDo.UI/ToDo.UI.projitems b/reference/ToDo/src/ToDo.UI/ToDo.UI.projitems
deleted file mode 100644
index c87bd057f..000000000
--- a/reference/ToDo/src/ToDo.UI/ToDo.UI.projitems
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- true
- 6279c845-92f8-4333-ab99-3d213163593c
-
-
- ToDo
-
-
-
- Always
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- Always
-
-
-
-
-
-
-
-
- Designer
- MSBuild:Compile
-
-
-
-
- App.xaml
-
-
- App.xaml
-
-
-
-
-
-
-
-
-
- AddListFlyout.xaml
-
-
- AddTaskFlyout.xaml
-
-
- ExpirationDateFlyout.xaml
-
-
- RenameListFlyout.xaml
-
-
- SettingsFlyout.xaml
-
-
- TaskSearchFlyout.xaml
-
-
- SearchPage.xaml
-
-
- Shell.xaml
-
-
- TaskListPage.xaml
-
-
- HomePage.xaml
-
-
- TaskPage.xaml
-
-
- WelcomePage.xaml
-
-
-
-
-
-
-
-
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
- <_Globbled_Page Include="$(MSBuildThisFileDirectory)**/*.xaml" Exclude="@(Page);@(ApplicationDefinition)">
- Designer
- MSBuild:Compile
-
-
- <_Globbed_Compile Include="$(MSBuildThisFileDirectory)**/*.xaml.cs" Exclude="@(Compile)">
- %(Filename)
-
- <_Globbed_Compile Include="$(MSBuildThisFileDirectory)**/*.cs" Exclude="@(Compile);@(_Globbed_Compile)" />
-
- <_Globbed_PRIResource Include="$(MSBuildThisFileDirectory)**/*.resw" Exclude="@(PRIResource)" />
-
- <_Globbed_Content Include="$(MSBuildThisFileDirectory)Assets/**/*.*" Exclude="@(Content)" />
-
- <_Globbed_Embedded_Resource Include="$(MSBuildThisFileDirectory)*.json" Exclude="@(EmbeddedResource)" />
-
-
-
-
-
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.UI/ToDo.UI.shproj b/reference/ToDo/src/ToDo.UI/ToDo.UI.shproj
deleted file mode 100644
index df2e84d7f..000000000
--- a/reference/ToDo/src/ToDo.UI/ToDo.UI.shproj
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- 6279c845-92f8-4333-ab99-3d213163593c
- 14.0
-
-
-
-
-
-
-
-
- <_Globbed_Compile Remove="Views\Shell.xaml.cs" />
-
-
- <_Globbed_Content Remove="Assets\Fonts\Material\Roboto-Light.ttf" />
- <_Globbed_Content Remove="Assets\Fonts\Material\Roboto-Medium.ttf" />
- <_Globbed_Content Remove="Assets\Fonts\Material\Roboto-Regular.ttf" />
-
-
- <_Globbled_Page Remove="Views\Shell.xaml" />
-
-
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/SettingsFlyout.xaml.cs b/reference/ToDo/src/ToDo.UI/Views/Dialogs/SettingsFlyout.xaml.cs
deleted file mode 100644
index e2c4a676c..000000000
--- a/reference/ToDo/src/ToDo.UI/Views/Dialogs/SettingsFlyout.xaml.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace ToDo.Views.Dialogs;
-
-public sealed partial class SettingsFlyout : Flyout
-{
- public SettingsFlyout()
- {
- this.InitializeComponent();
- }
-}
diff --git a/reference/ToDo/src/ToDo.UI/Views/Shell.xaml b/reference/ToDo/src/ToDo.UI/Views/Shell.xaml
deleted file mode 100644
index 4d5f77a69..000000000
--- a/reference/ToDo/src/ToDo.UI/Views/Shell.xaml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.UI/Views/Shell.xaml.cs b/reference/ToDo/src/ToDo.UI/Views/Shell.xaml.cs
deleted file mode 100644
index 965a933d1..000000000
--- a/reference/ToDo/src/ToDo.UI/Views/Shell.xaml.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using Uno.Toolkit.UI;
-
-namespace ToDo.Views;
-
-public sealed partial class Shell : UserControl
-{
- public ExtendedSplashScreen SplashScreen => Splash;
-
- public Shell()
- {
- this.InitializeComponent();
- }
-}
diff --git a/reference/ToDo/src/ToDo.UI/_Compat/IsExternalInit.cs b/reference/ToDo/src/ToDo.UI/_Compat/IsExternalInit.cs
deleted file mode 100644
index 1e37cc339..000000000
--- a/reference/ToDo/src/ToDo.UI/_Compat/IsExternalInit.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System;
-using System.Linq;
-
-#if !NET5_0
-namespace System.Runtime.CompilerServices;
-
-internal static class IsExternalInit
-{
-}
-#endif
diff --git a/reference/ToDo/src/ToDo.UI/appsettings.development.json b/reference/ToDo/src/ToDo.UI/appsettings.development.json
deleted file mode 100644
index 919b8335a..000000000
--- a/reference/ToDo/src/ToDo.UI/appsettings.development.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Mock": {
- "IsEnabled": true
- }
-}
diff --git a/reference/ToDo/src/ToDo.Wasm/Assets/SplashScreen.png b/reference/ToDo/src/ToDo.Wasm/Assets/SplashScreen.png
deleted file mode 100644
index 98118932a..000000000
Binary files a/reference/ToDo/src/ToDo.Wasm/Assets/SplashScreen.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Wasm/LinkerConfig.xml b/reference/ToDo/src/ToDo.Wasm/LinkerConfig.xml
deleted file mode 100644
index 600d9a479..000000000
--- a/reference/ToDo/src/ToDo.Wasm/LinkerConfig.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Wasm/Program.cs b/reference/ToDo/src/ToDo.Wasm/Program.cs
deleted file mode 100644
index cc7765071..000000000
--- a/reference/ToDo/src/ToDo.Wasm/Program.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using Microsoft.UI.Xaml;
-
-namespace ToDo.Wasm
-{
- public class Program
- {
- private static App? _app;
-
- static int Main(string[] args)
- {
- Microsoft.UI.Xaml.Application.Start(_ => _app = new App());
-
- return 0;
- }
- }
-}
diff --git a/reference/ToDo/src/ToDo.Wasm/Properties/launchSettings.json b/reference/ToDo/src/ToDo.Wasm/Properties/launchSettings.json
deleted file mode 100644
index 79da60ad6..000000000
--- a/reference/ToDo/src/ToDo.Wasm/Properties/launchSettings.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "profiles": {
- "ToDo.Wasm": {
- "commandName": "Project",
- "launchBrowser": true,
- "environmentVariables": {
- "ASPNETCORE_ENVIRONMENT": "Development"
- },
- "applicationUrl": "https://localhost:50149;http://localhost:50150"
- }
- }
-}
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.Wasm/ToDo.Wasm.csproj b/reference/ToDo/src/ToDo.Wasm/ToDo.Wasm.csproj
deleted file mode 100644
index ea7f97646..000000000
--- a/reference/ToDo/src/ToDo.Wasm/ToDo.Wasm.csproj
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
- Exe
- net8.0
- $(NoWarn);NU1504;NU1505;NU1701
- /
-
-
- true
- $(DefineConstants);TRACE;DEBUG
- portable
- true
-
- false
-
-
- $(DefineConstants);USE_MOCKS
-
-
- True
- $(DefineConstants);USE_UITESTS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Wasm/WasmCSS/Fonts.css b/reference/ToDo/src/ToDo.Wasm/WasmCSS/Fonts.css
deleted file mode 100644
index 307b8ae25..000000000
--- a/reference/ToDo/src/ToDo.Wasm/WasmCSS/Fonts.css
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
-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.
-*/
-
-@font-face {
- font-family: "Symbols";
- /* uno-fluentui-assets.woff2 */
- src: url(data:application/x-font-woff;charset=utf-8;base64,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)format('woff');
-}
-
-@font-face {
- font-family: 'Roboto';
- src: url(../Roboto-Light.ttf) format('truetype');
- font-weight: 300;
-}
-
-@font-face {
- font-family: 'Roboto';
- src: url(../Roboto-Regular.ttf) format('truetype');
- font-weight: 400;
-}
-
-@font-face {
- font-family: 'Roboto';
- src: url(../Roboto-Medium.ttf) format('truetype');
- font-weight: 500;
-}
-
-/* Workaround for uno issue https://github.com/unoplatform/uno/issues/693 */
-body::before {
- font-family: 'Symbols';
- background: transparent;
- content: "";
- opacity: 0;
- pointer-events: none;
- position: absolute;
-}
-
-body::after {
- font-family: 'Roboto';
- background: transparent;
- content: "";
- opacity: 0;
- font-weight: 300;
- pointer-events: none;
- position: absolute;
-}
-
-#uno-body::before {
- font-family: 'Roboto';
- background: transparent;
- content: "";
- opacity: 0;
- font-weight: 400;
- pointer-events: none;
- position: absolute;
-}
-
-#uno-body::after {
- font-family: 'Roboto';
- background: transparent;
- content: "";
- opacity: 0;
- font-weight: 500;
- pointer-events: none;
- position: absolute;
-}
-
-/* https://github.com/unoplatform/uno/issues/4304 */
-@font-face {
- font-family: 'Segoe UI';
- src: local('system-ui'), 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');
-}
diff --git a/reference/ToDo/src/ToDo.Wasm/WasmScripts/AppManifest.js b/reference/ToDo/src/ToDo.Wasm/WasmScripts/AppManifest.js
deleted file mode 100644
index 5b5e0e9c6..000000000
--- a/reference/ToDo/src/ToDo.Wasm/WasmScripts/AppManifest.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var UnoAppManifest = {
-
- splashScreenImage: "Assets/SplashScreen.png",
- splashScreenColor: "#fff",
- displayName: "ToDo"
-
-}
diff --git a/reference/ToDo/src/ToDo.Wasm/appsettings.platform.json b/reference/ToDo/src/ToDo.Wasm/appsettings.platform.json
deleted file mode 100644
index eaeeb065e..000000000
--- a/reference/ToDo/src/ToDo.Wasm/appsettings.platform.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Auth": {
- "RedirectUri": "%WAB%"
- }
-}
diff --git a/reference/ToDo/src/ToDo.Wasm/wwwroot/authentication/login-callback.htm b/reference/ToDo/src/ToDo.Wasm/wwwroot/authentication/login-callback.htm
deleted file mode 100644
index 7a199e958..000000000
--- a/reference/ToDo/src/ToDo.Wasm/wwwroot/authentication/login-callback.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
- Waiting for Authentication to process
-
-
diff --git a/reference/ToDo/src/ToDo.Wasm/wwwroot/favicon.ico b/reference/ToDo/src/ToDo.Wasm/wwwroot/favicon.ico
deleted file mode 100644
index 37ba95566..000000000
Binary files a/reference/ToDo/src/ToDo.Wasm/wwwroot/favicon.ico and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Wasm/wwwroot/staticwebapp.config.json b/reference/ToDo/src/ToDo.Wasm/wwwroot/staticwebapp.config.json
deleted file mode 100644
index 2935a10b3..000000000
--- a/reference/ToDo/src/ToDo.Wasm/wwwroot/staticwebapp.config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "navigationFallback": {
- "rewrite": "/index.html",
- "exclude": [
- "*.{css,js}",
- "*.{png}",
- "*.{c,h,wasm,clr,pdb,dat,txt,json}"
- ]
- },
- "routes": [
- {
- "route": "/authentication-callback",
- "rewrite": "/authentication/login-callback.htm"
- },
- {
- "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"
- }
- }
- ]
- }
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo.Wasm/wwwroot/web.config b/reference/ToDo/src/ToDo.Wasm/wwwroot/web.config
deleted file mode 100644
index d7549a68b..000000000
--- a/reference/ToDo/src/ToDo.Wasm/wwwroot/web.config
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-100.png b/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-100.png
deleted file mode 100644
index 4281e1ebd..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-100.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-125.png b/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-125.png
deleted file mode 100644
index 519dffe16..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-125.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-150.png b/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-150.png
deleted file mode 100644
index 9c12d2a20..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-150.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-200.png b/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-200.png
deleted file mode 100644
index 9100e0ddd..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-200.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-400.png b/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-400.png
deleted file mode 100644
index 79a324140..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/LargeTile.scale-400.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/LockScreenLogo.scale-200.png b/reference/ToDo/src/ToDo.Windows/Images/LockScreenLogo.scale-200.png
deleted file mode 100644
index 592d5de30..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/LockScreenLogo.scale-200.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-100.png b/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-100.png
deleted file mode 100644
index 4f1ce0b7c..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-100.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-125.png b/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-125.png
deleted file mode 100644
index c7d147424..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-125.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-150.png b/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-150.png
deleted file mode 100644
index 009ca3ebb..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-150.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-200.png b/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-200.png
deleted file mode 100644
index 6f169ab63..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-200.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-400.png b/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-400.png
deleted file mode 100644
index 49eaf937e..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SmallTile.scale-400.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-100.png b/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-100.png
deleted file mode 100644
index b316b16bd..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-100.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-125.png b/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-125.png
deleted file mode 100644
index 413b64078..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-125.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-150.png b/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-150.png
deleted file mode 100644
index 2ce8dbd09..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-150.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-200.png b/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-200.png
deleted file mode 100644
index 98118932a..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-200.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-400.png b/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-400.png
deleted file mode 100644
index b07b2a7e8..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/SplashScreen.scale-400.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-100.png b/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-100.png
deleted file mode 100644
index 7eba5e21b..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-100.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-125.png b/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-125.png
deleted file mode 100644
index 0c08181ed..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-125.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-150.png b/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-150.png
deleted file mode 100644
index e19dcf14b..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-150.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-200.png b/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-200.png
deleted file mode 100644
index 41436156f..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-200.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-400.png b/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-400.png
deleted file mode 100644
index 384f342fa..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square150x150Logo.scale-400.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
deleted file mode 100644
index ccfa93060..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png
deleted file mode 100644
index 8a92eb18f..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
deleted file mode 100644
index 3319008ec..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png
deleted file mode 100644
index 53f38f2e5..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
deleted file mode 100644
index 23c4e435a..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-16.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-16.png
deleted file mode 100644
index ccfa93060..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-16.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-24.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-24.png
deleted file mode 100644
index 8a92eb18f..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-24.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-256.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-256.png
deleted file mode 100644
index 3319008ec..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-256.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-32.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-32.png
deleted file mode 100644
index 53f38f2e5..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-32.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-48.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-48.png
deleted file mode 100644
index 23c4e435a..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.altform-unplated_targetsize-48.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-100.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-100.png
deleted file mode 100644
index 551f86fdf..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-100.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-125.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-125.png
deleted file mode 100644
index d7fd7b9f9..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-125.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-150.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-150.png
deleted file mode 100644
index 7e77c75a6..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-150.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-200.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-200.png
deleted file mode 100644
index cce450f01..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-200.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-400.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-400.png
deleted file mode 100644
index 8ae79fc75..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.scale-400.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-16.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-16.png
deleted file mode 100644
index 2ff323a8f..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-16.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-24.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-24.png
deleted file mode 100644
index 16bfe443a..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-24.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-24_altform-unplated.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-24_altform-unplated.png
deleted file mode 100644
index f6c02ce97..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-24_altform-unplated.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-256.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-256.png
deleted file mode 100644
index 2075a688d..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-256.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-32.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-32.png
deleted file mode 100644
index 2c879ba8c..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-32.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-48.png b/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-48.png
deleted file mode 100644
index fc254018c..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Square44x44Logo.targetsize-48.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.backup.png b/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.backup.png
deleted file mode 100644
index 2da76b992..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.backup.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-100.png b/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-100.png
deleted file mode 100644
index 82141aaff..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-100.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-125.png b/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-125.png
deleted file mode 100644
index d4cab7f4a..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-125.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-150.png b/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-150.png
deleted file mode 100644
index 6b152186e..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-150.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-200.png b/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-200.png
deleted file mode 100644
index b2dcbb71b..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-200.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-400.png b/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-400.png
deleted file mode 100644
index 244527fd5..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/StoreLogo.scale-400.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-100.png b/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-100.png
deleted file mode 100644
index 657cba295..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-100.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-125.png b/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-125.png
deleted file mode 100644
index a610dfe94..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-125.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-150.png b/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-150.png
deleted file mode 100644
index 1fe336ecc..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-150.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-200.png b/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-200.png
deleted file mode 100644
index b316b16bd..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-200.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-400.png b/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-400.png
deleted file mode 100644
index 98118932a..000000000
Binary files a/reference/ToDo/src/ToDo.Windows/Images/Wide310x150Logo.scale-400.png and /dev/null differ
diff --git a/reference/ToDo/src/ToDo.Windows/Properties/launchsettings.json b/reference/ToDo/src/ToDo.Windows/Properties/launchsettings.json
deleted file mode 100644
index 9d9dff014..000000000
--- a/reference/ToDo/src/ToDo.Windows/Properties/launchsettings.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "profiles": {
- "ToDo.Windows (Package)": {
- "commandName": "MsixPackage"
- },
- //"ToDo.Windows (Unpackaged)": {
- // "commandName": "Project"
- //}
- }
-}
diff --git a/reference/ToDo/src/ToDo.Windows/ToDo.Windows.csproj b/reference/ToDo/src/ToDo.Windows/ToDo.Windows.csproj
deleted file mode 100644
index 7e6ef1e0b..000000000
--- a/reference/ToDo/src/ToDo.Windows/ToDo.Windows.csproj
+++ /dev/null
@@ -1,184 +0,0 @@
-
-
- WinExe
- net8.0-windows10.0.19041.0
- 10.0.17763.0
- ToDo
- app.manifest
- x86;x64;arm64
- win-x86;win-x64;win-arm64
- win-$(Platform).pubxml
- true
- en
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
- <_OtherPriFiles Include="@(PackagingOutputs)" Condition="'%(Extension)' == '.pri' and ('%(PackagingOutputs.ReferenceSourceTarget)' == 'ProjectReference' or '%(PackagingOutputs.NugetSourceType)'=='Package')" />
-
-
-
-
-
-
-
- <_OtherPriFiles1 Include="@(_ReferenceRelatedPaths)" Condition="'%(Extension)' == '.pri' and ('%(_ReferenceRelatedPaths.ReferenceSourceTarget)' == 'ProjectReference' or '%(_ReferenceRelatedPaths.NugetSourceType)'=='Package')" />
- <_ReferenceRelatedPaths Remove="@(_OtherPriFiles1)" />
-
- <_OtherPriFiles2 Include="@(ReferenceCopyLocalPaths)" Condition="'%(Extension)' == '.pri' and ('%(ReferenceCopyLocalPaths.ReferenceSourceTarget)' == 'ProjectReference' or '%(ReferenceCopyLocalPaths.NugetSourceType)'=='Package')" />
-
-
-
-
-
-
-
-
- <_WebView2CoreFilesToExclude Include="@(ResolvedFileToPublish)" Condition="'%(Filename)' == 'Microsoft.Web.WebView2.Core'"/>
-
-
- <_WebView2CoreFilesToExclude Remove="@(_WebView2CoreFilesToExclude)" Condition="$([System.String]::Copy(%(FullPath)).Contains('.nuget'))"/>
-
-
-
-
-
-
-
-
- <_WebView2CoreOutputsToExclude Include="@(PackagingOutputs)" Condition="'%(Filename)' == 'Microsoft.Web.WebView2.Core'"/>
-
-
- <_WebView2CoreOutputsToExclude Remove="@(_WebView2CoreOutputsToExclude)" Condition="$([System.String]::Copy(%(FullPath)).Contains('.nuget'))"/>
-
-
-
-
-
diff --git a/reference/ToDo/src/ToDo.sln b/reference/ToDo/src/ToDo.sln
index 980cded29..048d966c6 100644
--- a/reference/ToDo/src/ToDo.sln
+++ b/reference/ToDo/src/ToDo.sln
@@ -1,46 +1,22 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
+VisualStudioVersion = 17.2.32210.308
MinimumVisualStudioVersion = 15.0.26124.0
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ToDo.UI", "ToDo.UI\ToDo.UI.shproj", "{6279C845-92F8-4333-AB99-3D213163593C}"
+
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToDo", "ToDo\ToDo.csproj", "{59D70BD3-2BAF-4B44-8C73-66849B211F5E}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platforms", "Platforms", "{B33CA1B4-44EE-4E67-ACF2-8DD48F6F5423}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToDo.Skia.Gtk", "ToDo.Skia.Gtk\ToDo.Skia.Gtk.csproj", "{E05DB577-91A2-438F-9F53-5EFA29DA9D8D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToDo.Wasm", "ToDo.Wasm\ToDo.Wasm.csproj", "{1B50AF32-455B-4903-8539-9FD7C5C5D86D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToDo", "ToDo\ToDo.csproj", "{2636AA43-1233-4584-86FB-443B5241FD0C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToDo.Mobile", "ToDo.Mobile\ToDo.Mobile.csproj", "{95A3910A-00D9-436E-86DE-EC1B968DA2FE}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CD1E8909-0BDA-4B27-9841-EB77146C1D7F}"
+
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BADA71DC-7FFD-4EDC-9F28-FB74AEADC713}"
ProjectSection(SolutionItems) = preProject
+ .gitignore = .gitignore
Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
- Extensions.props = Extensions.props
- Extensions.winui.props = Extensions.winui.props
+ global.json = global.json
+ Directory.Packages.props = Directory.Packages.props
EndProjectSection
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToDo.Windows", "ToDo.Windows\ToDo.Windows.csproj", "{932D6110-DE86-4BF9-B8D6-05D66CA507D7}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
- Ad-Hoc|ARM = Ad-Hoc|ARM
- Ad-Hoc|ARM64 = Ad-Hoc|ARM64
- Ad-Hoc|iPhone = Ad-Hoc|iPhone
- Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
- Ad-Hoc|x64 = Ad-Hoc|x64
- Ad-Hoc|x86 = Ad-Hoc|x86
- AppStore|Any CPU = AppStore|Any CPU
- AppStore|ARM = AppStore|ARM
- AppStore|ARM64 = AppStore|ARM64
- AppStore|iPhone = AppStore|iPhone
- AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
- AppStore|x64 = AppStore|x64
- AppStore|x86 = AppStore|x86
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
@@ -57,334 +33,55 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|ARM.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|ARM.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|ARM64.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|x64.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|x64.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.AppStore|x86.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|ARM.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|ARM64.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|iPhone.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|x64.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Debug|x86.Build.0 = Debug|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|Any CPU.Build.0 = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|ARM.ActiveCfg = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|ARM.Build.0 = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|ARM64.ActiveCfg = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|ARM64.Build.0 = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|iPhone.ActiveCfg = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|iPhone.Build.0 = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|x64.ActiveCfg = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|x64.Build.0 = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|x86.ActiveCfg = Release|Any CPU
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D}.Release|x86.Build.0 = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|ARM.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|ARM.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|ARM64.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|x64.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|x64.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.AppStore|x86.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|ARM.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|ARM64.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|iPhone.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|x64.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|x64.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Debug|x86.Build.0 = Debug|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|Any CPU.Build.0 = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|ARM.ActiveCfg = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|ARM.Build.0 = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|ARM64.ActiveCfg = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|ARM64.Build.0 = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|iPhone.ActiveCfg = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|iPhone.Build.0 = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|x64.ActiveCfg = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|x64.Build.0 = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|x86.ActiveCfg = Release|Any CPU
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D}.Release|x86.Build.0 = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|ARM.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|ARM.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|ARM64.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|x64.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|x64.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.AppStore|x86.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|ARM.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|ARM64.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|x64.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Debug|x86.Build.0 = Debug|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|Any CPU.Build.0 = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|ARM.ActiveCfg = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|ARM.Build.0 = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|ARM64.ActiveCfg = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|ARM64.Build.0 = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|iPhone.Build.0 = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|x64.ActiveCfg = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|x64.Build.0 = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|x86.ActiveCfg = Release|Any CPU
- {2636AA43-1233-4584-86FB-443B5241FD0C}.Release|x86.Build.0 = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|ARM.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|ARM.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|ARM64.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|x64.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|x64.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.AppStore|x86.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|ARM.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|ARM64.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|iPhone.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|x64.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|x64.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|x64.Deploy.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|x86.ActiveCfg = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Debug|x86.Build.0 = Debug|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|Any CPU.Build.0 = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|ARM.ActiveCfg = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|ARM.Build.0 = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|ARM64.ActiveCfg = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|ARM64.Build.0 = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|iPhone.ActiveCfg = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|iPhone.Build.0 = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|x64.ActiveCfg = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|x64.Build.0 = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|x86.ActiveCfg = Release|Any CPU
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE}.Release|x86.Build.0 = Release|Any CPU
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|Any CPU.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|Any CPU.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|Any CPU.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|ARM.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|ARM.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|ARM.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|ARM64.ActiveCfg = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|ARM64.Build.0 = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|ARM64.Deploy.0 = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|iPhone.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|iPhone.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|iPhone.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|x64.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|x64.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|x64.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|x86.ActiveCfg = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|x86.Build.0 = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Ad-Hoc|x86.Deploy.0 = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|Any CPU.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|Any CPU.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|Any CPU.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|ARM.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|ARM.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|ARM.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|ARM64.ActiveCfg = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|ARM64.Build.0 = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|ARM64.Deploy.0 = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|iPhone.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|iPhone.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|iPhone.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|iPhoneSimulator.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|iPhoneSimulator.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|iPhoneSimulator.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|x64.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|x64.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|x64.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|x86.ActiveCfg = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|x86.Build.0 = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.AppStore|x86.Deploy.0 = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|Any CPU.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|Any CPU.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|Any CPU.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|ARM.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|ARM.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|ARM.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|ARM64.ActiveCfg = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|ARM64.Build.0 = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|ARM64.Deploy.0 = Debug|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|iPhone.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|iPhone.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|iPhone.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|iPhoneSimulator.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|iPhoneSimulator.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|iPhoneSimulator.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|x64.ActiveCfg = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|x64.Build.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|x64.Deploy.0 = Debug|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|x86.ActiveCfg = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|x86.Build.0 = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Debug|x86.Deploy.0 = Debug|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|Any CPU.ActiveCfg = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|Any CPU.Build.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|Any CPU.Deploy.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|ARM.ActiveCfg = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|ARM.Build.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|ARM.Deploy.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|ARM64.ActiveCfg = Release|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|ARM64.Build.0 = Release|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|ARM64.Deploy.0 = Release|arm64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|iPhone.ActiveCfg = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|iPhone.Build.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|iPhone.Deploy.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|iPhoneSimulator.ActiveCfg = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|iPhoneSimulator.Build.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|iPhoneSimulator.Deploy.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|x64.ActiveCfg = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|x64.Build.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|x64.Deploy.0 = Release|x64
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|x86.ActiveCfg = Release|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|x86.Build.0 = Release|x86
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7}.Release|x86.Deploy.0 = Release|x86
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|ARM.Build.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|ARM.Deploy.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|ARM64.Deploy.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|iPhone.Deploy.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|x64.Build.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|x64.Deploy.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|x86.Build.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Debug|x86.Deploy.0 = Debug|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|ARM.ActiveCfg = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|ARM.Build.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|ARM.Deploy.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|ARM64.Build.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|ARM64.Deploy.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|iPhone.Build.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|iPhone.Deploy.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|x64.ActiveCfg = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|x64.Build.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|x64.Deploy.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|x86.ActiveCfg = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|x86.Build.0 = Release|Any CPU
+ {59D70BD3-2BAF-4B44-8C73-66849B211F5E}.Release|x86.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {E05DB577-91A2-438F-9F53-5EFA29DA9D8D} = {B33CA1B4-44EE-4E67-ACF2-8DD48F6F5423}
- {1B50AF32-455B-4903-8539-9FD7C5C5D86D} = {B33CA1B4-44EE-4E67-ACF2-8DD48F6F5423}
- {95A3910A-00D9-436E-86DE-EC1B968DA2FE} = {B33CA1B4-44EE-4E67-ACF2-8DD48F6F5423}
- {932D6110-DE86-4BF9-B8D6-05D66CA507D7} = {B33CA1B4-44EE-4E67-ACF2-8DD48F6F5423}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {C7433AE2-B1A0-4C1A-887E-5CAA7AAF67A6}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- ToDo.UI\ToDo.UI.projitems*{1b50af32-455b-4903-8539-9fd7c5c5d86d}*SharedItemsImports = 5
- ToDo.UI\ToDo.UI.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
- ToDo.UI\ToDo.UI.projitems*{932d6110-de86-4bf9-b8d6-05d66ca507d7}*SharedItemsImports = 5
- ToDo.UI\ToDo.UI.projitems*{95a3910a-00d9-436e-86de-ec1b968da2fe}*SharedItemsImports = 5
- ToDo.UI\ToDo.UI.projitems*{e05db577-91a2-438f-9f53-5efa29da9d8d}*SharedItemsImports = 5
+ SolutionGuid = {06E7B006-5692-4EF7-9A86-CAB544A9C232}
EndGlobalSection
EndGlobal
diff --git a/reference/ToDo/src/ToDo/App.xaml b/reference/ToDo/src/ToDo/App.xaml
new file mode 100644
index 000000000..d15b55b39
--- /dev/null
+++ b/reference/ToDo/src/ToDo/App.xaml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #51000000
+
+
+ #51FFFFFF
+
+
+
+
+
+
+
+
+
+
+
+ 500
+
+
+
+
+ 800
+ 1000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/ToDo/src/ToDo/App.xaml.cs b/reference/ToDo/src/ToDo/App.xaml.cs
new file mode 100644
index 000000000..815df965a
--- /dev/null
+++ b/reference/ToDo/src/ToDo/App.xaml.cs
@@ -0,0 +1,144 @@
+using Uno.Resizetizer;
+
+namespace ToDo;
+
+public partial class App : Application
+{
+ ///
+ /// 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().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ public 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
+ .UseConfiguration(configure: configBuilder =>
+ configBuilder
+ // Load configuration information from appconfig.json
+ .EmbeddedSource()
+ .EmbeddedSource("platform")
+ // Load OAuth configuration
+ .Section()
+ // Load Mock configuration
+ .Section()
+ // Enable app settings
+ .Section()
+ )
+ // Enable localization (see appsettings.json for supported languages)
+ .UseLocalization()
+ // Register Json serializers (ISerializer and ISerializer)
+ .UseSerialization()
+ .ConfigureServices(
+ (context, services) => {
+ var section = context.Configuration.GetSection(nameof(Mock));
+ var useMocks = bool.TryParse(section[nameof(Mock.IsEnabled)], out var isMocked) ? isMocked : false;
+#if USE_MOCKS
+ // This is required for UI Testing where USE_MOCKS is enabled
+ useMocks=true;;
+#endif
+ services
+ .AddEndpoints(context, useMocks: useMocks)
+ .AddServices(useMocks: useMocks);
+ })
+ .UseNavigation(ReactiveViewModelMappings.ViewModelMappings, RegisterRoutes)
+ .UseThemeSwitching()
+ );
+ MainWindow = builder.Window;
+
+#if DEBUG
+ MainWindow.EnableHotReload();
+#endif
+ MainWindow.SetWindowIcon();
+
+ Host = await builder.NavigateAsync();
+ }
+
+ private static void RegisterRoutes(IViewRegistry views, IRouteRegistry routes)
+ {
+ LocalizableMessageDialogViewMap BuildDialogViewMap(string section, bool delayUserInput, int defaultButtonIndex, params (object Id, string labelKeyPath)[] buttons)
+ {
+ return new LocalizableMessageDialogViewMap
+ (
+ Content: localizer => localizer![ResourceKey(ResourceKeys.DialogContent)],
+ Title: localizer => localizer![ResourceKey(ResourceKeys.DialogTitle)],
+ DelayUserInput: delayUserInput,
+ DefaultButtonIndex: defaultButtonIndex,
+ Buttons: buttons
+ .Select(x => new LocalizableDialogAction(LabelProvider: localizer => localizer![ResourceKey(x.labelKeyPath)], Id: x.Id))
+ .ToArray()
+ );
+ string ResourceKey(string keyPath)
+ {
+ // map absolute/relative path accordingly
+ return keyPath.StartsWith("./") ? keyPath.Substring(2) : $"Dialog_{section}_{keyPath}";
+ }
+ }
+
+ var deleteButton = (DialogResults.Affirmative, ResourceKeys.DeleteButton);
+ var cancelButton = (DialogResults.Negative, ResourceKeys.CancelButton);
+ var confirmDeleteListDialog = BuildDialogViewMap(Dialog.ConfirmDeleteList, true, 0, deleteButton, cancelButton);
+ var confirmDeleteTaskDialog = BuildDialogViewMap(Dialog.ConfirmDeleteTask, true, 0, deleteButton, cancelButton);
+ var confirmSignOutDialog = BuildDialogViewMap(Dialog.ConfirmSignOut, true, 0, (DialogResults.Affirmative, ResourceKeys.SignOutButton), cancelButton);
+
+ views.Register(
+ // Dialogs and Flyouts
+ new ViewMap(),
+ new ViewMap(),
+ new ViewMap(Data: new DataMap()),
+ new ViewMap(),
+
+ // Views
+ new ViewMap(),
+ new ViewMap(),
+ new ViewMap(),
+ new ViewMap(),
+ new ViewMap(),
+ new ViewMap(),
+ new DataViewMap(),
+ new DataViewMap(),
+ confirmDeleteListDialog,
+ confirmDeleteTaskDialog,
+ confirmSignOutDialog
+ );
+
+ routes.Register(
+ new RouteMap("", View: views.FindByViewModel(), Nested: new RouteMap[]
+ {
+ new("Welcome", View: views.FindByViewModel()),
+ new("Home", View: views.FindByViewModel()),
+ new("TaskList", View: views.FindByViewModel(), Nested: new[]
+ {
+ new RouteMap("ToDo", IsDefault:true),
+ new RouteMap("Completed")
+ }),
+ new("Task", View: views.FindByViewModel(), DependsOn:"TaskList"),
+ new("TaskSearch", View: views.FindByView(), Nested: new RouteMap[]
+ {
+ new("Search", View: views.FindByViewModel(), IsDefault: true)
+ }),
+ new("Settings", View: views.FindByViewModel()),
+ new("AddTask", View: views.FindByViewModel()),
+ new("AddList", View: views.FindByViewModel()),
+ new("ExpirationDate", View: views.FindByViewModel()),
+ new("RenameList", View: views.FindByViewModel()),
+ new(Dialog.ConfirmDeleteList, confirmDeleteListDialog),
+ new(Dialog.ConfirmDeleteTask, confirmDeleteTaskDialog),
+ new(Dialog.ConfirmSignOut, confirmSignOutDialog)
+ })
+ );
+ }
+}
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/Material/Roboto-Light.ttf b/reference/ToDo/src/ToDo/Assets/Fonts/Material/Roboto-Light.ttf
similarity index 100%
rename from reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/Material/Roboto-Light.ttf
rename to reference/ToDo/src/ToDo/Assets/Fonts/Material/Roboto-Light.ttf
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/Material/Roboto-Medium.ttf b/reference/ToDo/src/ToDo/Assets/Fonts/Material/Roboto-Medium.ttf
similarity index 100%
rename from reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/Material/Roboto-Medium.ttf
rename to reference/ToDo/src/ToDo/Assets/Fonts/Material/Roboto-Medium.ttf
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/Material/Roboto-Regular.ttf b/reference/ToDo/src/ToDo/Assets/Fonts/Material/Roboto-Regular.ttf
similarity index 100%
rename from reference/ToDo/src/ToDo.Mobile/Android/Assets/Fonts/Material/Roboto-Regular.ttf
rename to reference/ToDo/src/ToDo/Assets/Fonts/Material/Roboto-Regular.ttf
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/back.png b/reference/ToDo/src/ToDo/Assets/Icons/back.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/back.png
rename to reference/ToDo/src/ToDo/Assets/Icons/back.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-100.png b/reference/ToDo/src/ToDo/Assets/Icons/back.scale-100.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-100.png
rename to reference/ToDo/src/ToDo/Assets/Icons/back.scale-100.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-150.png b/reference/ToDo/src/ToDo/Assets/Icons/back.scale-150.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-150.png
rename to reference/ToDo/src/ToDo/Assets/Icons/back.scale-150.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-200.png b/reference/ToDo/src/ToDo/Assets/Icons/back.scale-200.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-200.png
rename to reference/ToDo/src/ToDo/Assets/Icons/back.scale-200.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-300.png b/reference/ToDo/src/ToDo/Assets/Icons/back.scale-300.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-300.png
rename to reference/ToDo/src/ToDo/Assets/Icons/back.scale-300.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-400.png b/reference/ToDo/src/ToDo/Assets/Icons/back.scale-400.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/back.scale-400.png
rename to reference/ToDo/src/ToDo/Assets/Icons/back.scale-400.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/close.png b/reference/ToDo/src/ToDo/Assets/Icons/close.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/close.png
rename to reference/ToDo/src/ToDo/Assets/Icons/close.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-100.png b/reference/ToDo/src/ToDo/Assets/Icons/close.scale-100.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-100.png
rename to reference/ToDo/src/ToDo/Assets/Icons/close.scale-100.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-150.png b/reference/ToDo/src/ToDo/Assets/Icons/close.scale-150.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-150.png
rename to reference/ToDo/src/ToDo/Assets/Icons/close.scale-150.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-200.png b/reference/ToDo/src/ToDo/Assets/Icons/close.scale-200.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-200.png
rename to reference/ToDo/src/ToDo/Assets/Icons/close.scale-200.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-300.png b/reference/ToDo/src/ToDo/Assets/Icons/close.scale-300.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-300.png
rename to reference/ToDo/src/ToDo/Assets/Icons/close.scale-300.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-400.png b/reference/ToDo/src/ToDo/Assets/Icons/close.scale-400.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/close.scale-400.png
rename to reference/ToDo/src/ToDo/Assets/Icons/close.scale-400.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-100.png b/reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-100.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-100.png
rename to reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-100.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-150.png b/reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-150.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-150.png
rename to reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-150.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-200.png b/reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-200.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-200.png
rename to reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-200.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-300.png b/reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-300.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-300.png
rename to reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-300.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-400.png b/reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-400.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/delete_outline.scale-400.png
rename to reference/ToDo/src/ToDo/Assets/Icons/delete_outline.scale-400.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-100.png b/reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-100.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-100.png
rename to reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-100.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-150.png b/reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-150.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-150.png
rename to reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-150.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-200.png b/reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-200.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-200.png
rename to reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-200.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-300.png b/reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-300.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-300.png
rename to reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-300.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-400.png b/reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-400.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Icons/drive_file_rename_outline.scale-400.png
rename to reference/ToDo/src/ToDo/Assets/Icons/drive_file_rename_outline.scale-400.png
diff --git a/reference/ToDo/src/ToDo/Assets/Icons/icon.svg b/reference/ToDo/src/ToDo/Assets/Icons/icon.svg
new file mode 100644
index 000000000..a15af53aa
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Assets/Icons/icon.svg
@@ -0,0 +1,42 @@
+
+
diff --git a/reference/ToDo/src/ToDo/Assets/Icons/icon_foreground.svg b/reference/ToDo/src/ToDo/Assets/Icons/icon_foreground.svg
new file mode 100644
index 000000000..8ffc41ae3
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Assets/Icons/icon_foreground.svg
@@ -0,0 +1,137 @@
+
+
diff --git a/reference/ToDo/src/ToDo/Assets/SharedAssets.md b/reference/ToDo/src/ToDo/Assets/SharedAssets.md
new file mode 100644
index 000000000..1b84a74ab
--- /dev/null
+++ b/reference/ToDo/src/ToDo/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/reference/ToDo/src/ToDo/Assets/Splash/splash_screen.svg b/reference/ToDo/src/ToDo/Assets/Splash/splash_screen.svg
new file mode 100644
index 000000000..8ffc41ae3
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Assets/Splash/splash_screen.svg
@@ -0,0 +1,137 @@
+
+
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-100.png b/reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-100.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-100.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-100.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-150.png b/reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-150.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-150.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-150.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-200.png b/reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-200.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-200.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-200.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-300.png b/reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-300.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-300.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-300.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-400.png b/reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-400.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/uno_platform_logo.scale-400.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/uno_platform_logo.scale-400.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-100.png b/reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-100.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-100.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-100.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-150.png b/reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-150.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-150.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-150.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-200.png b/reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-200.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-200.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-200.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-300.png b/reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-300.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-300.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-300.png
diff --git a/reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-400.png b/reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-400.png
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Assets/Welcome/welcome_uno.scale-400.png
rename to reference/ToDo/src/ToDo/Assets/Welcome/welcome_uno.scale-400.png
diff --git a/reference/ToDo/src/ToDo.UI/Mock/lists.json b/reference/ToDo/src/ToDo/Assets/lists.json
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Mock/lists.json
rename to reference/ToDo/src/ToDo/Assets/lists.json
diff --git a/reference/ToDo/src/ToDo.UI/Mock/profilePicture.json b/reference/ToDo/src/ToDo/Assets/profilePicture.json
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Mock/profilePicture.json
rename to reference/ToDo/src/ToDo/Assets/profilePicture.json
diff --git a/reference/ToDo/src/ToDo.UI/Mock/tasks.json b/reference/ToDo/src/ToDo/Assets/tasks.json
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Mock/tasks.json
rename to reference/ToDo/src/ToDo/Assets/tasks.json
diff --git a/reference/ToDo/src/ToDo/Business/AuthenticationService.cs b/reference/ToDo/src/ToDo/Business/AuthenticationService.cs
index 2c9795ca0..5961787dc 100644
--- a/reference/ToDo/src/ToDo/Business/AuthenticationService.cs
+++ b/reference/ToDo/src/ToDo/Business/AuthenticationService.cs
@@ -1,4 +1,4 @@
-namespace ToDo.Business.Services;
+namespace ToDo.Business;
public class AuthenticationService : IAuthenticationService
{
diff --git a/reference/ToDo/src/ToDo/Business/IAuthenticationService.cs b/reference/ToDo/src/ToDo/Business/IAuthenticationService.cs
index 106d51757..abf53a7c4 100644
--- a/reference/ToDo/src/ToDo/Business/IAuthenticationService.cs
+++ b/reference/ToDo/src/ToDo/Business/IAuthenticationService.cs
@@ -1,4 +1,4 @@
-namespace ToDo.Business.Services;
+namespace ToDo.Business;
public interface IAuthenticationService: IAuthenticationTokenProvider
{
diff --git a/reference/ToDo/src/ToDo/Business/Mock/MockAuthenticationService.cs b/reference/ToDo/src/ToDo/Business/Mock/MockAuthenticationService.cs
index afb040e64..fb0a33845 100644
--- a/reference/ToDo/src/ToDo/Business/Mock/MockAuthenticationService.cs
+++ b/reference/ToDo/src/ToDo/Business/Mock/MockAuthenticationService.cs
@@ -1,4 +1,4 @@
-using IAuthenticationService = ToDo.Business.Services.IAuthenticationService;
+using IAuthenticationService = ToDo.Business.IAuthenticationService;
namespace ToDo.Business.Mock;
diff --git a/reference/ToDo/src/ToDo/Business/Models/TaskList.cs b/reference/ToDo/src/ToDo/Business/Models/TaskList.cs
index adfe889f1..2eb062a78 100644
--- a/reference/ToDo/src/ToDo/Business/Models/TaskList.cs
+++ b/reference/ToDo/src/ToDo/Business/Models/TaskList.cs
@@ -1,4 +1,4 @@
-namespace ToDo.Business.Models;
+namespace ToDo.Business.Models;
public partial record TaskList
{
diff --git a/reference/ToDo/src/ToDo/Business/Models/ToDoTask.cs b/reference/ToDo/src/ToDo/Business/Models/ToDoTask.cs
index b10564b6b..b8d2f51b0 100644
--- a/reference/ToDo/src/ToDo/Business/Models/ToDoTask.cs
+++ b/reference/ToDo/src/ToDo/Business/Models/ToDoTask.cs
@@ -1,4 +1,4 @@
-namespace ToDo.Business.Models;
+namespace ToDo.Business.Models;
public partial record ToDoTask
{
diff --git a/reference/ToDo/src/ToDo/Business/Models/ToDoTaskExtensions.cs b/reference/ToDo/src/ToDo/Business/Models/ToDoTaskExtensions.cs
index 79ce0ebb2..d4aa531f5 100644
--- a/reference/ToDo/src/ToDo/Business/Models/ToDoTaskExtensions.cs
+++ b/reference/ToDo/src/ToDo/Business/Models/ToDoTaskExtensions.cs
@@ -1,4 +1,4 @@
-namespace ToDo.Business.Models;
+namespace ToDo.Business.Models;
public static class ToDoTaskExtensions
{
diff --git a/reference/ToDo/src/ToDo/Business/Models/UserContext.cs b/reference/ToDo/src/ToDo/Business/Models/UserContext.cs
index 5d1bc460d..2b2014ef9 100644
--- a/reference/ToDo/src/ToDo/Business/Models/UserContext.cs
+++ b/reference/ToDo/src/ToDo/Business/Models/UserContext.cs
@@ -1,4 +1,4 @@
-namespace ToDo.Business.Models;
+namespace ToDo.Business.Models;
public partial record UserContext
{
diff --git a/reference/ToDo/src/ToDo.UI/Controls/AncestralBindingExtension.cs b/reference/ToDo/src/ToDo/Controls/AncestralBindingExtension.cs
similarity index 96%
rename from reference/ToDo/src/ToDo.UI/Controls/AncestralBindingExtension.cs
rename to reference/ToDo/src/ToDo/Controls/AncestralBindingExtension.cs
index 23de07305..8625b42dc 100644
--- a/reference/ToDo/src/ToDo.UI/Controls/AncestralBindingExtension.cs
+++ b/reference/ToDo/src/ToDo/Controls/AncestralBindingExtension.cs
@@ -1,7 +1,5 @@
-using System;
-using System.Collections.Generic;
using System.Reflection;
-using System.Text;
+using Microsoft.UI.Xaml.Markup;
namespace ToDo.Controls
{
diff --git a/reference/ToDo/src/ToDo.UI/Controls/ItemsControlBindingExtension.cs b/reference/ToDo/src/ToDo/Controls/ItemsControlBindingExtension.cs
similarity index 97%
rename from reference/ToDo/src/ToDo.UI/Controls/ItemsControlBindingExtension.cs
rename to reference/ToDo/src/ToDo/Controls/ItemsControlBindingExtension.cs
index 61d75bbfd..26aed18af 100644
--- a/reference/ToDo/src/ToDo.UI/Controls/ItemsControlBindingExtension.cs
+++ b/reference/ToDo/src/ToDo/Controls/ItemsControlBindingExtension.cs
@@ -1,6 +1,7 @@
-#nullable enable
+#nullable enable
using System.Reflection;
+using Microsoft.UI.Xaml.Markup;
namespace ToDo.Controls
{
diff --git a/reference/ToDo/src/ToDo.UI/Converters/BitmapSourceConverter.cs b/reference/ToDo/src/ToDo/Converters/BitmapSourceConverter.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Converters/BitmapSourceConverter.cs
rename to reference/ToDo/src/ToDo/Converters/BitmapSourceConverter.cs
diff --git a/reference/ToDo/src/ToDo.UI/Converters/FormatConverter.cs b/reference/ToDo/src/ToDo/Converters/FormatConverter.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Converters/FormatConverter.cs
rename to reference/ToDo/src/ToDo/Converters/FormatConverter.cs
diff --git a/reference/ToDo/src/ToDo.UI/Converters/ReferenceConverter.cs b/reference/ToDo/src/ToDo/Converters/ReferenceConverter.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Converters/ReferenceConverter.cs
rename to reference/ToDo/src/ToDo/Converters/ReferenceConverter.cs
diff --git a/reference/ToDo/src/ToDo.UI/Converters/StringCompareConverter.cs b/reference/ToDo/src/ToDo/Converters/StringCompareConverter.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Converters/StringCompareConverter.cs
rename to reference/ToDo/src/ToDo/Converters/StringCompareConverter.cs
diff --git a/reference/ToDo/src/ToDo.UI/Converters/StringFormatter.cs b/reference/ToDo/src/ToDo/Converters/StringFormatter.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Converters/StringFormatter.cs
rename to reference/ToDo/src/ToDo/Converters/StringFormatter.cs
diff --git a/reference/ToDo/src/ToDo.UI/Converters/TaskListToValueConverter.cs b/reference/ToDo/src/ToDo/Converters/TaskListToValueConverter.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Converters/TaskListToValueConverter.cs
rename to reference/ToDo/src/ToDo/Converters/TaskListToValueConverter.cs
diff --git a/reference/ToDo/src/ToDo/Data/Mock/MockTaskListEndpoint.cs b/reference/ToDo/src/ToDo/Data/Mock/MockTaskListEndpoint.cs
index be7be55ab..b81b59b29 100644
--- a/reference/ToDo/src/ToDo/Data/Mock/MockTaskListEndpoint.cs
+++ b/reference/ToDo/src/ToDo/Data/Mock/MockTaskListEndpoint.cs
@@ -1,9 +1,9 @@
-namespace ToDo.Data.Mock;
+namespace ToDo.Data.Mock;
public class MockTaskListEndpoint : ITaskListEndpoint
{
- private const string ListDataFile = "Mock/lists.json";
- private const string TasksDataFile = "Mock/tasks.json";
+ private const string ListDataFile = "Assets/lists.json";
+ private const string TasksDataFile = "Assets/tasks.json";
private readonly ISerializer _listSerializer;
@@ -50,7 +50,7 @@ private async Task> LoadAllTasks()
{
if (allTasks is null)
{
- allTasks = (await _dataService.ReadPackageFileAsync(_taskSerializer, TasksDataFile))!.ToList();
+ allTasks = (await _dataService.ReadPackageFileAsync(_taskSerializer, TasksDataFile))!.ToList();
}
return allTasks;
}
diff --git a/reference/ToDo/src/ToDo/GlobalUsings.cs b/reference/ToDo/src/ToDo/GlobalUsings.cs
index f1396c84c..71058a52d 100644
--- a/reference/ToDo/src/ToDo/GlobalUsings.cs
+++ b/reference/ToDo/src/ToDo/GlobalUsings.cs
@@ -1,6 +1,7 @@
-global using System;
-global using System.Collections.Generic;
global using System.Collections.Immutable;
+global using Microsoft.Extensions.DependencyInjection;
+global using Microsoft.Extensions.Logging;
+global using ApplicationExecutionState = Windows.ApplicationModel.Activation.ApplicationExecutionState;
global using System.Diagnostics.Contracts;
global using System.Globalization;
global using System.IdentityModel.Tokens.Jwt;
@@ -15,17 +16,17 @@
global using System.IO;
global using CommunityToolkit.Mvvm.Input;
global using CommunityToolkit.Mvvm.Messaging;
-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 Microsoft.UI.Xaml.Data;
global using Microsoft.Identity.Client;
global using Refit;
+global using ToDo.Views;
+global using ToDo.Views.Dialogs;
+global using ToDo.Presentation;
global using ToDo.Business;
-global using ToDo.Business.Mock;
global using ToDo.Business.Models;
-global using ToDo.Business.Services;
global using ToDo.Configuration;
global using ToDo.Data;
global using ToDo.Data.Models;
@@ -34,10 +35,12 @@
global using Uno.Extensions.Configuration;
global using Uno.Extensions.Http;
global using Uno.Extensions.Localization;
-global using Uno.Extensions.Navigation;
global using Uno.Extensions.Reactive;
global using Uno.Extensions.Reactive.Messaging;
global using Uno.Extensions.Serialization;
global using Uno.Extensions.Storage;
global using Uno.UI.MSAL;
global using Windows.Security.Authentication.Web;
+global using System;
+global using System.Collections.Generic;
+global using Uno.Extensions.Navigation;
diff --git a/reference/ToDo/src/ToDo/IAppTheme.cs b/reference/ToDo/src/ToDo/IAppTheme.cs
deleted file mode 100644
index c82e25132..000000000
--- a/reference/ToDo/src/ToDo/IAppTheme.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace ToDo;
-
-// TODO: Extract these to uno extensions
-// See https://github.com/unoplatform/uno.extensions/discussions/420
-public interface IAppTheme
-{
- bool IsDark { get; }
-
- Task SetThemeAsync(bool darkMode);
-}
diff --git a/reference/ToDo/src/ToDo.Windows/Package.appxmanifest b/reference/ToDo/src/ToDo/Package.appxmanifest
similarity index 64%
rename from reference/ToDo/src/ToDo.Windows/Package.appxmanifest
rename to reference/ToDo/src/ToDo/Package.appxmanifest
index c76924518..d273e8cc2 100644
--- a/reference/ToDo/src/ToDo.Windows/Package.appxmanifest
+++ b/reference/ToDo/src/ToDo/Package.appxmanifest
@@ -7,14 +7,13 @@
IgnorableNamespaces="uap rescap">
- ToDo
- ToDo
- Images\StoreLogo.png
+ ToDo
+ ToDo
@@ -32,13 +31,8 @@
EntryPoint="$targetentrypoint$">
-
-
-
+ Description="ToDo">
+
diff --git a/reference/ToDo/src/ToDo/Platforms/Android/AndroidManifest.xml b/reference/ToDo/src/ToDo/Platforms/Android/AndroidManifest.xml
new file mode 100644
index 000000000..95ae07533
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/Android/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Assets/AboutAssets.txt b/reference/ToDo/src/ToDo/Platforms/Android/Assets/AboutAssets.txt
similarity index 100%
rename from reference/ToDo/src/ToDo.Mobile/Android/Assets/AboutAssets.txt
rename to reference/ToDo/src/ToDo/Platforms/Android/Assets/AboutAssets.txt
diff --git a/reference/ToDo/src/ToDo/Platforms/Android/Main.Android.cs b/reference/ToDo/src/ToDo/Platforms/Android/Main.Android.cs
new file mode 100644
index 000000000..1af826f4f
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/Android/Main.Android.cs
@@ -0,0 +1,43 @@
+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 Com.Nostra13.Universalimageloader.Core;
+using Microsoft.UI.Xaml.Media;
+
+namespace ToDo.Droid;
+
+[global::Android.App.ApplicationAttribute(
+ Label = "@string/ApplicationName",
+ Icon = "@mipmap/icon",
+ LargeHeap = true,
+ HardwareAccelerated = true,
+ Theme = "@style/AppTheme"
+)]
+public class Application : Microsoft.UI.Xaml.NativeApplication
+{
+ public Application(IntPtr javaReference, JniHandleOwnership transfer)
+ : base(() => new App(), javaReference, transfer)
+ {
+ ConfigureUniversalImageLoader();
+ }
+
+ private static void ConfigureUniversalImageLoader()
+ {
+ // Create global configuration and initialize ImageLoader with this config
+ ImageLoaderConfiguration config = new ImageLoaderConfiguration
+ .Builder(Context)
+ .Build();
+
+ ImageLoader.Instance.Init(config);
+
+ ImageSource.DefaultImageLoader = ImageLoader.Instance.LoadImageAsync;
+ }
+}
+
diff --git a/reference/ToDo/src/ToDo/Platforms/Android/MainActivity.Android.cs b/reference/ToDo/src/ToDo/Platforms/Android/MainActivity.Android.cs
new file mode 100644
index 000000000..aacb801ed
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/Android/MainActivity.Android.cs
@@ -0,0 +1,16 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+using Android.Views;
+using Android.Widget;
+
+namespace ToDo.Droid;
+
+[Activity(
+ MainLauncher = true,
+ ConfigurationChanges = global::Uno.UI.ActivityHelper.AllConfigChanges,
+ WindowSoftInputMode = SoftInput.AdjustNothing | SoftInput.StateHidden
+)]
+public class MainActivity : Microsoft.UI.Xaml.ApplicationActivity
+{
+}
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/AboutResources.txt b/reference/ToDo/src/ToDo/Platforms/Android/Resources/AboutResources.txt
similarity index 100%
rename from reference/ToDo/src/ToDo.Mobile/Android/Resources/AboutResources.txt
rename to reference/ToDo/src/ToDo/Platforms/Android/Resources/AboutResources.txt
diff --git a/reference/ToDo/src/ToDo/Platforms/Android/Resources/values/Strings.xml b/reference/ToDo/src/ToDo/Platforms/Android/Resources/values/Strings.xml
new file mode 100644
index 000000000..d273def98
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/Android/Resources/values/Strings.xml
@@ -0,0 +1,5 @@
+
+
+ Hello World, Click Me!
+ ToDo
+
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/Resources/values/Styles.xml b/reference/ToDo/src/ToDo/Platforms/Android/Resources/values/Styles.xml
similarity index 52%
rename from reference/ToDo/src/ToDo.Mobile/Android/Resources/values/Styles.xml
rename to reference/ToDo/src/ToDo/Platforms/Android/Resources/values/Styles.xml
index 2aeb92cc5..c02bd06f7 100644
--- a/reference/ToDo/src/ToDo.Mobile/Android/Resources/values/Styles.xml
+++ b/reference/ToDo/src/ToDo/Platforms/Android/Resources/values/Styles.xml
@@ -1,6 +1,6 @@
-
-
+
diff --git a/reference/ToDo/src/ToDo.Mobile/Android/environment.conf b/reference/ToDo/src/ToDo/Platforms/Android/environment.conf
similarity index 100%
rename from reference/ToDo/src/ToDo.Mobile/Android/environment.conf
rename to reference/ToDo/src/ToDo/Platforms/Android/environment.conf
diff --git a/reference/ToDo/src/ToDo/Platforms/Desktop/Program.cs b/reference/ToDo/src/ToDo/Platforms/Desktop/Program.cs
new file mode 100644
index 000000000..b3a1b9220
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/Desktop/Program.cs
@@ -0,0 +1,22 @@
+using Uno.UI.Runtime.Skia;
+
+namespace ToDo;
+
+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/reference/ToDo/src/ToDo.Mobile/MacCatalyst/Entitlements.plist b/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Entitlements.plist
similarity index 100%
rename from reference/ToDo/src/ToDo.Mobile/MacCatalyst/Entitlements.plist
rename to reference/ToDo/src/ToDo/Platforms/MacCatalyst/Entitlements.plist
diff --git a/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Info.plist b/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Info.plist
new file mode 100644
index 000000000..1bb02ddcd
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ UIDeviceFamily
+
+ 2
+
+ LSApplicationCategoryType
+ public.app-category.utilities
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/icon.appiconset
+
+
+
+
diff --git a/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Main.maccatalyst.cs b/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Main.maccatalyst.cs
new file mode 100644
index 000000000..da46bdf31
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Main.maccatalyst.cs
@@ -0,0 +1,14 @@
+using UIKit;
+
+namespace ToDo.MacCatalyst;
+
+public class EntryPoint
+{
+ // This is the main entry point of the application.
+ 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(App));
+ }
+}
diff --git a/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Media.xcassets/LaunchImages.launchimage/Contents.json b/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Media.xcassets/LaunchImages.launchimage/Contents.json
new file mode 100644
index 000000000..69555e440
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/MacCatalyst/Media.xcassets/LaunchImages.launchimage/Contents.json
@@ -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": ""
+ }
+}
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo/Platforms/WebAssembly/LinkerConfig.xml b/reference/ToDo/src/ToDo/Platforms/WebAssembly/LinkerConfig.xml
new file mode 100644
index 000000000..2c294e642
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/WebAssembly/LinkerConfig.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/reference/ToDo/src/ToDo/Platforms/WebAssembly/Program.cs b/reference/ToDo/src/ToDo/Platforms/WebAssembly/Program.cs
new file mode 100644
index 000000000..4fb2e8b60
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/WebAssembly/Program.cs
@@ -0,0 +1,13 @@
+namespace ToDo;
+
+public class Program
+{
+ private static App? _app;
+
+ public static int Main(string[] args)
+ {
+ Microsoft.UI.Xaml.Application.Start(_ => _app = new App());
+
+ return 0;
+ }
+}
diff --git a/reference/ToDo/src/ToDo/Platforms/WebAssembly/WasmCSS/Fonts.css b/reference/ToDo/src/ToDo/Platforms/WebAssembly/WasmCSS/Fonts.css
new file mode 100644
index 000000000..4fdd60555
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/WebAssembly/WasmCSS/Fonts.css
@@ -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;
+}
diff --git a/reference/ToDo/src/ToDo/Platforms/WebAssembly/WasmScripts/AppManifest.js b/reference/ToDo/src/ToDo/Platforms/WebAssembly/WasmScripts/AppManifest.js
new file mode 100644
index 000000000..e4b67d1af
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/WebAssembly/WasmScripts/AppManifest.js
@@ -0,0 +1,3 @@
+var UnoAppManifest = {
+ displayName: "ToDo"
+}
diff --git a/reference/ToDo/src/ToDo/Platforms/WebAssembly/manifest.webmanifest b/reference/ToDo/src/ToDo/Platforms/WebAssembly/manifest.webmanifest
new file mode 100644
index 000000000..554ab81a6
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/WebAssembly/manifest.webmanifest
@@ -0,0 +1,10 @@
+{
+ "background_color": "#ffffff",
+ "description": "ToDo",
+ "display": "standalone",
+ "name": "ToDo",
+ "short_name": "ToDo",
+ "start_url": "/index.html",
+ "theme_color": "#ffffff",
+ "scope": "/"
+}
diff --git a/reference/ToDo/src/ToDo/Platforms/WebAssembly/wwwroot/staticwebapp.config.json b/reference/ToDo/src/ToDo/Platforms/WebAssembly/wwwroot/staticwebapp.config.json
new file mode 100644
index 000000000..79c1b17c4
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/WebAssembly/wwwroot/staticwebapp.config.json
@@ -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"
+ }
+ }
+ ]
+}
diff --git a/reference/ToDo/src/ToDo/Platforms/WebAssembly/wwwroot/web.config b/reference/ToDo/src/ToDo/Platforms/WebAssembly/wwwroot/web.config
new file mode 100644
index 000000000..8f5a860f5
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/WebAssembly/wwwroot/web.config
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/ToDo/src/ToDo.Windows/Properties/PublishProfiles/win-arm64.pubxml b/reference/ToDo/src/ToDo/Platforms/Windows/Properties/PublishProfiles/win-arm64.pubxml
similarity index 100%
rename from reference/ToDo/src/ToDo.Windows/Properties/PublishProfiles/win-arm64.pubxml
rename to reference/ToDo/src/ToDo/Platforms/Windows/Properties/PublishProfiles/win-arm64.pubxml
diff --git a/reference/ToDo/src/ToDo.Windows/Properties/PublishProfiles/win-x64.pubxml b/reference/ToDo/src/ToDo/Platforms/Windows/Properties/PublishProfiles/win-x64.pubxml
similarity index 100%
rename from reference/ToDo/src/ToDo.Windows/Properties/PublishProfiles/win-x64.pubxml
rename to reference/ToDo/src/ToDo/Platforms/Windows/Properties/PublishProfiles/win-x64.pubxml
diff --git a/reference/ToDo/src/ToDo.Windows/Properties/PublishProfiles/win-x86.pubxml b/reference/ToDo/src/ToDo/Platforms/Windows/Properties/PublishProfiles/win-x86.pubxml
similarity index 100%
rename from reference/ToDo/src/ToDo.Windows/Properties/PublishProfiles/win-x86.pubxml
rename to reference/ToDo/src/ToDo/Platforms/Windows/Properties/PublishProfiles/win-x86.pubxml
diff --git a/reference/ToDo/src/ToDo.Mobile/MacOS/Entitlements.plist b/reference/ToDo/src/ToDo/Platforms/iOS/Entitlements.plist
similarity index 70%
rename from reference/ToDo/src/ToDo.Mobile/MacOS/Entitlements.plist
rename to reference/ToDo/src/ToDo/Platforms/iOS/Entitlements.plist
index fa00fff6b..24c310368 100644
--- a/reference/ToDo/src/ToDo.Mobile/MacOS/Entitlements.plist
+++ b/reference/ToDo/src/ToDo/Platforms/iOS/Entitlements.plist
@@ -1,7 +1,6 @@
-
+
-
-
+
+
-
diff --git a/reference/ToDo/src/ToDo/Platforms/iOS/Info.plist b/reference/ToDo/src/ToDo/Platforms/iOS/Info.plist
new file mode 100644
index 000000000..ea3dcb4bc
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/iOS/Info.plist
@@ -0,0 +1,43 @@
+
+
+
+
+ LSRequiresIPhoneOS
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ armv7
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+ XSAppIconAssets
+ Assets.xcassets/icon.appiconset
+ UIApplicationSupportsIndirectInputEvents
+
+
+
+
+
diff --git a/reference/ToDo/src/ToDo/Platforms/iOS/Main.iOS.cs b/reference/ToDo/src/ToDo/Platforms/iOS/Main.iOS.cs
new file mode 100644
index 000000000..7b8047937
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/iOS/Main.iOS.cs
@@ -0,0 +1,14 @@
+using UIKit;
+
+namespace ToDo.iOS;
+
+public class EntryPoint
+{
+ // This is the main entry point of the application.
+ 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(App));
+ }
+}
diff --git a/reference/ToDo/src/ToDo/Platforms/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json b/reference/ToDo/src/ToDo/Platforms/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json
new file mode 100644
index 000000000..69555e440
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json
@@ -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": ""
+ }
+}
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo/Platforms/iOS/PrivacyInfo.xcprivacy b/reference/ToDo/src/ToDo/Platforms/iOS/PrivacyInfo.xcprivacy
new file mode 100644
index 000000000..902abb059
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Platforms/iOS/PrivacyInfo.xcprivacy
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryFileTimestamp
+ NSPrivacyAccessedAPITypeReasons
+
+ C617.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategorySystemBootTime
+ NSPrivacyAccessedAPITypeReasons
+
+ 35F9.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryDiskSpace
+ NSPrivacyAccessedAPITypeReasons
+
+ E174.1
+
+
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
diff --git a/reference/ToDo/src/ToDo/Presentation/HomeViewModel.cs b/reference/ToDo/src/ToDo/Presentation/HomeViewModel.cs
index acb731796..533f9b616 100644
--- a/reference/ToDo/src/ToDo/Presentation/HomeViewModel.cs
+++ b/reference/ToDo/src/ToDo/Presentation/HomeViewModel.cs
@@ -1,4 +1,4 @@
-using IAuthenticationService = ToDo.Business.Services.IAuthenticationService;
+using IAuthenticationService = ToDo.Business.IAuthenticationService;
namespace ToDo.Presentation;
diff --git a/reference/ToDo/src/ToDo/Presentation/SettingsViewModel.cs b/reference/ToDo/src/ToDo/Presentation/SettingsViewModel.cs
index 8157877d8..8e33a46d2 100644
--- a/reference/ToDo/src/ToDo/Presentation/SettingsViewModel.cs
+++ b/reference/ToDo/src/ToDo/Presentation/SettingsViewModel.cs
@@ -1,5 +1,5 @@
using Dialog = ToDo.Presentation.Dialogs.Dialog;
-using IAuthenticationService = ToDo.Business.Services.IAuthenticationService;
+using IAuthenticationService = ToDo.Business.IAuthenticationService;
namespace ToDo.Presentation;
@@ -9,8 +9,9 @@ public partial class SettingsViewModel
private readonly IUserProfilePictureService _userSvc;
private readonly INavigator _sourceNavigator;
private readonly INavigator _navigator;
- private IAppTheme _appTheme;
- private IWritableOptions _appSettings;
+ private readonly IThemeService _themeService;
+
+ private bool _isDark;
public ILocalizationService LocalizationSettings { get; }
@@ -18,7 +19,6 @@ public partial class SettingsViewModel
public string[] AppThemes { get; }
-
public SettingsViewModel(
NavigationRequest request,
INavigator navigator,
@@ -27,24 +27,24 @@ public SettingsViewModel(
IOptions localizationConfiguration,
ILocalizationService localizationSettings,
IStringLocalizer localizer,
- IAppTheme appTheme,
- IWritableOptions appSettings)
+ IThemeService themeService,
+ IDispatcher dispatcher)
{
_sourceNavigator = request?.Source ?? navigator;
_navigator = navigator;
_authService = authService;
_userSvc = userSvc;
LocalizationSettings = localizationSettings;
- _appTheme = appTheme;
- _appSettings = appSettings;
+ _themeService = themeService;
AppThemes = new string[] { localizer["SettingsFlyout_ThemeLight"], localizer["SettingsFlyout_ThemeDark"] };
- SelectedAppTheme = State.Value(this, () => AppThemes[appTheme.IsDark ? 1 : 0]);
- SelectedAppTheme.Execute(ChangeAppTheme);
+ _ = dispatcher.TryEnqueue(() => {
+ _isDark = _themeService.IsDark;
+ });
Cultures = localizationConfiguration.Value!.Cultures!.Select(c => new DisplayCulture(localizer[$"SettingsFlyout_LanguageLabel_{c}"], c)).ToArray();
- SelectedCulture = State.Value(this, () => Cultures.FirstOrDefault(c => c.Culture == LocalizationSettings.CurrentCulture.Name) ?? Cultures.First());
+ SelectedCulture = State.Value(this, () => Cultures.FirstOrDefault(c => c.Culture == LocalizationSettings.CurrentCulture.ToString()) ?? Cultures.First());
SelectedCulture.Execute(ChangeLanguage);
}
@@ -58,8 +58,7 @@ public SettingsViewModel(
public IState SelectedCulture { get; }
[Value]
- public IState SelectedAppTheme { get; }
-
+ public IState SelectedAppTheme => State.Value(this, () => AppThemes[_isDark ? 1 : 0]);
public async ValueTask SignOut(CancellationToken ct)
{
@@ -72,6 +71,14 @@ public async ValueTask SignOut(CancellationToken ct)
}
}
+ public async ValueTask ChangeAppTheme(CancellationToken ct)
+ {
+ var currentTheme = _themeService.Theme;
+ var newTheme = currentTheme == AppTheme.Dark ? AppTheme.Light : AppTheme.Dark;
+ await _themeService.SetThemeAsync(newTheme);
+ WeakReferenceMessenger.Default.Send(new ThemeChangedMessage(newTheme));
+ }
+
private async ValueTask ChangeLanguage(DisplayCulture? culture, CancellationToken ct)
{
if (culture is not null)
@@ -81,16 +88,5 @@ private async ValueTask ChangeLanguage(DisplayCulture? culture, CancellationToke
}
}
-
- private async ValueTask ChangeAppTheme(string? appTheme, CancellationToken ct)
- {
- if (appTheme is { Length: > 0 })
- {
- var isDark = Array.IndexOf(AppThemes, appTheme) == 1;
- await _appTheme.SetThemeAsync(isDark);
- await _appSettings.UpdateAsync(s => s with { IsDark = isDark });
- }
- }
-
public partial record DisplayCulture(string Display, string Culture);
}
diff --git a/reference/ToDo/src/ToDo/Presentation/ShellViewModel.cs b/reference/ToDo/src/ToDo/Presentation/ShellViewModel.cs
index b882ba978..aa8ffbc8c 100644
--- a/reference/ToDo/src/ToDo/Presentation/ShellViewModel.cs
+++ b/reference/ToDo/src/ToDo/Presentation/ShellViewModel.cs
@@ -1,31 +1,30 @@
-
namespace ToDo.Presentation;
public class ShellViewModel
{
- private readonly INavigator _navigator;
- private readonly IAuthenticationTokenProvider _auth;
+ private readonly INavigator _navigator;
+ private readonly IAuthenticationTokenProvider _auth;
- public ShellViewModel(
- INavigator navigator,
- IAuthenticationTokenProvider authentication)
- {
- _navigator = navigator;
- _auth= authentication;
+ public ShellViewModel(
+ INavigator navigator,
+ IAuthenticationTokenProvider authentication)
+ {
+ _navigator = navigator;
+ _auth = authentication;
- _ = Start();
- }
+ _ = Start();
+ }
- public async Task Start()
- {
- var token = await _auth.GetAccessToken();
- if (string.IsNullOrWhiteSpace(token))
- {
- await _navigator.NavigateViewModelAsync(this);
- }
- else
- {
- await _navigator.NavigateViewModelAsync(this);
- }
- }
+ public async Task Start()
+ {
+ var token = await _auth.GetAccessToken();
+ if (string.IsNullOrWhiteSpace(token))
+ {
+ await _navigator.NavigateViewModelAsync(this);
+ }
+ else
+ {
+ await _navigator.NavigateViewModelAsync(this);
+ }
+ }
}
diff --git a/reference/ToDo/src/ToDo/Presentation/WelcomeViewModel.cs b/reference/ToDo/src/ToDo/Presentation/WelcomeViewModel.cs
index 69f6bff7f..1bee1c709 100644
--- a/reference/ToDo/src/ToDo/Presentation/WelcomeViewModel.cs
+++ b/reference/ToDo/src/ToDo/Presentation/WelcomeViewModel.cs
@@ -1,4 +1,4 @@
-using IAuthenticationService = ToDo.Business.Services.IAuthenticationService;
+using IAuthenticationService = ToDo.Business.IAuthenticationService;
namespace ToDo.Presentation;
diff --git a/reference/ToDo/src/ToDo/Properties/launchSettings.json b/reference/ToDo/src/ToDo/Properties/launchSettings.json
new file mode 100644
index 000000000..bc0096ad6
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Properties/launchSettings.json
@@ -0,0 +1,40 @@
+{
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:8080",
+ "sslPort": 0
+ }
+ },
+ "profiles": {
+ // This profile is first in order for dotnet run to pick it up by default
+ "ToDo (WebAssembly)": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "http://localhost:5000",
+ "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "ToDo (WebAssembly IIS Express)": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ // Note: In order to select this profile, you'll need to comment the `Packaged` profile below until this is fixed: https://aka.platform.uno/wasdk-maui-debug-profile-issue
+ "ToDo (WinAppSDK Unpackaged)": {
+ "commandName": "Project",
+ "compatibleTargetFramework": "windows"
+ },
+ "ToDo (WinAppSDK Packaged)": {
+ "commandName": "MsixPackage",
+ "compatibleTargetFramework": "windows"
+ }
+ }
+}
diff --git a/reference/ToDo/src/ToDo/ReadMe.md b/reference/ToDo/src/ToDo/ReadMe.md
new file mode 100644
index 000000000..93482da23
--- /dev/null
+++ b/reference/ToDo/src/ToDo/ReadMe.md
@@ -0,0 +1,7 @@
+# Getting Started
+
+Welcome to the Uno Platform!
+
+To discover how to get started with your new app: https://aka.platform.uno/get-started
+
+For more information on how to use the Uno.Sdk or upgrade Uno Platform packages in your solution: https://aka.platform.uno/using-uno-sdk
\ No newline at end of file
diff --git a/reference/ToDo/src/ToDo/ServiceCollectionExtensions.cs b/reference/ToDo/src/ToDo/ServiceCollectionExtensions.cs
index e5f1483c3..f8cd93b8c 100644
--- a/reference/ToDo/src/ToDo/ServiceCollectionExtensions.cs
+++ b/reference/ToDo/src/ToDo/ServiceCollectionExtensions.cs
@@ -1,4 +1,5 @@
-using IAuthenticationService = ToDo.Business.Services.IAuthenticationService;
+using IAuthenticationService = ToDo.Business.IAuthenticationService;
+using MockAuthenticationService = ToDo.Business.Mock.MockAuthenticationService;
namespace ToDo;
@@ -8,16 +9,16 @@ public static IServiceCollection AddEndpoints(
this IServiceCollection services,
HostBuilderContext context,
Action? settingsBuilder = null,
- bool useMocks = false)
+ bool useMocks=false)
{
- _ = services
- // TEMP - this hsould be the default serialization options for content serialization > uno.extensions
- .AddSingleton(new JsonSerializerOptions { DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault })
- //.AddNativeHandler()
- //.AddContentSerializer()
- .AddRefitClient(context, name: nameof(ITaskEndpoint))
- .AddRefitClient(context, name: nameof(ITaskEndpoint))
- .AddRefitClient(context, name: nameof(ITaskEndpoint));
+ _ = services
+ // TEMP - this hsould be the default serialization options for content serialization > uno.extensions
+ .AddSingleton(new JsonSerializerOptions { DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault })
+ .AddNativeHandler(context)
+ .AddContentSerializer(context)
+ .AddRefitClient(context, name: nameof(ITaskEndpoint))
+ .AddRefitClient(context, name: nameof(ITaskListEndpoint))
+ .AddRefitClient(context, name: nameof(IUserProfilePictureEndpoint));
if (useMocks)
{
diff --git a/reference/ToDo/src/ToDo.UI/Strings/Resources.l12n.xml b/reference/ToDo/src/ToDo/Strings/Resources.l12n.xml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Strings/Resources.l12n.xml
rename to reference/ToDo/src/ToDo/Strings/Resources.l12n.xml
diff --git a/reference/ToDo/src/ToDo.UI/Strings/en/Resources.resw b/reference/ToDo/src/ToDo/Strings/en/Resources.resw
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Strings/en/Resources.resw
rename to reference/ToDo/src/ToDo/Strings/en/Resources.resw
diff --git a/reference/ToDo/src/ToDo.UI/Strings/es/Resources.resw b/reference/ToDo/src/ToDo/Strings/es/Resources.resw
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Strings/es/Resources.resw
rename to reference/ToDo/src/ToDo/Strings/es/Resources.resw
diff --git a/reference/ToDo/src/ToDo.UI/Strings/fr/Resources.resw b/reference/ToDo/src/ToDo/Strings/fr/Resources.resw
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Strings/fr/Resources.resw
rename to reference/ToDo/src/ToDo/Strings/fr/Resources.resw
diff --git a/reference/ToDo/src/ToDo.UI/Styles/ColorPaletteOverride.xaml b/reference/ToDo/src/ToDo/Styles/ColorPaletteOverride.xaml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Styles/ColorPaletteOverride.xaml
rename to reference/ToDo/src/ToDo/Styles/ColorPaletteOverride.xaml
diff --git a/reference/ToDo/src/ToDo.UI/Styles/FeedView.xaml b/reference/ToDo/src/ToDo/Styles/FeedView.xaml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Styles/FeedView.xaml
rename to reference/ToDo/src/ToDo/Styles/FeedView.xaml
diff --git a/reference/ToDo/src/ToDo.UI/Styles/MaterialFontsOverride.xaml b/reference/ToDo/src/ToDo/Styles/MaterialFontsOverride.xaml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Styles/MaterialFontsOverride.xaml
rename to reference/ToDo/src/ToDo/Styles/MaterialFontsOverride.xaml
diff --git a/reference/ToDo/src/ToDo.UI/Styles/NavigationBar.xaml b/reference/ToDo/src/ToDo/Styles/NavigationBar.xaml
similarity index 89%
rename from reference/ToDo/src/ToDo.UI/Styles/NavigationBar.xaml
rename to reference/ToDo/src/ToDo/Styles/NavigationBar.xaml
index 0bd051b1c..cf4087616 100644
--- a/reference/ToDo/src/ToDo.UI/Styles/NavigationBar.xaml
+++ b/reference/ToDo/src/ToDo/Styles/NavigationBar.xaml
@@ -1,4 +1,4 @@
-
-
+
diff --git a/reference/ToDo/src/ToDo.UI/Styles/NavigationView.xaml b/reference/ToDo/src/ToDo/Styles/NavigationView.xaml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Styles/NavigationView.xaml
rename to reference/ToDo/src/ToDo/Styles/NavigationView.xaml
diff --git a/reference/ToDo/src/ToDo/ToDo.csproj b/reference/ToDo/src/ToDo/ToDo.csproj
index f62f04f46..1b33869e2 100644
--- a/reference/ToDo/src/ToDo/ToDo.csproj
+++ b/reference/ToDo/src/ToDo/ToDo.csproj
@@ -1,69 +1,64 @@
-
-
- net8.0;net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0
- enable
+
+
+
+ net8.0-android;
+ net8.0-ios;
+ net8.0-windows10.0.19041;
+ net8.0-browserwasm;
+
- win-x86;win-x64;win-arm64
-
-
-
-
-
+ Exe
+ true
-
-
+
+ ToDo
+
+ com.companyname.todo
+
+ 1.0
+ 1
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ AuthenticationMsal;
+ Mvvm;
+ Material;
+ Http;
+ Toolkit;
+ Logging;
+ MVUX;
+ Serialization;
+ Localization;
+ Navigation;
+ ThemeService;
+
+
+
+
+
-
+
+
+ Always
+
+
+ Always
+
+
-
-
-
-
- <_OtherPriFiles Include="@(PackagingOutputs)" Condition="'%(Extension)' == '.pri' and ('%(PackagingOutputs.ReferenceSourceTarget)' == 'ProjectReference' or '%(PackagingOutputs.NugetSourceType)'=='Package')" />
-
-
-
-
-
-
-
- <_OtherPriFiles1 Include="@(_ReferenceRelatedPaths)" Condition="'%(Extension)' == '.pri' and ('%(_ReferenceRelatedPaths.ReferenceSourceTarget)' == 'ProjectReference' or '%(_ReferenceRelatedPaths.NugetSourceType)'=='Package')" />
- <_ReferenceRelatedPaths Remove="@(_OtherPriFiles1)" />
-
- <_OtherPriFiles2 Include="@(ReferenceCopyLocalPaths)" Condition="'%(Extension)' == '.pri' and ('%(ReferenceCopyLocalPaths.ReferenceSourceTarget)' == 'ProjectReference' or '%(ReferenceCopyLocalPaths.NugetSourceType)'=='Package')" />
-
-
-
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/AddListFlyout.xaml b/reference/ToDo/src/ToDo/Views/Dialogs/AddListFlyout.xaml
similarity index 92%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/AddListFlyout.xaml
rename to reference/ToDo/src/ToDo/Views/Dialogs/AddListFlyout.xaml
index 3548f328d..18161d62a 100644
--- a/reference/ToDo/src/ToDo.UI/Views/Dialogs/AddListFlyout.xaml
+++ b/reference/ToDo/src/ToDo/Views/Dialogs/AddListFlyout.xaml
@@ -6,9 +6,9 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:uen="using:Uno.Extensions.Navigation.UI"
xmlns:utu="using:Uno.Toolkit.UI"
- xmlns:um="using:Uno.Material"
+ xmlns:ut="using:Uno.Themes"
mc:Ignorable="d"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+ Background="{ThemeResource BackgroundBrush}">
F1 M 14 8 L 8 8 L 8 14 L 6 14 L 6 8 L 0 8 L 0 6 L 6 6 L 6 0 L 8 0 L 8 6 L 14 6 L 14 8 Z
@@ -50,9 +50,9 @@
utu:AutoLayout.CounterAlignment="Start"
IsEnabled="{Binding ElementName=ListNameText, Path=Text, Converter={StaticResource IsNotNullNorWhitespace}}"
Style="{StaticResource FilledButtonStyle}">
-
+
-
+
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/AddListFlyout.xaml.cs b/reference/ToDo/src/ToDo/Views/Dialogs/AddListFlyout.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/AddListFlyout.xaml.cs
rename to reference/ToDo/src/ToDo/Views/Dialogs/AddListFlyout.xaml.cs
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/AddTaskFlyout.xaml b/reference/ToDo/src/ToDo/Views/Dialogs/AddTaskFlyout.xaml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/AddTaskFlyout.xaml
rename to reference/ToDo/src/ToDo/Views/Dialogs/AddTaskFlyout.xaml
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/AddTaskFlyout.xaml.cs b/reference/ToDo/src/ToDo/Views/Dialogs/AddTaskFlyout.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/AddTaskFlyout.xaml.cs
rename to reference/ToDo/src/ToDo/Views/Dialogs/AddTaskFlyout.xaml.cs
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/ExpirationDateFlyout.xaml b/reference/ToDo/src/ToDo/Views/Dialogs/ExpirationDateFlyout.xaml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/ExpirationDateFlyout.xaml
rename to reference/ToDo/src/ToDo/Views/Dialogs/ExpirationDateFlyout.xaml
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/ExpirationDateFlyout.xaml.cs b/reference/ToDo/src/ToDo/Views/Dialogs/ExpirationDateFlyout.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/ExpirationDateFlyout.xaml.cs
rename to reference/ToDo/src/ToDo/Views/Dialogs/ExpirationDateFlyout.xaml.cs
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/RenameListFlyout.xaml b/reference/ToDo/src/ToDo/Views/Dialogs/RenameListFlyout.xaml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/RenameListFlyout.xaml
rename to reference/ToDo/src/ToDo/Views/Dialogs/RenameListFlyout.xaml
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/RenameListFlyout.xaml.cs b/reference/ToDo/src/ToDo/Views/Dialogs/RenameListFlyout.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/RenameListFlyout.xaml.cs
rename to reference/ToDo/src/ToDo/Views/Dialogs/RenameListFlyout.xaml.cs
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/SettingsFlyout.xaml b/reference/ToDo/src/ToDo/Views/Dialogs/SettingsFlyout.xaml
similarity index 60%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/SettingsFlyout.xaml
rename to reference/ToDo/src/ToDo/Views/Dialogs/SettingsFlyout.xaml
index ae4aaa619..62d364bcc 100644
--- a/reference/ToDo/src/ToDo.UI/Views/Dialogs/SettingsFlyout.xaml
+++ b/reference/ToDo/src/ToDo/Views/Dialogs/SettingsFlyout.xaml
@@ -36,9 +36,9 @@
+ Content="Settings"
+ uen:Navigation.Request="-"
+ Style="{StaticResource RootModalNavigationBarStyle}" />
+ ProfilePicture="{Binding ProfilePicture, Converter={StaticResource BitmapSourceConverter}}"
+ utu:AutoLayout.CounterAlignment="Start" />
+ TextAlignment="Center"
+ TextWrapping="Wrap"
+ Text="{Binding CurrentUser.Name}"
+ Style="{StaticResource TitleLarge}" />
+ TextAlignment="Center"
+ TextWrapping="Wrap"
+ Text="{Binding CurrentUser.Email}"
+ Style="{StaticResource BodyMedium}" />
+ Text="General"
+ TextWrapping="Wrap"
+ Foreground="{ThemeResource PrimaryBrush}"
+ Style="{StaticResource LabelLarge}" />
+ Foreground="{ThemeResource OnSurfaceBrush}"
+ Text="Language"
+ utu:AutoLayout.CounterAlignment="Start"
+ Style="{StaticResource BodySmall}" />
+ SelectionMode="Single"
+ ItemsSource="{Binding Cultures}"
+ SelectedItem="{Binding SelectedCulture, Mode=TwoWay}"
+ Style="{StaticResource FilterChipGroupStyle}">
@@ -123,52 +123,54 @@
+ Foreground="{ThemeResource OnSurfaceMediumBrush}"
+ Text="Change will be applied at next app restart"
+ utu:AutoLayout.CounterAlignment="Start"
+ Style="{StaticResource BodyMedium}" />
-
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ Foreground="{ThemeResource PrimaryBrush}"
+ TextWrapping="Wrap"
+ Text="About"
+ Style="{StaticResource LabelLarge}" />
+ Text="Version"
+ Foreground="{ThemeResource OnSurfaceBrush}"
+ utu:AutoLayout.PrimaryAlignment="Stretch"
+ Style="{StaticResource TitleMedium}" />
+ TextAlignment="End"
+ Text="1.0"
+ utu:AutoLayout.PrimaryAlignment="Stretch"
+ Style="{StaticResource TitleMedium}" />
diff --git a/reference/ToDo/src/ToDo/Views/Dialogs/SettingsFlyout.xaml.cs b/reference/ToDo/src/ToDo/Views/Dialogs/SettingsFlyout.xaml.cs
new file mode 100644
index 000000000..4ea501034
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Views/Dialogs/SettingsFlyout.xaml.cs
@@ -0,0 +1,51 @@
+namespace ToDo.Views.Dialogs;
+
+internal record ThemeChangedMessage(AppTheme Theme)
+{
+}
+
+public sealed partial class SettingsFlyout : Flyout, IRecipient
+{
+#if ANDROID
+ private bool _isThemeInitialized = false;
+#endif
+
+ public SettingsFlyout()
+ {
+ this.InitializeComponent();
+ WeakReferenceMessenger.Default.Register(this);
+ }
+
+ private void ThemeChipGroup_ItemChecked(object sender, ChipItemEventArgs e)
+ {
+ if (FlyoutControl.DataContext is BindableSettingsViewModel viewModel)
+ {
+#if ANDROID
+ if (_isThemeInitialized)
+ {
+ viewModel.ChangeAppTheme.Execute(null);
+ }
+ _isThemeInitialized = true;
+#else
+ viewModel.ChangeAppTheme.Execute(null);
+#endif
+ }
+ }
+
+ void IRecipient.Receive(ThemeChangedMessage message)
+ {
+ // Workaround for https://github.com/unoplatform/uno/issues/15287
+#if WINDOWS
+ _ = DispatcherQueue.TryEnqueue(() =>
+ {
+ try
+ {
+ FlyoutRoot.RequestedTheme = message.Theme == AppTheme.Light ? ElementTheme.Light : ElementTheme.Dark;
+ }
+ catch (Exception)
+ {
+ }
+ });
+#endif
+ }
+}
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/TaskSearchFlyout.xaml b/reference/ToDo/src/ToDo/Views/Dialogs/TaskSearchFlyout.xaml
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/TaskSearchFlyout.xaml
rename to reference/ToDo/src/ToDo/Views/Dialogs/TaskSearchFlyout.xaml
diff --git a/reference/ToDo/src/ToDo.UI/Views/Dialogs/TaskSearchFlyout.xaml.cs b/reference/ToDo/src/ToDo/Views/Dialogs/TaskSearchFlyout.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/Dialogs/TaskSearchFlyout.xaml.cs
rename to reference/ToDo/src/ToDo/Views/Dialogs/TaskSearchFlyout.xaml.cs
diff --git a/reference/ToDo/src/ToDo.UI/Views/HomePage.xaml b/reference/ToDo/src/ToDo/Views/HomePage.xaml
similarity index 97%
rename from reference/ToDo/src/ToDo.UI/Views/HomePage.xaml
rename to reference/ToDo/src/ToDo/Views/HomePage.xaml
index 3d3f11f2c..2ff48245f 100644
--- a/reference/ToDo/src/ToDo.UI/Views/HomePage.xaml
+++ b/reference/ToDo/src/ToDo/Views/HomePage.xaml
@@ -8,11 +8,11 @@
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:uen="using:Uno.Extensions.Navigation.UI"
xmlns:uer="using:Uno.Extensions.Reactive.UI"
- xmlns:um="using:Uno.Material"
+ xmlns:ut="using:Uno.Themes"
xmlns:uut="using:Uno.UI.Toolkit"
xmlns:utu="using:Uno.Toolkit.UI"
xmlns:not_win="http://uno.ui/not_win"
- Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
+ Background="{ThemeResource BackgroundBrush}"
mc:Ignorable="d not_win">
@@ -75,7 +75,7 @@
+ ColumnDefinitions="*,Auto">
diff --git a/reference/ToDo/src/ToDo.UI/Views/HomePage.xaml.cs b/reference/ToDo/src/ToDo/Views/HomePage.xaml.cs
similarity index 76%
rename from reference/ToDo/src/ToDo.UI/Views/HomePage.xaml.cs
rename to reference/ToDo/src/ToDo/Views/HomePage.xaml.cs
index 890a91f3b..5de32a05d 100644
--- a/reference/ToDo/src/ToDo.UI/Views/HomePage.xaml.cs
+++ b/reference/ToDo/src/ToDo/Views/HomePage.xaml.cs
@@ -1,4 +1,6 @@
-namespace ToDo.Views;
+using Microsoft.UI.Xaml.Data;
+
+namespace ToDo.Views;
public sealed partial class HomePage : Page
{
@@ -12,7 +14,7 @@ public HomePage()
private bool? LastIsWide { get; set; }
private void HomePage_SizeChanged(object sender, SizeChangedEventArgs args)
{
- var isWide = (App.Current as App)?.Window?.Content?.ActualSize.X > (double)App.Current.Resources[ResourceKeys.WideMinWindowWidth];
+ var isWide = (App.Current as App)?.MainWindow?.Content?.ActualSize.X > (double)App.Current.Resources[ResourceKeys.WideMinWindowWidth];
if (!LastIsWide.HasValue || LastIsWide.Value != isWide)
{
LastIsWide = isWide;
diff --git a/reference/ToDo/src/ToDo.UI/Views/SearchPage.xaml b/reference/ToDo/src/ToDo/Views/SearchPage.xaml
similarity index 95%
rename from reference/ToDo/src/ToDo.UI/Views/SearchPage.xaml
rename to reference/ToDo/src/ToDo/Views/SearchPage.xaml
index 4141f31ba..8b5809a03 100644
--- a/reference/ToDo/src/ToDo.UI/Views/SearchPage.xaml
+++ b/reference/ToDo/src/ToDo/Views/SearchPage.xaml
@@ -8,7 +8,7 @@
xmlns:uen="using:Uno.Extensions.Navigation.UI"
xmlns:uer="using:Uno.Extensions.Reactive.UI"
xmlns:utu="using:Uno.Toolkit.UI"
- xmlns:um="using:Uno.Material"
+ xmlns:ut="using:Uno.Themes"
mc:Ignorable="d"
Background="{ThemeResource BackgroundBrush}">
@@ -108,13 +108,13 @@
utu:AutoLayout.CounterAlignment="Start"
Style="{StaticResource IconToggleButtonStyle}">
-
-
-
+
-
+
diff --git a/reference/ToDo/src/ToDo.UI/Views/SearchPage.xaml.cs b/reference/ToDo/src/ToDo/Views/SearchPage.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/SearchPage.xaml.cs
rename to reference/ToDo/src/ToDo/Views/SearchPage.xaml.cs
diff --git a/reference/ToDo/src/ToDo/Views/Shell.xaml b/reference/ToDo/src/ToDo/Views/Shell.xaml
new file mode 100644
index 000000000..c7d1d8357
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Views/Shell.xaml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/ToDo/src/ToDo/Views/Shell.xaml.cs b/reference/ToDo/src/ToDo/Views/Shell.xaml.cs
new file mode 100644
index 000000000..c2f25698a
--- /dev/null
+++ b/reference/ToDo/src/ToDo/Views/Shell.xaml.cs
@@ -0,0 +1,11 @@
+namespace ToDo.Views;
+
+public sealed partial class Shell : UserControl, IContentControlProvider
+{
+ public ContentControl ContentControl => Splash;
+
+ public Shell()
+ {
+ this.InitializeComponent();
+ }
+}
diff --git a/reference/ToDo/src/ToDo.UI/Views/TaskListPage.xaml b/reference/ToDo/src/ToDo/Views/TaskListPage.xaml
similarity index 90%
rename from reference/ToDo/src/ToDo.UI/Views/TaskListPage.xaml
rename to reference/ToDo/src/ToDo/Views/TaskListPage.xaml
index c92fc8c52..cb971b932 100644
--- a/reference/ToDo/src/ToDo.UI/Views/TaskListPage.xaml
+++ b/reference/ToDo/src/ToDo/Views/TaskListPage.xaml
@@ -9,7 +9,7 @@
xmlns:uen="using:Uno.Extensions.Navigation.UI"
xmlns:uer="using:Uno.Extensions.Reactive.UI"
xmlns:utu="using:Uno.Toolkit.UI"
- xmlns:um="using:Uno.Material"
+ xmlns:ut="using:Uno.Themes"
mc:Ignorable="d"
NavigationCacheMode="Required">
@@ -19,7 +19,7 @@
F1 M 15.40999984741211 1.7950000762939453 L 14.200000762939453 0.5849999785423279 C 13.420000791549683 -0.19499999284744263 12.149999856948853 -0.19499999284744263 11.369999885559082 0.5849999785423279 L 8.6899995803833 3.2649998664855957 L 0 11.954999923706055 L 0 15.994999885559082 L 4.039999961853027 15.994999885559082 L 12.779999732971191 7.255000114440918 L 15.40999984741211 4.625 C 16.19999986886978 3.8450000286102295 16.19999986886978 2.575000047683716 15.40999984741211 1.7950000762939453 L 15.40999984741211 1.7950000762939453 Z M 3.2100000381469727 13.994999885559082 L 2 13.994999885559082 L 2 12.785000801086426 L 10.65999984741211 4.125 L 11.869999885559082 5.335000038146973 L 3.2100000381469727 13.994999885559082 Z M 8 15.994999885559082 L 12 11.994999885559082 L 18 11.994999885559082 L 18 15.994999885559082 L 8 15.994999885559082 Z
F1 M 12.430000305175781 8 L 10 0 L 7.569999694824219 8 L 0 8 L 6.180000305175781 12.40999984741211 L 3.8299999237060547 20 L 10 15.309999465942383 L 16.18000030517578 20 L 13.829999923706055 12.40999984741211 L 20 8 L 12.430000305175781 8 Z
-
+
@@ -49,7 +49,7 @@
-
+
@@ -60,7 +60,7 @@
-
+
-
-
+
-
-
-
+
+
+
@@ -135,14 +135,10 @@
-
-
-
-
+
+
+
+
@@ -158,10 +154,13 @@
-
-
-
-
+
+
+
+
+
+
+
@@ -276,12 +275,12 @@
Content="Add a task"
Command="{Binding CreateTask}"
HorizontalContentAlignment="Left"
- Foreground="{StaticResource OnPrimaryBrush}"
- Background="{StaticResource OnSurfaceFocusedBrush}"
+ Foreground="{ThemeResource OnPrimaryBrush}"
+ Background="{ThemeResource OnSurfaceFocusedBrush}"
Style="{StaticResource TextButtonStyle}">
-
+
-
+
diff --git a/reference/ToDo/src/ToDo.UI/Views/TaskListPage.xaml.cs b/reference/ToDo/src/ToDo/Views/TaskListPage.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/TaskListPage.xaml.cs
rename to reference/ToDo/src/ToDo/Views/TaskListPage.xaml.cs
diff --git a/reference/ToDo/src/ToDo.UI/Views/TaskPage.xaml b/reference/ToDo/src/ToDo/Views/TaskPage.xaml
similarity index 97%
rename from reference/ToDo/src/ToDo.UI/Views/TaskPage.xaml
rename to reference/ToDo/src/ToDo/Views/TaskPage.xaml
index 036ee5826..f9373cb41 100644
--- a/reference/ToDo/src/ToDo.UI/Views/TaskPage.xaml
+++ b/reference/ToDo/src/ToDo/Views/TaskPage.xaml
@@ -8,7 +8,7 @@
xmlns:uen="using:Uno.Extensions.Navigation.UI"
xmlns:uer="using:Uno.Extensions.Reactive.UI"
xmlns:utu="using:Uno.Toolkit.UI"
- xmlns:um="using:Uno.Material"
+ xmlns:ut="using:Uno.Themes"
mc:Ignorable="d">
@@ -60,13 +60,13 @@
Command="{Binding ToggleIsImportant}"
CommandParameter="{Binding}">
-
-
-
+
-
+
diff --git a/reference/ToDo/src/ToDo.UI/Views/TaskPage.xaml.cs b/reference/ToDo/src/ToDo/Views/TaskPage.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/TaskPage.xaml.cs
rename to reference/ToDo/src/ToDo/Views/TaskPage.xaml.cs
diff --git a/reference/ToDo/src/ToDo.UI/Views/WelcomePage.xaml b/reference/ToDo/src/ToDo/Views/WelcomePage.xaml
similarity index 93%
rename from reference/ToDo/src/ToDo.UI/Views/WelcomePage.xaml
rename to reference/ToDo/src/ToDo/Views/WelcomePage.xaml
index c25b9a7fd..cf1c56248 100644
--- a/reference/ToDo/src/ToDo.UI/Views/WelcomePage.xaml
+++ b/reference/ToDo/src/ToDo/Views/WelcomePage.xaml
@@ -54,13 +54,13 @@
-
-
+ utu:AutoLayout.CounterLength="340">
diff --git a/reference/ToDo/src/ToDo.UI/Views/WelcomePage.xaml.cs b/reference/ToDo/src/ToDo/Views/WelcomePage.xaml.cs
similarity index 100%
rename from reference/ToDo/src/ToDo.UI/Views/WelcomePage.xaml.cs
rename to reference/ToDo/src/ToDo/Views/WelcomePage.xaml.cs
diff --git a/reference/ToDo/src/ToDo/_Compat/IsExternalInit.cs b/reference/ToDo/src/ToDo/_Compat/IsExternalInit.cs
deleted file mode 100644
index 1e37cc339..000000000
--- a/reference/ToDo/src/ToDo/_Compat/IsExternalInit.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System;
-using System.Linq;
-
-#if !NET5_0
-namespace System.Runtime.CompilerServices;
-
-internal static class IsExternalInit
-{
-}
-#endif
diff --git a/reference/ToDo/src/ToDo.Windows/app.manifest b/reference/ToDo/src/ToDo/app.manifest
similarity index 51%
rename from reference/ToDo/src/ToDo.Windows/app.manifest
rename to reference/ToDo/src/ToDo/app.manifest
index a7fc216da..345f8c445 100644
--- a/reference/ToDo/src/ToDo.Windows/app.manifest
+++ b/reference/ToDo/src/ToDo/app.manifest
@@ -1,6 +1,16 @@
-
+
+
+
+
+
+
+
+
diff --git a/reference/ToDo/src/ToDo/appsettings.development.json b/reference/ToDo/src/ToDo/appsettings.development.json
new file mode 100644
index 000000000..ca9611330
--- /dev/null
+++ b/reference/ToDo/src/ToDo/appsettings.development.json
@@ -0,0 +1,12 @@
+{
+ "Mock": {
+ "IsEnabled": true
+ },
+ "AppConfig": {
+ "Environment": "Development"
+ },
+ "ApiClient": {
+ "Url": "https://localhost:5002",
+ "UseNativeHandler": true
+ }
+}
diff --git a/reference/ToDo/src/ToDo.UI/appsettings.json b/reference/ToDo/src/ToDo/appsettings.json
similarity index 66%
rename from reference/ToDo/src/ToDo.UI/appsettings.json
rename to reference/ToDo/src/ToDo/appsettings.json
index a7a167b8f..8e95c8992 100644
--- a/reference/ToDo/src/ToDo.UI/appsettings.json
+++ b/reference/ToDo/src/ToDo/appsettings.json
@@ -1,4 +1,4 @@
-{
+{
"ITaskEndpoint": {
"Url": "https://graph.microsoft.com/beta/me",
"UseNativeHandler": true
@@ -8,7 +8,17 @@
"Scopes": [ "Tasks.Read", "User.Read", "Tasks.ReadWrite" ],
"RedirectUri": "uno-todoapp://auth"
},
+ "AppConfig": {
+ "Environment": "Production"
+ },
+ "ApiClient": {
+ "UseNativeHandler": true
+ },
"LocalizationConfiguration": {
- "Cultures": [ "en", "es", "fr" ]
+ "Cultures": [
+ "es",
+ "fr",
+ "en"
+ ]
}
}
diff --git a/reference/ToDo/src/global.json b/reference/ToDo/src/global.json
index 0385fde5c..7711a32aa 100644
--- a/reference/ToDo/src/global.json
+++ b/reference/ToDo/src/global.json
@@ -1,5 +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": {
- "MSBuild.Sdk.Extras": "3.0.44"
+ "Uno.Sdk": "5.2.161"
}
}