[ISSUE #3538] Added sharing data settings

Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
This commit is contained in:
Julien Eluard 2018-03-28 10:25:35 +02:00 committed by Andrey Shovkoplyas
parent f7120184a4
commit 5529772858
No known key found for this signature in database
GPG Key ID: EAAB7C8622D860A4
7 changed files with 42 additions and 23 deletions

View File

@ -25,6 +25,8 @@
:add "Add" :add "Add"
:yes "Yes" :yes "Yes"
:no "No" :no "No"
:on "On"
:off "Off"
:camera-access-error "To grant the required camera permission, please go to your system settings and make sure that Status > Camera is selected." :camera-access-error "To grant the required camera permission, please go to your system settings and make sure that Status > Camera is selected."
:photos-access-error "To grant the required photos permission, please go to your system settings and make sure that Status > Photos is selected." :photos-access-error "To grant the required photos permission, please go to your system settings and make sure that Status > Photos is selected."
@ -47,6 +49,7 @@
:sign-you-in "Signing you in…" :sign-you-in "Signing you in…"
:help-improve "Help improve Status\nby sharing usage patterns" :help-improve "Help improve Status\nby sharing usage patterns"
:help-improve? "Help improve Status?"
:help-improve-description "We collect anonymous data to help improve Status." :help-improve-description "We collect anonymous data to help improve Status."
:share-usage-data "Share usage" :share-usage-data "Share usage"
:dont-want-to-share "No, I don't want to share" :dont-want-to-share "No, I don't want to share"

View File

@ -205,7 +205,7 @@
:account-set-name :account-set-name
(fn [{{:accounts/keys [create] :as db} :db} _] (fn [{{:accounts/keys [create] :as db} :db} _]
(-> {:db (assoc-in db [:accounts/create :show-welcome?] true) (-> {:db (assoc-in db [:accounts/create :show-welcome?] true)
:dispatch [:navigate-to-clean :usage-data]} :dispatch [:navigate-to-clean :usage-data [:account-finalized]]}
(account-update {:name (:name create)})))) (account-update {:name (:name create)}))))
(handlers/register-handler-fx (handlers/register-handler-fx

View File

@ -106,13 +106,16 @@
(spec/def :navigation.screen-params.dapp-description/dapp :new/open-dapp) (spec/def :navigation.screen-params.dapp-description/dapp :new/open-dapp)
(spec/def :navigation.screen-params/dapp-description map?) (spec/def :navigation.screen-params/dapp-description map?)
(spec/def :navigation.screen-params/usage-data vector?)
(spec/def :navigation/screen-params (spec/nilable (allowed-keys :opt-un [:navigation.screen-params/network-details (spec/def :navigation/screen-params (spec/nilable (allowed-keys :opt-un [:navigation.screen-params/network-details
:navigation.screen-params/browser :navigation.screen-params/browser
:navigation.screen-params/profile-qr-viewer :navigation.screen-params/profile-qr-viewer
:navigation.screen-params/qr-scanner :navigation.screen-params/qr-scanner
:navigation.screen-params/group-contacts :navigation.screen-params/group-contacts
:navigation.screen-params/edit-contact-group :navigation.screen-params/edit-contact-group
:navigation.screen-params/dapp-description]))) :navigation.screen-params/dapp-description
:navigation.screen-params/usage-data])))
(spec/def :desktop/desktop (spec/nilable any?)) (spec/def :desktop/desktop (spec/nilable any?))

View File

@ -23,10 +23,14 @@
;; public fns ;; public fns
(defn navigate-to-clean [db view-id] (defn navigate-to-clean
(-> db ([db view-id] (navigate-to-clean db view-id nil))
(assoc :navigation-stack (list)) ([db view-id screen-params]
(push-view view-id))) ;; TODO (jeluard) Unify all :navigate-to flavours. Maybe accept a map of parameters?
(let [db (cond-> db
(seq screen-params)
(assoc-in [:navigation/screen-params view-id] screen-params))]
(push-view db view-id))))
(defmulti preload-data! (defmulti preload-data!
(fn [db [_ view-id]] (or view-id (:view-id db)))) (fn [db [_ view-id]] (or view-id (:view-id db))))
@ -96,8 +100,8 @@
(register-handler-db (register-handler-db
:navigate-to-clean :navigate-to-clean
(fn [db [_ view-id]] (fn [db [_ & params]]
(navigate-to-clean db view-id))) (apply navigate-to db params)))
(register-handler-db (register-handler-db
:navigate-to-tab :navigate-to-tab

View File

@ -127,7 +127,8 @@
:action-fn #(handle-logout sharing-usage-data?)}]])) :action-fn #(handle-logout sharing-usage-data?)}]]))
(defview advanced [{:keys [network networks dev-mode?]}] (defview advanced [{:keys [network networks dev-mode?]}]
(letsubs [advanced? [:get :my-profile/advanced?]] (letsubs [advanced? [:get :my-profile/advanced?]
{:keys [sharing-usage-data?]} [:get-current-account]]
[react/view [react/view
[react/touchable-highlight {:on-press #(re-frame/dispatch [:set :my-profile/advanced? (not advanced?)]) [react/touchable-highlight {:on-press #(re-frame/dispatch [:set :my-profile/advanced? (not advanced?)])
:style styles/advanced-button} :style styles/advanced-button}
@ -155,7 +156,13 @@
[profile.components/settings-switch-item [profile.components/settings-switch-item
{:label-kw :t/dev-mode {:label-kw :t/dev-mode
:value dev-mode? :value dev-mode?
:action-fn #(re-frame/dispatch [:switch-dev-mode %])}]])])) :action-fn #(re-frame/dispatch [:switch-dev-mode %])}]
[profile.components/settings-item-separator]
[profile.components/settings-item
{:label-kw :t/help-improve?
:value (i18n/label (if sharing-usage-data? :on :off))
:action-fn #(re-frame/dispatch [:navigate-to :usage-data [:navigate-back]])
:accessibility-label :help-improve}]])]))
(defview my-profile [] (defview my-profile []
(letsubs [{:keys [public-key sharing-usage-data?] :as current-account} [:get-current-account] (letsubs [{:keys [public-key sharing-usage-data?] :as current-account} [:get-current-account]

View File

@ -4,9 +4,10 @@
(handlers/register-handler-fx (handlers/register-handler-fx
:help-improve-handler :help-improve-handler
(fn [{db :db} [_ yes? address]] (fn [{db :db} [_ yes? address next]]
(merge (when yes? (merge (accounts/account-update {:db db} {:sharing-usage-data? yes?})
(accounts/account-update {:db db} {:sharing-usage-data? true})) {:dispatch-n [(if yes?
{:dispatch-n [(when yes? [:register-mixpanel-tracking address]) [:register-mixpanel-tracking address]
[:account-finalized]]}))) [:unregister-mixpanel-tracking])
next]})))

View File

@ -1,15 +1,16 @@
(ns status-im.ui.screens.usage-data.views (ns status-im.ui.screens.usage-data.views
(:require-macros [status-im.utils.views :as views]) (:require-macros [status-im.utils.views :as views])
(:require [status-im.ui.components.react :as react] (:require [re-frame.core :as re-frame]
[re-frame.core :as re-frame] [status-im.i18n :as i18n]
[status-im.react-native.resources :as resources] [status-im.react-native.resources :as resources]
[status-im.ui.components.common.common :as components.common] [status-im.ui.components.common.common :as components.common]
[status-im.ui.screens.usage-data.styles :as styles] [status-im.ui.components.react :as react]
[status-im.i18n :as i18n] [status-im.ui.components.status-bar.view :as status-bar]
[status-im.ui.components.status-bar.view :as status-bar])) [status-im.ui.screens.usage-data.styles :as styles]))
(views/defview usage-data [] (views/defview usage-data []
(views/letsubs [account [:get-current-account]] (views/letsubs [next [:get-screen-params]
account [:get-current-account]]
[react/view {:style styles/usage-data-view} [react/view {:style styles/usage-data-view}
[status-bar/status-bar {:flat? true}] [status-bar/status-bar {:flat? true}]
[react/view {:style styles/logo-container} [react/view {:style styles/logo-container}
@ -23,9 +24,9 @@
(i18n/label :t/help-improve-description)]] (i18n/label :t/help-improve-description)]]
[react/view styles/buttons-container [react/view styles/buttons-container
[components.common/button {:style {:flex-direction :row} [components.common/button {:style {:flex-direction :row}
:on-press #(re-frame/dispatch [:help-improve-handler true (:address account)]) :on-press #(re-frame/dispatch [:help-improve-handler true (:address account) next])
:label (i18n/label :t/share-usage-data)}] :label (i18n/label :t/share-usage-data)}]
[react/view styles/bottom-button-container [react/view styles/bottom-button-container
[components.common/button {:on-press #(re-frame/dispatch [:help-improve-handler false (:address account)]) [components.common/button {:on-press #(re-frame/dispatch [:help-improve-handler false (:address account) next])
:label (i18n/label :t/dont-want-to-share) :label (i18n/label :t/dont-want-to-share)
:background? false}]]]])) :background? false}]]]]))