[fenix] Updating Fenix to work with the new logins API
commit198c0338763306d0301c735c108c91b43dc85031
authorBen Dean-Kawamura <ben@mozilla.com>
Thu, 16 Sep 2021 20:42:56 +0000 (16 16:42 -0400)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 14 Oct 2021 17:34:20 +0000 (14 17:34 +0000)
tree2479e35b861aa7f90cdbfe148761334c50ffbe02
parent3c7fbd3ec9730e7d2453e3d8bca6aa987d3c61f7
[fenix] Updating Fenix to work with the new logins API

Switched to always using `Login` instead of the `SavedPassword` alias.

Made `MasterPasswordTipProvider.saveLogins()` call
`importLoginsAsync()`.  This is needed because it's the only method that
inputs a `Login` rather than a `LoginEntry`.

Moved the `SavedLoginsStorageController.kt.syncAndUpdateList` call
to inside `add()` and `update()`.  This simplifies the error handling a
bit.

Refactored dupe-checking code to use findLoginToUpdate()

Refactored `AddLoginFragment` / `EditLoginFragment` to put the username
error handling code all in 1 method.  I think it's easier to follow the
logic of showing/hiding the error labels when it's all in one place.
This fixes issues https://github.com/mozilla-mobile/fenix/pull/24103 and https://github.com/mozilla-mobile/fenix/pull/24104.  I would love to address https://github.com/mozilla-mobile/fenix/issues/24102,
but I'm not sure what the correct behavior is there so I just kept that
the same.
13 files changed:
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/tips/providers/MasterPasswordTipProvider.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/LoginsFragmentStore.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/controller/SavedLoginsStorageController.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/AddLoginFragment.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/EditLoginFragment.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/interactor/AddLoginInteractor.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/interactor/EditLoginInteractor.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/logins/AddLoginInteractorTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/logins/EditLoginInteractorTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/logins/LoginDetailViewTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/logins/LoginsFragmentStoreTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/logins/SavedLoginsStorageControllerTest.kt