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

Closed
opened 2026-05-01 16:06:16 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/3075
Author: @fedemkr
Created: 3/12/2024
Status: Merged
Merged: 3/13/2024
Merged by: @fedemkr

Base: feature/maui-migration-passkeysHead: vault/pm-5154/combined-passwords-passkeys


📝 Commits (4)

  • 8865e0b PM-5154 Implemented combined view of passwords and passkeys and improved search and items UI
  • fb264c2 Merge branch 'feature/maui-migration-passkeys' into vault/pm-5154/combined-passwords-passkeys
  • 015eafe PM-5154 Code improvement from PR feedback
  • cd455e4 PM-5154 Code improvement to log unknown exceptions

📊 Changes

18 files changed (+770 additions, -198 deletions)

View changed files

📝 src/Core/Resources/Localization/AppResources.Designer.cs (+9 -0)
📝 src/Core/Resources/Localization/AppResources.resx (+3 -0)
📝 src/Core/Services/Fido2AuthenticatorService.cs (+4 -2)
📝 src/iOS.Autofill/CredentialProviderViewController.Passkeys.cs (+20 -2)
📝 src/iOS.Autofill/CredentialProviderViewController.cs (+5 -46)
📝 src/iOS.Autofill/ILoginListViewController.cs (+5 -1)
📝 src/iOS.Autofill/LoginListViewController.cs (+218 -57)
📝 src/iOS.Autofill/LoginListViewController.designer.cs (+24 -0)
📝 src/iOS.Autofill/LoginSearchViewController.cs (+47 -25)
📝 src/iOS.Autofill/MainInterface.storyboard (+27 -3)
📝 src/iOS.Autofill/Models/Context.cs (+11 -0)
📝 src/iOS.Autofill/Utilities/AutofillHelpers.cs (+5 -19)
📝 src/iOS.Autofill/Utilities/BaseLoginListTableSource.cs (+262 -8)
src/iOS.Autofill/Utilities/Fido2GetAssertionFromListUserInterface.cs (+74 -0)
📝 src/iOS.Autofill/iOS.Autofill.csproj (+1 -0)
📝 src/iOS.Core/Models/CipherViewModel.cs (+10 -3)
📝 src/iOS.Core/Views/CipherLoginTableViewCell.cs (+2 -1)
📝 src/iOS.Core/Views/ExtensionTableSource.cs (+43 -31)

📄 Description

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

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/3075 **Author:** [@fedemkr](https://github.com/fedemkr) **Created:** 3/12/2024 **Status:** ✅ Merged **Merged:** 3/13/2024 **Merged by:** [@fedemkr](https://github.com/fedemkr) **Base:** `feature/maui-migration-passkeys` ← **Head:** `vault/pm-5154/combined-passwords-passkeys` --- ### 📝 Commits (4) - [`8865e0b`](https://github.com/bitwarden/android/commit/8865e0bc9a4a0795a90e9645d078bbd2e2d91ed8) PM-5154 Implemented combined view of passwords and passkeys and improved search and items UI - [`fb264c2`](https://github.com/bitwarden/android/commit/fb264c22e83c7170d3cfb898aa402232db845930) Merge branch 'feature/maui-migration-passkeys' into vault/pm-5154/combined-passwords-passkeys - [`015eafe`](https://github.com/bitwarden/android/commit/015eafe99b586ac386da32ff4e189431cf859473) PM-5154 Code improvement from PR feedback - [`cd455e4`](https://github.com/bitwarden/android/commit/cd455e459cc14313e2019358a2f25d66c9774dea) PM-5154 Code improvement to log unknown exceptions ### 📊 Changes **18 files changed** (+770 additions, -198 deletions) <details> <summary>View changed files</summary> 📝 `src/Core/Resources/Localization/AppResources.Designer.cs` (+9 -0) 📝 `src/Core/Resources/Localization/AppResources.resx` (+3 -0) 📝 `src/Core/Services/Fido2AuthenticatorService.cs` (+4 -2) 📝 `src/iOS.Autofill/CredentialProviderViewController.Passkeys.cs` (+20 -2) 📝 `src/iOS.Autofill/CredentialProviderViewController.cs` (+5 -46) 📝 `src/iOS.Autofill/ILoginListViewController.cs` (+5 -1) 📝 `src/iOS.Autofill/LoginListViewController.cs` (+218 -57) 📝 `src/iOS.Autofill/LoginListViewController.designer.cs` (+24 -0) 📝 `src/iOS.Autofill/LoginSearchViewController.cs` (+47 -25) 📝 `src/iOS.Autofill/MainInterface.storyboard` (+27 -3) 📝 `src/iOS.Autofill/Models/Context.cs` (+11 -0) 📝 `src/iOS.Autofill/Utilities/AutofillHelpers.cs` (+5 -19) 📝 `src/iOS.Autofill/Utilities/BaseLoginListTableSource.cs` (+262 -8) ➕ `src/iOS.Autofill/Utilities/Fido2GetAssertionFromListUserInterface.cs` (+74 -0) 📝 `src/iOS.Autofill/iOS.Autofill.csproj` (+1 -0) 📝 `src/iOS.Core/Models/CipherViewModel.cs` (+10 -3) 📝 `src/iOS.Core/Views/CipherLoginTableViewCell.cs` (+2 -1) 📝 `src/iOS.Core/Views/ExtensionTableSource.cs` (+43 -31) </details> ### 📄 Description ## 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 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-01 16:06:16 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#52223