diff --git a/UI/BluetoothExplorer/BluetoothExplorer/.editorconfig b/UI/BluetoothExplorer/BluetoothExplorer/.editorconfig
new file mode 100644
index 000000000..b947be645
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/.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/UI/BluetoothExplorer/BluetoothExplorer/.gitignore b/UI/BluetoothExplorer/BluetoothExplorer/.gitignore
new file mode 100644
index 000000000..ef88c2053
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/.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/UI/BluetoothExplorer/BluetoothExplorer/.vsconfig b/UI/BluetoothExplorer/BluetoothExplorer/.vsconfig
new file mode 100644
index 000000000..fc21f3026
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/.vsconfig
@@ -0,0 +1,25 @@
+{
+ "version": "1.0",
+ "components": [
+ "Microsoft.VisualStudio.Component.CoreEditor",
+ "Microsoft.VisualStudio.Workload.CoreEditor",
+ "Microsoft.NetCore.Component.SDK",
+ "Microsoft.NetCore.Component.DevelopmentTools",
+ "Microsoft.Net.ComponentGroup.DevelopmentPrerequisites",
+ "Microsoft.VisualStudio.Component.TextTemplating",
+ "Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging",
+ "Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites",
+ "Microsoft.VisualStudio.Component.Debugger.JustInTime",
+ "Microsoft.VisualStudio.Workload.ManagedDesktop",
+ "Component.Xamarin.RemotedSimulator",
+ "Microsoft.VisualStudio.Component.MonoDebugger",
+ "Microsoft.VisualStudio.ComponentGroup.Maui.All",
+ "Component.Android.SDK34",
+ "Component.OpenJDK",
+ "Microsoft.VisualStudio.Workload.NetCrossPlat",
+ "Microsoft.VisualStudio.Workload.NetCoreTools"
+ ],
+ "extensions": [
+ "https://marketplace.visualstudio.com/items?itemName=unoplatform.uno-platform-addin-2022"
+ ]
+}
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer.sln b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer.sln
new file mode 100644
index 000000000..b66a69dd7
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer.sln
@@ -0,0 +1,36 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.10.35122.118
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BluetoothExplorer", "BluetoothExplorer\BluetoothExplorer.csproj", "{D58AA08A-B9A2-47FB-8ABF-44F025D33EFA}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{716AAC39-61D2-436E-9D04-936366BE5964}"
+ ProjectSection(SolutionItems) = preProject
+ .gitignore = .gitignore
+ Directory.Build.props = Directory.Build.props
+ Directory.Build.targets = Directory.Build.targets
+ Directory.Packages.props = Directory.Packages.props
+ global.json = global.json
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D58AA08A-B9A2-47FB-8ABF-44F025D33EFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D58AA08A-B9A2-47FB-8ABF-44F025D33EFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D58AA08A-B9A2-47FB-8ABF-44F025D33EFA}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {D58AA08A-B9A2-47FB-8ABF-44F025D33EFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D58AA08A-B9A2-47FB-8ABF-44F025D33EFA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D58AA08A-B9A2-47FB-8ABF-44F025D33EFA}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {4B498A42-7EDA-4C84-9347-E41E0FC8F7FC}
+ EndGlobalSection
+EndGlobal
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/App.xaml b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/App.xaml
new file mode 100644
index 000000000..74363e311
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/App.xaml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/App.xaml.cs b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/App.xaml.cs
new file mode 100644
index 000000000..776c85b55
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/App.xaml.cs
@@ -0,0 +1,129 @@
+using System;
+using Microsoft.Extensions.Logging;
+using Uno.Resizetizer;
+
+namespace BluetoothExplorer;
+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();
+ }
+
+ protected Window? MainWindow { get; private set; }
+
+ protected override void OnLaunched(LaunchActivatedEventArgs args)
+ {
+ MainWindow = new Window();
+#if DEBUG
+ MainWindow.EnableHotReload();
+#endif
+
+
+ // Do not repeat app initialization when the Window already has content,
+ // just ensure that the window is active
+ if (MainWindow.Content is not Frame rootFrame)
+ {
+ // Create a Frame to act as the navigation context and navigate to the first page
+ rootFrame = new Frame();
+
+ // Place the frame in the current Window
+ MainWindow.Content = rootFrame;
+
+ rootFrame.NavigationFailed += OnNavigationFailed;
+ }
+
+ if (rootFrame.Content == null)
+ {
+ // When the navigation stack isn't restored navigate to the first page,
+ // configuring the new page by passing required information as a navigation
+ // parameter
+ rootFrame.Navigate(typeof(MainPage), args.Arguments);
+ }
+
+ MainWindow.SetWindowIcon();
+ // Ensure the current window is active
+ MainWindow.Activate();
+ }
+
+ ///
+ /// Invoked when Navigation to a certain page fails
+ ///
+ /// The Frame which failed navigation
+ /// Details about the navigation failure
+ void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
+ {
+ throw new InvalidOperationException($"Failed to load {e.SourcePageType.FullName}: {e.Exception}");
+ }
+
+ ///
+ /// Configures global Uno Platform logging
+ ///
+ public static void InitializeLogging()
+ {
+#if DEBUG
+ // Logging is disabled by default for release builds, as it incurs a significant
+ // initialization cost from Microsoft.Extensions.Logging setup. If startup performance
+ // is a concern for your application, keep this disabled. If you're running on the web or
+ // desktop targets, you can use URL or command line parameters to enable it.
+ //
+ // For more performance documentation: https://platform.uno/docs/articles/Uno-UI-Performance.html
+
+ var factory = LoggerFactory.Create(builder =>
+ {
+#if __WASM__
+ builder.AddProvider(new global::Uno.Extensions.Logging.WebAssembly.WebAssemblyConsoleLoggerProvider());
+#elif __IOS__ || __MACCATALYST__
+ builder.AddProvider(new global::Uno.Extensions.Logging.OSLogLoggerProvider());
+#else
+ builder.AddConsole();
+#endif
+
+ // Exclude logs below this level
+ builder.SetMinimumLevel(LogLevel.Information);
+
+ // Default filters for Uno Platform namespaces
+ builder.AddFilter("Uno", LogLevel.Warning);
+ builder.AddFilter("Windows", LogLevel.Warning);
+ builder.AddFilter("Microsoft", LogLevel.Warning);
+
+ // Generic Xaml events
+ // builder.AddFilter("Microsoft.UI.Xaml", LogLevel.Debug );
+ // builder.AddFilter("Microsoft.UI.Xaml.VisualStateGroup", LogLevel.Debug );
+ // builder.AddFilter("Microsoft.UI.Xaml.StateTriggerBase", LogLevel.Debug );
+ // builder.AddFilter("Microsoft.UI.Xaml.UIElement", LogLevel.Debug );
+ // builder.AddFilter("Microsoft.UI.Xaml.FrameworkElement", LogLevel.Trace );
+
+ // Layouter specific messages
+ // builder.AddFilter("Microsoft.UI.Xaml.Controls", LogLevel.Debug );
+ // builder.AddFilter("Microsoft.UI.Xaml.Controls.Layouter", LogLevel.Debug );
+ // builder.AddFilter("Microsoft.UI.Xaml.Controls.Panel", LogLevel.Debug );
+
+ // builder.AddFilter("Windows.Storage", LogLevel.Debug );
+
+ // Binding related messages
+ // builder.AddFilter("Microsoft.UI.Xaml.Data", LogLevel.Debug );
+ // builder.AddFilter("Microsoft.UI.Xaml.Data", LogLevel.Debug );
+
+ // Binder memory references tracking
+ // builder.AddFilter("Uno.UI.DataBinding.BinderReferenceHolder", LogLevel.Debug );
+
+ // DevServer and HotReload related
+ // builder.AddFilter("Uno.UI.RemoteControl", LogLevel.Information);
+
+ // Debug JS interop
+ // builder.AddFilter("Uno.Foundation.WebAssemblyRuntime", LogLevel.Debug );
+ });
+
+ global::Uno.Extensions.LogExtensionPoint.AmbientLoggerFactory = factory;
+
+#if HAS_UNO
+ global::Uno.UI.Adapter.Microsoft.Extensions.Logging.LoggingAdapter.Initialize();
+#endif
+#endif
+ }
+}
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Icons/icon.svg b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Icons/icon.svg
new file mode 100644
index 000000000..a15af53aa
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Icons/icon.svg
@@ -0,0 +1,42 @@
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Icons/icon_foreground.svg b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Icons/icon_foreground.svg
new file mode 100644
index 000000000..8ffc41ae3
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Icons/icon_foreground.svg
@@ -0,0 +1,137 @@
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/SharedAssets.md b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/SharedAssets.md
new file mode 100644
index 000000000..1b84a74ab
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/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/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Splash/splash_screen.svg b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Splash/splash_screen.svg
new file mode 100644
index 000000000..8ffc41ae3
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Assets/Splash/splash_screen.svg
@@ -0,0 +1,137 @@
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer.csproj b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer.csproj
new file mode 100644
index 000000000..1769baa2b
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer.csproj
@@ -0,0 +1,42 @@
+
+
+ net8.0-android;net8.0-ios;net8.0-windows10.0.19041
+
+ Exe
+ true
+
+
+ BluetoothExplorer
+
+ com.companyname.BluetoothExplorer
+
+ 1.0
+ 1
+
+ Uno Platform
+
+ BluetoothExplorer powered by Uno Platform.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/GlobalUsings.cs b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/GlobalUsings.cs
new file mode 100644
index 000000000..eeafbe36f
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/GlobalUsings.cs
@@ -0,0 +1,4 @@
+global using System.Collections.Immutable;
+global using Microsoft.Extensions.DependencyInjection;
+global using Microsoft.Extensions.Logging;
+global using ApplicationExecutionState = Windows.ApplicationModel.Activation.ApplicationExecutionState;
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/MainPage.xaml b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/MainPage.xaml
new file mode 100644
index 000000000..77e03464b
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/MainPage.xaml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/MainPage.xaml.cs b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/MainPage.xaml.cs
new file mode 100644
index 000000000..089c406f4
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/MainPage.xaml.cs
@@ -0,0 +1,106 @@
+using InTheHand.Bluetooth;
+using System.Collections.ObjectModel;
+
+namespace BluetoothExplorer;
+
+public sealed partial class MainPage : Page
+{
+ public MainPage()
+ {
+ this.InitializeComponent();
+ }
+ async void Button_Click(object sender, RoutedEventArgs e)
+ {
+ ObservableCollection treeSource = new ObservableCollection();
+
+ ProgressRing.Visibility = Visibility.Visible;
+
+ try
+ {
+ var available = await Bluetooth.GetAvailabilityAsync();
+
+ if (available)
+ {
+ var device = await Bluetooth.RequestDeviceAsync();
+ if (device != null)
+ {
+ await device.Gatt.ConnectAsync();
+
+ if (device.Gatt.IsConnected)
+ {
+ var services = await device.Gatt.GetPrimaryServicesAsync();
+ foreach (var service in services)
+ {
+ var serviceName = GattServiceUuids.GetServiceName(service.Uuid);
+ if (string.IsNullOrWhiteSpace(serviceName))
+ serviceName = service.Uuid.ToString();
+
+ var serviceNode = new BluetoothService { Name = serviceName };
+ treeSource.Add(serviceNode);
+ var characteristics = await service.GetCharacteristicsAsync();
+
+ foreach (var characteristic in characteristics)
+ {
+ var charName = GattCharacteristicUuids.GetCharacteristicName(characteristic.Uuid);
+ if (string.IsNullOrWhiteSpace(charName))
+ charName = characteristic.Uuid.ToString();
+
+ string value = string.Empty;
+
+ if (characteristic.Uuid == GattCharacteristicUuids.BatteryLevel)
+ {
+ var rawValue = await characteristic.ReadValueAsync();
+
+ value = $"{rawValue[0]}%";
+ }
+ else if (characteristic.Uuid == GattCharacteristicUuids.DeviceName |
+ characteristic.Uuid == GattCharacteristicUuids.FirmwareRevisionString |
+ characteristic.Uuid == GattCharacteristicUuids.ManufacturerNameString |
+ characteristic.Uuid == GattCharacteristicUuids.ModelNumberString)
+ {
+ var rawValue = await characteristic.ReadValueAsync();
+
+ value = System.Text.Encoding.UTF8.GetString(rawValue).Trim();
+ }
+ /*else
+ {
+ System.Text.StringBuilder sb = new System.Text.StringBuilder();
+ for(int i = 0; i < Math.Min(10, rawValue.Length); i++)
+ {
+ sb.Append(rawValue[i].ToString("X2"));
+ }
+ value = sb.ToString();
+ }*/
+
+ serviceNode.Add(new BluetoothCharacteristic { Name = charName, Properties = characteristic.Properties, Value = value });
+ }
+ }
+ }
+ }
+
+ BluetoothCVS.Source = treeSource;
+ }
+ }
+ finally
+ {
+ DispatcherQueue.TryEnqueue(() =>
+ {
+ ProgressRing.Visibility = Visibility.Collapsed;
+ });
+ }
+ }
+}
+
+public sealed class BluetoothCharacteristic
+{
+ public string Name { get; set; }
+ public GattCharacteristicProperties Properties { get; set; }
+
+ public string Value { get; set; }
+}
+
+public sealed class BluetoothService : ObservableCollection
+{
+ public string Name { get; set; }
+}
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Package.appxmanifest b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Package.appxmanifest
new file mode 100644
index 000000000..7d40f4b6c
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Package.appxmanifest
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/AndroidManifest.xml b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/AndroidManifest.xml
new file mode 100644
index 000000000..fc3f7f471
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/AndroidManifest.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Assets/AboutAssets.txt b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Assets/AboutAssets.txt
similarity index 100%
rename from UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Assets/AboutAssets.txt
rename to UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Assets/AboutAssets.txt
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Main.Android.cs b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Main.Android.cs
new file mode 100644
index 000000000..104af3cc3
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Main.Android.cs
@@ -0,0 +1,47 @@
+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 BluetoothExplorer.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
+{
+ static Application()
+ {
+ App.InitializeLogging();
+ }
+
+ 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/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/MainActivity.Android.cs b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/MainActivity.Android.cs
new file mode 100644
index 000000000..d2dc15e0b
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/MainActivity.Android.cs
@@ -0,0 +1,15 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+using Android.Views;
+using Android.Widget;
+
+namespace BluetoothExplorer.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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/AboutResources.txt b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Resources/AboutResources.txt
similarity index 100%
rename from UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/AboutResources.txt
rename to UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Resources/AboutResources.txt
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Resources/values/Strings.xml b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Resources/values/Strings.xml
new file mode 100644
index 000000000..6263572fe
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Resources/values/Strings.xml
@@ -0,0 +1,5 @@
+
+
+ Hello World, Click Me!
+ BluetoothExplorer
+
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/values/Styles.xml b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Resources/values/Styles.xml
similarity index 50%
rename from UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/values/Styles.xml
rename to UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Resources/values/Styles.xml
index f24b9a0cd..c02bd06f7 100644
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/values/Styles.xml
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/Resources/values/Styles.xml
@@ -1,6 +1,6 @@
-
-
\ No newline at end of file
+
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/environment.conf b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/environment.conf
similarity index 100%
rename from UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/environment.conf
rename to UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Android/environment.conf
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-arm64.pubxml b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-arm64.pubxml
new file mode 100644
index 000000000..d5147f103
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-arm64.pubxml
@@ -0,0 +1,22 @@
+
+
+
+
+ FileSystem
+ arm64
+ win-arm64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-x64.pubxml b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-x64.pubxml
new file mode 100644
index 000000000..4fea954ee
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-x64.pubxml
@@ -0,0 +1,22 @@
+
+
+
+
+ FileSystem
+ x64
+ win-x64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-x86.pubxml b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-x86.pubxml
new file mode 100644
index 000000000..928cb25eb
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/Windows/Properties/PublishProfiles/win-x86.pubxml
@@ -0,0 +1,22 @@
+
+
+
+
+ FileSystem
+ x86
+ win-x86
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
+
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Entitlements.plist b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Entitlements.plist
similarity index 100%
rename from UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Entitlements.plist
rename to UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Entitlements.plist
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Info.plist b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Info.plist
new file mode 100644
index 000000000..dd285a501
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Info.plist
@@ -0,0 +1,48 @@
+
+
+
+
+ LSRequiresIPhoneOS
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ armv7
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+ XSAppIconAssets
+ Assets.xcassets/icon.appiconset
+ UIApplicationSupportsIndirectInputEvents
+
+
+ NSBluetoothAlwaysUsageDescription
+ This app requires Bluetooth to demonstrate the Bluetooth LE APIs
+ NSBluetoothPeripheralUsageDescription
+ This app requires Bluetooth to demonstrate the Bluetooth LE APIs
+
+
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Main.iOS.cs b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Main.iOS.cs
new file mode 100644
index 000000000..2f7353e90
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Main.iOS.cs
@@ -0,0 +1,15 @@
+using UIKit;
+
+namespace BluetoothExplorer.iOS;
+public class EntryPoint
+{
+ // This is the main entry point of the application.
+ public static void Main(string[] args)
+ {
+ App.InitializeLogging();
+
+ // 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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json
similarity index 100%
rename from UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json
rename to UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/PrivacyInfo.xcprivacy b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Platforms/iOS/PrivacyInfo.xcprivacy
new file mode 100644
index 000000000..902abb059
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/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/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Properties/launchSettings.json b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Properties/launchSettings.json
new file mode 100644
index 000000000..117b2e2a8
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Properties/launchSettings.json
@@ -0,0 +1,21 @@
+{
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:8080",
+ "sslPort": 0
+ }
+ },
+ "profiles": {
+ // 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
+ "BluetoothExplorer (WinAppSDK Unpackaged)": {
+ "commandName": "Project",
+ "compatibleTargetFramework": "windows"
+ },
+ "BluetoothExplorer (WinAppSDK Packaged)": {
+ "commandName": "MsixPackage",
+ "compatibleTargetFramework": "windows"
+ },
+ }
+}
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/ReadMe.md b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/ReadMe.md
new file mode 100644
index 000000000..93482da23
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/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/UI/BluetoothExplorer/UnoBluetoothExplorer/Strings/en/Resources.resw b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Strings/en/Resources.resw
similarity index 92%
rename from UI/BluetoothExplorer/UnoBluetoothExplorer/Strings/en/Resources.resw
rename to UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Strings/en/Resources.resw
index ce37d6809..f2d9a53d3 100644
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer/Strings/en/Resources.resw
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/Strings/en/Resources.resw
@@ -1,17 +1,17 @@
-
@@ -118,6 +118,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- UnoBluetoothExplorer
+ BluetoothExplorer-en
-
\ No newline at end of file
+
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/app.manifest b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/app.manifest
similarity index 50%
rename from UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/app.manifest
rename to UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/app.manifest
index bd538e10a..32c9ab98a 100644
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/app.manifest
+++ b/UI/BluetoothExplorer/BluetoothExplorer/BluetoothExplorer/app.manifest
@@ -1,6 +1,16 @@
-
+
+
+
+
+
+
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/Directory.Build.props b/UI/BluetoothExplorer/BluetoothExplorer/Directory.Build.props
new file mode 100644
index 000000000..8daf56929
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/Directory.Build.props
@@ -0,0 +1,15 @@
+
+
+ enable
+ enable
+ true
+
+
+ $(NoWarn);NU1507;NETSDK1201;PRI257
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/Directory.Build.targets b/UI/BluetoothExplorer/BluetoothExplorer/Directory.Build.targets
new file mode 100644
index 000000000..f75adf7e4
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/Directory.Build.targets
@@ -0,0 +1,2 @@
+
+
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/Directory.Packages.props b/UI/BluetoothExplorer/BluetoothExplorer/Directory.Packages.props
new file mode 100644
index 000000000..bf19c7ddb
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/Directory.Packages.props
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UI/BluetoothExplorer/BluetoothExplorer/global.json b/UI/BluetoothExplorer/BluetoothExplorer/global.json
new file mode 100644
index 000000000..be9c4cb99
--- /dev/null
+++ b/UI/BluetoothExplorer/BluetoothExplorer/global.json
@@ -0,0 +1,9 @@
+{
+ // To update the version of Uno please update the version of the Uno.Sdk here. See https://aka.platform.uno/upgrade-uno-packages for more information.
+ "msbuild-sdks": {
+ "Uno.Sdk": "5.3.96"
+ },
+ "sdk":{
+ "allowPrerelease": false
+ }
+}
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/AppHead.xaml b/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/AppHead.xaml
deleted file mode 100644
index 2adbb4d01..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/AppHead.xaml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/AppHead.xaml.cs b/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/AppHead.xaml.cs
deleted file mode 100644
index 9e785e0ba..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/AppHead.xaml.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using Microsoft.Extensions.Logging;
-using Microsoft.UI.Xaml;
-using Microsoft.UI.Xaml.Controls;
-using Microsoft.UI.Xaml.Navigation;
-using System;
-using Windows.ApplicationModel;
-using Windows.ApplicationModel.Activation;
-
-namespace UnoBluetoothExplorer
-{
- ///
- /// Provides application-specific behavior to supplement the default Application class.
- ///
- /// Your own code may be placed in the UnoBluetoothExplorer/AppBase.cs class.
- ///
- public sealed partial class AppHead : App
- {
- static AppHead()
- => InitializeLogging();
-
- ///
- /// 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 AppHead()
- => this.InitializeComponent();
-
- ///
- /// Configures global Uno Platform logging
- ///
- private static void InitializeLogging()
- {
-#if DEBUG
- // Logging is disabled by default for release builds, as it incurs a significant
- // initialization cost from Microsoft.Extensions.Logging setup. If startup performance
- // is a concern for your application, keep this disabled. If you're running on the web or
- // desktop targets, you can use URL or command line parameters to enable it.
- //
- // For more performance documentation: https://platform.uno/docs/articles/Uno-UI-Performance.html
-
- var factory = LoggerFactory.Create(builder =>
- {
-#if __WASM__
- builder.AddProvider(new global::Uno.Extensions.Logging.WebAssembly.WebAssemblyConsoleLoggerProvider());
-#elif __IOS__ && !__MACCATALYST__
- builder.AddProvider(new global::Uno.Extensions.Logging.OSLogLoggerProvider());
-#elif NETFX_CORE
- builder.AddDebug();
-#else
- builder.AddConsole();
-#endif
-
- // Exclude logs below this level
- builder.SetMinimumLevel(LogLevel.Information);
-
- // Default filters for Uno Platform namespaces
- builder.AddFilter("Uno", LogLevel.Warning);
- builder.AddFilter("Windows", LogLevel.Warning);
- builder.AddFilter("Microsoft", LogLevel.Warning);
-
- // Generic Xaml events
- // builder.AddFilter("Windows.UI.Xaml", LogLevel.Debug );
- // builder.AddFilter("Windows.UI.Xaml.VisualStateGroup", LogLevel.Debug );
- // builder.AddFilter("Windows.UI.Xaml.StateTriggerBase", LogLevel.Debug );
- // builder.AddFilter("Windows.UI.Xaml.UIElement", LogLevel.Debug );
- // builder.AddFilter("Windows.UI.Xaml.FrameworkElement", LogLevel.Trace );
-
- // Layouter specific messages
- // builder.AddFilter("Windows.UI.Xaml.Controls", LogLevel.Debug );
- // builder.AddFilter("Windows.UI.Xaml.Controls.Layouter", LogLevel.Debug );
- // builder.AddFilter("Windows.UI.Xaml.Controls.Panel", LogLevel.Debug );
-
- // builder.AddFilter("Windows.Storage", LogLevel.Debug );
-
- // Binding related messages
- // builder.AddFilter("Windows.UI.Xaml.Data", LogLevel.Debug );
- // builder.AddFilter("Windows.UI.Xaml.Data", LogLevel.Debug );
-
- // Binder memory references tracking
- // builder.AddFilter("Uno.UI.DataBinding.BinderReferenceHolder", LogLevel.Debug );
-
- // RemoteControl and HotReload related
- // builder.AddFilter("Uno.UI.RemoteControl", LogLevel.Information);
-
- // Debug JS interop
- // builder.AddFilter("Uno.Foundation.WebAssemblyRuntime", LogLevel.Debug );
- });
-
- global::Uno.Extensions.LogExtensionPoint.AmbientLoggerFactory = factory;
-
-#if HAS_UNO
- global::Uno.UI.Adapter.Microsoft.Extensions.Logging.LoggingAdapter.Initialize();
-#endif
-#endif
- }
- }
-}
\ No newline at end of file
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/base.props b/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/base.props
deleted file mode 100644
index 585a30392..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Base/base.props
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/AndroidManifest.xml b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/AndroidManifest.xml
deleted file mode 100644
index 29c4aa23a..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/AndroidManifest.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Main.Android.cs b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Main.Android.cs
deleted file mode 100644
index 6a334e25e..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Main.Android.cs
+++ /dev/null
@@ -1,43 +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 UnoBluetoothExplorer.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 AppHead(), 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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/MainActivity.Android.cs b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/MainActivity.Android.cs
deleted file mode 100644
index 97f28c8e2..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/MainActivity.Android.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using Android;
-using Android.App;
-using Android.Content.PM;
-using Android.OS;
-using Android.Views;
-using Android.Widget;
-
-namespace UnoBluetoothExplorer
-{
- [Activity(
- MainLauncher = true,
- ConfigurationChanges = global::Uno.UI.ActivityHelper.AllConfigChanges,
- WindowSoftInputMode = SoftInput.AdjustPan | SoftInput.StateHidden
- )]
- public class MainActivity : Microsoft.UI.Xaml.ApplicationActivity
- {
- protected override void OnCreate(Bundle bundle)
- {
- base.OnCreate(bundle);
-
- RequestBluetoothPermissions();
- }
-
- private void RequestBluetoothPermissions()
- {
- if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M)
- {
- if ((CheckSelfPermission(Manifest.Permission.Bluetooth) != Permission.Granted) || (CheckSelfPermission(Manifest.Permission.BluetoothConnect) != Permission.Granted))
- {
- if (ShouldShowRequestPermissionRationale(Manifest.Permission.Bluetooth) || ShouldShowRequestPermissionRationale(Manifest.Permission.BluetoothConnect))
- {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.SetTitle("Permission")
- .SetMessage("This app needs Bluetooth permissions to connect");
- builder.Create().Show();
- }
-
- RequestPermissions(new string[] { Manifest.Permission.Bluetooth, Manifest.Permission.BluetoothConnect }, 1);
- }
- }
- }
-
- public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
- {
- base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
- }
- }
-}
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-hdpi/icon.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-hdpi/icon.png
deleted file mode 100644
index 024be3ca5..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-hdpi/icon.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-ldpi/icon.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-ldpi/icon.png
deleted file mode 100644
index 2194c9ca1..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-ldpi/icon.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-mdpi/icon.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-mdpi/icon.png
deleted file mode 100644
index cfa450bab..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-mdpi/icon.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-tvdpi/icon.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-tvdpi/icon.png
deleted file mode 100644
index 3869c27f4..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-tvdpi/icon.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xhdpi/icon.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xhdpi/icon.png
deleted file mode 100644
index a5cfc6e10..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xhdpi/icon.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xxhdpi/icon.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xxhdpi/icon.png
deleted file mode 100644
index d6b8da0d5..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xxhdpi/icon.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xxxhdpi/icon.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xxxhdpi/icon.png
deleted file mode 100644
index 696295cef..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/mipmap-xxxhdpi/icon.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/values/Strings.xml b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/values/Strings.xml
deleted file mode 100644
index daad16b4c..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/Android/Resources/values/Strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- Hello World, Click Me!
- UnoQuickStart
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Info.plist b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Info.plist
deleted file mode 100644
index 758cb50fc..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Info.plist
+++ /dev/null
@@ -1,33 +0,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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/LaunchScreen.storyboard b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/LaunchScreen.storyboard
deleted file mode 100644
index 04a81ae75..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/LaunchScreen.storyboard
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Main.maccatalyst.cs b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Main.maccatalyst.cs
deleted file mode 100644
index 28883753f..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Main.maccatalyst.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using UIKit;
-
-namespace UnoBluetoothExplorer
-{
- 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(AppHead));
- }
- }
-}
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Contents.json b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Contents.json
deleted file mode 100644
index a5c670237..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon1024.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon1024.png
deleted file mode 100644
index c7e45b700..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon1024.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon120.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon120.png
deleted file mode 100644
index 5f2aea5eb..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon120.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon152.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon152.png
deleted file mode 100644
index c28bde8fe..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon152.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon167.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon167.png
deleted file mode 100644
index aeeb0769b..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon167.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon180.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon180.png
deleted file mode 100644
index 0a851b8d7..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon180.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon20.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon20.png
deleted file mode 100644
index 6f1a958b7..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon20.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon29.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon29.png
deleted file mode 100644
index 2d1ce7977..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon29.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon40.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon40.png
deleted file mode 100644
index a0ab12a4e..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon40.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon58.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon58.png
deleted file mode 100644
index 26ef6c932..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon58.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon60.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon60.png
deleted file mode 100644
index 84bfd00e1..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon60.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon76.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon76.png
deleted file mode 100644
index b5ee36118..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon76.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon80.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon80.png
deleted file mode 100644
index 5de98b1c6..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon80.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon87.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon87.png
deleted file mode 100644
index 53147588c..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Icon87.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/Default-568h@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/Default-568h@2x.png
deleted file mode 100644
index 29973dcbe..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/Default-568h@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/Fonts/uno-fluentui-assets.ttf b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index 055184054..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/SplashScreen@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/SplashScreen@2x.png
deleted file mode 100644
index f8e793d9e..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/SplashScreen@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/SplashScreen@3x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/SplashScreen@3x.png
deleted file mode 100644
index 8c5f3984c..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacCatalyst/Resources/SplashScreen@3x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png
deleted file mode 100644
index 5757c31d2..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png
deleted file mode 100644
index d0fb35728..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png
deleted file mode 100644
index 17d637b23..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png
deleted file mode 100644
index cf3a6e3ef..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png
deleted file mode 100644
index dcaaf7fad..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png
deleted file mode 100644
index 4810d2d0b..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png
deleted file mode 100644
index c02a2268a..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png
deleted file mode 100644
index d257b83aa..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png
deleted file mode 100644
index a90995087..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png
deleted file mode 100644
index da4b8a992..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 6b2854529..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/Contents.json b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/Contents.json
deleted file mode 100644
index 4caf392f9..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/unologo.imageset/Contents.json b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/unologo.imageset/Contents.json
deleted file mode 100644
index 9b481d06d..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/unologo.imageset/unoplatform.jpg b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/unologo.imageset/unoplatform.jpg
deleted file mode 100644
index da3230e55..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Assets.xcassets/unologo.imageset/unoplatform.jpg and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Entitlements.plist b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Entitlements.plist
deleted file mode 100644
index e9a3005f7..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Entitlements.plist
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Info.plist b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Info.plist
deleted file mode 100644
index 8e9891bd1..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Info.plist
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundlePackageType
- APPL
- CFBundleSignature
- ????
- LSApplicationCategoryType
- public.app-category.utilities
- NSHumanReadableCopyright
- ${AuthorCopyright:HtmlEncode}
- NSPrincipalClass
- NSApplication
- XSAppIconAssets
- Assets.xcassets/AppIcons.appiconset
- ATSApplicationFontsPath
- Fonts/uno-fluentui-assets.ttf
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Main.macOS.cs b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Main.macOS.cs
deleted file mode 100644
index 6e3bc4a51..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Main.macOS.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using AppKit;
-
-namespace UnoBluetoothExplorer
-{
- // This is the main entry point of the application.
- public class EntryPoint
- {
- static void Main(string[] args)
- {
- NSApplication.Init();
- NSApplication.SharedApplication.Delegate = new AppHead();
- NSApplication.Main(args);
- }
- }
-}
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Resources/Fonts/uno-fluentui-assets.ttf b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Resources/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index 055184054..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/MacOS/Resources/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/UnoBluetoothExplorer.Mobile.csproj b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/UnoBluetoothExplorer.Mobile.csproj
deleted file mode 100644
index 0297cce90..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/UnoBluetoothExplorer.Mobile.csproj
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
- net8.0-android
- $(TargetFrameworks);net8.0-ios
- $(TargetFrameworks);net8.0-maccatalyst
-
-
-
- true
- Exe
-
- Uno Bluetooth Explorer
-
- com.companyname.UnoBluetoothExplorer
- 2c927d7f-e137-42d5-95ea-e13904771b12
-
- 1.0
- 1
- true
- 14.2
- 14.0
- 21.0
- 10.14
-
-
-
- iossimulator-x64
- maccatalyst-x64
- osx-x64
-
-
- None
-
-
- None
-
-
-
-
-
-
-
-
-
-
-
-
- android-arm64
-
-
-
-
-
-
-
-
-
-
-
- $(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
-
-
-
-
-
-
-
-
- $(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
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Entitlements.plist b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Entitlements.plist
deleted file mode 100644
index 24c310368..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Entitlements.plist
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Info.plist b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Info.plist
deleted file mode 100644
index efc339a1e..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Info.plist
+++ /dev/null
@@ -1,60 +0,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
-
- UIViewControllerBasedStatusBarAppearance
-
- UILaunchImageMinimumOSVersion
- 9.0
- UILaunchImageOrientation
- Portrait
- UILaunchImageSize
- {320, 568}
- XSAppIconAssets
- Media.xcassets/AppIcons.appiconset
- UIApplicationSupportsIndirectInputEvents
-
-
- NSBluetoothAlwaysUsageDescription
- This app requires Bluetooth to demonstrate the Bluetooth LE APIs
- NSBluetoothPeripheralUsageDescription
- This app requires Bluetooth to demonstrate the Bluetooth LE APIs
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/LaunchScreen.storyboard b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/LaunchScreen.storyboard
deleted file mode 100644
index 04a81ae75..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/LaunchScreen.storyboard
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Main.iOS.cs b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Main.iOS.cs
deleted file mode 100644
index 9315d8ad5..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Main.iOS.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using Foundation;
-using Network;
-using System.Diagnostics;
-using UIKit;
-
-namespace UnoBluetoothExplorer
-{
- public class EntryPoint
- {
- // This is the main entry point of the application.
- static void Main(string[] args)
- {
- var hasInfoKey = CoreFoundation.CFBundle.GetMain().InfoDictionary.ContainsKey(new NSString("NSBluetoothAlwaysUsageDescription"));
- Debug.WriteLine(hasInfoKey);
-
- // if you want to use a different Application Delegate class from "AppDelegate"
- // you can specify it here.
- UIApplication.Main(args, null, typeof(AppHead));
- }
- }
-}
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Contents.json b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Contents.json
deleted file mode 100644
index a5c670237..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.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/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon1024.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon1024.png
deleted file mode 100644
index c7e45b700..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon1024.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon120.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon120.png
deleted file mode 100644
index 5f2aea5eb..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon120.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon152.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon152.png
deleted file mode 100644
index c28bde8fe..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon152.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon167.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon167.png
deleted file mode 100644
index aeeb0769b..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon167.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon180.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon180.png
deleted file mode 100644
index 0a851b8d7..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon180.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon20.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon20.png
deleted file mode 100644
index 6f1a958b7..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon20.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon29.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon29.png
deleted file mode 100644
index 2d1ce7977..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon29.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon40.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon40.png
deleted file mode 100644
index a0ab12a4e..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon40.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon58.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon58.png
deleted file mode 100644
index 26ef6c932..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon58.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon60.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon60.png
deleted file mode 100644
index 84bfd00e1..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon60.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon76.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon76.png
deleted file mode 100644
index b5ee36118..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon76.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon80.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon80.png
deleted file mode 100644
index 5de98b1c6..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon80.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon87.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon87.png
deleted file mode 100644
index 53147588c..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Media.xcassets/AppIcons.appiconset/Icon87.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/Default-568h@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/Default-568h@2x.png
deleted file mode 100644
index 29973dcbe..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/Default-568h@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/Fonts/uno-fluentui-assets.ttf b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/Fonts/uno-fluentui-assets.ttf
deleted file mode 100644
index 055184054..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/Fonts/uno-fluentui-assets.ttf and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/SplashScreen@2x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/SplashScreen@2x.png
deleted file mode 100644
index f8e793d9e..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/SplashScreen@2x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/SplashScreen@3x.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/SplashScreen@3x.png
deleted file mode 100644
index 8c5f3984c..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Mobile/iOS/Resources/SplashScreen@3x.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/LockScreenLogo.scale-200.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/LockScreenLogo.scale-200.png
deleted file mode 100644
index 735f57adb..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/LockScreenLogo.scale-200.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/SplashScreen.scale-200.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/SplashScreen.scale-200.png
deleted file mode 100644
index 023e7f1fe..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/SplashScreen.scale-200.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square150x150Logo.scale-200.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square150x150Logo.scale-200.png
deleted file mode 100644
index af49fec1a..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square150x150Logo.scale-200.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square44x44Logo.scale-200.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square44x44Logo.scale-200.png
deleted file mode 100644
index ce342a2ec..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square44x44Logo.scale-200.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square44x44Logo.targetsize-24_altform-unplated.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square44x44Logo.targetsize-24_altform-unplated.png
deleted file mode 100644
index f6c02ce97..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Square44x44Logo.targetsize-24_altform-unplated.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/StoreLogo.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/StoreLogo.png
deleted file mode 100644
index 7385b56c0..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/StoreLogo.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Wide310x150Logo.scale-200.png b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Wide310x150Logo.scale-200.png
deleted file mode 100644
index 288995b39..000000000
Binary files a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Images/Wide310x150Logo.scale-200.png and /dev/null differ
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Package.appxmanifest b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Package.appxmanifest
deleted file mode 100644
index ea54f948f..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Package.appxmanifest
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
- UnoBluetoothExplorer
- UnoBluetoothExplorer
- Images\StoreLogo.png
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Properties/launchSettings.json b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Properties/launchSettings.json
deleted file mode 100644
index 4d96d36c4..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/Properties/launchSettings.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "profiles": {
- "UnoBluetoothExplorer.Windows": {
- "commandName": "MsixPackage"
- }
- }
-}
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/UnoBluetoothExplorer.Windows.csproj b/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/UnoBluetoothExplorer.Windows.csproj
deleted file mode 100644
index 0bde3a34f..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.Windows/UnoBluetoothExplorer.Windows.csproj
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
- WinExe
- net8.0-windows10.0.19041.0
- 10.0.19041.0
- UnoBluetoothExplorer
- x86;x64;arm64
- win-x86;win-x64;win-arm64
-
- win-$(Platform).pubxml
- en
- true
- true
- MSIX
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer.sln b/UI/BluetoothExplorer/UnoBluetoothExplorer.sln
deleted file mode 100644
index 677cd3abe..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer.sln
+++ /dev/null
@@ -1,101 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.4.33403.182
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platforms", "Platforms", "{A0E1A0EE-5442-43A5-8BC6-076CD1E6CC1F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnoBluetoothExplorer", "UnoBluetoothExplorer\UnoBluetoothExplorer.csproj", "{3637493F-0A88-45F4-9980-809859E5616E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnoBluetoothExplorer.Mobile", "UnoBluetoothExplorer.Mobile\UnoBluetoothExplorer.Mobile.csproj", "{FFC42809-54EC-44AC-A2A2-07194EA27AE3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnoBluetoothExplorer.Windows", "UnoBluetoothExplorer.Windows\UnoBluetoothExplorer.Windows.csproj", "{4180AE84-8782-476B-90ED-96228FC90299}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|arm64 = Debug|arm64
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|arm64 = Release|arm64
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {3637493F-0A88-45F4-9980-809859E5616E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Debug|arm64.ActiveCfg = Debug|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Debug|arm64.Build.0 = Debug|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Debug|x64.ActiveCfg = Debug|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Debug|x64.Build.0 = Debug|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Debug|x86.Build.0 = Debug|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Release|Any CPU.Build.0 = Release|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Release|arm64.ActiveCfg = Release|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Release|arm64.Build.0 = Release|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Release|x64.ActiveCfg = Release|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Release|x64.Build.0 = Release|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Release|x86.ActiveCfg = Release|Any CPU
- {3637493F-0A88-45F4-9980-809859E5616E}.Release|x86.Build.0 = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|arm64.ActiveCfg = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|arm64.Build.0 = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|arm64.Deploy.0 = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|x64.ActiveCfg = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|x64.Build.0 = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|x64.Deploy.0 = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|x86.Build.0 = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Debug|x86.Deploy.0 = Debug|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|Any CPU.Build.0 = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|Any CPU.Deploy.0 = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|arm64.ActiveCfg = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|arm64.Build.0 = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|arm64.Deploy.0 = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|x64.ActiveCfg = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|x64.Build.0 = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|x64.Deploy.0 = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|x86.ActiveCfg = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|x86.Build.0 = Release|Any CPU
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3}.Release|x86.Deploy.0 = Release|Any CPU
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|Any CPU.ActiveCfg = Debug|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|Any CPU.Build.0 = Debug|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|Any CPU.Deploy.0 = Debug|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|arm64.ActiveCfg = Debug|arm64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|arm64.Build.0 = Debug|arm64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|arm64.Deploy.0 = Debug|arm64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|x64.ActiveCfg = Debug|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|x64.Build.0 = Debug|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|x64.Deploy.0 = Debug|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|x86.ActiveCfg = Debug|x86
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|x86.Build.0 = Debug|x86
- {4180AE84-8782-476B-90ED-96228FC90299}.Debug|x86.Deploy.0 = Debug|x86
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|Any CPU.ActiveCfg = Release|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|Any CPU.Build.0 = Release|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|Any CPU.Deploy.0 = Release|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|arm64.ActiveCfg = Release|arm64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|arm64.Build.0 = Release|arm64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|arm64.Deploy.0 = Release|arm64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|x64.ActiveCfg = Release|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|x64.Build.0 = Release|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|x64.Deploy.0 = Release|x64
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|x86.ActiveCfg = Release|x86
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|x86.Build.0 = Release|x86
- {4180AE84-8782-476B-90ED-96228FC90299}.Release|x86.Deploy.0 = Release|x86
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {FFC42809-54EC-44AC-A2A2-07194EA27AE3} = {A0E1A0EE-5442-43A5-8BC6-076CD1E6CC1F}
- {4180AE84-8782-476B-90ED-96228FC90299} = {A0E1A0EE-5442-43A5-8BC6-076CD1E6CC1F}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {751311F0-E51B-46CF-A353-0839ED146408}
- EndGlobalSection
-EndGlobal
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer/App.cs b/UI/BluetoothExplorer/UnoBluetoothExplorer/App.cs
deleted file mode 100644
index faea7c622..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer/App.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-using Microsoft.Extensions.Logging;
-using Microsoft.UI.Xaml;
-using Microsoft.UI.Xaml.Controls;
-using Microsoft.UI.Xaml.Navigation;
-using System;
-using Windows.ApplicationModel;
-using Windows.ApplicationModel.Activation;
-
-namespace UnoBluetoothExplorer
-{
- ///
- /// Provides application-specific behavior to supplement the default Application class.
- ///
- 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().
- ///
- ///
- /// If you're looking for App.xaml.cs, the file is present in each platform head
- /// of the solution.
- ///
- public App()
- {
- }
-
- ///
- /// Gets the main window of the app.
- ///
- internal static Window MainWindow { get; private set; }
-
- ///
- /// 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 override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
- {
-#if DEBUG
- if (System.Diagnostics.Debugger.IsAttached)
- {
- // this.DebugSettings.EnableFrameRateCounter = true;
- }
-#endif
-
-#if NET6_0_OR_GREATER && WINDOWS && !HAS_UNO
- MainWindow = new Window();
- MainWindow.Activate();
-#else
- MainWindow = Microsoft.UI.Xaml.Window.Current;
-#endif
-
- // Do not repeat app initialization when the Window already has content,
- // just ensure that the window is active
- if (MainWindow.Content is not Frame rootFrame)
- {
- // Create a Frame to act as the navigation context and navigate to the first page
- rootFrame = new Frame();
-
- rootFrame.NavigationFailed += OnNavigationFailed;
-
- if (args.UWPLaunchActivatedEventArgs.PreviousExecutionState == ApplicationExecutionState.Terminated)
- {
- // TODO: Load state from previously suspended application
- }
-
- // Place the frame in the current Window
- MainWindow.Content = rootFrame;
- }
-
-#if !(NET6_0_OR_GREATER && WINDOWS)
- if (args.UWPLaunchActivatedEventArgs.PrelaunchActivated == false)
-#endif
- {
- if (rootFrame.Content == null)
- {
- // When the navigation stack isn't restored navigate to the first page,
- // configuring the new page by passing required information as a navigation
- // parameter
- rootFrame.Navigate(typeof(MainPage), args.Arguments);
- }
- // Ensure the current window is active
- MainWindow.Activate();
- }
- }
-
- ///
- /// Invoked when Navigation to a certain page fails
- ///
- /// The Frame which failed navigation
- /// Details about the navigation failure
- void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
- {
- throw new InvalidOperationException($"Failed to load {e.SourcePageType.FullName}: {e.Exception}");
- }
-
- ///
- /// Invoked when application execution is being suspended. Application state is saved
- /// without knowing whether the application will be terminated or resumed with the contents
- /// of memory still intact.
- ///
- /// The source of the suspend request.
- /// Details about the suspend request.
- private void OnSuspending(object sender, SuspendingEventArgs e)
- {
- var deferral = e.SuspendingOperation.GetDeferral();
- //TODO: Save the application state and stop any background activity
- deferral.Complete();
- }
- }
-}
\ No newline at end of file
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer/AppResources.xaml b/UI/BluetoothExplorer/UnoBluetoothExplorer/AppResources.xaml
deleted file mode 100644
index 27c83d715..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer/AppResources.xaml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer/MainPage.xaml b/UI/BluetoothExplorer/UnoBluetoothExplorer/MainPage.xaml
deleted file mode 100644
index 42e3fc2b0..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer/MainPage.xaml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer/MainPage.xaml.cs b/UI/BluetoothExplorer/UnoBluetoothExplorer/MainPage.xaml.cs
deleted file mode 100644
index 803262c81..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer/MainPage.xaml.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using InTheHand.Bluetooth;
-using Microsoft.UI.Xaml;
-using Microsoft.UI.Xaml.Controls;
-using System.Collections.ObjectModel;
-
-// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
-
-namespace UnoBluetoothExplorer
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class MainPage : Page
- {
- public MainPage()
- {
- this.InitializeComponent();
- }
-
- async void Button_Click(object sender, RoutedEventArgs e)
- {
- ObservableCollection treeSource = new ObservableCollection();
-
- ProgressRing.Visibility = Visibility.Visible;
-
- try
- {
- var available = await Bluetooth.GetAvailabilityAsync();
-
- if (available)
- {
- var device = await Bluetooth.RequestDeviceAsync();
- if (device != null)
- {
- await device.Gatt.ConnectAsync();
-
- if (device.Gatt.IsConnected)
- {
- var services = await device.Gatt.GetPrimaryServicesAsync();
- foreach (var service in services)
- {
- var serviceName = GattServiceUuids.GetServiceName(service.Uuid);
- if (string.IsNullOrWhiteSpace(serviceName))
- serviceName = service.Uuid.ToString();
-
- var serviceNode = new BluetoothService { Name = serviceName };
- treeSource.Add(serviceNode);
- var characteristics = await service.GetCharacteristicsAsync();
-
- foreach (var characteristic in characteristics)
- {
- var charName = GattCharacteristicUuids.GetCharacteristicName(characteristic.Uuid);
- if (string.IsNullOrWhiteSpace(charName))
- charName = characteristic.Uuid.ToString();
-
- string value = string.Empty;
-
- if (characteristic.Uuid == GattCharacteristicUuids.BatteryLevel)
- {
- var rawValue = await characteristic.ReadValueAsync();
-
- value = $"{rawValue[0]}%";
- }
- else if (characteristic.Uuid == GattCharacteristicUuids.DeviceName |
- characteristic.Uuid == GattCharacteristicUuids.FirmwareRevisionString |
- characteristic.Uuid == GattCharacteristicUuids.ManufacturerNameString |
- characteristic.Uuid == GattCharacteristicUuids.ModelNumberString)
- {
- var rawValue = await characteristic.ReadValueAsync();
-
- value = System.Text.Encoding.UTF8.GetString(rawValue).Trim();
- }
- /*else
- {
- System.Text.StringBuilder sb = new System.Text.StringBuilder();
- for(int i = 0; i < Math.Min(10, rawValue.Length); i++)
- {
- sb.Append(rawValue[i].ToString("X2"));
- }
- value = sb.ToString();
- }*/
-
- serviceNode.Add(new BluetoothCharacteristic { Name = charName, Properties = characteristic.Properties, Value = value });
- }
- }
- }
- }
-
- BluetoothCVS.Source = treeSource;
- }
- }
- finally
- {
- DispatcherQueue.TryEnqueue(() =>
- {
- ProgressRing.Visibility = Visibility.Collapsed;
- });
- }
- }
- }
-
- public sealed class BluetoothCharacteristic
- {
- public string Name { get; set; }
- public GattCharacteristicProperties Properties { get; set; }
-
- public string Value { get; set; }
- }
-
- public sealed class BluetoothService : ObservableCollection
- {
- public string Name { get; set; }
- }
-}
diff --git a/UI/BluetoothExplorer/UnoBluetoothExplorer/UnoBluetoothExplorer.csproj b/UI/BluetoothExplorer/UnoBluetoothExplorer/UnoBluetoothExplorer.csproj
deleted file mode 100644
index 601e90222..000000000
--- a/UI/BluetoothExplorer/UnoBluetoothExplorer/UnoBluetoothExplorer.csproj
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
- $(TargetFrameworks);net8.0-windows10.0.19041
- $(TargetFrameworks);net8.0
-
- <_CanUseMobileTargets Condition="!$([MSBuild]::IsOSPlatform('Linux'))">true
-
- $(TargetFrameworks);net8.0-android
- $(TargetFrameworks);net8.0-ios
- $(TargetFrameworks);net8.0-maccatalyst
-
-
- en
- 14.2
- 14.0
- 21.0
- 10.0.19041.0
- 10.0.19041.0
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(Filename)
-
-
-
-
-
-