* Change bio integrity validation to work at account-level
* biometric state migration
* fix account bio valid key storage location during migration
* comment clarification
* fix for iOS extensions not using custom avatar color
* [AC-1070] Add EnforceOnLogin property to MasterPasswordPolicyOptions
* [AC-1070] Add MasterPasswordPolicy property to Identity responses
* [AC-1070] Add policy service dependency to auth service
* [AC-1070] Introduce logic to evaluate master password after successful login
* [AC-1070] Add optional ForcePasswordResetReason to profile / state service
* [AC-1070] Save ForcePasswordResetReason to state when a weak master password is found during login
- Additionally, save the AdminForcePasswordReset reason if the identity result indicates an admin password reset is in effect.
* [AC-1070] Check for a saved ForcePasswordReset reason on TabsPage load force show the update password page
* [AC-1070] Make InitAsync virtual
Allow the UpdateTempPasswordPage to override the InitAsync method to check for a reset password reason in the state service
* [AC-1070] Modify UpdateTempPassword page appearance
- Load the force password reset reason from the state service
- Make warning text dynamic based on force password reason
- Conditionally show the Current master password field if updating a weak master password
* [AC-1070] Add update password method to Api service
* [AC-1070] Introduce logic to update both temp and regular passwords
- Check the Reason to use the appropriate request/endpoint when submitting.
- Verify the users current password locally using the user verification service.
* [AC-1070] Introduce VerifyMasterPasswordResponse
* [AC-1070] Add logic to evaluate master password on unlock
* [AC-1070] Add support 2FA login flow
Keep track of the reset password reason after a password login requires 2FA. During 2FA submission, check if there is a saved reason, and if so, force the user to update their password.
* [AC-1070] Formatting
* [AC-1070] Remove string key from service resolution
* [AC-1070] Change master password options to method variable to avoid class field
Add null check for password strength result and log an error as this is an unexpected flow
* [AC-1070] Remove usage of i18nService
* [AC-1070] Use AsyncCommand for SubmitCommand
* [AC-1070] Remove type from ShowToast call
* [AC-1070] Simplify UpdatePassword methods to accept string for the new encryption key
* [AC-1070] Use full text for key for the CurrentMasterPassword resource
* [AC-1070] Convert Reason to a private class field
* [AC-1070] Formatting changes
* [AC-1070] Simplify if statements in master password options policy service method
* [AC-1070] Use the saved force password reset reason after 2FA login
* [AC-1070] Use constant for ForceUpdatePassword message command
* [AC-1070] Move shared RequirePasswordChangeOnLogin method into PolicyService
* Revert "[AC-1070] Move shared RequirePasswordChangeOnLogin method into PolicyService"
This reverts commit e4feac130f.
* [AC-1070] Add check for null password strength response
* [AC-1070] Fix broken show password icon
* [AC-1070] Add show password icon for current master password
* [EC-1045] lock action if policy and show message
* [EC-1045] add text for policy message
* [EC-1045] add consts to policy service
* [EC-1045] missed a const
* [AC-1045] fix build
* [AC-1045] fix bug where UI wasn't updating after sync
* [AC-1045] change FirstOrDefault to First to avoid nulls
* [AC-1045] refactor get vault timeout functions
* [AC-1045] don't filter action options unecessarily
* [AC-1045] refactor build alert logic for readability
* [AC-1045] use policy to filter timeout options instead of current timeout
* [AC-1045] update timeout during sync instead of getter
- remove encrypted from state since it's not encrypted
- if policies return a timeout policy, check and update vault timeout
* [AC-1045] default to custom if we can't find vault timeout option
* [AC-1045] revert Encrypted Policies rename
* [EC-1045] lock action if policy and show message
* [EC-1045] add text for policy message
* [EC-1045] add consts to policy service
* [EC-1045] missed a const
* [AC-1045] fix build
* [EC-980] Added iOS otpauth handler (#2370)
* EC-980 added Bitwarden as otpauth scheme handler
* EC-980 Fix format
* [EC-981] OTP handling - Set to selected cipher (#2404)
* EC-981 Started adding OTP to existing cipher. Reused AutofillCiphersPage for the cipher selection and refactored it so that we have more code reuse
* EC-981 Fix navigation on otp handling
* EC-981 Fix formatting
* EC-981 Added otp cipher selection callout and add close toolbar item when needed
* PM-1131 implemented cipher creation from otp handling flow with otp key filled (#2407)
* PM-1133 Updated empty states for search and cipher selection on otp flow (#2408)
* EC-1002 BEEEP Added ability to change language in app
* EC-1002 fix format
* EC-1002 Renamed IPreferencesStorageService to ISynchronousStorageService
* EC-1002 Moved get/set Locale to the StateService and added the StorageMediatorService to a new way to interact with the storage. Later the StateService will only interact with this mediator instead of directly with the storage services, with this we have more control inside the mediator and we can have both sync and async methods to interact with storages handled by the mediator
* [SG-516] Added DuckDuckGo provider
* [SG-516] Add Fastmail as generator provider
* [SG-516] code clean up
* [SG-516] Default to service empty if first time on screen. Order services by alphabetic order.
* [SG-516] Removed unnecessary prop.
* [PS-2278] Fixed inverted eye bug.
* [SG-516] Add icon glyph converter
* [SG-516] Fixed enum default value and ordering
* [EC-426] Add watchOS PoC app (#2054)
* EC-426 Added watchOS app, configured iOS.csproj to bundle the output of XCode build into the Xamarin iOS app and added some custom logic to use WCSession to communicate between the iOS and the watchOS apps
* EC-426 Removed Info.plist from iOS.Core project given that it's not needed
* [EC-426] Added new encrypted watch app profiles
* EC-426 added configuration for building watchApp and bundle it up on the iOS one
* EC-426 Fix build for watchOS
* EC-426 Fix build for watchOS applied shell bash
* EC-426 Fix build for watchOS echo
* EC-426 Fix build for watchOS simplify
* EC-426 Fix build for watchOS added workspace path
* EC-426 Changed code sign identity of watchOS project to Apple Distribution
* EC-426 added manual code sign style and specified the provisioning profile for the targets on the watch xcode project
* EC-426 updated path to watchOS on release on iOS.csproj and disabled android and f-.droid
* EC-426 fix build
* EC-426 fix path and check listing of directory of watchOS output just in case
* EC-426 Fix Apple Watch build to list the folder recursively just in case we need to change the path for the watch bundle
* EC-426 TEMP Change texts on input on login and lock to show that the app is for the Watch PoC testing
* EC-426 Fix WatchApp build path
* EC-426 Added WatchOS AppIcons
* EC-426 added gitignore for XCode project removed files supposed to be ignored
* EC-426 Cleaned the code a bit to avoid misbehavior
* EC-426 Code cleanup
Co-authored-by: Joseph Flinn <joseph.s.flinn@gmail.com>
* [EC-585] Added data, encryption and some helpers and structure to the Watch app (#2164)
* [EC-585] Added foundation classes on the watch to handle CoreData and some fixes on the communication of the ciphers, also some helper classes to store in keychain and encrypt data
* EC-585 Added keychain helper, encryption helpers and added data storage using CoreData configuring it appropiately. View and ViewModel are here only to test that the fetching/saving works but it's not the actual UI of the watch app. Also removed all the places where the automatic file signature was added by XCode
* EC-585 Fixed CipherServiceMock to implement protocol
* EC-585 Fixed DeviceActionService duplicated services
* [EC-614] Apple Watch MVP Cipher list UI (#2175)
* [EC-585] Added foundation classes on the watch to handle CoreData and some fixes on the communication of the ciphers, also some helper classes to store in keychain and encrypt data
* EC-585 Added keychain helper, encryption helpers and added data storage using CoreData configuring it appropiately. View and ViewModel are here only to test that the fetching/saving works but it's not the actual UI of the watch app. Also removed all the places where the automatic file signature was added by XCode
* EC-585 Fixed CipherServiceMock to implement protocol
* EC-585 Fixed DeviceActionService duplicated services
* EC-614 Implemented watch ciphers list UI
* [EC-615] Apple Watch MVP Cipher details UI (#2192)
* [EC-585] Added foundation classes on the watch to handle CoreData and some fixes on the communication of the ciphers, also some helper classes to store in keychain and encrypt data
* EC-585 Added keychain helper, encryption helpers and added data storage using CoreData configuring it appropiately. View and ViewModel are here only to test that the fetching/saving works but it's not the actual UI of the watch app. Also removed all the places where the automatic file signature was added by XCode
* EC-585 Fixed CipherServiceMock to implement protocol
* EC-585 Fixed DeviceActionService duplicated services
* EC-614 Implemented watch ciphers list UI
* EC-615 Added cipher details UI to watch and also implemented logic and helpers to generate the TOTPs
* EC-615 Added value transformer to login uris on the cipher entity
* EC-617 Added state view on watch app and some state helpers and wired it on the CipherListView. Also added some images (#2195)
* [EC-581] Implement Apple Watch MVP Sync (#2206)
* EC-581 Implemented sync iPhone -> watchOS, fix some issues with the watch database and sync flows for login/locks/multiple accounts
* EC-581 Added watch sync on unlocking and need setup state when no user is synced and the session is not active
* EC-581 Removed unused method
* EC-581 Fix format
* EC-759 Added avatar row on cipher list header to display avatar icon and email (#2213)
* [EC-786] Apple Watch MVP Sync fixes (#2214)
* EC-786 Commented things that are not going to be included on the MVP and fixed issue on the dictionary sent on the applicationContext to have a changing key based on time
* EC-786 Commented need unlock state
* EC-579 Added logic for Connect To Watch on iOS settings and moved it to the correct place. Also improved the synchronization and watch session activation logic (#2218)
* EC-616 Added search header for ciphers and polished the code (#2226)
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
Co-authored-by: Joseph Flinn <joseph.s.flinn@gmail.com>
* [SG-166] Update fonts to have necessary icons
* [SG-166] Add new custom view to hold a button with a font icon and a label.
* [SG-166] Two Step login flow - Mobile (#2153)
* [SG-166] Add UI elements to Home and Login pages. Change VMs to function with new UI. Add new string resources.
* [SG-166] Pass email parameter from Home to Login page.
* [SG-166] Pass email to password hint page.
* [SG-166] Remove remembered email from account switching.
* [SG-166] Add GetKnownDevice endpoint to ApiService
* [SG-166] Fix GetKnownDevice string uri
* [SG-166] Add Renderer for IconLabel control. Add RemoveFontPadding bool property.
* [SG-166] include IconLabelRenderer in Android csproj file
* [SG-166] Add new control. Add styles for the control.
* [SG-166] Add verification to start login if email is remembered
* [SG-166] Pass default email to hint page
* [SG-166] Login with device button only shows if it is a known device.
* [SG-166] Change Remember Email to Remember me. Change Check to Switch control.
* [SG-166] Add command to button for SSO Login
* Revert "[SG-166] Update fonts to have necessary icons"
This reverts commit 472b541cef.
* [SG-166] Remove IconLabel Android renderer. Add RemoveFontPadding effect.
* [SG-166] Update font with new device and suitcase icon
* [SG-166] Fix RemoveFontPadding effect
* [SG-166] Remove unused property in IconLabel
* [SG-166] Fix formatting on IconLabelButton.xaml
* [SG-166] Update padding effect to IconLabel
* [SG-166] Add control variable to run code once on create
* [SG-166] Add email validation before continue
* [SG-166] Refactor icons
* [SG-166] Update iOS Extension font
* [SG-166] Remove HomePage login btn step
* [SG-166] Make clickable area smaller
* [SG-166] Fix hint filled by default
* [SG-166] Fix IconButton font issue
* [SG-166] Fix iOS extension
* [SG-166] Move style to Base instead of platforms
* [SG-166] Fix layout for IconLabelButton
* [SG-166] Switched EventHandler for Command
* [SG-166] Removed event handler
* [SG-166] Fix LoginPage layout options
* [SG-166] Fix extensions Login null email
* [SG-166] Move remembered email logic to viewmodel
* [SG-166] Protect method and show dialog in case of error
* [SG-166] Rename of GetKnownDevice api method
* [SG-166] rename text resource key name
* [SG-166] Add close button to iOS extension
* [SG-166] Switch event handlers for commands
* [SG-166] Change commands UI thread invocation.
* [SG-166] Remove Login with device button from the UI
* [SG-166] Fixed appOptions and close button on iOS Extensions
* [SG-705] Added pop up to perform account switching if the user receives a login request from another account.
* [SG-705] missing resource designer
* [SG-705] Fixed wrong key for state service variable.
* [SG-705] Fix formatting of account switch alert.
* [SG-705] dotnet format run
* [SG-705] Removed async
* [SG-705] Refactor on App
* [SG-690] Add timeout of 15 for android notifications. Add condition to not prompt login requests if 15mins have passed. Add constant for timeout time.
* [SG-690] Added dialog on click confirm/deny if the request is expired.
* [SG-690] PR fixes
* [SG-690] PR fixes
* [SG-471] Passwordless device login screen (#2017)
* [SSG-471] Added UI for the device login request response.
* [SG-471] Added text resources and arguments to Page.
* [SG-471] Added properties to speed up page bindings
* [SG-471] Added mock services. Added Accept/reject command binding, navigation and toast messages.
* [SG-471] fixed code styling with dotnet-format
* [SG-471] Fixed back button placement. PR fixes.
* [SG-471] Added new Origin parameter to the page.
* [SG-471] PR Fixes
* [SG-471] PR fixes
* [SG-471] PR Fix: added FireAndForget.
* [SG-471] Moved fire and forget to run on ui thread task.
* [SG-381] Passwordless - Add setting to Mobile (#2037)
* [SG-381] Added settings option to approve passwordless login request. If user has notifications disabled, prompt to go to settings and enable them.
* [SG-381] Update settings pop up texts.
* [SG-381] Added new method to get notifications state on device settings. Added userId to property saved on device to differentiate value between users.
* [SG-381] Added text for the popup on selection.
* [SG-381] PR Fixes
* [SG-408] Implement passwordless api methods (#2055)
* [SG-408] Update notification model.
* [SG-408] removed duplicated resource
* [SG-408] Added implementation to Api Service of new passwordless methods.
* removed qa endpoints
* [SG-408] Changed auth methods implementation, added method call to viewmodel.
* [SG-408] ran code format
* [SG-408] PR fixes
* [SG-472] Add configuration for new notification type (#2056)
* [SG-472] Added methods to present local notification to the user. Configured new notification type for passwordless logins
* [SG-472] Updated code to new api service changes.
* [SG-472] ran dotnet format
* [SG-472] PR Fixes.
* [SG-472] PR Fixes
* [SG-169] End-to-end testing refactor. (#2073)
* [SG-169] Passwordless demo change requests (#2079)
* [SG-169] End-to-end testing refactor.
* [SG-169] Fixed labels. Changed color of Fingerprint phrase. Waited for app to be in foreground to launch passwordless modal to fix Android issues.
* [SG-169] Anchored buttons to the bottom of the screen.
* [SG-169] Changed device type from enum to string.
* [SG-169] PR fixes
* [SG-169] PR fixes
* [SG-169] Added comment on static variable
* 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
* Initial commit of new TOTP page
* Revert config files from previous commit
This reverts commit b02c58e362.
* clear extra code and fix build
* add tab page
* add authentication view cell
* add toolbar icons
* got the countdown working
* enable context loading and vm init
* PS-70 Added toggle to quickly filter TOTP cypher items and show their details, Added new text resource
* PS-70 removed old authentication tab
* removed unnecessary code on vm
* fixed formatting
* PS-70 Added circular progress to the OTP count down
* PS-70 Fixed grid cell width. Added red progress at 20 percent. Refactored circular progress view.
* PS-70 Added new props to custom control.
* PS-70 show toggle only if it's premium
* PS-70 removed unnecessary code
* PS-70 add copy to clipboard.
* PS-70 show upgrade to premium text on details to free user.
* PS-70 added text labels to resource files
* PS-70 Renamed TOTP to Totp to have consistency in naming. Removed a11y text of switch because android was overlapping text.
* PS-70 added new UI to enter code manually in the QR Code scanner screen. Changed existing labels on scanner screen.
* PS-70 Splited totp code to adjust spacing.
* PS-70 Added scanner square corner overlay. Added scanning animation. Added scan success animation.
* PS-70 let zxing scanner camera feed on until screen is closed.
* PS-70 fixed scanner animation for android devices
* PS-70 added vibrate permission to manifest. refactored scanpage code. added manual authentication key feature in scanner.
* PS-70 fixed totp cell title label font
* PS-70 added copy button to totp edit cipher. Added row button when totp is null.
* PS-70 changed labels on manual scanner screen
* PS-70 Added label on top of button to solve UI bug.
* PS-70 Fixed android button overlapping bug by adding button styling to a Frame view and placing a label inside. Fixed Color on scanner page.
* PS-70 Added frame styling for iOS, since frame view has different base configuration for android and iOS.
* PS-70 fixed font clipping bug on iOS
* PS-70 removed shadow for newer versions of android
* PS-70 code format
* PS-70 removed update to premium uri launch
* PS-70 PR fix for AppResource vs code behind generation.
* PS-70 changed premium required label. fixed bug when to show premium required label.
* [SSG-416] Removed the dashes from free user and just left the Premium subscription required.
* [SSG-416] removed unnecessary changes to the TabsPage file
* [SSG-416] removed unnecessary using.
* [SSG-416] Updated ViewPageViewModel and code refactoring.
* [SG-416] Updated scanner mode toggle text color to be inline with figma designs
* [SSG-416] Mobile PR Fixes
* [SSG-416] Add to remove a11y text from totp toggle because on android it places an helper text next to the switch making it invisible. Also removed from the label because it already reads the text from the label
* [SSG-416] run dotnet tool run dotnet-format
* [SSG-416] PR fixes
* Revert "[SSG-416] PR fixes"
This reverts commit 2f2b90acee.
* [PS-416] Fixed a bug where the item details page was not updating after saving.
* [SG-416] Authenticator toggle remake (#2027)
* [SG-416] Removed toggle to TOTP. Added on MainPage new entry to go to screen with TOTP codes. Added filter for TOTP codes to be used when searching.
* [SG-416] Removed unnecessary code. Added nav back if there is only 1 cipher with totp code and the user removes it.
* [SG-416] Run dotnet format tool
* [SG-416] PR fixes
* [SG-416] PR Fixes. Manifest formatting. Add try catch. Extracted method and added null protection.
* [SG-416] Make TOTP codes appear above favourites.
* [SG-416] PR fixes. Show error dialog.
Co-authored-by: Carlos J. Muentes <42616259+cmuentes@users.noreply.github.com>
Co-authored-by: Jacob Fink <jfink@bitwarden.com>
* settings option to allow screen capture on Android
* Improved code on Screen Capture and added prompt to the user to allow screen capture
* EC-325 Removed async on OnCreate of MainActivity given that's not necessary anymore
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
* PS-920 - Added feedback to user when saving bad formed URLs
* Added feedback to user when trying to perform login with bad formed URL
* PS-920 - Refactor to use AsyncCommand
*(missing file from previous commit)
* PS-920 - Fixed whitespace formatting
* PS-920 - Removed unused method
* PS-920 - Fixed validation
* Added comment for hard coded string
* PS-920 - Removed unused properties
* Fixed url validations
* Refactored method to local function
* PS-920 - Added exception handling and logging
* Added generic error message string to AppResources
* feat: update auto totp copy setting
* feat: update show icons settings
* feat: update auto add settings
* feat: update settings and options to sentence case
* feat: update translation keys
With the latest changes the translation keys had diverged from their contents.
This commit fixes that.
* fix: revert AndroidManifest changes
* chore: add todo comments to fix negative functions