iceraven
fenix/125.3.0
fenix/125.0
fenix/124.0
fenix/124.1.0
fenix/124.2.0
fenix/123.1.0
fenix/123.0
fenix/122.1.0
fenix/122.0
fenix/121.1.0
fenix/121.0
fenix/120.0
fenix/120.1.0
fenix/119.0.2
fenix/119.1.0
fenix/119.1.1
fenix/119.0
fenix/118.2.0
fenix/118.1.1
fenix/118.1.0
fenix/118.0
fenix/117.1.0
fenix/117.0.1
fenix/117.0
fenix/116.3.0
fenix/116.2.0
fenix/116.0
fenix/115.2.0
fenix/114.1.0
fenix/114.0
fenix/113.1.0
fenix/113.0
fenix/112.2.0
fenix/112.1.0
fenix/112.0
fork
upstream-sync
fork-history
drag-tabs-2
drag-tabs
fix-addon-search
beta-sync
describe-install
hide-myths
issues/166-allow-fallback-location
issues/115-die-for-your-ram
issues/131-accept-version-name
issues/111-change-appid
issues/125-camera-permissions-stuck-off
issues/111-temp-icon
issues/111-fix-weasels
issues/111-rebrand-strings
issues/82-fix-tests
issues/74-fix-whats-new
master
patch-1
releases/v80.0.0
longTapDelay
releases/v79.0.0
releases/v79.1.0
fennec/production
fennec/beta
innovation-week
fennec/nightly
staging
nightly-build-test
0.0.1-alpha
0.1.0-beta.0
fennec/nightly/1
fennec/nightly/2
fennec/nightly/3
fennec/nightly/4
fennec/nightly/5
fennec/nightly/6
fennec/nightly/7
fennec/nightly/8
fennec/nightly/9
fork-0
fork-1
fork-10
fork-2
fork-3
fork-4
fork-5
fork-6
fork-7
fork-8
fork-9
iceraven-1.0.0
iceraven-1.1.0
iceraven-1.10.0
iceraven-1.11.0
iceraven-1.11.1
iceraven-1.12.0
iceraven-1.13.0
iceraven-1.14.0
iceraven-1.15.0
iceraven-1.16.0
iceraven-1.16.1
iceraven-1.17.0
iceraven-1.18.0
iceraven-1.18.1
iceraven-1.18.2
iceraven-1.18.3
iceraven-1.18.4
iceraven-1.19.0
iceraven-1.2.0
iceraven-1.2.1
iceraven-1.20.0
iceraven-1.21.0
iceraven-1.21.1
iceraven-1.21.2
iceraven-1.3.0
iceraven-1.4.0
iceraven-1.5.0
iceraven-1.6.0
iceraven-1.7.0
iceraven-1.7.1
iceraven-1.8.0
iceraven-1.9.0
iceraven-2.0.0
iceraven-2.0.1
iceraven-2.0.2
iceraven-2.0.3
iceraven-2.1.0
iceraven-2.10.0
iceraven-2.10.1
iceraven-2.10.2
iceraven-2.10.3
iceraven-2.10.4
iceraven-2.10.5
iceraven-2.10.6
iceraven-2.11.0
iceraven-2.11.1
iceraven-2.12.0
iceraven-2.12.1
iceraven-2.13.0
iceraven-2.13.1
iceraven-2.13.2
iceraven-2.13.3
iceraven-2.13.4
iceraven-2.14.0
iceraven-2.14.1
iceraven-2.14.2
iceraven-2.15.0
iceraven-2.15.1
iceraven-2.15.2
iceraven-2.16.0
iceraven-2.16.1
iceraven-2.17.0
iceraven-2.17.1
iceraven-2.17.2
iceraven-2.18.0
iceraven-2.18.1
iceraven-2.18.2
iceraven-2.18.3
iceraven-2.18.4
iceraven-2.19.0
iceraven-2.19.1
iceraven-2.2.0
iceraven-2.2.1
iceraven-2.20.0
iceraven-2.3.0
iceraven-2.4.0
iceraven-2.4.1
iceraven-2.5.0
iceraven-2.5.1
iceraven-2.6.1
iceraven-2.7.0
iceraven-2.8.0
iceraven-2.8.1
iceraven-2.8.2
iceraven-2.8.3
iceraven-2.8.4
iceraven-2.8.5
iceraven-2.9.0
iceraven-2.9.1
iceraven-2.9.2
v0.1
v0.3.0-rc.0
v0.3.0-rc.1
v1.0.0
v1.0.0-rc.0
v1.0.0-rc.1
v1.0.0-rc.2
v1.0.1
v1.0.1-rc.1
v1.1.0
v1.1.0-rc.1
v1.1.0-rc.2
v1.2.0
v1.2.0-rc.1
v1.2.0-rc.2
v1.3.0
v1.3.0-rc.1
v1.3.0-rc.2
v1.3.0-rc.3
v1.3.1
v1.4.0
v1.4.0-rc.1
v1.4.1
v100.0.0-beta.1
v100.0.0-beta.2
v100.0.0-beta.3
v100.0.0-beta.4
v100.0.0-beta.5
v100.0.0-beta.6
v100.0.0-beta.7
v100.1.0
v100.1.1
v100.1.2
v100.1.3
v100.2.0
v100.3.0
v101.0.0-beta.1
v101.0.0-beta.2
v101.0.0-beta.3
v101.0.0-beta.4
v101.0.0-beta.5
v101.0.0-beta.6
v101.1.0
v101.1.1
v101.2.0
v102.0.0-beta.1
v102.0.0-beta.2
v102.0.0-beta.3
v102.0.0-beta.4
v102.0.0-beta.5
v102.1.0
v102.1.1
v102.2.0
v102.2.1
v103.0.0-beta.1
v103.0.0-beta.2
v103.0.0-beta.3
v103.0.0-beta.4
v103.0.0-beta.5
v103.1.0
v103.2.0
v104.0b1
v104.0b2
v104.0b3
v104.0b4
v104.0b5
v104.0b6
v104.0b7
v104.1.0
v104.2.0
v105.0b1
v105.0b2
v105.0b3
v105.0b4
v105.0b5
v105.0b6
v105.1.0
v105.2.0
v106.0b1
v106.0b2
v106.0b3
v106.0b4
v106.0b5
v106.1.0
v107.0b1
v107.0b2
v107.0b3
v107.0b4
v107.0b5
v107.0b6
v107.1.0
v107.2.0
v108.0b1
v108.0b2
v108.0b3
v108.0b4
v108.0b5
v108.0b6
v108.1.0
v108.1.1
v108.2.0
v109.0b1
v109.0b2
v109.0b3
v109.0b4
v109.0b5
v109.0b6
v109.1.1
v109.2.0
v110.0.1
v110.0b1
v110.0b2
v110.0b3
v110.0b4
v110.0b5
v110.0b6
v2.0.0
v2.0.0-rc.2
v2.0.0-rc.3
v2.1.0
v2.1.0-rc.1
v2.1.0-rc.2
v2.1.0-rc.3
v2.1.0-rc.4
v2.2.0
v2.2.0-rc.1
v2.2.0-rc.2
v2.3.0
v2.3.0-rc.1
v2.3.0-rc.2
v3.0.0
v3.0.0-beta.1
v3.0.0-beta.2
v3.0.0-beta.3
v3.0.1
v3.0.2
v3.1.0
v3.1.0-beta.1
v3.1.0-beta.2
v3.1.0-beta.3
v3.1.0-beta.4
v3.1.0-rc.1
v3.2.0
v3.2.0-beta.1
v3.2.0-beta.2
v3.2.0-beta.3
v3.2.1
v4.0.0
v4.0.0-beta.1
v4.0.0-beta.2
v4.0.0-beta.3
v4.0.0-beta.4
v4.0.0-beta.5
v4.1.0
v4.1.0-beta.1
v4.1.0-beta.2
v4.2.0
v4.2.0-beta.1
v4.2.0-beta.2
v4.2.0-beta.3
v4.2.1
v4.2.1-beta.1
v4.3.0
v4.3.0-beta.1
v4.3.0-beta.2
v5.0.0
v5.0.0-beta.1
v5.0.0-beta.2
v5.1.0
v5.1.0-beta.1
v5.1.0-beta.2
v5.1.0-beta.3
v5.1.1
v5.2.0
v5.2.0-beta.1
v5.2.0-beta.2
v74.0.0-beta.1
v74.0.0-beta.2
v74.0.0-beta.3
v75.0.0-beta.1
v75.0.0-beta.2
v75.0.0-beta.3
v75.0.0-beta.4
v75.0.0-beta.5
v75.0.0-beta.6
v76.0.0-beta.1
v76.0.0-beta.2
v77.0.0-beta.1
v77.0.0-beta.2
v78.0.0-beta.1
v78.0.1-beta.1
v79.0.0
v79.0.0-beta.1
v79.0.0-beta.2
v79.0.0-beta.3
v79.0.0-beta.4
v79.0.0-beta.5
v79.0.0-beta.6
v79.0.0-beta.7
v79.0.0-beta.8
v79.0.0-beta.9
v79.0.1
v79.0.2
v79.0.3
v79.0.4
v79.0.5
v79.1.0-beta.1
v80-alpha
v80.0.0-beta.1
v80.0.0-beta.2
v80.0.0-beta.3
v80.0.0-beta.4
v80.0.0-beta.5
v80.0.0-beta.6
v80.0.0-beta.7
v80.0.1
v80.0.1-beta.1
v80.0.1-beta.2
v80.1.0
v80.1.1
v80.1.2
v80.1.3
v81.1.0
v81.1.0-beta.1
v81.1.0-beta.2
v81.1.0-rc.1
v81.1.1
v81.1.1-beta.3
v81.1.1-beta.4
v81.1.1-beta.5
v81.1.2
v81.1.3
v81.1.4
v81.1.5
v82.0.0-beta.1
v82.0.0-beta.2
v82.0.0-beta.3
v82.0.0-beta.4
v82.0.0-beta.5
v82.0.0-beta.6
v82.1.0
v82.1.0-rc.1
v82.1.0-rc.2
v82.1.1
v82.1.2
v82.1.3
v83.0.0-beta.1
v83.0.0-beta.2
v83.0.0-beta.3
v83.0.0-beta.4
v83.1.0
v83.1.0-rc.1
v83.1.0-rc.2
v84.0.0-beta.1
v84.0.0-beta.2
v84.0.0-beta.3
v84.0.0-beta.4
v84.1.0
v84.1.0-rc.1
v84.1.1
v84.1.2
v84.1.3
v84.1.4
v85.0.0-beta.1
v85.0.0-beta.2
v85.0.0-beta.3
v85.0.0-beta.4
v85.0.0-beta.5
v85.0.0-beta.6
v85.0.0-beta.7
v85.0.0-beta.8
v85.0.0-beta.9
v85.1.0
v85.1.0-rc.1
v85.1.1
v85.1.2
v85.1.3
v86.0.0-beta.1
v86.0.0-beta.2
v86.0.0-beta.3
v86.0.0-beta.4
v86.0.0-beta.5
v86.1.0
v86.1.0-rc.1
v86.1.1
v87.0.0-beta.1
v87.0.0-beta.2
v87.0.0-beta.3
v87.0.0-beta.4
v87.0.0-beta.5
v87.0.0-beta.6
v87.0.0-rc.1
v88.0.0-beta.1
v88.0.0-beta.2
v88.0.0-beta.3
v88.0.0-beta.4
v88.0.0-beta.5
v88.0.0-beta.6
v88.1.0
v88.1.1
v88.1.2
v88.1.3
v88.1.4
v89.0.0-beta.1
v89.0.0-beta.10
v89.0.0-beta.2
v89.0.0-beta.3
v89.0.0-beta.4
v89.0.0-beta.5
v89.0.0-beta.6
v89.0.0-beta.7
v89.0.0-beta.8
v89.0.0-beta.9
v89.1.0
v89.1.1
v90.0.0-beta.1
v90.0.0-beta.2
v90.0.0-beta.3
v90.0.0-beta.4
v90.0.0-beta.5
v90.0.0-beta.6
v90.1.0
v90.1.1
v90.1.2
v90.1.3
v91.0.0-beta.1
v91.0.0-beta.2
v91.0.0-beta.3
v91.0.0-beta.4
v91.0.0-beta.5
v91.0.0-beta.6
v91.1.0
v91.2.0
v91.3.0
v91.3.1
v91.4.0
v92.0.0-beta.2
v92.0.0-beta.3
v92.0.0-beta.4
v92.0.0-beta.5
v92.0.0-beta.6
v92.0.0-beta.7
v92.0.0-beta.8
v92.1.0
v92.1.1
v93.0.0-beta.1
v93.0.0-beta.2
v93.0.0-beta.3
v93.0.0-beta.4
v93.1.0
v93.2.0
v94.0.0-beta.1
v94.0.0-beta.2
v94.0.0-beta.3
v94.0.0-beta.4
v94.0.0-beta.5
v94.1.0
v94.1.1
v94.1.2
v95.0.0-beta.1
v95.0.0-beta.2
v95.0.0-beta.3
v95.0.0-beta.4
v95.0.0-beta.5
v95.0.0-beta.6
v95.1.0
v95.2.0
v96.0.0-beta.1
v96.0.0-beta.2
v96.0.0-beta.3
v96.0.0-beta.4
v96.0.0-beta.5
v96.1.0
v96.1.1
v96.2.0
v96.3.0
v96.3.1
v97.0.0-beta.1
v97.0.0-beta.2
v97.0.0-beta.3
v97.0.0-beta.4
v97.0.0-beta.5
v97.0.0-beta.6
v97.1.0
v97.1.1
v97.2.0
v97.3.0
v98.0.0-beta.1
v98.0.0-beta.2
v98.0.0-beta.3
v98.0.0-beta.4
v98.1.0
v98.1.1
v98.2.0
v98.3.0
v99.0.0-beta.1
v99.0.0-beta.2
v99.0.0-beta.3
v99.0.0-beta.4
v99.0.0-beta.5
v99.1.0
v99.1.1
v99.2.0
${ noResults }
10 Commits (1f633edd7d4436f20ead4ba657b1284b94cca0c6)
Author | SHA1 | Message | Date |
---|---|---|---|
Grisha Kruglov | 0b5b1a738a |
Do less work while navigating Logins views
Fetching a set of logins from the store is quite expensive. This commit avoids doing that while navigating back and forth between the list and detail views: - retain processes logins state when navigating into detail view - use the `get` storage api to obtain specific login, instead of `list().filter {...}` - avoid re-sorting retained logins when navigating back into the list view |
3 years ago |
Ben Dean-Kawamura | 34ec442961 |
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 #24103 and #24104. I would love to address #24102, but I'm not sure what the correct behavior is there so I just kept that the same. |
3 years ago |
Mugurell | cb32b1437e |
For #17917 - Remove the `kotlin-android-extensions` plugin
This means no code will be generated by Kotlin Android Extensions for caching views and also for @Parcelize annotated classes. As recommended in the official documentation https://developer.android.com/topic/libraries/view-binding/migration#gradle we need to switch on using `kotlinx.parcelize.Parcelize` instead of `import kotlinx.android.parcel.Parcelize` For #17917 - Remove the `kotlin-android-extensions` plugin This means no code will be generated by Kotlin Android Extensions for caching views and also for @Parcelize annotated classes. As recommended in the official documentation https://developer.android.com/topic/libraries/view-binding/migration#gradle we need to switch on using `kotlinx.parcelize.Parcelize` instead of `import kotlinx.android.parcel.Parcelize` |
3 years ago |
Tiger Oakes | acbad66f45 | Add test for initial logins list state | 4 years ago |
Elise Richards |
023a4983fa
|
For #10173: login duplicates and save (#11208)
* Extract controller into it's own class. Implement find dupes and filter based on username. Create edit login controller. Add text watchers and check for duplicates. Edit controller test * Find duplicates and save to store * Retrieve duplicates from AC and check list on username text changed Move duplicates logic into the controller * Add glean pings for delete and edit. Move logic for login manipulation into the datastore. * Use correct threads in controller. Enable save button when applicable. Save enabled in datastore. Move login data to datastore Rebase with password error states Update metrics to be more specific for edit * Create logins controller for AC calls * Interactor and controller methods for edit login. Add edit view to separate out some layout manipulation. Inflate view in edit fragment. Double layout showing up. Edit view Controller tests Controller tests passing Interactor tests Lint and detekt cleanup * Remove datastore and use storage controller for all logins calls to password storage. Addressed comments Lint : Rebase - 1 |
4 years ago |
Mugurell |
e1fc0cc038
|
Ensure logins deletion (#12507)
* For #11227 - Cleanup saved logins list when one is selected Selecting a saved login will open a detail screen for it from where users can change details or even delete that particular login. After the change is made the user is brought back to the list of saved logins where for a brief moment (< 1s) until we get a new response from passwordsStorage.list() the user can see and even interact with the old list of items, which may still contain the just deleted one. To avoid users seeing obsolete logins or even interacting with them (selecting a previosuly deleted item will result in a crash) we will clean the list of logins just before the selected login is opened in the detailed view. When returning for a brief moment the users may see the "loading" UX until passwordsStorage.list() returns the up-to-date list of logins to display. * For #11227 - Refactor SavedLoginsView to be closer to MVI - Interactors should only get passed other Interactors or Controllers as dependencies to which they should delegate user actions. - Controllers should hold most of the business logic and get passed all final dependencies they need to do their job. |
4 years ago |
Tiger Oakes | 294f29768d | Test logins settings | 4 years ago |
Elise Richards |
137d66a511
|
For 10172: Set edit text listeners (#11196)
* Set edit text listeners * Set clearable icons and change with error states * Clear text buttons show and hide * Move error checks to afterTextChanged. Refactor. Remove unused color. |
4 years ago |
ValentinTimisica | 7974a5c77c | Fixes #10815: Sort login items on initial load | 4 years ago |
Elise Richards |
edc75c3ad0
|
Fixes #9504: Edit logins (#9693)
* Create editable view and fragment. Update login info page to display options menu with edit and delete. * Create feature flag for edit. Check flag in the login detail fragment and default to just delete. * Add three-dot kebab options menu in login detail fragment. Add title to the login item. * Nav to and from edit view on save and back pressed. * Save login through AC login manager. Clear text in editable field on button click. * Match colors, fonts, dimens to UX specs for edit logins. Enable password reveal/hide and clearing text fields. * Refactoring logins fragments. Using component Login object for consistency. Fetch login list when saved logins are opened. Fetch login details when detail view is opened. Revert "Fetch login list when saved logins are opened. Fetch login details when detail view is opened." This reverts commit 44fe17166c3332b330229258b2e8982832672e3b. * Using parcelable login and Login component class to pass ids and items between fragments * Retrieve login from storage when viewing login details. Rename login logic for consistency. Ktlint cleanup Fix nits and naming consistency. * UX consistency for login detail and edit login pages * Rebasing with logins sort - updating logins store. * Rebasing with logins sort - merging fragments and controllers. * Lint and removing unused files. * UX cleanup. * Update string description |
4 years ago |