mirror of
https://github.com/bitwarden/mobile
synced 2026-01-04 17:43:17 +00:00
Merge branch 'feature/maui-migration' into feature/maui-migration-passkeys
# Conflicts: # bitwarden-mobile.sln
This commit is contained in:
@@ -119,7 +119,7 @@ namespace Bit.App
|
||||
//Create new main window
|
||||
return new MainAppWindow(new NavigationPage(new HomePage(Options)));
|
||||
}
|
||||
#elif IOS
|
||||
#else
|
||||
//iOS doesn't use the CreateWindow override used in Android so we just set the Application.Current.MainPage directly
|
||||
public new static Page MainPage
|
||||
{
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
xmlns:controls="clr-namespace:Bit.App.Controls"
|
||||
xmlns:pages="clr-namespace:Bit.App.Pages"
|
||||
xmlns:u="clr-namespace:Bit.App.Utilities"
|
||||
xmlns:ff="clr-namespace:FFImageLoading.Maui;assembly=FFImageLoading.Compat.Maui"
|
||||
xmlns:core="clr-namespace:Bit.Core"
|
||||
StyleClass="list-row, list-row-platform"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
@@ -14,7 +13,6 @@
|
||||
RowSpacing="0"
|
||||
Padding="0,10,0,0"
|
||||
RowDefinitions="*,*">
|
||||
|
||||
<Grid.Resources>
|
||||
<u:IconGlyphConverter x:Key="iconGlyphConverter" />
|
||||
<u:InverseBoolConverter x:Key="inverseBool" />
|
||||
@@ -30,7 +28,7 @@
|
||||
Text="{Binding Cipher, Converter={StaticResource iconGlyphConverter}}"
|
||||
AutomationProperties.IsInAccessibleTree="False" />
|
||||
|
||||
<ff:CachedImage
|
||||
<controls:CachedImage
|
||||
Grid.Column="0"
|
||||
BitmapOptimizations="True"
|
||||
ErrorPlaceholder="login.png"
|
||||
|
||||
37
src/Core/Controls/CachedImage.cs
Normal file
37
src/Core/Controls/CachedImage.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
namespace Bit.App.Controls
|
||||
{
|
||||
#if !UT
|
||||
public class CachedImage : FFImageLoading.Maui.CachedImage
|
||||
{
|
||||
}
|
||||
#else
|
||||
/// <summary>
|
||||
/// Given that FFImageLoading package doesn't support net8.0 then for Unit tests projects to build and run correctly
|
||||
/// we need to not include the reference to FFImageLoading and therefore wrap this class
|
||||
/// to provide a stub one that does nothing so this project doesn't break and we can run the tests.
|
||||
/// </summary>
|
||||
public class CachedImage : View
|
||||
{
|
||||
public static readonly BindableProperty SourceProperty = BindableProperty.Create(
|
||||
nameof(Source), typeof(ImageSource), typeof(CachedImage));
|
||||
|
||||
public static readonly BindableProperty AspectProperty = BindableProperty.Create(
|
||||
nameof(Aspect), typeof(Aspect), typeof(CachedImage));
|
||||
|
||||
public bool BitmapOptimizations { get; set; }
|
||||
public string ErrorPlaceholder { get; set; }
|
||||
public string LoadingPlaceholder { get; set; }
|
||||
|
||||
public ImageSource Source
|
||||
{
|
||||
get { return (ImageSource)GetValue(SourceProperty); }
|
||||
set { SetValue(SourceProperty, value); }
|
||||
}
|
||||
public Aspect Aspect
|
||||
{
|
||||
get { return (Aspect)GetValue(AspectProperty); }
|
||||
set { SetValue(AspectProperty, value); }
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -5,7 +5,6 @@
|
||||
xmlns:controls="clr-namespace:Bit.App.Controls"
|
||||
xmlns:pages="clr-namespace:Bit.App.Pages"
|
||||
xmlns:u="clr-namespace:Bit.App.Utilities"
|
||||
xmlns:ff="clr-namespace:FFImageLoading.Maui;assembly=FFImageLoading.Compat.Maui"
|
||||
xmlns:core="clr-namespace:Bit.Core"
|
||||
StyleClass="list-row, list-row-platform"
|
||||
RowSpacing="0"
|
||||
@@ -41,7 +40,7 @@
|
||||
AutomationProperties.IsInAccessibleTree="False"
|
||||
AutomationId="CipherTypeIcon" />
|
||||
|
||||
<ff:CachedImage
|
||||
<controls:CachedImage
|
||||
x:Name="_iconImage"
|
||||
Grid.Column="0"
|
||||
BitmapOptimizations="True"
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net8.0-android;net8.0-ios</TargetFrameworks>
|
||||
<!--When running Unit tests we'll have the custom constant "UT" added, so in this manner we can add the net8.0 target we need for UT -->
|
||||
<TargetFrameworks Condition="$(CustomConstants.Contains(UT))">net8.0;net8.0-android;net8.0-ios</TargetFrameworks>
|
||||
<TargetFrameworks Condition="!$(CustomConstants.Contains(UT))">net8.0-android;net8.0-ios</TargetFrameworks>
|
||||
<RootNamespace>Bit.Core</RootNamespace>
|
||||
|
||||
<UseMaui>true</UseMaui>
|
||||
@@ -41,10 +43,11 @@
|
||||
<PackageReference Include="Plugin.Fingerprint" Version="3.0.0-beta.1" />
|
||||
<PackageReference Include="SkiaSharp.Views.Maui.Controls" Version="2.88.4-preview.84" />
|
||||
<PackageReference Include="SkiaSharp.Views.Maui.Controls.Compatibility" Version="2.88.4-preview.84" />
|
||||
<PackageReference Include="FFImageLoadingCompat.Maui" Version="0.1.1" />
|
||||
<PackageReference Include="AsyncAwaitBestPractices.MVVM" Version="6.0.6" />
|
||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" />
|
||||
<PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
|
||||
<!-- HACK: When running Unit Tests we cannot load FFImageLoading because it doesn't support "raw" net8.0 -->
|
||||
<PackageReference Condition="!$(CustomConstants.Contains(UT))" Include="FFImageLoadingCompat.Maui" Version="0.1.1" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">
|
||||
<PackageReference Include="Xamarin.AndroidX.AutoFill" Version="1.1.0.18" />
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
using Camera.MAUI;
|
||||
using CommunityToolkit.Maui;
|
||||
#if !UT
|
||||
using FFImageLoading.Maui;
|
||||
#endif
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Maui.Controls.Compatibility.Hosting;
|
||||
using Microsoft.Maui.Handlers;
|
||||
@@ -23,7 +25,9 @@ public static class MauiProgram
|
||||
.UseMauiCompatibility()
|
||||
.UseMauiCameraView()
|
||||
.UseSkiaSharp()
|
||||
#if !UT
|
||||
.UseFFImageLoading()
|
||||
#endif
|
||||
.ConfigureEffects(effects =>
|
||||
{
|
||||
#if ANDROID
|
||||
|
||||
@@ -14,6 +14,7 @@ using Bit.Core.Utilities;
|
||||
|
||||
using Microsoft.Maui.Authentication;
|
||||
using Microsoft.Maui.Networking;
|
||||
using NetworkAccess = Microsoft.Maui.Networking.NetworkAccess;
|
||||
|
||||
namespace Bit.App.Pages
|
||||
{
|
||||
|
||||
@@ -22,6 +22,7 @@ using Microsoft.Maui.Networking;
|
||||
using Microsoft.Maui.ApplicationModel.DataTransfer;
|
||||
using Microsoft.Maui.Controls;
|
||||
using Microsoft.Maui;
|
||||
using NetworkAccess = Microsoft.Maui.Networking.NetworkAccess;
|
||||
|
||||
namespace Bit.App.Utilities
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user