* EC-835 Added in the Watch app keychain accessible when passcode set this device only and when the passcode is set to signal the iPhone to trigger a sync on opening the watch app
* EC-835 Embed LocalAuthentication framework into the watch app to fix no such module when importing it
* EC-835 Changed approach to check if Watch has passcode enabled by using Keychain accessible kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly instead of LAContext
* EC-835 Fix weird error saying unassigned local variable on the CI compiler. It seems it doesn't realize of the full condition
* EC-844 improve need login / need setup states on the watch
* EC-844 Fix naming of things and moved constant to the proper place to maintain format. Also removed UpdateLastUserShouldConnectToWatchAsync from the interface of the StateService given that it's not used outside the service and made it private
* Changed the current push token and last registration time to be user-based
* Fixed compile error.
* Fixed interface implementation.
* Fixed compile error for Android.
* Refactored to handle getting active user ID within state service
* Refactored methods allow existing logic to handle getting the active user.
* Updated to reconcile options.
* Updated naming and fixed issue with UserId.
* Removed space between constants.
* [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>
* [PS-1707] Changed the callout color to a Theme Color
* [PS-1707] Changed color defaults to defined colors
* [PS-1707] Added an effect to change the switch hint color to a theme color
* [PS-1707] Removed HintColorSwitchEffect and added the content to the CustomSwitchRenderer to affect all switches and update on theme change
* [SG-816] Get all login requests anfd pick the most recent
* [SG-816] Add check if active user has approve login with device active
* [SG-816] Build fix. Fix response model.
* [SG-816] Move code to sync service
* Merge branch 'master' into feature/SG-174-login-with-device
* [SG-813] Fix merge
* [SG-813] rename HomePage parameter name
* [SG-813] Added NavParams for home page on account switching.
* [SG-813] Remove account showing when adding new account.
* [SG-813] Add account switch pop up if email already exists
* [SG-813] Add default account avatar to HomePage
* [SG-813] Code format
* [SG-813] Remove unused import
* [SG-813] Renamed checkNavigateLogin to shouldCheckRememberEmail
* [SG-813] Move prompt account switch to account manager service
* [SG-813] Remove Account button appears if email is the same as the ActiveUser
* [SG-813] Fix code duplicate
* [SG-813] Fix for android RemoveAccount button
* [SG-813] Code format
* Only show 'remove account' option if user is in Accounts list
* Condense existing email logic
* Add line break
* Condense to local variable
* Cleanup spacing
* [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
* EC-519 Refactored IDeviceActionService to be split into IFileService and IAutofillManager also some cleanups were made
* EC-519 Fix format
* EC-519 Fix merge to use the new AutofillHandler
* [SG-702] Tap notification now switches accounts if it is a passwordless notification.
* [SG-702] Fix compilation errors
* [SG-702] Fixed iOS notification tap fix
* [SG-702] Notification data model
* [SG-702] Change method signature with object containing properties. PR fixes.
* SG-666 SG-667 - Email is now prefilled for plus addressed email username type
* Username is auto generated upon navigation
* SG-666 - Fixed PR comments
* Added missing property initialization
* [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-671] removed unnecessary calc of otpauth period. protected cal of otpauth from crashing the app if url has a wrong format.
* [SG-671] changed logger
* [SG-671] Refactored GetQueryParams code to used HttpUtility.ParseQueryString.
* [SG-671] refactor and null protection.
* [SG-671] code format
* [SG-671] fixed bug where totp circle countdown was fixed to 30.
* [SG-167] added fallback for uri check. Changed all default totp timers to constant.
* [SG-671] missed unsaved file
* [SG-671] simplified code
* [PS-1312] Updated Android Target and Framework to Android12 and updated new SplashScreen for Android12
* PS-1312 Changed PendingIntents mutability
* PS-1312 Removed unused imports
* PS-1312 Added method to helper to add mutability option according to Android version
* PS-1312 Renamed helper method AddPendingIntentMutability and fixed validation
* PS-1312 Improved PendingIntentMutability method from helper readability and naming
* Refactored CustomFields to stop using RepeaterView and use BindableLayout and divided the different types on different files and added a factory to create them
* Fix formatting
* 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>
* PS-1116 Improved network error handling on ViewPageViewModel and AddEditPageViewModel
* PS-1116 Renamed ViewPage and AddEditPage pages to a more explicit name.
Refactored CheckPassword from the CipherPages to a single Base class.
* PS-1116 Updated variables relative to the AddEditPage and ViewPage refactor to CipherAddEditPage and CipherDetailPage
* Renamed CipherDetailPage to CipherDetailsPage
* Code improvement
* PS-1116 Improved code formatting
* PS-1116 Improved formatting
* PS-1116 Improved code formatting
* PS-1080 Added new accessibility text property to the custom field bool icon
* PS-1080 Added BoolValue property to the FieldView and added new AccessibilityProperty to bool icon
* 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>
* EC-324 Added more logging for trying to get more information on list out of range crash on AppCenter
* EC-324 Fix include on iOS.Core.csproj on iOS CollectionView files
* EC-259 Added Account switching on share extension on iOS, also improved performance for this and exception handling
* EC-259 code formatting
* EC-259 Added account switching to Share extension Send view
* EC-259 Fixed navigation on share extension when a forms page is already presented
* EC-259 Fix send text UI update when going from the iOS extension
* EC-259 Improved DateTimeViewModel with helper property to easily setup date and time at the same time and applied on usage
* 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
* Added to AppResources.resx the message warning the user about setting the lockout option to "Never"
* Added the condition to check the newly selected option on the vault timeout settings
* Changed the wording on the warning as to reflect the mobile version
* Changed the vault timeout modal to have the ability to cancel
* Simplified the reversion of value if the user cancels the change
We only need master password hash because this is currently
only used for sso password setting after auto-provisioning. Key
Connector is not involved in these accounts
* SG-386 Updated active user when coming from background to the iOS app and the extension had switched users
* Added iOSExtensionActiveUserIdKey to preference keys
* Reorder iOS preference keys