diff --git a/src/Compatibility/ControlGallery/src/Android/FormsAppCompatActivity.cs b/src/Compatibility/ControlGallery/src/Android/FormsAppCompatActivity.cs index c82be53fdff7..06d680095562 100644 --- a/src/Compatibility/ControlGallery/src/Android/FormsAppCompatActivity.cs +++ b/src/Compatibility/ControlGallery/src/Android/FormsAppCompatActivity.cs @@ -53,7 +53,7 @@ protected override void OnCreate(Bundle bundle) // reflection will stop working ResourceManager.Init(null); - Microsoft.Maui.Controls.Compatibility.Forms.Init(this, bundle); + Forms.Init(new MauiContext(MauiApplication.Current.Services, this), bundle); FormsMaps.Init(this, bundle); ViewHandler.ViewMapper @@ -65,7 +65,7 @@ protected override void OnCreate(Bundle bundle) //FormsMaterial.Init(this, bundle); AndroidAppLinks.Init(this); - Microsoft.Maui.Controls.Compatibility.Forms.ViewInitialized += (sender, e) => + Forms.ViewInitialized += (sender, e) => { // if (!string.IsNullOrWhiteSpace(e.View.StyleId)) { // e.NativeView.ContentDescription = e.View.StyleId; diff --git a/src/Compatibility/ControlGallery/src/Android/Issue10182Activity.cs b/src/Compatibility/ControlGallery/src/Android/Issue10182Activity.cs index 5a77e2785e9e..2da8a10ed15c 100644 --- a/src/Compatibility/ControlGallery/src/Android/Issue10182Activity.cs +++ b/src/Compatibility/ControlGallery/src/Android/Issue10182Activity.cs @@ -29,7 +29,7 @@ protected override void OnCreate(Bundle savedInstanceState) base.OnCreate(savedInstanceState); - Microsoft.Maui.Controls.Compatibility.Forms.Init(this, savedInstanceState); + Forms.Init(new MauiContext(MauiApplication.Current.Services, this), savedInstanceState); LoadApplication(new Issue10182Application()); _activity1 = (Activity1)DependencyService.Resolve(); diff --git a/src/Compatibility/Core/src/Android/AppCompat/Platform.cs b/src/Compatibility/Core/src/Android/AppCompat/Platform.cs index da4430c3aae6..1884d6a72728 100644 --- a/src/Compatibility/Core/src/Android/AppCompat/Platform.cs +++ b/src/Compatibility/Core/src/Android/AppCompat/Platform.cs @@ -7,7 +7,6 @@ using Android.OS; using Android.Views; using Android.Views.Animations; -using Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat; using Microsoft.Maui.Controls.Internals; using Microsoft.Maui.Controls.Platform; using Microsoft.Maui.Graphics; @@ -329,7 +328,7 @@ internal static IVisualElementRenderer CreateRenderer( var mauiContext = Forms.MauiContext; if (fragmentManager != null || layoutInflater != null) - mauiContext = new ScopedMauiContext(mauiContext, null, null, layoutInflater, fragmentManager); + mauiContext = mauiContext.MakeScoped(layoutInflater, fragmentManager); handler = mauiContext.Handlers.GetHandler(element.GetType()) as IViewHandler; handler.SetMauiContext(mauiContext); diff --git a/src/Compatibility/Core/src/Android/Forms.cs b/src/Compatibility/Core/src/Android/Forms.cs index 8530346440fd..40d5dd218d96 100644 --- a/src/Compatibility/Core/src/Android/Forms.cs +++ b/src/Compatibility/Core/src/Android/Forms.cs @@ -186,11 +186,6 @@ public static Color GetColorButtonNormal(Context context) public static void Init(IActivationState activationState, InitializationOptions? options = null) => Init(activationState.Context, activationState.SavedInstance, options); - // Provide backwards compat for Forms.Init and AndroidActivity - // Why is bundle a param if never used? - public static void Init(Context activity, Bundle bundle) => - Init(new MauiContext(activity), bundle); - public static void Init(IMauiContext context, Bundle bundle, InitializationOptions? options = null) { Assembly resourceAssembly; @@ -204,9 +199,6 @@ public static void Init(IMauiContext context, Bundle bundle, InitializationOptio Profile.FrameEnd(); } - public static void Init(Context activity, Bundle bundle, Assembly resourceAssembly) => - Init(new MauiContext(activity), bundle, resourceAssembly); - public static void Init(IMauiContext context, Bundle bundle, Assembly resourceAssembly) { Profile.FrameBegin(); @@ -214,17 +206,6 @@ public static void Init(IMauiContext context, Bundle bundle, Assembly resourceAs Profile.FrameEnd(); } - public static void Init(InitializationOptions options) - { - Profile.FrameBegin(); - SetupInit( - new MauiContext(options.Activity), - options.ResourceAssembly, - options - ); - Profile.FrameEnd(); - } - public static void SetTitleBarVisibility(Activity activity, AndroidTitleBarVisibility visibility) { if (visibility == AndroidTitleBarVisibility.Never) @@ -880,11 +861,6 @@ bool TryGetTextAppearance(int appearance, out double val) return false; } - public void QuitApplication() - { - Internals.Log.Warning(nameof(AndroidPlatformServices), "Platform doesn't implement QuitApp"); - } - public SizeRequest GetNativeSize(VisualElement view, double widthConstraint, double heightConstraint) { return Platform.Android.Platform.GetNativeSize(view, widthConstraint, heightConstraint); diff --git a/src/Compatibility/Core/src/Windows/Forms.cs b/src/Compatibility/Core/src/Windows/Forms.cs index e72bd08c1600..dba0a2c42b39 100644 --- a/src/Compatibility/Core/src/Windows/Forms.cs +++ b/src/Compatibility/Core/src/Windows/Forms.cs @@ -37,19 +37,9 @@ public static partial class Forms public static void Init(IActivationState state, InitializationOptions? options = null) { - SetupInit(state.Context, state.Context.Window, maybeOptions: options); + SetupInit(state.Context, state.Context.GetOptionalNativeWindow(), maybeOptions: options); } - public static void Init( - UI.Xaml.Window mainWindow, - IEnumerable rendererAssemblies = null) - { - SetupInit(new MauiContext(), mainWindow, rendererAssemblies); - } - - public static void Init(InitializationOptions options) => - SetupInit(new MauiContext(), null, null, options); - static void SetupInit( IMauiContext mauiContext, UI.Xaml.Window mainWindow, diff --git a/src/Compatibility/Core/src/Windows/WindowsBasePlatformServices.cs b/src/Compatibility/Core/src/Windows/WindowsBasePlatformServices.cs index 8a64176f03db..cbca91ef4085 100644 --- a/src/Compatibility/Core/src/Windows/WindowsBasePlatformServices.cs +++ b/src/Compatibility/Core/src/Windows/WindowsBasePlatformServices.cs @@ -177,11 +177,6 @@ void renderingFrameEventHandler(object sender, object args) CompositionTarget.Rendering += renderingFrameEventHandler; } - public void QuitApplication() - { - Log.Warning(nameof(WindowsBasePlatformServices), "Platform doesn't implement QuitApp"); - } - public SizeRequest GetNativeSize(VisualElement view, double widthConstraint, double heightConstraint) { return Platform.GetNativeSize(view, widthConstraint, heightConstraint); diff --git a/src/Compatibility/Core/src/iOS/Forms.cs b/src/Compatibility/Core/src/iOS/Forms.cs index 2cf344cbc07b..a94b11ec78ad 100644 --- a/src/Compatibility/Core/src/iOS/Forms.cs +++ b/src/Compatibility/Core/src/iOS/Forms.cs @@ -168,12 +168,6 @@ internal static bool IsMojaveOrNewer public static bool IsInitializedRenderers { get; private set; } - public static void Init() => - SetupInit(new MauiContext()); - - public static void Init(InitializationOptions options) => - SetupInit(new MauiContext(), options); - public static void Init(IActivationState activationState, InitializationOptions? options = null) => SetupInit(activationState.Context, options); @@ -739,14 +733,12 @@ public Task OpenFileAsync(string path, FileMode mode, FileAccess access, } } +#if !__MOBILE__ public void QuitApplication() { -#if __MOBILE__ - Log.Warning(nameof(IOSPlatformServices), "Platform doesn't implement QuitApp"); -#else NSApplication.SharedApplication.Terminate(new NSObject()); -#endif } +#endif public SizeRequest GetNativeSize(VisualElement view, double widthConstraint, double heightConstraint) { diff --git a/src/Controls/samples/Controls.Sample/Pages/Core/ApplicationControlPage.xaml b/src/Controls/samples/Controls.Sample/Pages/Core/ApplicationControlPage.xaml new file mode 100644 index 000000000000..97312200955c --- /dev/null +++ b/src/Controls/samples/Controls.Sample/Pages/Core/ApplicationControlPage.xaml @@ -0,0 +1,17 @@ + + + + +