From d65c9e556a6ecabe6525944164e6aaa1f00ae086 Mon Sep 17 00:00:00 2001 From: Alex <33064621+Axemasta@users.noreply.github.com> Date: Mon, 4 Sep 2023 10:46:07 +0100 Subject: [PATCH] IUserDialogs is now registered with service collection Refactored the MauiAppBuilder extension to be shared by all platforms, add servicecollection registation for instance --- .../Platforms/Android/UserDialogs.cs | 13 ------------- .../Platforms/MacCatalyst/UserDialogs.cs | 13 ------------- .../Platforms/iOS/UserDialogs.cs | 13 ------------- .../Shared/MauiAppBuilderExtension.cs | 15 +++++++++++++++ Controls.UserDialogs.Maui/Shared/UserDialogs.cs | 4 +--- 5 files changed, 16 insertions(+), 42 deletions(-) delete mode 100644 Controls.UserDialogs.Maui/Platforms/Android/UserDialogs.cs delete mode 100644 Controls.UserDialogs.Maui/Platforms/MacCatalyst/UserDialogs.cs delete mode 100644 Controls.UserDialogs.Maui/Platforms/iOS/UserDialogs.cs create mode 100644 Controls.UserDialogs.Maui/Shared/MauiAppBuilderExtension.cs diff --git a/Controls.UserDialogs.Maui/Platforms/Android/UserDialogs.cs b/Controls.UserDialogs.Maui/Platforms/Android/UserDialogs.cs deleted file mode 100644 index cc6787f..0000000 --- a/Controls.UserDialogs.Maui/Platforms/Android/UserDialogs.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Controls.UserDialogs.Maui; - -public static partial class UserDialogs -{ - public static partial MauiAppBuilder UseUserDialogs(this MauiAppBuilder builder, Action configure = null) - { - Instance = new UserDialogsImplementation(); - - configure?.Invoke(); - - return builder; - } -} \ No newline at end of file diff --git a/Controls.UserDialogs.Maui/Platforms/MacCatalyst/UserDialogs.cs b/Controls.UserDialogs.Maui/Platforms/MacCatalyst/UserDialogs.cs deleted file mode 100644 index cc6787f..0000000 --- a/Controls.UserDialogs.Maui/Platforms/MacCatalyst/UserDialogs.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Controls.UserDialogs.Maui; - -public static partial class UserDialogs -{ - public static partial MauiAppBuilder UseUserDialogs(this MauiAppBuilder builder, Action configure = null) - { - Instance = new UserDialogsImplementation(); - - configure?.Invoke(); - - return builder; - } -} \ No newline at end of file diff --git a/Controls.UserDialogs.Maui/Platforms/iOS/UserDialogs.cs b/Controls.UserDialogs.Maui/Platforms/iOS/UserDialogs.cs deleted file mode 100644 index cc6787f..0000000 --- a/Controls.UserDialogs.Maui/Platforms/iOS/UserDialogs.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Controls.UserDialogs.Maui; - -public static partial class UserDialogs -{ - public static partial MauiAppBuilder UseUserDialogs(this MauiAppBuilder builder, Action configure = null) - { - Instance = new UserDialogsImplementation(); - - configure?.Invoke(); - - return builder; - } -} \ No newline at end of file diff --git a/Controls.UserDialogs.Maui/Shared/MauiAppBuilderExtension.cs b/Controls.UserDialogs.Maui/Shared/MauiAppBuilderExtension.cs new file mode 100644 index 0000000..365fa37 --- /dev/null +++ b/Controls.UserDialogs.Maui/Shared/MauiAppBuilderExtension.cs @@ -0,0 +1,15 @@ +namespace Controls.UserDialogs.Maui; + +public static class MauiAppBuilderExtension +{ + public static MauiAppBuilder UseUserDialogs(this MauiAppBuilder builder, Action configure = null) + { + UserDialogs.Instance = new UserDialogsImplementation(); + + configure?.Invoke(); + + builder.Services.AddTransient((s) => UserDialogs.Instance); + + return builder; + } +} diff --git a/Controls.UserDialogs.Maui/Shared/UserDialogs.cs b/Controls.UserDialogs.Maui/Shared/UserDialogs.cs index 02ec072..2f7dbf1 100644 --- a/Controls.UserDialogs.Maui/Shared/UserDialogs.cs +++ b/Controls.UserDialogs.Maui/Shared/UserDialogs.cs @@ -1,6 +1,6 @@ namespace Controls.UserDialogs.Maui; -public partial class UserDialogs +public class UserDialogs { static IUserDialogs _currentInstance; public static IUserDialogs Instance @@ -14,6 +14,4 @@ public static IUserDialogs Instance } set => _currentInstance = value; } - - public static partial MauiAppBuilder UseUserDialogs(this MauiAppBuilder builder, Action configure = null); } \ No newline at end of file