To make it work `encryption-public-key` and `whisper-private-key` are
stored on the devices when a user chooses this option. The former key is
used for multiaccount's database encryption, the latter is needed for a
messaging. In case if a user wants to sign a transaction the card is
still needed, we don't store wallet's keys on the device.
Other things were fixed/added:
- A user can enable biometric auth for a regular account when chooses
to save the password on the device (if biometric auth is available).
This is done for feature parity between keycard and "on device"
accounts.
- The option to create/restore an account on a keycard is not shown on
the devices which do not support NFC. Currently, the app just crashes
if the user continues a flow which is not supported by the device.
- if not mailserver was actively selected by user,
use rpc call to get latency for known mailservers
and use the best one
- this happens when `set-current-mailserver` is called which happens
in `change-mailserver` when user unpins his preferred mailserver and when
there's been too many failed attemps to fetch messages or to connect to
then current mailserverm as well as when user logs in.
Signed-off-by: yenda <eric@status.im>
Currently we have two ways to restore a multiaccount:
- by entering a mnemonic phrase
- by pairing a keycard with an existing multiaccount
In both cases, when we detect that a user tries to recover an existing
multiaccount we interrupt recovering and propose them to unlock that
multiaccount instead.
Also:
- upgrade Go: 1.12 > 1.13
- upgrade Android SDK: 28.0.3 > 29.0.2
- nix: stop using system Fastlane for iOS builds
- nix: include CocoaPods in shell for iOS
- nix: concatenate shellHooks correctly
- fix gomobile status-go build by setting GO111MODULE=off
- fix gradle accepting empty STATUS_GO_SRC_OVERRIDE value
- don't use a pure shell for uploadToSauceLabs()
Signed-off-by: Jakub Sokołowski <jakub@status.im>
when checking the checkbox, the entire list was being re-rendered
we now only re-render if the `checked?` value has changed
Signed-off-by: yenda <eric@status.im>
Currently there are two ways to initiate logging in with keycard:
- enter PIN code and after that connect card to the phone
- connect card to the phone and enter PIN after that
Before this commit in both cases when connection to the keyacrd was lost
and then restored, logging in didn't resume. In result a user saw a
pop-up with endless spinner.
The reason of this bug was that `:on-card-connected` and `:on-card-read`
actions were not restored in app-db after losing connection to the card.
This commit introduces helper functions for both `:on-card-connected` and
`:on-card-read` which allow to reset these values and stash them until
particular flow of calls to keycard will be finished. In case if
connection was lost before the flow is finished the valueas are restored
so that it can be succesfully resumed on th next connection.
Also a banch of log entries were added to simplify debugging of
interactions with keycard and native module.
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>