From a04aa6560cfb08a1faa79b2da69a988ba1d61e29 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Sun, 8 Oct 2023 11:27:31 -0600 Subject: [PATCH 1/4] chore: refactoring dependencies for Uno --- Directory.Build.targets | 13 +----- .../HelloWorld.Windows.csproj | 4 +- e2e/Uno/HelloWorld/HelloWorld.csproj | 4 +- e2e/Uno/ModuleA/ModuleA.csproj | 6 +-- src/Uno/Prism.Uno/Dialogs/DialogService.cs | 31 +++++++------ .../Prism.Uno/Dialogs/DialogWindow.xaml.cs | 3 +- src/Uno/Prism.Uno/Dialogs/IDialogWindow.cs | 7 +-- src/Uno/Prism.Uno/Prism.Uno.WinUI.csproj | 7 +-- src/Uno/Prism.Uno/PrismApplicationBase.cs | 43 +++++++------------ src/Wpf/Prism.Wpf/Common/MvvmHelpers.cs | 8 ++-- .../PrismInitializationExtensions.cs | 6 +++ 11 files changed, 57 insertions(+), 75 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index f0fd2e81c5..52e3da3618 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -11,22 +11,13 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb - + - + --> diff --git a/e2e/Uno/HelloWorld.Windows/HelloWorld.Windows.csproj b/e2e/Uno/HelloWorld.Windows/HelloWorld.Windows.csproj index 7f0891707a..a679f3461e 100644 --- a/e2e/Uno/HelloWorld.Windows/HelloWorld.Windows.csproj +++ b/e2e/Uno/HelloWorld.Windows/HelloWorld.Windows.csproj @@ -54,7 +54,7 @@ the "Microsoft.Windows.SDK.BuildTools" package above, and the "revision" version number must be the highest found in https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref. --> - - + diff --git a/e2e/Uno/HelloWorld/HelloWorld.csproj b/e2e/Uno/HelloWorld/HelloWorld.csproj index 0fdb105213..bbaad1d9ed 100644 --- a/e2e/Uno/HelloWorld/HelloWorld.csproj +++ b/e2e/Uno/HelloWorld/HelloWorld.csproj @@ -38,8 +38,8 @@ the "Microsoft.Windows.SDK.BuildTools" package above, and the "revision" version number must be the highest found in https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref. --> - - + diff --git a/e2e/Uno/ModuleA/ModuleA.csproj b/e2e/Uno/ModuleA/ModuleA.csproj index e2ff10b189..5eedfa0684 100644 --- a/e2e/Uno/ModuleA/ModuleA.csproj +++ b/e2e/Uno/ModuleA/ModuleA.csproj @@ -2,7 +2,7 @@ net7.0;net7.0-ios;net7.0-android;net7.0-maccatalyst - $(TargetFrameworks);net7.0-windows10.0.22621 + $(TargetFrameworks);net7.0-windows10.0.22621 true @@ -32,8 +32,8 @@ the "Microsoft.Windows.SDK.BuildTools" package above, and the "revision" version number must be the highest found in https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref. --> - - + diff --git a/src/Uno/Prism.Uno/Dialogs/DialogService.cs b/src/Uno/Prism.Uno/Dialogs/DialogService.cs index 3d7e2a304f..55c0d03067 100644 --- a/src/Uno/Prism.Uno/Dialogs/DialogService.cs +++ b/src/Uno/Prism.Uno/Dialogs/DialogService.cs @@ -4,6 +4,7 @@ using Prism.Ioc; using Windows.Foundation; +#nullable enable namespace Prism.Dialogs { public class DialogService : IDialogService @@ -19,6 +20,7 @@ public void ShowDialog(string name, IDialogParameters parameters, DialogCallback { parameters ??= new DialogParameters(); var windowName = parameters.TryGetValue(KnownDialogParameters.WindowName, out var wName) ? wName : null; + IDialogWindow contentDialog = CreateDialogWindow(windowName); ConfigureDialogWindowEvents(contentDialog, callback); ConfigureDialogWindowContent(name, contentDialog, parameters); @@ -26,7 +28,7 @@ public void ShowDialog(string name, IDialogParameters parameters, DialogCallback _ = contentDialog.ShowAsync(); } - IDialogWindow CreateDialogWindow(string name) + IDialogWindow CreateDialogWindow(string? name) { if (string.IsNullOrWhiteSpace(name)) return _containerProvider.Resolve(); @@ -37,26 +39,26 @@ IDialogWindow CreateDialogWindow(string name) void ConfigureDialogWindowContent(string dialogName, IDialogWindow window, IDialogParameters parameters) { var content = _containerProvider.Resolve(dialogName); - if (!(content is FrameworkElement dialogContent)) + if (content is not FrameworkElement dialogContent) { throw new NullReferenceException("A dialog's content must be a FrameworkElement"); } MvvmHelpers.AutowireViewModel(content); - if (!(dialogContent.DataContext is IDialogAware viewModel)) + if (dialogContent.DataContext is not IDialogAware viewModel) { throw new NullReferenceException($"A dialog's ViewModel must implement the IDialogAware interface ({dialogContent.DataContext})"); } - ConfigureDialogWindowProperties(window, dialogContent, viewModel); + DialogService.ConfigureDialogWindowProperties(window, dialogContent, viewModel); MvvmHelpers.ViewAndViewModelAction(viewModel, d => d.OnDialogOpened(parameters)); } void ConfigureDialogWindowEvents(IDialogWindow contentDialog, DialogCallback callback) { - IDialogResult result = null; + IDialogResult? result = null; void RequestCloseHandler(IDialogResult r) { @@ -64,7 +66,7 @@ void RequestCloseHandler(IDialogResult r) contentDialog.Hide(); } - RoutedEventHandler loadedHandler = null; + RoutedEventHandler loadedHandler = null!; loadedHandler = (o, e) => { contentDialog.Loaded -= loadedHandler; @@ -77,32 +79,29 @@ void RequestCloseHandler(IDialogResult r) contentDialog.Loaded += loadedHandler; - TypedEventHandler closingHandler = null; - - closingHandler = (o, e) => + void ClosingHandler(ContentDialog o, ContentDialogClosingEventArgs e) { if (contentDialog.DataContext is IDialogAware dialogAware && !dialogAware.CanCloseDialog()) { e.Cancel = true; } - }; + } - contentDialog.Closing += closingHandler; + contentDialog.Closing += ClosingHandler; - TypedEventHandler closedHandler = null; + TypedEventHandler closedHandler = null!; closedHandler = async (o, e) => { contentDialog.Closed -= closedHandler; - contentDialog.Closing -= closingHandler; + contentDialog.Closing -= ClosingHandler; if (contentDialog.DataContext is IDialogAware dialogAware) { dialogAware.OnDialogClosed(); } - if (result == null) - result = new DialogResult(); + result ??= new DialogResult(); await callback.Invoke(result); @@ -112,7 +111,7 @@ void RequestCloseHandler(IDialogResult r) contentDialog.Closed += closedHandler; } - void ConfigureDialogWindowProperties(IDialogWindow window, FrameworkElement dialogContent, IDialogAware viewModel) + private static void ConfigureDialogWindowProperties(IDialogWindow window, FrameworkElement dialogContent, IDialogAware viewModel) { var windowStyle = Dialog.GetWindowStyle(dialogContent); if (windowStyle != null) diff --git a/src/Uno/Prism.Uno/Dialogs/DialogWindow.xaml.cs b/src/Uno/Prism.Uno/Dialogs/DialogWindow.xaml.cs index 19d4b9853f..938b3c9e3f 100644 --- a/src/Uno/Prism.Uno/Dialogs/DialogWindow.xaml.cs +++ b/src/Uno/Prism.Uno/Dialogs/DialogWindow.xaml.cs @@ -2,6 +2,7 @@ using Microsoft.UI.Xaml.Controls; using Windows.Foundation; +#nullable enable namespace Prism.Dialogs { /// @@ -13,7 +14,7 @@ public DialogWindow() { this.InitializeComponent(); } - public IDialogResult Result { get; set; } + public IDialogResult? Result { get; set; } event RoutedEventHandler IDialogWindow.Loaded { diff --git a/src/Uno/Prism.Uno/Dialogs/IDialogWindow.cs b/src/Uno/Prism.Uno/Dialogs/IDialogWindow.cs index 4883918218..8ca332338b 100644 --- a/src/Uno/Prism.Uno/Dialogs/IDialogWindow.cs +++ b/src/Uno/Prism.Uno/Dialogs/IDialogWindow.cs @@ -2,11 +2,12 @@ using Microsoft.UI.Xaml.Controls; using Windows.Foundation; +#nullable enable namespace Prism.Dialogs { public interface IDialogWindow { - object DataContext { get; set; } + object? DataContext { get; set; } Style Style { get; set; } @@ -15,9 +16,9 @@ public interface IDialogWindow event TypedEventHandler Closing; event TypedEventHandler Closed; - IDialogResult Result { get; set; } + IDialogResult? Result { get; set; } - object Content { get; set; } + object? Content { get; set; } IAsyncOperation ShowAsync(); diff --git a/src/Uno/Prism.Uno/Prism.Uno.WinUI.csproj b/src/Uno/Prism.Uno/Prism.Uno.WinUI.csproj index d86277fbe8..dbff630c03 100644 --- a/src/Uno/Prism.Uno/Prism.Uno.WinUI.csproj +++ b/src/Uno/Prism.Uno/Prism.Uno.WinUI.csproj @@ -20,16 +20,11 @@ - - - - + - - diff --git a/src/Uno/Prism.Uno/PrismApplicationBase.cs b/src/Uno/Prism.Uno/PrismApplicationBase.cs index ab423a2964..a9880815a9 100644 --- a/src/Uno/Prism.Uno/PrismApplicationBase.cs +++ b/src/Uno/Prism.Uno/PrismApplicationBase.cs @@ -1,8 +1,7 @@ -using System.ComponentModel; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.UI.Xaml; using Prism.Common; -using Prism.Ioc; using Prism.Modularity; using Prism.Mvvm; using Prism.Navigation.Regions; @@ -19,16 +18,20 @@ namespace Prism /// public abstract class PrismApplicationBase : Application { - private IContainerExtension? _containerExtension; - private IModuleCatalog? _moduleCatalog; + private readonly IContainerExtension _containerExtension; private IHost? _host; private IRegionManager? _regionManager; + protected PrismApplicationBase() + { + _containerExtension = CreateContainerExtension(); + ContainerLocator.SetContainerExtension(_containerExtension); + } + /// /// The dependency injection container used to resolve objects /// - public IContainerProvider Container => _containerExtension ?? - throw new InvalidOperationException("The Container has not yet been initialized."); + public IContainerProvider Container => _containerExtension; /// /// Gets the built when the Shell is loaded. @@ -46,8 +49,8 @@ public abstract class PrismApplicationBase : Application /// Invoked when the application is launched. /// /// Event data for the event. - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void OnLaunched(LaunchActivatedEventArgs args) + /// If you need to change the behavior here you should override . + protected sealed override void OnLaunched(LaunchActivatedEventArgs args) { base.OnLaunched(args); InitializeInternal(this.CreateBuilder(args)); @@ -100,24 +103,21 @@ protected virtual void ConfigureServices(IServiceCollection services) { } /// protected virtual void Initialize(IApplicationBuilder builder) { - ContainerLocator.SetContainerExtension(CreateContainerExtension()); - _containerExtension = ContainerLocator.Current; ConfigureApp(builder); builder.Configure(ConfigureHost) .Configure(x => x.ConfigureServices(ConfigureServices) .UseServiceProviderFactory(new PrismServiceProviderFactory(_containerExtension))); - _moduleCatalog = CreateModuleCatalog(); RegisterRequiredTypes(_containerExtension); RegisterTypes(_containerExtension); _containerExtension.FinalizeExtension(); - ConfigureModuleCatalog(_moduleCatalog); + ConfigureModuleCatalog(Container.Resolve()); - var regionAdapterMappings = _containerExtension.Resolve(); + var regionAdapterMappings = Container.Resolve(); ConfigureRegionAdapterMappings(regionAdapterMappings); - var defaultRegionBehaviors = _containerExtension.Resolve(); + var defaultRegionBehaviors = Container.Resolve(); ConfigureDefaultRegionBehaviors(defaultRegionBehaviors); RegisterFrameworkExceptionTypes(); @@ -131,7 +131,7 @@ protected virtual void Initialize(IApplicationBuilder builder) void FinalizeInitialization() { - Navigation.Regions.RegionManager.SetRegionManager(shell, _containerExtension.Resolve()); + Navigation.Regions.RegionManager.SetRegionManager(shell, Container.Resolve()); Navigation.Regions.RegionManager.UpdateRegions(); _host = builder.Build(); InitializeModules(); @@ -171,24 +171,13 @@ void OnLoaded(object sender, object args) /// The container protected abstract IContainerExtension CreateContainerExtension(); - /// - /// Creates the used by Prism. - /// - /// - /// The base implementation returns a new ModuleCatalog. - /// - protected virtual IModuleCatalog CreateModuleCatalog() - { - return new ModuleCatalog(); - } - /// /// Registers all types that are required by Prism to function with the container. /// /// protected virtual void RegisterRequiredTypes(IContainerRegistry containerRegistry) { - containerRegistry.RegisterRequiredTypes(_moduleCatalog); + containerRegistry.RegisterRequiredTypes(); } /// diff --git a/src/Wpf/Prism.Wpf/Common/MvvmHelpers.cs b/src/Wpf/Prism.Wpf/Common/MvvmHelpers.cs index bc8dec4d14..86583922ec 100644 --- a/src/Wpf/Prism.Wpf/Common/MvvmHelpers.cs +++ b/src/Wpf/Prism.Wpf/Common/MvvmHelpers.cs @@ -55,10 +55,10 @@ public static void AutowireViewModel(object viewOrViewModel) #endif /// - /// Perform an on a view and viewmodel. + /// Perform an on a view and ViewModel. /// /// - /// The action will be performed on the view and its viewmodel if they implement . + /// The action will be performed on the view and its ViewModel if they implement . /// /// The parameter type. /// The view to perform the on. @@ -75,7 +75,7 @@ public static void ViewAndViewModelAction(object view, Action action) wher } /// - /// Get an implementer from a view or viewmodel. + /// Get an implementer from a View or ViewModel. /// /// /// If the view implements it will be returned. @@ -83,7 +83,7 @@ public static void ViewAndViewModelAction(object view, Action action) wher /// /// The implementer type to get. /// The view to get from. - /// view or viewmodel as . + /// View or ViewModel as . public static T GetImplementerFromViewOrViewModel(object view) where T : class { if (view is T viewAsT) diff --git a/src/Wpf/Prism.Wpf/PrismInitializationExtensions.cs b/src/Wpf/Prism.Wpf/PrismInitializationExtensions.cs index b6059795d5..831c2733c7 100644 --- a/src/Wpf/Prism.Wpf/PrismInitializationExtensions.cs +++ b/src/Wpf/Prism.Wpf/PrismInitializationExtensions.cs @@ -26,9 +26,15 @@ internal static void ConfigureViewModelLocator() }); } +#if HAS_WINUI + internal static void RegisterRequiredTypes(this IContainerRegistry containerRegistry) + { + containerRegistry.TryRegisterSingleton(); +#else internal static void RegisterRequiredTypes(this IContainerRegistry containerRegistry, IModuleCatalog moduleCatalog) { containerRegistry.TryRegisterInstance(moduleCatalog); +#endif containerRegistry.TryRegisterSingleton(); containerRegistry.TryRegisterSingleton(); containerRegistry.TryRegisterSingleton(); From fb9198868413d57561e67e17096d87e2805928b9 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Sun, 8 Oct 2023 20:05:25 -0600 Subject: [PATCH 2/4] chore: fixing breaking changes in app structure --- e2e/Uno/HelloWorld.Skia.Gtk/Program.cs | 23 +++++---- .../Program.cs | 49 +++++++++++++------ e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml | 3 +- e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml.cs | 6 +++ .../HelloWorld.Skia.WPF/Wpf/MainWindow.xaml | 10 ---- .../Wpf/MainWindow.xaml.cs | 16 ------ 6 files changed, 53 insertions(+), 54 deletions(-) delete mode 100644 e2e/Uno/HelloWorld.Skia.WPF/Wpf/MainWindow.xaml delete mode 100644 e2e/Uno/HelloWorld.Skia.WPF/Wpf/MainWindow.xaml.cs diff --git a/e2e/Uno/HelloWorld.Skia.Gtk/Program.cs b/e2e/Uno/HelloWorld.Skia.Gtk/Program.cs index 4a0b41d89f..dd6e0e5b6c 100644 --- a/e2e/Uno/HelloWorld.Skia.Gtk/Program.cs +++ b/e2e/Uno/HelloWorld.Skia.Gtk/Program.cs @@ -1,21 +1,20 @@ -using System; using GLib; -using Uno.UI.Runtime.Skia; +using Uno.UI.Runtime.Skia.Gtk; namespace HelloWorld.Skia.Gtk; public class Program { - public static void Main(string[] args) - { - ExceptionManager.UnhandledException += delegate (UnhandledExceptionArgs expArgs) - { - Console.WriteLine("GLIB UNHANDLED EXCEPTION" + expArgs.ExceptionObject.ToString()); - expArgs.ExitApplication = true; - }; + public static void Main(string[] args) + { + ExceptionManager.UnhandledException += delegate (UnhandledExceptionArgs expArgs) + { + Console.WriteLine("GLIB UNHANDLED EXCEPTION" + expArgs.ExceptionObject.ToString()); + expArgs.ExitApplication = true; + }; - var host = new GtkHost(() => new AppHead(), args); + var host = new GtkHost(() => new AppHead()); - host.Run(); - } + host.Run(); + } } diff --git a/e2e/Uno/HelloWorld.Skia.Linux.FrameBuffer/Program.cs b/e2e/Uno/HelloWorld.Skia.Linux.FrameBuffer/Program.cs index 1095a3e428..08ec9268dc 100644 --- a/e2e/Uno/HelloWorld.Skia.Linux.FrameBuffer/Program.cs +++ b/e2e/Uno/HelloWorld.Skia.Linux.FrameBuffer/Program.cs @@ -1,21 +1,42 @@ -using Uno.UI.Runtime.Skia; +using Microsoft.UI.Xaml; +using Uno.UI.Runtime.Skia.Linux.FrameBuffer; +using Windows.UI.Core; namespace HelloWorld.Skia.Framebuffer; public class Program { - public static void Main(string[] args) - { - try - { - Console.CursorVisible = false; + public static void Main(string[] args) + { + try + { + Console.CursorVisible = false; - var host = new FrameBufferHost(() => new AppHead(), args); - host.Run(); - } - finally - { - Console.CursorVisible = true; - } - } + var host = new FrameBufferHost(() => + { + if (CoreWindow.GetForCurrentThread() is { } window) + { + // Framebuffer applications don't have a WindowManager to rely + // on. To close the application, we can hook onto CoreWindow events + // which dispatch keyboard input, and close the application as a result. + // This block can be moved to App.xaml.cs if it does not interfere with other + // platforms that may use the same keys. + window.KeyDown += (s, e) => + { + if (e.VirtualKey == Windows.System.VirtualKey.F12) + { + Application.Current.Exit(); + } + }; + } + + return new AppHead(); + }); + host.Run(); + } + finally + { + Console.CursorVisible = true; + } + } } diff --git a/e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml b/e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml index 14e2ba535f..d83b1ff0e7 100644 --- a/e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml +++ b/e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml @@ -1,8 +1,7 @@ + xmlns:local="clr-namespace:HelloWorld.WPF"> diff --git a/e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml.cs b/e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml.cs index c69214d756..104849ad32 100644 --- a/e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml.cs +++ b/e2e/Uno/HelloWorld.Skia.WPF/Wpf/App.xaml.cs @@ -1,7 +1,13 @@ using WpfApp = System.Windows.Application; +using Uno.UI.Runtime.Skia.Wpf; namespace HelloWorld.WPF; public partial class App : WpfApp { + public App() + { + var host = new WpfHost(Dispatcher, () => new AppHead()); + host.Run(); + } } diff --git a/e2e/Uno/HelloWorld.Skia.WPF/Wpf/MainWindow.xaml b/e2e/Uno/HelloWorld.Skia.WPF/Wpf/MainWindow.xaml deleted file mode 100644 index 77a17dfe9e..0000000000 --- a/e2e/Uno/HelloWorld.Skia.WPF/Wpf/MainWindow.xaml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/e2e/Uno/HelloWorld.Skia.WPF/Wpf/MainWindow.xaml.cs b/e2e/Uno/HelloWorld.Skia.WPF/Wpf/MainWindow.xaml.cs deleted file mode 100644 index aa8b407d05..0000000000 --- a/e2e/Uno/HelloWorld.Skia.WPF/Wpf/MainWindow.xaml.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Window = System.Windows.Window; - -namespace HelloWorld.WPF; - -/// -/// Interaction logic for MainWindow.xaml -/// -public partial class MainWindow : Window -{ - public MainWindow() - { - InitializeComponent(); - - root.Content = new global::Uno.UI.Skia.Platform.WpfHost(Dispatcher, () => new AppHead()); - } -} From bd08b863853f74e126ef237d49c1e5c53895f6ef Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Tue, 10 Oct 2023 06:22:42 -0600 Subject: [PATCH 3/4] chore: adding splash screen --- e2e/Uno/HelloWorld-vsmac.slnf | 3 +- .../HelloWorld.Base/HelloWorld.Base.csproj | 12 ++ e2e/Uno/HelloWorld.Base/Icons/appconfig.svg | 138 +----------------- e2e/Uno/HelloWorld.Base/Icons/iconapp.svg | 43 +++++- .../HelloWorld.Base/Splash/splash_screen.svg | 1 + e2e/Uno/HelloWorld.Base/base.props | 45 +++--- e2e/Uno/HelloWorld.sln | 30 ++++ 7 files changed, 115 insertions(+), 157 deletions(-) create mode 100644 e2e/Uno/HelloWorld.Base/HelloWorld.Base.csproj create mode 100644 e2e/Uno/HelloWorld.Base/Splash/splash_screen.svg diff --git a/e2e/Uno/HelloWorld-vsmac.slnf b/e2e/Uno/HelloWorld-vsmac.slnf index 2c5f003353..39e2355452 100644 --- a/e2e/Uno/HelloWorld-vsmac.slnf +++ b/e2e/Uno/HelloWorld-vsmac.slnf @@ -4,7 +4,8 @@ "projects": [ "HelloWorld.Mobile\\HelloWorld.Mobile.csproj", "HelloWorld.Skia.Gtk\\HelloWorld.Skia.Gtk.csproj", - "HelloWorld.Wasm\\HelloWorld.Wasm.csproj", + "HelloWorld.Wasm\\HelloWorld.Wasm.csproj",, + "HelloWorld.Base\\HelloWorld.Base.csproj", "HelloWorld\\HelloWorld.csproj" ] } diff --git a/e2e/Uno/HelloWorld.Base/HelloWorld.Base.csproj b/e2e/Uno/HelloWorld.Base/HelloWorld.Base.csproj new file mode 100644 index 0000000000..8d78f515e0 --- /dev/null +++ b/e2e/Uno/HelloWorld.Base/HelloWorld.Base.csproj @@ -0,0 +1,12 @@ + + + + net7.0 + false + + + + + + + diff --git a/e2e/Uno/HelloWorld.Base/Icons/appconfig.svg b/e2e/Uno/HelloWorld.Base/Icons/appconfig.svg index 3106b1a8b0..dfd34e428c 100644 --- a/e2e/Uno/HelloWorld.Base/Icons/appconfig.svg +++ b/e2e/Uno/HelloWorld.Base/Icons/appconfig.svg @@ -1,137 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/e2e/Uno/HelloWorld.Base/Icons/iconapp.svg b/e2e/Uno/HelloWorld.Base/Icons/iconapp.svg index 241cbccf49..f621ea597f 100644 --- a/e2e/Uno/HelloWorld.Base/Icons/iconapp.svg +++ b/e2e/Uno/HelloWorld.Base/Icons/iconapp.svg @@ -1 +1,42 @@ - \ No newline at end of file + + + + + + diff --git a/e2e/Uno/HelloWorld.Base/Splash/splash_screen.svg b/e2e/Uno/HelloWorld.Base/Splash/splash_screen.svg new file mode 100644 index 0000000000..86d7bda63b --- /dev/null +++ b/e2e/Uno/HelloWorld.Base/Splash/splash_screen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/e2e/Uno/HelloWorld.Base/base.props b/e2e/Uno/HelloWorld.Base/base.props index 36e730bebd..ae6d625aa8 100644 --- a/e2e/Uno/HelloWorld.Base/base.props +++ b/e2e/Uno/HelloWorld.Base/base.props @@ -1,21 +1,30 @@ - - - + + + - - - - - - + + + + + + + + + + + diff --git a/e2e/Uno/HelloWorld.sln b/e2e/Uno/HelloWorld.sln index 18cf94cf5e..3ad8753d69 100644 --- a/e2e/Uno/HelloWorld.sln +++ b/e2e/Uno/HelloWorld.sln @@ -42,6 +42,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModuleA", "ModuleA\ModuleA. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld.Base", "HelloWorld.Base\HelloWorld.Base.csproj", "{28A534A3-3ADA-4435-B5F5-59FA61DF23EF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -427,6 +429,34 @@ Global {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x64.Build.0 = Release|Any CPU {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x86.ActiveCfg = Release|Any CPU {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x86.Build.0 = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|ARM.ActiveCfg = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|ARM.Build.0 = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|ARM64.Build.0 = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|iPhone.Build.0 = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|x64.ActiveCfg = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|x64.Build.0 = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|x86.ActiveCfg = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|x86.Build.0 = Debug|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|Any CPU.Build.0 = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|ARM.ActiveCfg = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|ARM.Build.0 = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|ARM64.ActiveCfg = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|ARM64.Build.0 = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|iPhone.ActiveCfg = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|iPhone.Build.0 = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|x64.ActiveCfg = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|x64.Build.0 = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|x86.ActiveCfg = Release|Any CPU + {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From c176b77404e223fb3eedf7b9ca803a221ebdbed0 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Tue, 10 Oct 2023 07:05:56 -0600 Subject: [PATCH 4/4] ci: deploy to CI feed --- .github/workflows/ci.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb19c81aae..c43d4c820a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -134,19 +134,12 @@ jobs: run: build\consolidate-artifacts.ps1 shell: powershell - - name: Upload Consolidated NuGets uses: actions/upload-artifact@v3 with: name: NuGet path: .\artifacts\nuget - - name: Upload Consolidated Binaries - uses: actions/upload-artifact@v3 - with: - name: Binaries - path: .\artifacts\binaries - deploy-internal: uses: avantipoint/workflow-templates/.github/workflows/deploy-nuget.yml@master needs: generate-consolidated-artifacts @@ -157,6 +150,16 @@ jobs: feedUrl: ${{ secrets.IN_HOUSE_NUGET_FEED }} apiKey: ${{ secrets.IN_HOUSE_API_KEY }} + deploy-prism-ci: + uses: avantipoint/workflow-templates/.github/workflows/deploy-nuget.yml@master + needs: generate-consolidated-artifacts + if: ${{ github.event_name == 'push' }} + with: + name: Deploy Internal + secrets: + feedUrl: ${{ secrets.PRISM_CI_NUGET_FEED }} + apiKey: ${{ secrets.PRISM_CI_NUGET_TOKEN }} + deploy-sponsors: uses: avantipoint/workflow-templates/.github/workflows/deploy-nuget.yml@master needs: generate-consolidated-artifacts