From b1fb867b6e9538b5da8c8c6e0fd3add6f08b35f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Gon=C3=A7alves?= Date: Fri, 26 Aug 2022 19:32:02 +0100 Subject: [PATCH] [SG-223] Mobile username generator (#2033) * SG-223 - Changed page title and password title * SG-223 - Refactored generated field * Changed position of generated field * Replaced buttons generate and copy for icons * SG-223 - Refactor type to passwordType * SG-223 - Added password or username selector * Added string for label type selection * SG-223 - Added logic for different types of username * Added strings of new types * [SG-223] - Added UI components for different username types * Added static strings for new labels * Added viewmodel properties to support username generation and their respective options * [SG-223] Added control over type picker visibility * [SG-223] Refactored username entry on add edit page and added generate icon * Added GenerateUsername command * [SG-223] - Implemented service for username generation * [SG-223] - Added support for username generation for item creation flow * Implemented cache for username options * Added exception handling for api calls * [SG-223] - Remove unused code * [SG-223] - Added a new display field for username generated and respective command * Added description label for each type of username * Changed defautl value of username from string.Empty to - * [SG-223] - Removed some StackLayouts and refactored some controls * [SG-223] - Refactored properties name * [SG-223] - Added visibility toggle icon for api keys of forwarded email username types * [SG-223] - Refactored nested StackLayouts into grids. * [SG-223] - Refactor and pr fixing * [SG-223] - Removed string keys from Resolve - Added static string to resources * [SG-223] - Refactored Copy_Clicked as AsyncCommand - Improved exception handling - Refactored TypeSelected as GeneratorTypeSelected * [SG-223] - Renamed PasswordFormatter * [SG-223] - Refactored VM properties to use UsernameGenerationOptions * Removed LoadUsernameOptions * [SG-223] - Refactored added pickers to use SelectedItem instead SelectedIndex * Deleted PickerIndexToBoolConverter as it isn't needed anymore * [SG-223] - Refactored and simplified Grid row and column definitions * [SG-223] - Refactored Command into async command * Added exception handling and feedback to the user * [SG-223] - Refactored GeneratorType picker to use Enum GeneratorType instead of string * [SG-223] - Changed some resource keys * [SG-223] - Refactor method name * [SG-223] - Refactored code and added logs for switch default cases * [SG-223] - Added flag to control visibility when in edit mode * [SG-223] - Added suffix Parenthesis to keys to prevent future conflicts * [SG-223] - Refactored multiple methods into one, GetUsernameFromAsync * Removed unused Extensions from enums * [SG-223] - Added exception message * [SG-223] - Added localizable enum values through LocalizableEnumConverter * [SG-223] - Fixed space between controls * [SG-223] - Removed unused code and refactored some variables and methods names * [SG-223] - Removed unused code and refactored constant name to be more elucidative * [SG-223] - Removed unused variable --- src/App/Pages/Generator/GeneratorPage.xaml | 339 ++++++++++-- src/App/Pages/Generator/GeneratorPage.xaml.cs | 43 +- .../Pages/Generator/GeneratorPageViewModel.cs | 495 +++++++++++++++++- src/App/Pages/Vault/CipherAddEditPage.xaml | 21 +- .../Pages/Vault/CipherAddEditPageViewModel.cs | 32 ++ .../Pages/Vault/CipherDetailsPageViewModel.cs | 4 +- src/App/Resources/AppResources.Designer.cs | 146 +++++- src/App/Resources/AppResources.resx | 77 ++- src/App/Utilities/AppHelpers.cs | 3 + src/App/Utilities/ColoredPasswordConverter.cs | 2 +- ...ormatter.cs => GeneratedValueFormatter.cs} | 14 +- src/Core/Abstractions/IApiService.cs | 2 + src/Core/Abstractions/IStateService.cs | 2 + .../IUsernameGenerationService.cs | 13 + src/Core/Constants.cs | 2 + src/Core/Enums/ForwardedEmailServiceType.cs | 14 + src/Core/Enums/GeneratorType.cs | 12 + src/Core/Enums/UsernameEmailType.cs | 12 + src/Core/Enums/UsernameType.cs | 16 + .../Domain/UsernameGenerationOptions.cs | 23 + .../Models/Domain/UsernameGeneratorConfig.cs | 9 + src/Core/Services/ApiService.cs | 60 +++ src/Core/Services/StateService.cs | 17 + .../Services/UsernameGenerationService.cs | 211 ++++++++ src/Core/Utilities/ServiceContainer.cs | 2 + 25 files changed, 1471 insertions(+), 100 deletions(-) rename src/App/Utilities/{PasswordFormatter.cs => GeneratedValueFormatter.cs} (91%) create mode 100644 src/Core/Abstractions/IUsernameGenerationService.cs create mode 100644 src/Core/Enums/ForwardedEmailServiceType.cs create mode 100644 src/Core/Enums/GeneratorType.cs create mode 100644 src/Core/Enums/UsernameEmailType.cs create mode 100644 src/Core/Enums/UsernameType.cs create mode 100644 src/Core/Models/Domain/UsernameGenerationOptions.cs create mode 100644 src/Core/Models/Domain/UsernameGeneratorConfig.cs create mode 100644 src/Core/Services/UsernameGenerationService.cs diff --git a/src/App/Pages/Generator/GeneratorPage.xaml b/src/App/Pages/Generator/GeneratorPage.xaml index 0f02b8a83..00cd35381 100644 --- a/src/App/Pages/Generator/GeneratorPage.xaml +++ b/src/App/Pages/Generator/GeneratorPage.xaml @@ -1,12 +1,15 @@ - + @@ -16,6 +19,8 @@ + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + HorizontalOptions="Start" /> + + + + + + - - - - +