From 2875164d38fa6656373a9bad624e27aec1ac178d Mon Sep 17 00:00:00 2001
From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
Date: Sun, 16 Aug 2026 19:15:18 +0800
Subject: [PATCH 1/6] feat: add Android project.
---
UI/SemiUrsaMafia/Directory.Packages.props | 2 +
.../Application.cs | 19 +++++
...GeneralUpdate.Samples.Mafia.Android.csproj | 28 +++++++
.../Icon.png | Bin 0 -> 11731 bytes
.../MainActivity.cs | 14 ++++
.../Properties/AndroidManifest.xml | 5 ++
.../drawable-night-v31/avalonia_anim.xml | 66 ++++++++++++++++
.../Resources/drawable-v31/avalonia_anim.xml | 71 ++++++++++++++++++
.../Resources/drawable/splash_screen.xml | 13 ++++
.../Resources/values-night/colors.xml | 4 +
.../Resources/values-v31/styles.xml | 21 ++++++
.../Resources/values/colors.xml | 4 +
.../Resources/values/styles.xml | 12 +++
...GeneralUpdate.Samples.Mafia.Desktop.csproj | 21 ++++++
.../Program.cs | 2 +-
.../app.manifest | 2 +-
.../App.axaml | 2 +-
.../App.axaml.cs | 4 +-
.../GeneralUpdate.Samples.Mafia.csproj} | 3 -
.../ViewModels/SettingsPageViewModel.cs | 2 +-
.../ViewModels/ViewModelBase.cs | 2 +-
.../Views/MainView.axaml | 4 +-
.../Views/MainView.axaml.cs | 4 +-
.../Views/MainWindow.axaml | 4 +-
.../Views/MainWindow.axaml.cs | 2 +-
.../Views/Pages/HomePageView.axaml | 2 +-
.../Views/Pages/HomePageView.axaml.cs | 2 +-
.../Views/Pages/SettingsPageView.axaml | 4 +-
.../Views/Pages/SettingsPageView.axaml.cs | 2 +-
.../GeneralUpdate.Samples.Mafia/app.manifest | 18 +++++
UI/SemiUrsaMafia/Upgrade.Avalonia.slnx | 4 +-
31 files changed, 320 insertions(+), 23 deletions(-)
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Application.cs
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/GeneralUpdate.Samples.Mafia.Android.csproj
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Icon.png
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/MainActivity.cs
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Properties/AndroidManifest.xml
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable-night-v31/avalonia_anim.xml
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable-v31/avalonia_anim.xml
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable/splash_screen.xml
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values-night/colors.xml
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values-v31/styles.xml
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values/colors.xml
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values/styles.xml
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/GeneralUpdate.Samples.Mafia.Desktop.csproj
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia.Desktop}/Program.cs (93%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia.Desktop}/app.manifest (91%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/App.axaml (88%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/App.axaml.cs (86%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia/Mobile.Avalonia.csproj => GeneralUpdate.Samples.Mafia/GeneralUpdate.Samples.Mafia.csproj} (72%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/ViewModels/SettingsPageViewModel.cs (98%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/ViewModels/ViewModelBase.cs (68%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/Views/MainView.axaml (89%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/Views/MainView.axaml.cs (74%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/Views/MainWindow.axaml (81%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/Views/MainWindow.axaml.cs (75%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/Views/Pages/HomePageView.axaml (91%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/Views/Pages/HomePageView.axaml.cs (74%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/Views/Pages/SettingsPageView.axaml (98%)
rename UI/SemiUrsaMafia/{Mobile.Avalonia => GeneralUpdate.Samples.Mafia}/Views/Pages/SettingsPageView.axaml.cs (75%)
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/app.manifest
diff --git a/UI/SemiUrsaMafia/Directory.Packages.props b/UI/SemiUrsaMafia/Directory.Packages.props
index be87510..b525f1f 100644
--- a/UI/SemiUrsaMafia/Directory.Packages.props
+++ b/UI/SemiUrsaMafia/Directory.Packages.props
@@ -5,6 +5,7 @@
+
@@ -16,5 +17,6 @@
+
\ No newline at end of file
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Application.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Application.cs
new file mode 100644
index 0000000..9da3258
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Application.cs
@@ -0,0 +1,19 @@
+using Android.Runtime;
+using Avalonia;
+using Avalonia.Android;
+
+namespace GeneralUpdate.Samples.Mafia.Android
+{
+ [Application]
+ public class Application : AvaloniaAndroidApplication
+ {
+ protected Application(nint javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
+ {
+ }
+
+ protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
+ {
+ return base.CustomizeAppBuilder(builder);
+ }
+ }
+}
\ No newline at end of file
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/GeneralUpdate.Samples.Mafia.Android.csproj b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/GeneralUpdate.Samples.Mafia.Android.csproj
new file mode 100644
index 0000000..bb73aff
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/GeneralUpdate.Samples.Mafia.Android.csproj
@@ -0,0 +1,28 @@
+
+
+ Exe
+ net10.0-android
+ 23
+ enable
+ com.CompanyName.AvaloniaApplication1
+ 1
+ 1.0
+ apk
+ false
+
+
+
+
+ Resources\drawable\Icon.png
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Icon.png b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c39845930eae5a98e094bdada0da2d6646bf9ce
GIT binary patch
literal 11731
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
literal 0
HcmV?d00001
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/MainActivity.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/MainActivity.cs
new file mode 100644
index 0000000..b41a59b
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/MainActivity.cs
@@ -0,0 +1,14 @@
+using Android.Content.PM;
+using Avalonia.Android;
+
+namespace GeneralUpdate.Samples.Mafia.Android;
+
+[Activity(
+ Label = "GeneralUpdate.Samples.Mafia.Android",
+ Theme = "@style/MyTheme.NoActionBar",
+ Icon = "@drawable/icon",
+ MainLauncher = true,
+ ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)]
+public class MainActivity : AvaloniaMainActivity
+{
+}
\ No newline at end of file
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Properties/AndroidManifest.xml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Properties/AndroidManifest.xml
new file mode 100644
index 0000000..38583a5
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Properties/AndroidManifest.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable-night-v31/avalonia_anim.xml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable-night-v31/avalonia_anim.xml
new file mode 100644
index 0000000..dde4b5a
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable-night-v31/avalonia_anim.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable-v31/avalonia_anim.xml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable-v31/avalonia_anim.xml
new file mode 100644
index 0000000..94f27d9
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable-v31/avalonia_anim.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable/splash_screen.xml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable/splash_screen.xml
new file mode 100644
index 0000000..2e920b4
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/drawable/splash_screen.xml
@@ -0,0 +1,13 @@
+
+
+
+ -
+
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values-night/colors.xml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values-night/colors.xml
new file mode 100644
index 0000000..3d47b6f
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values-night/colors.xml
@@ -0,0 +1,4 @@
+
+
+ #212121
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values-v31/styles.xml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values-v31/styles.xml
new file mode 100644
index 0000000..d5ecec4
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values-v31/styles.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values/colors.xml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values/colors.xml
new file mode 100644
index 0000000..59279d5
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values/colors.xml
@@ -0,0 +1,4 @@
+
+
+ #FFFFFF
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values/styles.xml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values/styles.xml
new file mode 100644
index 0000000..6e534de
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Resources/values/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/GeneralUpdate.Samples.Mafia.Desktop.csproj b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/GeneralUpdate.Samples.Mafia.Desktop.csproj
new file mode 100644
index 0000000..c833607
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/GeneralUpdate.Samples.Mafia.Desktop.csproj
@@ -0,0 +1,21 @@
+
+
+ WinExe
+
+ net10.0
+ enable
+
+
+
+ app.manifest
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/Program.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/Program.cs
similarity index 93%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/Program.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/Program.cs
index 3026e03..0dda4e3 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/Program.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/Program.cs
@@ -1,7 +1,7 @@
using Avalonia;
using System;
-namespace Sandbox;
+namespace GeneralUpdate.Samples.Mafia.Desktop;
sealed class Program
{
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/app.manifest b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/app.manifest
similarity index 91%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/app.manifest
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/app.manifest
index e3ab431..168c7fd 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/app.manifest
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Desktop/app.manifest
@@ -3,7 +3,7 @@
-
+
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/App.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/App.axaml
similarity index 88%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/App.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/App.axaml
index 5d8f021..3e278fb 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/App.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/App.axaml
@@ -1,6 +1,6 @@
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/App.axaml.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/App.axaml.cs
similarity index 86%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/App.axaml.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/App.axaml.cs
index 3b906cd..fbc9ee7 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/App.axaml.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/App.axaml.cs
@@ -1,9 +1,9 @@
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
-using Sandbox.Views;
+using GeneralUpdate.Samples.Mafia.Views;
-namespace Sandbox;
+namespace GeneralUpdate.Samples.Mafia;
public partial class App : Application
{
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/Mobile.Avalonia.csproj b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/GeneralUpdate.Samples.Mafia.csproj
similarity index 72%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/Mobile.Avalonia.csproj
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/GeneralUpdate.Samples.Mafia.csproj
index 4164a51..8921ed6 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/Mobile.Avalonia.csproj
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/GeneralUpdate.Samples.Mafia.csproj
@@ -1,10 +1,7 @@
- WinExe
net10.0
enable
- app.manifest
- true
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/ViewModels/SettingsPageViewModel.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/SettingsPageViewModel.cs
similarity index 98%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/ViewModels/SettingsPageViewModel.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/SettingsPageViewModel.cs
index e37119f..20d607c 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/ViewModels/SettingsPageViewModel.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/SettingsPageViewModel.cs
@@ -6,7 +6,7 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
-namespace Sandbox.ViewModels;
+namespace GeneralUpdate.Samples.Mafia.ViewModels;
public partial class SettingsPageViewModel : ViewModelBase
{
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/ViewModels/ViewModelBase.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/ViewModelBase.cs
similarity index 68%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/ViewModels/ViewModelBase.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/ViewModelBase.cs
index d35d485..dbea543 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/ViewModels/ViewModelBase.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/ViewModelBase.cs
@@ -1,6 +1,6 @@
using CommunityToolkit.Mvvm.ComponentModel;
-namespace Sandbox.ViewModels;
+namespace GeneralUpdate.Samples.Mafia.ViewModels;
public abstract class ViewModelBase : ObservableObject
{
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainView.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml
similarity index 89%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainView.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml
index 964c01c..ecfcf0f 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainView.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml
@@ -2,10 +2,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:pages="using:Sandbox.Views.Pages"
+ xmlns:pages="using:GeneralUpdate.Samples.Mafia.Views.Pages"
xmlns:td="https://irihi.tech/td"
mc:Ignorable="d" d:DesignWidth="375" d:DesignHeight="812"
- x:Class="Sandbox.Views.MainView">
+ x:Class="GeneralUpdate.Samples.Mafia.Views.MainView">
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainView.axaml.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml.cs
similarity index 74%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainView.axaml.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml.cs
index e97846d..a541418 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainView.axaml.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml.cs
@@ -1,8 +1,8 @@
using Avalonia.Controls;
using Common.Avalonia.Services;
-using Sandbox.ViewModels;
+using GeneralUpdate.Samples.Mafia.ViewModels;
-namespace Sandbox.Views;
+namespace GeneralUpdate.Samples.Mafia.Views;
public partial class MainView : UserControl
{
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainWindow.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml
similarity index 81%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainWindow.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml
index a49d292..ad90a41 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainWindow.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml
@@ -2,13 +2,13 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:views="using:Sandbox.Views"
+ xmlns:views="using:GeneralUpdate.Samples.Mafia.Views"
mc:Ignorable="d" d:DesignWidth="375" d:DesignHeight="812"
Width="375" Height="812"
MinWidth="300" MinHeight="700"
WindowStartupLocation="CenterScreen"
Icon="avares://Common.Avalonia/Assets/irihi.ico"
- x:Class="Sandbox.Views.MainWindow"
+ x:Class="GeneralUpdate.Samples.Mafia.Views.MainWindow"
Title="General Update Demo">
\ No newline at end of file
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainWindow.axaml.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml.cs
similarity index 75%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainWindow.axaml.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml.cs
index d880a6a..06b062f 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/MainWindow.axaml.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml.cs
@@ -1,6 +1,6 @@
using Avalonia.Controls;
-namespace Sandbox.Views;
+namespace GeneralUpdate.Samples.Mafia.Views;
public partial class MainWindow : Window
{
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/Pages/HomePageView.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/HomePageView.axaml
similarity index 91%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/Views/Pages/HomePageView.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/HomePageView.axaml
index 7e2089e..7b5973d 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/Pages/HomePageView.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/HomePageView.axaml
@@ -5,7 +5,7 @@
xmlns:iri="https://irihi.tech/shared"
xmlns:td="https://irihi.tech/td"
mc:Ignorable="d" d:DesignWidth="375" d:DesignHeight="812"
- x:Class="Sandbox.Views.Pages.HomePageView">
+ x:Class="GeneralUpdate.Samples.Mafia.Views.Pages.HomePageView">
diff --git a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/Pages/SettingsPageView.axaml.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/SettingsPageView.axaml.cs
similarity index 75%
rename from UI/SemiUrsaMafia/Mobile.Avalonia/Views/Pages/SettingsPageView.axaml.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/SettingsPageView.axaml.cs
index 244ec2a..cfc2517 100644
--- a/UI/SemiUrsaMafia/Mobile.Avalonia/Views/Pages/SettingsPageView.axaml.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/SettingsPageView.axaml.cs
@@ -1,6 +1,6 @@
using Avalonia.Controls;
-namespace Sandbox.Views.Pages;
+namespace GeneralUpdate.Samples.Mafia.Views.Pages;
public partial class SettingsPageView : UserControl
{
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/app.manifest b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/app.manifest
new file mode 100644
index 0000000..168c7fd
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/app.manifest
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia.slnx b/UI/SemiUrsaMafia/Upgrade.Avalonia.slnx
index b4fa48e..8adc92d 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia.slnx
+++ b/UI/SemiUrsaMafia/Upgrade.Avalonia.slnx
@@ -2,8 +2,10 @@
+
+
+
-
From 4dfd7dba6c0a6ec2634b18653065a89cdd2c564a Mon Sep 17 00:00:00 2001
From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
Date: Sun, 16 Aug 2026 19:24:06 +0800
Subject: [PATCH 2/6] refactor: restructure project to use
GeneralUpdate.Samples.
---
.../ViewModels/MainWindowViewModel.cs | 3 ---
.../Icon.png | Bin 11731 -> 717 bytes
.../GeneralUpdate.Samples.Mafia.csproj | 2 +-
.../ViewModels/SettingsPageViewModel.cs | 4 ++--
.../Views/MainView.axaml.cs | 2 +-
.../Views/MainWindow.axaml | 2 +-
.../Views/Pages/HomePageView.axaml | 2 +-
.../App.axaml | 6 +++---
.../App.axaml.cs | 8 ++++----
...GeneralUpdate.Samples.Semi.Desktop.csproj} | 3 ++-
.../Program.cs | 3 +--
.../ViewLocator.cs | 4 ++--
.../ViewModels/MainViewViewModel.cs | 6 +++---
.../ViewModels/MainWindowViewModel.cs | 3 +++
.../ViewModels/ViewModelBase.cs | 2 +-
.../Views/MainView.axaml | 10 +++++-----
.../Views/MainView.axaml.cs | 2 +-
.../Views/MainWindow.axaml | 8 ++++----
.../Views/MainWindow.axaml.cs | 4 ++--
.../app.manifest | 0
.../Assets/GeneralUpdate.png | Bin
.../Assets/irihi.ico | Bin
.../Converters/EnumConverter.cs | 2 +-
.../Converters/ProgressConverter.cs | 2 +-
.../GeneralUpdate.Samples.Shared.csproj} | 1 +
.../Models/DownloadStatistics.cs | 2 +-
.../Services/IDownloadService.cs | 4 ++--
.../Services/MockDownloadService.cs | 4 ++--
.../Themes/Controls/ToggleSwitch.axaml | 0
.../Themes/Controls/_index.axaml | 0
.../App.axaml | 6 +++---
.../App.axaml.cs | 8 ++++----
...GeneralUpdate.Samples.Ursa.Desktop.csproj} | 2 +-
.../Program.cs | 2 +-
.../ViewLocator.cs | 4 ++--
.../ViewModels/MainViewViewModel.cs | 6 +++---
.../ViewModels/MainWindowViewModel.cs | 3 +++
.../ViewModels/ViewModelBase.cs | 2 +-
.../Views/MainView.axaml | 10 +++++-----
.../Views/MainView.axaml.cs | 2 +-
.../Views/MainWindow.axaml | 8 ++++----
.../Views/MainWindow.axaml.cs | 4 ++--
.../app.manifest | 0
...alonia.slnx => GeneralUpdate.Samples.slnx} | 6 +++---
.../ViewModels/MainWindowViewModel.cs | 3 ---
45 files changed, 78 insertions(+), 77 deletions(-)
delete mode 100644 UI/SemiUrsaMafia/Client.Avalonia/ViewModels/MainWindowViewModel.cs
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/App.axaml (71%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/App.axaml.cs (82%)
rename UI/SemiUrsaMafia/{Client.Avalonia/Client.Avalonia.csproj => GeneralUpdate.Samples.Semi.Desktop/GeneralUpdate.Samples.Semi.Desktop.csproj} (79%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/Program.cs (92%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/ViewLocator.cs (86%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/ViewModels/MainViewViewModel.cs (94%)
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/MainWindowViewModel.cs
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/ViewModels/ViewModelBase.cs (63%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/Views/MainView.axaml (92%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/Views/MainView.axaml.cs (72%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/Views/MainWindow.axaml (65%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/Views/MainWindow.axaml.cs (79%)
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Semi.Desktop}/app.manifest (100%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Assets/GeneralUpdate.png (100%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Assets/irihi.ico (100%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Converters/EnumConverter.cs (91%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Converters/ProgressConverter.cs (91%)
rename UI/SemiUrsaMafia/{Common.Avalonia/Common.Avalonia.csproj => GeneralUpdate.Samples.Shared/GeneralUpdate.Samples.Shared.csproj} (93%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Models/DownloadStatistics.cs (95%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Services/IDownloadService.cs (86%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Services/MockDownloadService.cs (97%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Themes/Controls/ToggleSwitch.axaml (100%)
rename UI/SemiUrsaMafia/{Common.Avalonia => GeneralUpdate.Samples.Shared}/Themes/Controls/_index.axaml (100%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/App.axaml (72%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/App.axaml.cs (82%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia/Upgrade.Avalonia.csproj => GeneralUpdate.Samples.Ursa.Desktop/GeneralUpdate.Samples.Ursa.Desktop.csproj} (87%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/Program.cs (93%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/ViewLocator.cs (86%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/ViewModels/MainViewViewModel.cs (94%)
create mode 100644 UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/MainWindowViewModel.cs
rename UI/SemiUrsaMafia/{Client.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/ViewModels/ViewModelBase.cs (63%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/Views/MainView.axaml (92%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/Views/MainView.axaml.cs (72%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/Views/MainWindow.axaml (82%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/Views/MainWindow.axaml.cs (79%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia => GeneralUpdate.Samples.Ursa.Desktop}/app.manifest (100%)
rename UI/SemiUrsaMafia/{Upgrade.Avalonia.slnx => GeneralUpdate.Samples.slnx} (58%)
delete mode 100644 UI/SemiUrsaMafia/Upgrade.Avalonia/ViewModels/MainWindowViewModel.cs
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/ViewModels/MainWindowViewModel.cs b/UI/SemiUrsaMafia/Client.Avalonia/ViewModels/MainWindowViewModel.cs
deleted file mode 100644
index ffcdf7a..0000000
--- a/UI/SemiUrsaMafia/Client.Avalonia/ViewModels/MainWindowViewModel.cs
+++ /dev/null
@@ -1,3 +0,0 @@
-namespace Client.Avalonia.ViewModels;
-
-public partial class MainWindowViewModel : ViewModelBase;
\ No newline at end of file
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Icon.png b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia.Android/Icon.png
index 3c39845930eae5a98e094bdada0da2d6646bf9ce..fcc884735504e4f86731f00a4c5955a872d5b096 100644
GIT binary patch
literal 717
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
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/GeneralUpdate.Samples.Mafia.csproj b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/GeneralUpdate.Samples.Mafia.csproj
index 8921ed6..c80b86c 100644
--- a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/GeneralUpdate.Samples.Mafia.csproj
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/GeneralUpdate.Samples.Mafia.csproj
@@ -14,6 +14,6 @@
-
+
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/SettingsPageViewModel.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/SettingsPageViewModel.cs
index 20d607c..fb888ba 100644
--- a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/SettingsPageViewModel.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/ViewModels/SettingsPageViewModel.cs
@@ -1,8 +1,8 @@
using System.Collections.ObjectModel;
using Avalonia;
using Avalonia.Styling;
-using Common.Avalonia.Models;
-using Common.Avalonia.Services;
+using GeneralUpdate.Samples.Shared.Models;
+using GeneralUpdate.Samples.Shared.Services;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml.cs
index a541418..317f3fa 100644
--- a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainView.axaml.cs
@@ -1,5 +1,5 @@
using Avalonia.Controls;
-using Common.Avalonia.Services;
+using GeneralUpdate.Samples.Shared.Services;
using GeneralUpdate.Samples.Mafia.ViewModels;
namespace GeneralUpdate.Samples.Mafia.Views;
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml
index ad90a41..13079ed 100644
--- a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/MainWindow.axaml
@@ -7,7 +7,7 @@
Width="375" Height="812"
MinWidth="300" MinHeight="700"
WindowStartupLocation="CenterScreen"
- Icon="avares://Common.Avalonia/Assets/irihi.ico"
+ Icon="avares://GeneralUpdate.Samples.Shared/Assets/irihi.ico"
x:Class="GeneralUpdate.Samples.Mafia.Views.MainWindow"
Title="General Update Demo">
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/HomePageView.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/HomePageView.axaml
index 7b5973d..1f21487 100644
--- a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/HomePageView.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Mafia/Views/Pages/HomePageView.axaml
@@ -10,7 +10,7 @@
+ Source="avares://GeneralUpdate.Samples.Shared/Assets/GeneralUpdate.png" />
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/App.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/App.axaml
similarity index 71%
rename from UI/SemiUrsaMafia/Client.Avalonia/App.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/App.axaml
index a0ed5e4..bcae9ee 100644
--- a/UI/SemiUrsaMafia/Client.Avalonia/App.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/App.axaml
@@ -1,7 +1,7 @@
@@ -14,7 +14,7 @@
-
+
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/App.axaml.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/App.axaml.cs
similarity index 82%
rename from UI/SemiUrsaMafia/Client.Avalonia/App.axaml.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/App.axaml.cs
index a533140..af99bf0 100644
--- a/UI/SemiUrsaMafia/Client.Avalonia/App.axaml.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/App.axaml.cs
@@ -1,12 +1,12 @@
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
-using Client.Avalonia.ViewModels;
-using Client.Avalonia.Views;
-using Common.Avalonia.Services;
+using GeneralUpdate.Samples.Semi.Desktop.ViewModels;
+using GeneralUpdate.Samples.Semi.Desktop.Views;
+using GeneralUpdate.Samples.Shared.Services;
using Microsoft.Extensions.DependencyInjection;
-namespace Client.Avalonia;
+namespace GeneralUpdate.Samples.Semi.Desktop;
public partial class App : Application
{
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/Client.Avalonia.csproj b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/GeneralUpdate.Samples.Semi.Desktop.csproj
similarity index 79%
rename from UI/SemiUrsaMafia/Client.Avalonia/Client.Avalonia.csproj
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/GeneralUpdate.Samples.Semi.Desktop.csproj
index 47e533a..cad5402 100644
--- a/UI/SemiUrsaMafia/Client.Avalonia/Client.Avalonia.csproj
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/GeneralUpdate.Samples.Semi.Desktop.csproj
@@ -6,6 +6,7 @@
true
app.manifest
true
+ Client.Avalonia
@@ -17,6 +18,6 @@
-
+
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/Program.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/Program.cs
similarity index 92%
rename from UI/SemiUrsaMafia/Client.Avalonia/Program.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/Program.cs
index 58dbf0f..c46eb95 100644
--- a/UI/SemiUrsaMafia/Client.Avalonia/Program.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/Program.cs
@@ -1,7 +1,6 @@
using Avalonia;
-using System;
-namespace Client.Avalonia;
+namespace GeneralUpdate.Samples.Semi.Desktop;
sealed class Program
{
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/ViewLocator.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewLocator.cs
similarity index 86%
rename from UI/SemiUrsaMafia/Client.Avalonia/ViewLocator.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewLocator.cs
index 9ce44f2..67aad2c 100644
--- a/UI/SemiUrsaMafia/Client.Avalonia/ViewLocator.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewLocator.cs
@@ -1,9 +1,9 @@
using System;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
-using Client.Avalonia.ViewModels;
+using GeneralUpdate.Samples.Semi.Desktop.ViewModels;
-namespace Client.Avalonia;
+namespace GeneralUpdate.Samples.Semi.Desktop;
public class ViewLocator : IDataTemplate
{
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/ViewModels/MainViewViewModel.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/MainViewViewModel.cs
similarity index 94%
rename from UI/SemiUrsaMafia/Client.Avalonia/ViewModels/MainViewViewModel.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/MainViewViewModel.cs
index 6bc8839..e345a64 100644
--- a/UI/SemiUrsaMafia/Client.Avalonia/ViewModels/MainViewViewModel.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/MainViewViewModel.cs
@@ -2,12 +2,12 @@
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Controls.Notifications;
-using Common.Avalonia.Models;
-using Common.Avalonia.Services;
+using GeneralUpdate.Samples.Shared.Models;
+using GeneralUpdate.Samples.Shared.Services;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
-namespace Client.Avalonia.ViewModels;
+namespace GeneralUpdate.Samples.Semi.Desktop.ViewModels;
public partial class MainViewViewModel : ViewModelBase
{
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/MainWindowViewModel.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/MainWindowViewModel.cs
new file mode 100644
index 0000000..d5f7495
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/MainWindowViewModel.cs
@@ -0,0 +1,3 @@
+namespace GeneralUpdate.Samples.Semi.Desktop.ViewModels;
+
+public partial class MainWindowViewModel : ViewModelBase;
\ No newline at end of file
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia/ViewModels/ViewModelBase.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/ViewModelBase.cs
similarity index 63%
rename from UI/SemiUrsaMafia/Upgrade.Avalonia/ViewModels/ViewModelBase.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/ViewModelBase.cs
index b23cc72..3c03ea6 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia/ViewModels/ViewModelBase.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/ViewModels/ViewModelBase.cs
@@ -1,6 +1,6 @@
using CommunityToolkit.Mvvm.ComponentModel;
-namespace Upgrade.Avalonia.ViewModels;
+namespace GeneralUpdate.Samples.Semi.Desktop.ViewModels;
public class ViewModelBase : ObservableObject
{
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/Views/MainView.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/Views/MainView.axaml
similarity index 92%
rename from UI/SemiUrsaMafia/Client.Avalonia/Views/MainView.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/Views/MainView.axaml
index 48b9214..28aae4a 100644
--- a/UI/SemiUrsaMafia/Client.Avalonia/Views/MainView.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Semi.Desktop/Views/MainView.axaml
@@ -3,12 +3,12 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converters="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls"
- xmlns:vm="clr-namespace:Client.Avalonia.ViewModels"
- xmlns:services="clr-namespace:Common.Avalonia.Services;assembly=Common.Avalonia"
- xmlns:cvt="clr-namespace:Common.Avalonia.Converters;assembly=Common.Avalonia"
+ xmlns:vm="clr-namespace:GeneralUpdate.Samples.Semi.Desktop.ViewModels"
+ xmlns:services="clr-namespace:GeneralUpdate.Samples.Shared.Services;assembly=GeneralUpdate.Samples.Shared"
+ xmlns:cvt="clr-namespace:GeneralUpdate.Samples.Shared.Converters;assembly=GeneralUpdate.Samples.Shared"
xmlns:iri="https://irihi.tech/shared"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
- x:Class="Client.Avalonia.Views.MainView"
+ x:Class="GeneralUpdate.Samples.Semi.Desktop.Views.MainView"
x:DataType="vm:MainViewViewModel">
@@ -19,7 +19,7 @@
+ Source="avares://GeneralUpdate.Samples.Shared/Assets/GeneralUpdate.png" />
net8.0
enable
enable
+ Common.Avalonia
diff --git a/UI/SemiUrsaMafia/Common.Avalonia/Models/DownloadStatistics.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Models/DownloadStatistics.cs
similarity index 95%
rename from UI/SemiUrsaMafia/Common.Avalonia/Models/DownloadStatistics.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Models/DownloadStatistics.cs
index 221eb52..15b8369 100644
--- a/UI/SemiUrsaMafia/Common.Avalonia/Models/DownloadStatistics.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Models/DownloadStatistics.cs
@@ -1,7 +1,7 @@
using System.ComponentModel;
using CommunityToolkit.Mvvm.ComponentModel;
-namespace Common.Avalonia.Models;
+namespace GeneralUpdate.Samples.Shared.Models;
public partial class DownloadStatistics : ObservableObject
{
diff --git a/UI/SemiUrsaMafia/Common.Avalonia/Services/IDownloadService.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Services/IDownloadService.cs
similarity index 86%
rename from UI/SemiUrsaMafia/Common.Avalonia/Services/IDownloadService.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Services/IDownloadService.cs
index df557a1..37eadee 100644
--- a/UI/SemiUrsaMafia/Common.Avalonia/Services/IDownloadService.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Services/IDownloadService.cs
@@ -1,7 +1,7 @@
using System.ComponentModel;
-using Common.Avalonia.Models;
+using GeneralUpdate.Samples.Shared.Models;
-namespace Common.Avalonia.Services;
+namespace GeneralUpdate.Samples.Shared.Services;
public interface IDownloadService
{
diff --git a/UI/SemiUrsaMafia/Common.Avalonia/Services/MockDownloadService.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Services/MockDownloadService.cs
similarity index 97%
rename from UI/SemiUrsaMafia/Common.Avalonia/Services/MockDownloadService.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Services/MockDownloadService.cs
index c88c338..6d7a413 100644
--- a/UI/SemiUrsaMafia/Common.Avalonia/Services/MockDownloadService.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Services/MockDownloadService.cs
@@ -1,7 +1,7 @@
using Avalonia.Threading;
-using Common.Avalonia.Models;
+using GeneralUpdate.Samples.Shared.Models;
-namespace Common.Avalonia.Services;
+namespace GeneralUpdate.Samples.Shared.Services;
public class MockDownloadService : IDownloadService
{
diff --git a/UI/SemiUrsaMafia/Common.Avalonia/Themes/Controls/ToggleSwitch.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Themes/Controls/ToggleSwitch.axaml
similarity index 100%
rename from UI/SemiUrsaMafia/Common.Avalonia/Themes/Controls/ToggleSwitch.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Themes/Controls/ToggleSwitch.axaml
diff --git a/UI/SemiUrsaMafia/Common.Avalonia/Themes/Controls/_index.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Themes/Controls/_index.axaml
similarity index 100%
rename from UI/SemiUrsaMafia/Common.Avalonia/Themes/Controls/_index.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Shared/Themes/Controls/_index.axaml
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia/App.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/App.axaml
similarity index 72%
rename from UI/SemiUrsaMafia/Upgrade.Avalonia/App.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/App.axaml
index 7452c96..c57cab0 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia/App.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/App.axaml
@@ -1,7 +1,7 @@
@@ -15,7 +15,7 @@
-
+
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia/App.axaml.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/App.axaml.cs
similarity index 82%
rename from UI/SemiUrsaMafia/Upgrade.Avalonia/App.axaml.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/App.axaml.cs
index bc30c24..bde96cf 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia/App.axaml.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/App.axaml.cs
@@ -1,12 +1,12 @@
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
-using Common.Avalonia.Services;
+using GeneralUpdate.Samples.Shared.Services;
+using GeneralUpdate.Samples.Ursa.Desktop.ViewModels;
+using GeneralUpdate.Samples.Ursa.Desktop.Views;
using Microsoft.Extensions.DependencyInjection;
-using Upgrade.Avalonia.ViewModels;
-using Upgrade.Avalonia.Views;
-namespace Upgrade.Avalonia;
+namespace GeneralUpdate.Samples.Ursa.Desktop;
public partial class App : Application
{
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia/Upgrade.Avalonia.csproj b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/GeneralUpdate.Samples.Ursa.Desktop.csproj
similarity index 87%
rename from UI/SemiUrsaMafia/Upgrade.Avalonia/Upgrade.Avalonia.csproj
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/GeneralUpdate.Samples.Ursa.Desktop.csproj
index c50a1ea..687f19a 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia/Upgrade.Avalonia.csproj
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/GeneralUpdate.Samples.Ursa.Desktop.csproj
@@ -19,6 +19,6 @@
-
+
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia/Program.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/Program.cs
similarity index 93%
rename from UI/SemiUrsaMafia/Upgrade.Avalonia/Program.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/Program.cs
index d97eb65..d5f5595 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia/Program.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/Program.cs
@@ -1,7 +1,7 @@
using Avalonia;
using System;
-namespace Upgrade.Avalonia;
+namespace GeneralUpdate.Samples.Ursa.Desktop;
sealed class Program
{
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia/ViewLocator.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewLocator.cs
similarity index 86%
rename from UI/SemiUrsaMafia/Upgrade.Avalonia/ViewLocator.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewLocator.cs
index 61ac6c4..704a013 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia/ViewLocator.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewLocator.cs
@@ -1,9 +1,9 @@
using System;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
-using Upgrade.Avalonia.ViewModels;
+using GeneralUpdate.Samples.Ursa.Desktop.ViewModels;
-namespace Upgrade.Avalonia;
+namespace GeneralUpdate.Samples.Ursa.Desktop;
public class ViewLocator : IDataTemplate
{
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia/ViewModels/MainViewViewModel.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/MainViewViewModel.cs
similarity index 94%
rename from UI/SemiUrsaMafia/Upgrade.Avalonia/ViewModels/MainViewViewModel.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/MainViewViewModel.cs
index d6d3dae..ceaa68d 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia/ViewModels/MainViewViewModel.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/MainViewViewModel.cs
@@ -2,13 +2,13 @@
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Controls.Notifications;
-using Common.Avalonia.Models;
-using Common.Avalonia.Services;
+using GeneralUpdate.Samples.Shared.Models;
+using GeneralUpdate.Samples.Shared.Services;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Ursa.Controls;
-namespace Upgrade.Avalonia.ViewModels;
+namespace GeneralUpdate.Samples.Ursa.Desktop.ViewModels;
public partial class MainViewViewModel : ViewModelBase
{
diff --git a/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/MainWindowViewModel.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/MainWindowViewModel.cs
new file mode 100644
index 0000000..514c56f
--- /dev/null
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/MainWindowViewModel.cs
@@ -0,0 +1,3 @@
+namespace GeneralUpdate.Samples.Ursa.Desktop.ViewModels;
+
+public partial class MainWindowViewModel : ViewModelBase;
\ No newline at end of file
diff --git a/UI/SemiUrsaMafia/Client.Avalonia/ViewModels/ViewModelBase.cs b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/ViewModelBase.cs
similarity index 63%
rename from UI/SemiUrsaMafia/Client.Avalonia/ViewModels/ViewModelBase.cs
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/ViewModelBase.cs
index 45381d0..fce30c2 100644
--- a/UI/SemiUrsaMafia/Client.Avalonia/ViewModels/ViewModelBase.cs
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/ViewModels/ViewModelBase.cs
@@ -1,6 +1,6 @@
using CommunityToolkit.Mvvm.ComponentModel;
-namespace Client.Avalonia.ViewModels;
+namespace GeneralUpdate.Samples.Ursa.Desktop.ViewModels;
public class ViewModelBase : ObservableObject
{
diff --git a/UI/SemiUrsaMafia/Upgrade.Avalonia/Views/MainView.axaml b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/Views/MainView.axaml
similarity index 92%
rename from UI/SemiUrsaMafia/Upgrade.Avalonia/Views/MainView.axaml
rename to UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/Views/MainView.axaml
index 3d8baa8..afb1ce2 100644
--- a/UI/SemiUrsaMafia/Upgrade.Avalonia/Views/MainView.axaml
+++ b/UI/SemiUrsaMafia/GeneralUpdate.Samples.Ursa.Desktop/Views/MainView.axaml
@@ -3,12 +3,12 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converters="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls"
- xmlns:vm="clr-namespace:Upgrade.Avalonia.ViewModels"
- xmlns:services="clr-namespace:Common.Avalonia.Services;assembly=Common.Avalonia"
- xmlns:cvt="clr-namespace:Common.Avalonia.Converters;assembly=Common.Avalonia"
+ xmlns:vm="clr-namespace:GeneralUpdate.Samples.Ursa.Desktop.ViewModels"
+ xmlns:services="clr-namespace:GeneralUpdate.Samples.Shared.Services;assembly=GeneralUpdate.Samples.Shared"
+ xmlns:cvt="clr-namespace:GeneralUpdate.Samples.Shared.Converters;assembly=GeneralUpdate.Samples.Shared"
xmlns:u="https://irihi.tech/ursa"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
- x:Class="Upgrade.Avalonia.Views.MainView"
+ x:Class="GeneralUpdate.Samples.Ursa.Desktop.Views.MainView"
x:DataType="vm:MainViewViewModel">
@@ -42,7 +42,7 @@
Height="150"
Opacity="{Binding Statistics.ProgressPercentage,
Converter={x:Static cvt:ProgressConverter.ProgressToOpacityConverter}}"
- Source="avares://Common.Avalonia/Assets/GeneralUpdate.png">
+ Source="avares://GeneralUpdate.Samples.Shared/Assets/GeneralUpdate.png">