diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index 91d2e404ff17..28e6d6272869 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -3,4 +3,4 @@
This project has adopted the code of conduct defined by the Contributor Covenant
to clarify expected behavior in our community.
-For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
\ No newline at end of file
+For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/about/policies/code-of-conduct).
diff --git a/Assets/icon.png b/Assets/icon.png
new file mode 100644
index 000000000000..2d893247faa4
Binary files /dev/null and b/Assets/icon.png differ
diff --git a/eng/Versions.props b/eng/Versions.props
index 20042eeab91f..31cac336c8d2 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -39,7 +39,7 @@
7.0.0
7.0.0
- 7.0.0-preview1.22553.2
+ 7.0.0-preview1.22559.1
3.3.3
3.3.3
4.5.0
diff --git a/src/Controls/Foldable/src/Controls.Foldable.csproj b/src/Controls/Foldable/src/Controls.Foldable.csproj
index 585e7a8f9fd1..1939da6c35bc 100644
--- a/src/Controls/Foldable/src/Controls.Foldable.csproj
+++ b/src/Controls/Foldable/src/Controls.Foldable.csproj
@@ -4,12 +4,18 @@
Microsoft.Maui.Controls.Foldable
Microsoft.Maui.Controls.Foldable
BI1234
- true
false
true
$(NoWarn);CS1591
-
true
+
+
+ True
+ git
+ dotnet-maui;maui;foldable;android;surface-duo
+
.NET MAUI Foldable
+ .NET MAUI Foldable provides additional APIs to better support foldable mobile devices.
+ icon.png
@@ -31,4 +37,9 @@
+
+
+
+
+
diff --git a/src/Controls/Maps/src/Controls.Maps.csproj b/src/Controls/Maps/src/Controls.Maps.csproj
index 586e2fd56e58..a1e02d622a5e 100644
--- a/src/Controls/Maps/src/Controls.Maps.csproj
+++ b/src/Controls/Maps/src/Controls.Maps.csproj
@@ -4,12 +4,19 @@
netstandard2.1;netstandard2.0;$(_MauiDotNetTfm);$(MauiPlatforms)
Microsoft.Maui.Controls.Maps
Microsoft.Maui.Controls.Maps
- true
false
enable
<_MauiDesignDllBuild Condition=" '$(OS)' != 'Unix' ">True
true
$(NoWarn);CS1591;RS0041;RS0026;RS0027;RS0022
+
+
+ True
+ git
+ dotnet-maui;maui;maps;map;ios;android;macos
+ .NET MAUI Maps
+ .NET MAUI Maps provides a map control for .NET MAUI apps.
+ icon.png
@@ -19,5 +26,9 @@
-
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Controls/src/Core.Design/Controls.Core.Design.csproj b/src/Controls/src/Core.Design/Controls.Core.Design.csproj
index b7952704efd3..b1874cbc0cca 100644
--- a/src/Controls/src/Core.Design/Controls.Core.Design.csproj
+++ b/src/Controls/src/Core.Design/Controls.Core.Design.csproj
@@ -27,7 +27,7 @@
-
+
diff --git a/src/Controls/src/Core/Entry.cs b/src/Controls/src/Core/Entry.cs
index 2f3a3c125cb6..f07c610cdd84 100644
--- a/src/Controls/src/Core/Entry.cs
+++ b/src/Controls/src/Core/Entry.cs
@@ -94,9 +94,9 @@ public partial class Entry : InputView, IFontElement, ITextAlignmentElement, IEn
public static readonly BindableProperty SelectionLengthProperty = BindableProperty.Create(nameof(SelectionLength), typeof(int), typeof(Entry), 0, validateValue: (b, v) => (int)v >= 0);
///
- /// Backing store for the property.
+ /// Backing store for the property.
///
- public static readonly BindableProperty ClearButtonVisibilityProperty = BindableProperty.Create(nameof(SelectionLength), typeof(ClearButtonVisibility), typeof(Entry), ClearButtonVisibility.Never);
+ public static readonly BindableProperty ClearButtonVisibilityProperty = BindableProperty.Create(nameof(ClearButtonVisibility), typeof(ClearButtonVisibility), typeof(Entry), ClearButtonVisibility.Never);
readonly Lazy> _platformConfigurationRegistry;
diff --git a/src/Controls/src/Xaml.Design/Controls.Xaml.Design.csproj b/src/Controls/src/Xaml.Design/Controls.Xaml.Design.csproj
index bca74b09ab3f..47c415798e3a 100644
--- a/src/Controls/src/Xaml.Design/Controls.Xaml.Design.csproj
+++ b/src/Controls/src/Xaml.Design/Controls.Xaml.Design.csproj
@@ -13,7 +13,7 @@
- 17.3.32804.24
+ 17.4.33103.184
\ No newline at end of file
diff --git a/src/Controls/tests/Core.Design.UnitTests/Controls.Core.Design.UnitTests.csproj b/src/Controls/tests/Core.Design.UnitTests/Controls.Core.Design.UnitTests.csproj
index 3bc68402e967..3cc30f3dba99 100644
--- a/src/Controls/tests/Core.Design.UnitTests/Controls.Core.Design.UnitTests.csproj
+++ b/src/Controls/tests/Core.Design.UnitTests/Controls.Core.Design.UnitTests.csproj
@@ -13,7 +13,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/src/Core/maps/src/Maps.csproj b/src/Core/maps/src/Maps.csproj
index 7392f9b1d0a8..62b1c8b7d085 100644
--- a/src/Core/maps/src/Maps.csproj
+++ b/src/Core/maps/src/Maps.csproj
@@ -5,10 +5,17 @@
Microsoft.Maui.Maps
Microsoft.Maui.Maps
enable
- true
false
true
$(NoWarn);CS1591;RS0041;RS0026;RS0027
+
+
+ True
+ git
+ dotnet-maui;maui;maps;map;ios;android;macos
+ .NET MAUI Maps Core
+ .NET MAUI Maps provides a map control for .NET MAUI apps. This only contains the core types. If you want the Map control, please install the Microsoft.Maui.Controls.Maps package.
+ icon.png
@@ -29,4 +36,9 @@
+
+
+
+
+
diff --git a/src/Core/src/Handlers/Switch/SwitchHandler.iOS.cs b/src/Core/src/Handlers/Switch/SwitchHandler.iOS.cs
index 6105ece0359c..a9e5decd479b 100644
--- a/src/Core/src/Handlers/Switch/SwitchHandler.iOS.cs
+++ b/src/Core/src/Handlers/Switch/SwitchHandler.iOS.cs
@@ -1,4 +1,5 @@
using System;
+using Microsoft.Maui.Graphics;
using ObjCRuntime;
using UIKit;
using RectangleF = CoreGraphics.CGRect;
@@ -7,6 +8,12 @@ namespace Microsoft.Maui.Handlers
{
public partial class SwitchHandler : ViewHandler
{
+ // the UISwitch control becomes inaccessible if it grows to a width > 101
+ // An issue has been logged with Apple
+ // This ensures that the UISwitch remains the natural size that iOS expects
+ // But the container can be used for setting BGColors and other features.
+ public override bool NeedsContainer => true;
+
protected override UISwitch CreatePlatformView()
{
return new UISwitch(RectangleF.Empty);
diff --git a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
index 82598e660068..64ee29a45043 100644
--- a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
@@ -133,6 +133,7 @@ override Microsoft.Maui.Handlers.ScrollViewHandler.PlatformArrange(Microsoft.Mau
override Microsoft.Maui.Handlers.MenuFlyoutSeparatorHandler.CreatePlatformElement() -> UIKit.UIMenu!
override Microsoft.Maui.Handlers.EditorHandler.SetVirtualView(Microsoft.Maui.IView! view) -> void
override Microsoft.Maui.Handlers.EntryHandler.SetVirtualView(Microsoft.Maui.IView! view) -> void
+override Microsoft.Maui.Handlers.SwitchHandler.NeedsContainer.get -> bool
override Microsoft.Maui.Handlers.WindowHandler.ConnectHandler(UIKit.UIWindow! platformView) -> void
override Microsoft.Maui.Platform.ContentView.SetNeedsLayout() -> void
override Microsoft.Maui.Platform.LayoutView.HitTest(CoreGraphics.CGPoint point, UIKit.UIEvent? uievent) -> UIKit.UIView!
diff --git a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
index 2c8028606eea..5a2eceae9b51 100644
--- a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
@@ -133,6 +133,7 @@ override Microsoft.Maui.Handlers.ScrollViewHandler.PlatformArrange(Microsoft.Mau
override Microsoft.Maui.Handlers.MenuFlyoutSeparatorHandler.CreatePlatformElement() -> UIKit.UIMenu!
override Microsoft.Maui.Handlers.EditorHandler.SetVirtualView(Microsoft.Maui.IView! view) -> void
override Microsoft.Maui.Handlers.EntryHandler.SetVirtualView(Microsoft.Maui.IView! view) -> void
+override Microsoft.Maui.Handlers.SwitchHandler.NeedsContainer.get -> bool
override Microsoft.Maui.Handlers.WindowHandler.ConnectHandler(UIKit.UIWindow! platformView) -> void
override Microsoft.Maui.Platform.ContentView.SetNeedsLayout() -> void
override Microsoft.Maui.Platform.LayoutView.HitTest(CoreGraphics.CGPoint point, UIKit.UIEvent? uievent) -> UIKit.UIView!
diff --git a/src/Core/tests/DeviceTests.Shared/HandlerTests/HandlerTestBaseOfT.iOS.cs b/src/Core/tests/DeviceTests.Shared/HandlerTests/HandlerTestBaseOfT.iOS.cs
index fde189498d18..073cdaa0b27e 100644
--- a/src/Core/tests/DeviceTests.Shared/HandlerTests/HandlerTestBaseOfT.iOS.cs
+++ b/src/Core/tests/DeviceTests.Shared/HandlerTests/HandlerTestBaseOfT.iOS.cs
@@ -145,7 +145,7 @@ protected Task GetLayerTransformAsync(TStub view)
}
protected CATransform3D GetLayerTransform(IViewHandler viewHandler) =>
- ((UIView)viewHandler.PlatformView).Layer.Transform;
+ ((UIView)viewHandler.ToPlatform()).Layer.Transform;
protected string GetAutomationId(IViewHandler viewHandler) =>
((UIView)viewHandler.PlatformView).AccessibilityIdentifier;
@@ -190,7 +190,7 @@ protected Maui.Graphics.Rect GetBoundingBox(IViewHandler viewHandler) =>
viewHandler.VirtualView.ToPlatform().GetBoundingBox();
protected System.Numerics.Matrix4x4 GetViewTransform(IViewHandler viewHandler) =>
- ((UIView)viewHandler.PlatformView).GetViewTransform();
+ ((UIView)viewHandler.ToPlatform()).GetViewTransform();
protected string GetSemanticDescription(IViewHandler viewHandler) =>
GetAccessiblePlatformView(viewHandler).AccessibilityLabel;
@@ -203,11 +203,11 @@ protected SemanticHeadingLevel GetSemanticHeading(IViewHandler viewHandler) =>
? SemanticHeadingLevel.Level1 : SemanticHeadingLevel.None;
protected nfloat GetOpacity(IViewHandler viewHandler) =>
- ((UIView)viewHandler.PlatformView).Alpha;
+ ((UIView)viewHandler.ToPlatform()).Alpha;
protected Visibility GetVisibility(IViewHandler viewHandler)
{
- var platformView = (UIView)viewHandler.PlatformView;
+ var platformView = (UIView)viewHandler.ToPlatform();
foreach (var constraint in platformView.Constraints)
{
diff --git a/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs b/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs
index f66dbc907419..3a3cfe7ef113 100644
--- a/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs
+++ b/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs
@@ -1,5 +1,6 @@
using System;
using System.Threading.Tasks;
+using Microsoft.Maui.DeviceTests.Stubs;
using Microsoft.Maui.Graphics;
using Microsoft.Maui.Handlers;
using ObjCRuntime;
@@ -42,5 +43,24 @@ async Task ValidateThumbColor(ISwitch switchStub, Color color, Action action = n
Assert.Equal(expected, color);
}
+
+ ///
+ /// If a UISwitch grows beyond 101 pixels it's no longer
+ /// clickable via Voice Over
+ ///
+ ///
+ [Fact(DisplayName = "Ensure UISwitch Stays Below 101 Width")]
+ public async Task EnsureUISwitchStaysBelow101Width()
+ {
+ var switchStub = new SwitchStub()
+ {
+ Width = 400,
+ Height = 400
+ };
+
+ var width = await GetValueAsync(switchStub, handler => GetNativeSwitch(handler).Bounds.Width);
+
+ Assert.True(width < 100, $"UISwitch width is too much {width}");
+ }
}
}
\ No newline at end of file
diff --git a/src/Essentials/src/DeviceInfo/DeviceInfo.uwp.cs b/src/Essentials/src/DeviceInfo/DeviceInfo.uwp.cs
index 317223b6052b..3c2713494297 100644
--- a/src/Essentials/src/DeviceInfo/DeviceInfo.uwp.cs
+++ b/src/Essentials/src/DeviceInfo/DeviceInfo.uwp.cs
@@ -120,7 +120,7 @@ public DeviceType DeviceType
static bool GetIsInTabletMode()
{
var supportsTablet = GetSystemMetrics(SM_TABLETPC) != 0;
- var inTabletMode = GetSystemMetrics(SM_CONVERTIBLESLATEMODE) != 0;
+ var inTabletMode = GetSystemMetrics(SM_CONVERTIBLESLATEMODE) == 0;
return inTabletMode && supportsTablet;
}
}
diff --git a/src/Essentials/src/Screenshot/Screenshot.shared.cs b/src/Essentials/src/Screenshot/Screenshot.shared.cs
index 142198380b20..6ee85f558177 100644
--- a/src/Essentials/src/Screenshot/Screenshot.shared.cs
+++ b/src/Essentials/src/Screenshot/Screenshot.shared.cs
@@ -45,7 +45,6 @@ public interface IScreenshotResult
Task OpenReadAsync(ScreenshotFormat format = ScreenshotFormat.Png, int quality = 100);
#pragma warning restore CS1573 // Parameter has no matching param tag in the XML comment (but other parameters do)
- ///
Task CopyToAsync(Stream destination, ScreenshotFormat format = ScreenshotFormat.Png, int quality = 100);
}