1
0
mirror of https://github.com/bitwarden/mobile synced 2026-01-14 06:23:41 +00:00

PM-3349 PM-3350 MAUI Migration Initial

This commit is contained in:
Federico Maccaroni
2023-09-29 11:02:19 -03:00
parent bbef0f8c93
commit 8ef9443b1e
717 changed files with 5367 additions and 4702 deletions

View File

@@ -4,8 +4,6 @@ using Bit.App.Controls;
using Bit.Core.Abstractions;
using Bit.Core.Utilities;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
namespace Bit.iOS.Core.Utilities
{
@@ -69,21 +67,22 @@ namespace Bit.iOS.Core.Utilities
overlay.BindingContext = vm;
overlay.IsVisible = false;
var renderer = Platform.CreateRenderer(overlay.Content);
renderer.SetElementSize(new Size(containerView.Frame.Size.Width, containerView.Frame.Size.Height));
// TODO: [MAUI-Migration] [Critical] check how to create a native view here.
//var renderer = Platform.CreateRenderer(overlay.Content);
//renderer.SetElementSize(new Size(containerView.Frame.Size.Width, containerView.Frame.Size.Height));
var view = renderer.NativeView;
view.TranslatesAutoresizingMaskIntoConstraints = false;
//var view = renderer.NativeView;
//view.TranslatesAutoresizingMaskIntoConstraints = false;
containerView.AddSubview(view);
containerView.AddConstraints(new NSLayoutConstraint[]
{
NSLayoutConstraint.Create(containerView, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, view, NSLayoutAttribute.Trailing, 1f, 0f),
NSLayoutConstraint.Create(containerView, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, view, NSLayoutAttribute.Leading, 1f, 0f),
NSLayoutConstraint.Create(containerView, NSLayoutAttribute.Top, NSLayoutRelation.Equal, view, NSLayoutAttribute.Top, 1f, 0f),
NSLayoutConstraint.Create(containerView, NSLayoutAttribute.Bottom, NSLayoutRelation.Equal, view, NSLayoutAttribute.Bottom, 1f, 0f)
});
containerView.Hidden = true;
//containerView.AddSubview(view);
//containerView.AddConstraints(new NSLayoutConstraint[]
//{
// NSLayoutConstraint.Create(containerView, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, view, NSLayoutAttribute.Trailing, 1f, 0f),
// NSLayoutConstraint.Create(containerView, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, view, NSLayoutAttribute.Leading, 1f, 0f),
// NSLayoutConstraint.Create(containerView, NSLayoutAttribute.Top, NSLayoutRelation.Equal, view, NSLayoutAttribute.Top, 1f, 0f),
// NSLayoutConstraint.Create(containerView, NSLayoutAttribute.Bottom, NSLayoutRelation.Equal, view, NSLayoutAttribute.Bottom, 1f, 0f)
//});
//containerView.Hidden = true;
return overlay;
}

View File

@@ -1,21 +1,21 @@
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Internals;
using Xamarin.Forms.Platform.iOS;
namespace Bit.iOS.Core.Utilities
{
public static class FontElementExtensions
{
public static UIFont ToUIFont(this IFontElement fontElement)
// TODO: [MAUI-Migration] [Critical] Compiling but big untested change
public static UIFont ToUIFont(this Microsoft.Maui.Font font)
{
var fontSize = fontElement.FontSize;
var fontAttributes = fontElement.FontAttributes;
var fontFamily = fontElement.FontFamily;
var fontSize = font.Size;
var fontAttributes = font.GetFontAttributes();
var fontFamily = font.Family;
var fontWeight = fontAttributes == FontAttributes.Bold ? UIFontWeight.Bold : UIFontWeight.Regular;
return fontFamily is null
? Font.SystemFontOfSize(fontSize, fontAttributes).ToUIFont()
: Font.OfSize(fontFamily, fontSize).WithAttributes(fontAttributes).ToUIFont();
? UIFont.SystemFontOfSize((nfloat)fontSize, fontWeight)
: UIFont.FromName(fontFamily, (nfloat)fontSize);
}
}
}

View File

@@ -2,9 +2,8 @@
using System.Threading;
using System.Threading.Tasks;
using Bit.Core.Services;
using Microsoft.Maui.Controls.Compatibility.Platform.iOS;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
namespace Bit.iOS.Core.Utilities
{
@@ -21,7 +20,7 @@ namespace Bit.iOS.Core.Utilities
return null;
}
var handler = Xamarin.Forms.Internals.Registrar.Registered.GetHandlerForObject<IImageSourceHandler>(source);
var handler = Microsoft.Maui.Controls.Internals.Registrar.Registered.GetHandlerForObject<IImageSourceHandler>(source);
if (handler == null)
{
LoggerHelper.LogEvenIfCantBeResolved(new InvalidOperationException("GetNativeImageAsync failed cause IImageSourceHandler couldn't be found"));

View File

@@ -1,6 +1,6 @@
using Bit.App.Utilities;
using Microsoft.Maui.Controls.Compatibility.Platform.iOS;
using UIKit;
using Xamarin.Forms.Platform.iOS;
namespace Bit.iOS.Core.Utilities
{
@@ -75,8 +75,8 @@ namespace Bit.iOS.Core.Utilities
public static UIFont GetDangerFont()
{
return Xamarin.Forms.Font.SystemFontOfSize(Xamarin.Forms.NamedSize.Small,
Xamarin.Forms.FontAttributes.Bold).ToUIFont();
// TODO: [MAUI-Migration] [Deprecated] NamedSizes are deprecated on MAUI
return Microsoft.Maui.Font.SystemFontOfSize(Device.GetNamedSize(NamedSize.Small, typeof(UILabel)), FontWeight.Bold).ToUIFont();
}
private static void SetThemeVariables(string theme, bool osDarkModeEnabled)

View File

@@ -5,7 +5,7 @@ using Bit.App.Abstractions;
using Bit.App.Controls;
using Bit.App.Models;
using Bit.App.Pages;
using Bit.App.Resources;
using Bit.Core.Resources.Localization;
using Bit.App.Services;
using Bit.App.Utilities;
using Bit.App.Utilities.AccountManagement;
@@ -17,7 +17,6 @@ using Bit.iOS.Core.Services;
using CoreNFC;
using Foundation;
using UIKit;
using Xamarin.Forms;
namespace Bit.iOS.Core.Utilities
{
@@ -36,8 +35,6 @@ namespace Bit.iOS.Core.Utilities
out IAccountsManager accountsManager)
where T : UIViewController, IAccountsManagerHost
{
Forms.Init();
if (ServiceContainer.RegisteredServices.Count > 0)
{
ServiceContainer.Reset();
@@ -106,7 +103,7 @@ namespace Bit.iOS.Core.Utilities
var storageMediatorService = new StorageMediatorService(mobileStorageService, secureStorageService, preferencesStorage);
var stateService = new StateService(mobileStorageService, secureStorageService, storageMediatorService, messagingService);
var stateMigrationService =
new StateMigrationService(DeviceType.iOS, liteDbStorage, preferencesStorage, secureStorageService);
new StateMigrationService(Bit.Core.Enums.DeviceType.iOS, liteDbStorage, preferencesStorage, secureStorageService);
var deviceActionService = new DeviceActionService();
var fileService = new FileService(stateService, messagingService);
var clipboardService = new ClipboardService(stateService);

View File

@@ -2,9 +2,8 @@
using System.Runtime.InteropServices;
using Bit.App.Utilities;
using Bit.Core.Services;
using Microsoft.Maui.Controls.Compatibility.Platform.iOS;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
namespace Bit.iOS.Core.Utilities
{