[PR #3075] [PM-5154] Implement combined view for passwords and passkeys on iOS Autofill extension #4007

Closed
opened 2025-11-26 23:39:34 -06:00 by GiteaMirror · 0 comments
Owner

Original Pull Request: https://github.com/bitwarden/android/pull/3075

State: closed
Merged: Yes


Type of change

  • Bug fix
  • New feature development
  • Tech debt (refactoring, code cleanup, dependency upgrades, etc)
  • Build/deploy pipeline (DevOps)
  • Other

Objective

Implement combined view for passwords and passkeys on iOS Autofill extension with in-view search feature.

Code changes

  • CredentialProviderViewController[Passkeys]: Moved PrepareCredentialList to Passkeys file and reuse the one without passkeys request parameters from this one saving the parameters in the context.
  • LoginListViewController:
    • Added Loading indicator
    • Implemented different names for the title depending on the context
    • Added Search feature inside this list, the toolbar search button toggles the visibility of the search bar
    • Implemented Fido2 GetAssertion for the logic for the combined passwords and passkeys
    • Improved empty state
    • Improved loading and reloading items
  • BaseLoginListTableSource: Main point for implementing the logic of cipher loading, taking into consideration the possibility of splitting passwords and passkeys into two separate sections and the specific loading and filling of them from the context.
  • ExtensionTableSource: Improved this base class to be extendable and have the new UI and passkeys logic into account.
  • Fido2GetAssertionFromListUserInterface: New class to have the specific logic to choose a passkey from the combined view of Passwords + Passkeys.
  • Fido2AuthenticatorService: Added logging when an unknown exception is raised in the process
  • LoginSearchViewController: Fixed issue on loading items
  • MainInterface.storyboard: Added search bar and loading indicator on Logins scene and improved constraints
  • Context: Added passkeys request parameters and task completion source for picking a credential from list combined flow and some helper flags
  • AutofillHelpers: Simplified the method to select a row for Password

Screenshots

Auto-fill combined view: Passwords + Passkeys

Auto-fill combined view Auto-fill combined view with search

Before you submit

  • Please check for formatting errors (dotnet format --verify-no-changes) (required)
  • Please add unit tests where it makes sense to do so (encouraged but not required)
  • If this change requires a documentation update - notify the documentation team
  • If this change has particular deployment requirements - notify the DevOps team
**Original Pull Request:** https://github.com/bitwarden/android/pull/3075 **State:** closed **Merged:** Yes --- ## Type of change - [ ] Bug fix - [X] New feature development - [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc) - [ ] Build/deploy pipeline (DevOps) - [ ] Other ## Objective <!--Describe what the purpose of this PR is. For example: what bug you're fixing or what new feature you're adding--> Implement combined view for passwords and passkeys on iOS Autofill extension with in-view search feature. ## Code changes <!--Explain the changes you've made to each file or major component. This should help the reviewer understand your changes--> <!--Also refer to any related changes or PRs in other repositories--> * **CredentialProviderViewController[Passkeys]:** Moved `PrepareCredentialList` to Passkeys file and reuse the one without passkeys request parameters from this one saving the parameters in the context. * **LoginListViewController:** * Added Loading indicator * Implemented different names for the title depending on the context * Added Search feature inside this list, the toolbar search button toggles the visibility of the search bar * Implemented Fido2 `GetAssertion` for the logic for the combined passwords and passkeys * Improved empty state * Improved loading and reloading items * **BaseLoginListTableSource:** Main point for implementing the logic of cipher loading, taking into consideration the possibility of splitting passwords and passkeys into two separate sections and the specific loading and filling of them from the context. * **ExtensionTableSource:** Improved this base class to be extendable and have the new UI and passkeys logic into account. * **Fido2GetAssertionFromListUserInterface:** New class to have the specific logic to choose a passkey from the combined view of Passwords + Passkeys. * **Fido2AuthenticatorService:** Added logging when an unknown exception is raised in the process * **LoginSearchViewController:** Fixed issue on loading items * **MainInterface.storyboard:** Added search bar and loading indicator on Logins scene and improved constraints * **Context:** Added passkeys request parameters and task completion source for picking a credential from list combined flow and some helper flags * **AutofillHelpers:** Simplified the method to select a row for Password ## Screenshots <!--Required for any UI changes. Delete if not applicable--> ### Auto-fill combined view: Passwords + Passkeys <img width="314" alt="Auto-fill combined view" src="https://github.com/bitwarden/mobile/assets/15682323/3f960725-1545-476a-9977-8e541a8020e7"> ### Auto-fill combined view with search <img width="314" alt="Auto-fill combined view with search" src="https://github.com/bitwarden/mobile/assets/15682323/8dfa37e9-c4fc-4fc3-848e-f7fd5bf5860a"> ## Before you submit - Please check for formatting errors (`dotnet format --verify-no-changes`) (required) - Please add **unit tests** where it makes sense to do so (encouraged but not required) - If this change requires a **documentation update** - notify the documentation team - If this change has particular **deployment requirements** - notify the DevOps team
GiteaMirror added the pull-request label 2025-11-26 23:39:34 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#4007