Fix null pointer exception on password when migrating to a keykard by disabling the back button in process. (#13977)
This commit is contained in:
parent
468d827aa2
commit
36c4052039
|
@ -279,6 +279,11 @@
|
||||||
[{:keys [db]} k v]
|
[{:keys [db]} k v]
|
||||||
{:db (assoc db k v)})
|
{:db (assoc db k v)})
|
||||||
|
|
||||||
|
(fx/defn set-view-id
|
||||||
|
{:events [:set-view-id]}
|
||||||
|
[{:keys [db]} view-id]
|
||||||
|
{:db (assoc db :view-id view-id)})
|
||||||
|
|
||||||
;;TODO :replace by named events
|
;;TODO :replace by named events
|
||||||
(fx/defn set-once-event
|
(fx/defn set-once-event
|
||||||
{:events [:set-once]}
|
{:events [:set-once]}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
[status-im.utils.utils :as utils]
|
[status-im.utils.utils :as utils]
|
||||||
[status-im.i18n.i18n :as i18n]
|
[status-im.i18n.i18n :as i18n]
|
||||||
[status-im.ethereum.mnemonic :as mnemonic]
|
[status-im.ethereum.mnemonic :as mnemonic]
|
||||||
|
[status-im.keycard.common :as common]
|
||||||
[status-im.multiaccounts.recover.core :as multiaccounts.recover]
|
[status-im.multiaccounts.recover.core :as multiaccounts.recover]
|
||||||
[status-im.navigation :as navigation]
|
[status-im.navigation :as navigation]
|
||||||
[status-im.signing.core :as signing.core]
|
[status-im.signing.core :as signing.core]
|
||||||
|
@ -64,4 +65,5 @@
|
||||||
(assoc-in [:keycard :flow] :recovery)
|
(assoc-in [:keycard :flow] :recovery)
|
||||||
(update :multiaccounts/key-storage dissoc :seed-phrase))
|
(update :multiaccounts/key-storage dissoc :seed-phrase))
|
||||||
:dismiss-keyboard nil}
|
:dismiss-keyboard nil}
|
||||||
|
(common/listen-to-hardware-back-button)
|
||||||
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))
|
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))
|
||||||
|
|
|
@ -592,19 +592,6 @@
|
||||||
[{:keys [db]} listeners]
|
[{:keys [db]} listeners]
|
||||||
{:db (update-in db [:keycard :listeners] merge listeners)})
|
{:db (update-in db [:keycard :listeners] merge listeners)})
|
||||||
|
|
||||||
(defn onboarding-intro-back-handler
|
|
||||||
"The back button handler is used to manage device back press.
|
|
||||||
|
|
||||||
If the handler returns false, the back button functions as usual (ie. dispatchs GO_BACK event).
|
|
||||||
If it returns true, the back button becomes inactive.
|
|
||||||
|
|
||||||
We want to deactivate the back button when the user comes from key-storage and migration flow."
|
|
||||||
[]
|
|
||||||
(-> @re-frame.db/app-db
|
|
||||||
:keycard
|
|
||||||
:from-key-storage-and-migration?
|
|
||||||
boolean))
|
|
||||||
|
|
||||||
(fx/defn ui-recovery-phrase-cancel-pressed
|
(fx/defn ui-recovery-phrase-cancel-pressed
|
||||||
{:events [:keycard.ui/recovery-phrase-cancel-pressed]}
|
{:events [:keycard.ui/recovery-phrase-cancel-pressed]}
|
||||||
[{:keys [db]}]
|
[{:keys [db]}]
|
||||||
|
|
|
@ -175,7 +175,9 @@
|
||||||
{:keycard/check-nfc-enabled nil}
|
{:keycard/check-nfc-enabled nil}
|
||||||
(if (= flow :import)
|
(if (= flow :import)
|
||||||
(navigation/navigate-to-cofx :keycard-recovery-intro nil)
|
(navigation/navigate-to-cofx :keycard-recovery-intro nil)
|
||||||
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))))
|
(do
|
||||||
|
(common/listen-to-hardware-back-button)
|
||||||
|
(navigation/navigate-to-cofx :keycard-onboarding-intro nil))))))
|
||||||
|
|
||||||
(fx/defn start-onboarding-flow
|
(fx/defn start-onboarding-flow
|
||||||
{:events [:keycard/start-onboarding-flow]}
|
{:events [:keycard/start-onboarding-flow]}
|
||||||
|
@ -183,6 +185,7 @@
|
||||||
(fx/merge cofx
|
(fx/merge cofx
|
||||||
{:db (assoc-in db [:keycard :flow] :create)
|
{:db (assoc-in db [:keycard :flow] :create)
|
||||||
:keycard/check-nfc-enabled nil}
|
:keycard/check-nfc-enabled nil}
|
||||||
|
(common/listen-to-hardware-back-button)
|
||||||
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))
|
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))
|
||||||
|
|
||||||
(fx/defn open-nfc-settings-pressed
|
(fx/defn open-nfc-settings-pressed
|
||||||
|
|
|
@ -86,6 +86,7 @@
|
||||||
(fx/merge cofx
|
(fx/merge cofx
|
||||||
{:db (assoc-in db [:keycard :flow] :recovery)
|
{:db (assoc-in db [:keycard :flow] :recovery)
|
||||||
:keycard/check-nfc-enabled nil}
|
:keycard/check-nfc-enabled nil}
|
||||||
|
(common/listen-to-hardware-back-button)
|
||||||
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))
|
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))
|
||||||
|
|
||||||
(fx/defn cancel-pressed
|
(fx/defn cancel-pressed
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
(:require [clojure.string :as string]
|
(:require [clojure.string :as string]
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.ethereum.mnemonic :as mnemonic]
|
[status-im.ethereum.mnemonic :as mnemonic]
|
||||||
|
[status-im.keycard.common :as common]
|
||||||
[status-im.multiaccounts.core :as multiaccounts]
|
[status-im.multiaccounts.core :as multiaccounts]
|
||||||
[status-im.multiaccounts.recover.core :as multiaccounts.recover]
|
[status-im.multiaccounts.recover.core :as multiaccounts.recover]
|
||||||
[status-im.multiaccounts.model :as multiaccounts.model]
|
[status-im.multiaccounts.model :as multiaccounts.model]
|
||||||
|
@ -244,6 +245,7 @@ We don't need to take the exact steps, just set the required state and redirect
|
||||||
(assoc-in [:keycard :converting-account?] (not (get-in db [:multiaccounts/key-storage :reset-db-checked?])))
|
(assoc-in [:keycard :converting-account?] (not (get-in db [:multiaccounts/key-storage :reset-db-checked?])))
|
||||||
(dissoc :multiaccounts/key-storage))}
|
(dissoc :multiaccounts/key-storage))}
|
||||||
(popover/hide-popover)
|
(popover/hide-popover)
|
||||||
|
(common/listen-to-hardware-back-button)
|
||||||
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))
|
(navigation/navigate-to-cofx :keycard-onboarding-intro nil)))
|
||||||
|
|
||||||
(fx/defn handle-delete-multiaccount-error
|
(fx/defn handle-delete-multiaccount-error
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
(defn set-view-id [view-id]
|
(defn set-view-id [view-id]
|
||||||
(log/debug "set-view-id" view-id)
|
(log/debug "set-view-id" view-id)
|
||||||
(when-let [{:keys [on-focus]} (get views/screens view-id)]
|
(when-let [{:keys [on-focus]} (get views/screens view-id)]
|
||||||
(re-frame/dispatch [:set :view-id view-id])
|
(re-frame/dispatch [:set-view-id view-id])
|
||||||
(re-frame/dispatch [:screens/on-will-focus view-id])
|
(re-frame/dispatch [:screens/on-will-focus view-id])
|
||||||
(when on-focus
|
(when on-focus
|
||||||
(re-frame/dispatch on-focus))))
|
(re-frame/dispatch on-focus))))
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
[quo.previews.main :as quo.preview]
|
[quo.previews.main :as quo.preview]
|
||||||
[status-im.add-new.core :as new-chat.events]
|
[status-im.add-new.core :as new-chat.events]
|
||||||
[status-im.i18n.i18n :as i18n]
|
[status-im.i18n.i18n :as i18n]
|
||||||
[status-im.keycard.core :as keycard.core]
|
|
||||||
[status-im.ui.components.icons.icons :as icons]
|
[status-im.ui.components.icons.icons :as icons]
|
||||||
[status-im.ui.screens.about-app.views :as about-app]
|
[status-im.ui.screens.about-app.views :as about-app]
|
||||||
[status-im.ui.screens.add-new.new-chat.views :as new-chat]
|
[status-im.ui.screens.add-new.new-chat.views :as new-chat]
|
||||||
|
@ -749,7 +748,10 @@
|
||||||
;KEYCARD
|
;KEYCARD
|
||||||
{:name :keycard-onboarding-intro
|
{:name :keycard-onboarding-intro
|
||||||
:insets {:bottom true}
|
:insets {:bottom true}
|
||||||
:back-handler keycard.core/onboarding-intro-back-handler
|
:options {:topBar {:visible false}
|
||||||
|
:popGesture false
|
||||||
|
:hardwareBackButton {:dismissModalOnPress false
|
||||||
|
:popStackOnPress false}}
|
||||||
:component keycard.onboarding/intro}
|
:component keycard.onboarding/intro}
|
||||||
{:name :keycard-onboarding-puk-code
|
{:name :keycard-onboarding-puk-code
|
||||||
:insets {:bottom true}
|
:insets {:bottom true}
|
||||||
|
|
Loading…
Reference in New Issue