1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-15 15:53:44 +00:00

PM-3349 MAUI - Android - Fix Generator page bindings

This commit is contained in:
Federico Maccaroni
2023-09-01 16:04:25 -03:00
parent 19ba70c9a6
commit 2fe8ae0b46
3 changed files with 51 additions and 27 deletions

View File

@@ -38,7 +38,7 @@ namespace Bit.Core.Utilities
private IEnumerable<string> ReadData() private IEnumerable<string> ReadData()
{ {
var assembly = typeof(EEFLongWordList).GetTypeInfo().Assembly; var assembly = typeof(EEFLongWordList).GetTypeInfo().Assembly;
var stream = assembly.GetManifestResourceStream("Bit.Core.Resources.eff_long_word_list.txt"); var stream = assembly.GetManifestResourceStream("Bit.App.Core.Resources.eff_long_word_list.txt");
string line; string line;
using (var reader = new StreamReader(stream)) using (var reader = new StreamReader(stream))
{ {

View File

@@ -1,7 +1,4 @@
using System; using System.Windows.Input;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Windows.Input;
using Bit.App.Abstractions; using Bit.App.Abstractions;
using Bit.App.Resources; using Bit.App.Resources;
using Bit.App.Utilities; using Bit.App.Utilities;
@@ -11,9 +8,6 @@ using Bit.Core.Enums;
using Bit.Core.Exceptions; using Bit.Core.Exceptions;
using Bit.Core.Models.Domain; using Bit.Core.Models.Domain;
using Bit.Core.Utilities; using Bit.Core.Utilities;
using Bit.App.Utilities;
using Microsoft.Maui.Controls;
using Microsoft.Maui;
namespace Bit.App.Pages namespace Bit.App.Pages
{ {
@@ -342,10 +336,10 @@ namespace Bit.App.Pages
public string PlusAddressedEmail public string PlusAddressedEmail
{ {
get => _usernameOptions.PlusAddressedEmail; get => _usernameOptions?.PlusAddressedEmail;
set set
{ {
if (_usernameOptions.PlusAddressedEmail != value) if (_usernameOptions != null && _usernameOptions.PlusAddressedEmail != value)
{ {
_usernameOptions.PlusAddressedEmail = value; _usernameOptions.PlusAddressedEmail = value;
TriggerPropertyChanged(nameof(PlusAddressedEmail)); TriggerPropertyChanged(nameof(PlusAddressedEmail));
@@ -364,7 +358,7 @@ namespace Bit.App.Pages
}); });
} }
public bool IsPolicyInEffect => _enforcedPolicyOptions.InEffect(); public bool IsPolicyInEffect => _enforcedPolicyOptions?.InEffect() == true;
public GeneratorType GeneratorTypeSelected public GeneratorType GeneratorTypeSelected
{ {
@@ -375,6 +369,7 @@ namespace Bit.App.Pages
{ {
IsUsername = value == GeneratorType.Username; IsUsername = value == GeneratorType.Username;
TriggerPropertyChanged(nameof(GeneratorTypeSelected)); TriggerPropertyChanged(nameof(GeneratorTypeSelected));
TriggerPropertyChanged(nameof(UsernameTypeSelected));
SaveOptionsAsync().FireAndForget(); SaveOptionsAsync().FireAndForget();
SaveUsernameOptionsAsync().FireAndForget(); SaveUsernameOptionsAsync().FireAndForget();
} }
@@ -398,10 +393,10 @@ namespace Bit.App.Pages
public UsernameType UsernameTypeSelected public UsernameType UsernameTypeSelected
{ {
get => _usernameOptions.Type; get => _usernameOptions?.Type ?? UsernameType.PlusAddressedEmail;
set set
{ {
if (_usernameOptions.Type != value) if (_usernameOptions != null && _usernameOptions.Type != value)
{ {
_usernameOptions.Type = value; _usernameOptions.Type = value;
Username = Constants.DefaultUsernameGenerated; Username = Constants.DefaultUsernameGenerated;
@@ -415,10 +410,10 @@ namespace Bit.App.Pages
public ForwardedEmailServiceType ForwardedEmailServiceSelected public ForwardedEmailServiceType ForwardedEmailServiceSelected
{ {
get => _usernameOptions.ServiceType; get => _usernameOptions?.ServiceType ?? ForwardedEmailServiceType.None;
set set
{ {
if (_usernameOptions.ServiceType != value) if (_usernameOptions != null && _usernameOptions.ServiceType != value)
{ {
_usernameOptions.ServiceType = value; _usernameOptions.ServiceType = value;
Username = Constants.DefaultUsernameGenerated; Username = Constants.DefaultUsernameGenerated;
@@ -434,10 +429,10 @@ namespace Bit.App.Pages
public string CatchAllEmailDomain public string CatchAllEmailDomain
{ {
get => _usernameOptions.CatchAllEmailDomain; get => _usernameOptions?.CatchAllEmailDomain;
set set
{ {
if (_usernameOptions.CatchAllEmailDomain != value) if (_usernameOptions != null && _usernameOptions.CatchAllEmailDomain != value)
{ {
_usernameOptions.CatchAllEmailDomain = value; _usernameOptions.CatchAllEmailDomain = value;
TriggerPropertyChanged(nameof(CatchAllEmailDomain)); TriggerPropertyChanged(nameof(CatchAllEmailDomain));
@@ -450,6 +445,11 @@ namespace Bit.App.Pages
{ {
get get
{ {
if (_usernameOptions is null)
{
return null;
}
switch (ForwardedEmailServiceSelected) switch (ForwardedEmailServiceSelected)
{ {
case ForwardedEmailServiceType.AnonAddy: case ForwardedEmailServiceType.AnonAddy:
@@ -468,6 +468,11 @@ namespace Bit.App.Pages
} }
set set
{ {
if (_usernameOptions is null)
{
return;
}
bool changed = false; bool changed = false;
switch (ForwardedEmailServiceSelected) switch (ForwardedEmailServiceSelected)
{ {
@@ -548,10 +553,10 @@ namespace Bit.App.Pages
public string AnonAddyDomainName public string AnonAddyDomainName
{ {
get => _usernameOptions.AnonAddyDomainName; get => _usernameOptions?.AnonAddyDomainName;
set set
{ {
if (_usernameOptions.AnonAddyDomainName != value) if (_usernameOptions != null && _usernameOptions.AnonAddyDomainName != value)
{ {
_usernameOptions.AnonAddyDomainName = value; _usernameOptions.AnonAddyDomainName = value;
TriggerPropertyChanged(nameof(AnonAddyDomainName)); TriggerPropertyChanged(nameof(AnonAddyDomainName));
@@ -562,10 +567,10 @@ namespace Bit.App.Pages
public bool CapitalizeRandomWordUsername public bool CapitalizeRandomWordUsername
{ {
get => _usernameOptions.CapitalizeRandomWordUsername; get => _usernameOptions?.CapitalizeRandomWordUsername == true;
set set
{ {
if (_usernameOptions.CapitalizeRandomWordUsername != value) if (_usernameOptions != null && _usernameOptions.CapitalizeRandomWordUsername != value)
{ {
_usernameOptions.CapitalizeRandomWordUsername = value; _usernameOptions.CapitalizeRandomWordUsername = value;
TriggerPropertyChanged(nameof(CapitalizeRandomWordUsername)); TriggerPropertyChanged(nameof(CapitalizeRandomWordUsername));
@@ -576,10 +581,10 @@ namespace Bit.App.Pages
public bool IncludeNumberRandomWordUsername public bool IncludeNumberRandomWordUsername
{ {
get => _usernameOptions.IncludeNumberRandomWordUsername; get => _usernameOptions?.IncludeNumberRandomWordUsername == true;
set set
{ {
if (_usernameOptions.IncludeNumberRandomWordUsername != value) if (_usernameOptions != null && _usernameOptions.IncludeNumberRandomWordUsername != value)
{ {
_usernameOptions.IncludeNumberRandomWordUsername = value; _usernameOptions.IncludeNumberRandomWordUsername = value;
TriggerPropertyChanged(nameof(IncludeNumberRandomWordUsername)); TriggerPropertyChanged(nameof(IncludeNumberRandomWordUsername));
@@ -590,10 +595,10 @@ namespace Bit.App.Pages
public UsernameEmailType PlusAddressedEmailTypeSelected public UsernameEmailType PlusAddressedEmailTypeSelected
{ {
get => _usernameOptions.PlusAddressedEmailType; get => _usernameOptions?.PlusAddressedEmailType ?? UsernameEmailType.Random;
set set
{ {
if (_usernameOptions.PlusAddressedEmailType != value) if (_usernameOptions != null && _usernameOptions.PlusAddressedEmailType != value)
{ {
_usernameOptions.PlusAddressedEmailType = value; _usernameOptions.PlusAddressedEmailType = value;
TriggerPropertyChanged(nameof(PlusAddressedEmailTypeSelected)); TriggerPropertyChanged(nameof(PlusAddressedEmailTypeSelected));
@@ -604,10 +609,10 @@ namespace Bit.App.Pages
public UsernameEmailType CatchAllEmailTypeSelected public UsernameEmailType CatchAllEmailTypeSelected
{ {
get => _usernameOptions.CatchAllEmailType; get => _usernameOptions?.CatchAllEmailType ?? UsernameEmailType.Random;
set set
{ {
if (_usernameOptions.CatchAllEmailType != value) if (_usernameOptions != null && _usernameOptions.CatchAllEmailType != value)
{ {
_usernameOptions.CatchAllEmailType = value; _usernameOptions.CatchAllEmailType = value;
TriggerPropertyChanged(nameof(CatchAllEmailTypeSelected)); TriggerPropertyChanged(nameof(CatchAllEmailTypeSelected));

View File

@@ -0,0 +1,19 @@
namespace Bit.App.Utilities
{
public class DebuggableConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return value;
}
}
}