1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-19 17:53:47 +00:00

[Linked fields] Add Linked Field as a custom field type (#1563)

* Add linked fields support

* Fix style, don't show linked field if Secure Note

* Finish basic linked fields for Login

* Use Field.LinkedId to store linked field info

* Reset Linked Custom Fields if cipherType changes

* Refactor to use ItemView class

* Use enum for LinkedId

* Detect if no linkedFieldOptions
This commit is contained in:
Thomas Rittson
2021-11-09 07:34:16 +10:00
committed by GitHub
parent 3cb8adeeff
commit 90b62d61ae
20 changed files with 263 additions and 30 deletions

View File

@@ -1,8 +1,10 @@
using Bit.Core.Models.Domain;
using Bit.Core.Enums;
using System.Collections.Generic;
namespace Bit.Core.Models.View
{
public class IdentityView : View
public class IdentityView : ItemView
{
private string _firstName;
private string _lastName;
@@ -47,7 +49,7 @@ namespace Bit.Core.Models.View
public string PassportNumber { get; set; }
public string LicenseNumber { get; set; }
public string SubTitle
public override string SubTitle
{
get
{
@@ -141,5 +143,31 @@ namespace Bit.Core.Models.View
return string.Format("{0}, {1}, {2}", city, state, postalCode);
}
}
public override List<KeyValuePair<string, LinkedIdType>> LinkedFieldOptions
{
get => new List<KeyValuePair<string, LinkedIdType>>()
{
new KeyValuePair<string, LinkedIdType>("Title", LinkedIdType.Identity_Title),
new KeyValuePair<string, LinkedIdType>("MiddleName", LinkedIdType.Identity_MiddleName),
new KeyValuePair<string, LinkedIdType>("Address1", LinkedIdType.Identity_Address1),
new KeyValuePair<string, LinkedIdType>("Address2", LinkedIdType.Identity_Address2),
new KeyValuePair<string, LinkedIdType>("Address3", LinkedIdType.Identity_Address3),
new KeyValuePair<string, LinkedIdType>("CityTown", LinkedIdType.Identity_City),
new KeyValuePair<string, LinkedIdType>("StateProvince", LinkedIdType.Identity_State),
new KeyValuePair<string, LinkedIdType>("ZipPostalCode", LinkedIdType.Identity_PostalCode),
new KeyValuePair<string, LinkedIdType>("Country", LinkedIdType.Identity_Country),
new KeyValuePair<string, LinkedIdType>("Company", LinkedIdType.Identity_Company),
new KeyValuePair<string, LinkedIdType>("Email", LinkedIdType.Identity_Email),
new KeyValuePair<string, LinkedIdType>("Phone", LinkedIdType.Identity_Phone),
new KeyValuePair<string, LinkedIdType>("SSN", LinkedIdType.Identity_Ssn),
new KeyValuePair<string, LinkedIdType>("Username", LinkedIdType.Identity_Username),
new KeyValuePair<string, LinkedIdType>("PassportNumber", LinkedIdType.Identity_PassportNumber),
new KeyValuePair<string, LinkedIdType>("LicenseNumber", LinkedIdType.Identity_LicenseNumber),
new KeyValuePair<string, LinkedIdType>("FirstName", LinkedIdType.Identity_FirstName),
new KeyValuePair<string, LinkedIdType>("LastName", LinkedIdType.Identity_LastName),
new KeyValuePair<string, LinkedIdType>("FullName", LinkedIdType.Identity_FullName),
};
}
}
}