From 14a533e11fbe3ad77c99c58818abf967531ab87d Mon Sep 17 00:00:00 2001 From: Kris Calabio Date: Mon, 18 Mar 2019 12:53:16 -0700 Subject: [PATCH] Scan url with QR scanner --- src/status_im/browser/core.cljs | 6 ++++++ src/status_im/events.cljs | 5 +++++ src/status_im/ui/components/list_selection.cljs | 3 ++- src/status_im/ui/screens/add_new/models.cljs | 11 +++++++---- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/status_im/browser/core.cljs b/src/status_im/browser/core.cljs index d0be5af51b06..7a881a3eadf8 100644 --- a/src/status_im/browser/core.cljs +++ b/src/status_im/browser/core.cljs @@ -199,6 +199,12 @@ (utils.universal-links/handle-url cofx link) {:browser/show-browser-selection link})) +(fx/defn browser-selection-cancel + [{:keys [db]}] + (let [view-id (:view-id db)] + (if (= view-id :qr-scanner) + {:db (assoc-in db [:navigation/screen-params view-id :barcode-read?] false)}))) + (fx/defn update-browser-on-nav-change [cofx url error?] (let [browser (get-current-browser (:db cofx)) diff --git a/src/status_im/events.cljs b/src/status_im/events.cljs index c7b2fcb76d00..3284de93e30d 100644 --- a/src/status_im/events.cljs +++ b/src/status_im/events.cljs @@ -1395,6 +1395,11 @@ (fn [cofx [_ link]] (browser/handle-message-link cofx link))) +(handlers/register-handler-fx + :browser.ui/browser-selection-cancel + (fn [cofx [_ _]] + (browser/browser-selection-cancel cofx))) + (handlers/register-handler-fx :browser.ui/remove-browser-pressed (fn [cofx [_ browser-id]] diff --git a/src/status_im/ui/components/list_selection.cljs b/src/status_im/ui/components/list_selection.cljs index 50dcd03075b0..469aaff1188b 100644 --- a/src/status_im/ui/components/list_selection.cljs +++ b/src/status_im/ui/components/list_selection.cljs @@ -39,7 +39,8 @@ :action #(re-frame/dispatch [:browser.ui/open-in-status-option-selected link])} {:label (i18n/label (platform-web-browser)) :action #(.openURL react/linking (http/normalize-url link))}] - :cancel-text (i18n/label :t/browsing-cancel)})) + :cancel-text (i18n/label :t/browsing-cancel) + :on-cancel #(re-frame/dispatch [:browser.ui/browser-selection-cancel])})) (defn browse-in-web-browser [link] (show {:title (i18n/label :t/browsing-title) diff --git a/src/status_im/ui/screens/add_new/models.cljs b/src/status_im/ui/screens/add_new/models.cljs index 86c35d1973dd..6c3294a29f6c 100644 --- a/src/status_im/ui/screens/add_new/models.cljs +++ b/src/status_im/ui/screens/add_new/models.cljs @@ -4,13 +4,16 @@ [status-im.i18n :as i18n] [status-im.ui.screens.navigation :as navigation] [status-im.utils.universal-links.core :as universal-links] - [status-im.utils.fx :as fx])) + [status-im.utils.fx :as fx] + [status-im.browser.core :as browser])) (fx/defn handle-qr-code [cofx data] (if (spec/valid? :global/public-key data) (universal-links/handle-view-profile cofx data) (or (universal-links/handle-url cofx data) - {:utils/show-popup {:title (i18n/label :t/unable-to-read-this-code) - :content (i18n/label :t/use-valid-qr-code {:data data}) - :on-dismiss #(re-frame/dispatch [:qr-scanner.ui/qr-code-error-dismissed])}}))) + (if (clojure.string/includes? data ".") + (browser/handle-message-link cofx data) + {:utils/show-popup {:title (i18n/label :t/unable-to-read-this-code) + :content (i18n/label :t/use-valid-qr-code {:data data}) + :on-dismiss #(re-frame/dispatch [:qr-scanner.ui/qr-code-error-dismissed])}}))))