cleaning 3

Signed-off-by: andrey <motor4ik@gmail.com>
This commit is contained in:
andrey 2021-02-12 15:58:43 +01:00
parent e493a2b79c
commit 9648f741b4
No known key found for this signature in database
GPG Key ID: 89B67245FD2F0272
314 changed files with 2186 additions and 5097 deletions

View File

@ -31,7 +31,7 @@ reagent.dom/dom-node
reagent.dom/force-update-all
status-im.multiaccounts.create.core/get-new-key-code
status-im.ethereum.decode/string
status-im.network.ui.views/mainnet?
status-im.ui.screens.network.views/mainnet?
status-im.data-store.chats/event->string
status-im.mailserver.constants/seven-days
status-im.mailserver.constants/connection-timeout
@ -65,7 +65,7 @@ mocks.js-dependencies/emoji-picker
mocks.js-dependencies/i18n
mocks.js-dependencies/qr-code
mocks.js-dependencies/svg
mocks.js-dependencies/vector-icons
mocks.js-dependencies/icons
mocks.js-dependencies/webview
mocks.js-dependencies/desktop-linking
mocks.js-dependencies/desktop-shortcuts

View File

@ -54,7 +54,6 @@ Core namespace must only contain functions that can be called outside of the mod
### db.cljs
- must contain specs for the app-db subpart the module modifies
- must contain getter and setter functions used by fx producing functions and subscriptions
- db logic called by other modules
@ -72,21 +71,8 @@ These guidelines make db.cljs namespaces the place to go when making changes to
### Events
- all events must be defined in the single `status-im.events` namespace which can be considered as an index of everything going on in the app
- events must always be declared with `register-handler-fx`, no `register-handler-db`
- events must never use the `trim-v` interceptor
- events must only contain a function call defined in a module
```clojure
(handlers/register-handler-fx
:notifications/handle-push-notification-open
(fn [cofx [_ event]]
(notifications/handle-push-notification-open event cofx)))
```
- events must use synthetic namespaces:
- `:module.ui/` for user triggered events
- `:module.callback/` for callback events, which are events bringing back the result of an fx to the event loop, the name of the event should end with `-success` or `-error` most of the time. Other possibilities can be `-granted`, `-denied` for instance.
- `:module/` for internal events, examples are time based events marked `-timed-out`, external changes marked `-changed` or reception of external events marked `-received`.
- all events must be defined in the `core.cljs` namespaces
- events must always be declared with `fx/defn` macro
## Testing flow
- All PRs automatically go to "REVIEW" column on [Pipeline for QA](https://github.com/status-im/status-react/projects/7) project on Github. This is our main board for QA / devs interaction

View File

@ -1,7 +0,0 @@
`cd fiddle`
`yarn install`
`clj prepare.clj`
`clj -A:dev`

View File

@ -1,17 +0,0 @@
{:deps {org.clojure/clojurescript {:mvn/version "1.10.520"}
com.bhauman/figwheel-main {:mvn/version "0.2.0"}
org.clojure/core.async {:mvn/version "0.4.474"}
reagent {:mvn/version "0.8.1" :exclusions [cljsjs/react cljsjs/react-dom]}
re-frame {:git/url "https://github.com/status-im/re-frame"
:sha "b0d3b0f016f217c6a397a54e5eba9486471fb172"
:deps/manifest :deps}
com.andrewmcveigh/cljs-time {:mvn/version "0.5.2"}
status-im/timbre {:mvn/version "4.10.0-2-status"}
com.taoensso/encore {:mvn/version "2.94.0"}
hickory {:mvn/version "0.7.1"}
cljs-bean {:mvn/version "1.3.0"}}
:paths ["src" "../src" "resources" "target" "../resources"]
:aliases {:dev {:extra-deps {re-frisk {:mvn/version "0.5.4.1"}}
:main-opts ["-m" "figwheel.main" "-b" "dev" "-r"]}}}

View File

@ -1,10 +0,0 @@
{:main fiddle.core
:output-to "resources/public/js/main.js"
:preloads [re-frisk.preload]
:infer-externs true
:npm-deps false
:foreign-libs [{:file "dist/index_bundle.js"
:provides ["react" "react-dom" "react-native-web"]
:global-exports {react React
react-dom ReactDOM
react-native-web ReactNativeWeb}}]}

File diff suppressed because one or more lines are too long

View File

@ -1,9 +0,0 @@
{
"dependencies": {
"react": "^16.9.0",
"react-dom": "^16.9.0",
"react-native-web": "^0.11.6",
"webpack": "^4.39.2",
"webpack-cli": "^3.3.6"
}
}

View File

@ -1,18 +0,0 @@
(ns prepare
(:require [clojure.string :as str]
[clojure.java.io :as io]))
;;TODO copy dirs to have images
;(io/copy (io/file "../resources/images") (io/file "./resources/public/images"))
(let [fls (file-seq (java.io.File. "../android/app/src/main/res/drawable-mdpi"))]
(spit "./resources/public/icons.edn"
(pr-str
(remove nil?
(map
(fn [fl]
(let [n (first (str/split (.getName fl) #".png"))]
(when (.isFile fl)
(io/copy (io/file (.getPath fl)) (io/file (str "./resources/public/" (str/replace n #"_" "-"))))
(str/replace n #"_" "-"))))
fls)))))

View File

@ -1,25 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta content="ie=edge" http-equiv="x-ua-compatible" />
<title>Fiddle</title>
<meta content="width=device-width, initial-scale=1" name="viewport" />
<style>
@import url('https://rsms.me/inter/inter.css');
html, body {
height: 100%;
margin: 0;
}
</style>
</head>
<body>
<div id="app" class="app"></div>
<script src="js/main.js" type="text/javascript"></script>
<script type="text/javascript">
fiddle.core.init();
</script>
</body>
</html>

View File

@ -1,17 +0,0 @@
(ns ^:figwheel-hooks fiddle.core
(:require [reagent.core :as reagent]
[re-frame.core :as re-frame]
[fiddle.views.main :as main]
fiddle.subs
fiddle.events))
(defn mount-root []
(reagent/render [main/main] (js/document.getElementById "app")))
(defn ^:export init []
(re-frame/dispatch-sync [:initialize-db])
(re-frame/dispatch [:load-icons])
(mount-root))
(defn ^:after-load on-reload []
(mount-root))

View File

@ -1,33 +0,0 @@
(ns fiddle.events
(:require [re-frame.core :as re-frame]
[cljs.reader :as reader]))
(re-frame/reg-event-fx
:initialize-db
(fn [_ _]
{:db {:view-id :colors}}))
(re-frame/reg-fx
:load-icons-fx
(fn []
(let [cl (js/XMLHttpRequest.)]
(.open cl "GET" "./icons.edn")
(set! (.-onreadystatechange cl) #(when (= (.-status cl) 200)
(re-frame/dispatch [:set :icons (reader/read-string (.-responseText cl))])))
(.send cl))))
(re-frame/reg-event-fx
:load-icons
(fn [_ _]
{:load-icons-fx nil}))
(re-frame/reg-event-fx
:set
(fn [{:keys [db]} [_ k v]]
{:db (assoc db k v)}))
(re-frame/reg-event-fx
:set-in
(fn [{:keys [db]} [_ path v]]
{:db (assoc-in db path v)}))

View File

@ -1,13 +0,0 @@
(ns fiddle.frame
(:require [status-im.ui.components.react :as react]
[re-frame.core :as re-frame]))
(def width 375)
(def height 568) ;667
(re-frame/reg-sub :dimensions/window-width (fn [_] width))
(re-frame/reg-sub :dimensions/window (fn [_] {:width width :height height}))
(defn frame [content]
[react/view {:style {:width width :height height :border-color :black :border-width 1}}
content])

View File

@ -1,16 +0,0 @@
(ns fiddle.snippets)
(defmacro code-snippet [code & [white?]]
(let [show? (gensym 'show)]
`[(fn []
(let [~show? (reagent/atom false)]
(fn []
[react/view
(when @~show?
[react/text {:style {:font-family "monospace" :background-color :black :color "#44d058"
:max-width 400 }}
(with-out-str (cljs.pprint/pprint '~code))])
[react/view {:align-items :flex-end :background-color (when-not ~white? colors/gray-lighter)}
[react/touchable-highlight {:on-press #(swap! ~show? not)}
[react/text {:style {:font-size 14 :color :blue :padding 3}} (if @~show? "Hide" "Code")]]]
~code])))]))

View File

@ -1,6 +0,0 @@
(ns fiddle.subs
(:require [re-frame.core :as re-frame]))
(re-frame/reg-sub :view-id (fn [db] (get db :view-id)))
(re-frame/reg-sub :icons (fn [db] (get db :icons)))

View File

@ -1,38 +0,0 @@
(ns fiddle.views.colors
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.colors :as colors]))
(defn color [name color color-name usage & [bg?]]
[react/view {:margin 10 :padding 10 :border-radius 8 :background-color (when bg? colors/blue)}
[react/text {:style {:typography :main-medium :color (when bg? colors/white)}} name]
[react/view {:margin-vertical 24 :width 156 :height 156 :border-radius 80 :background-color color
:border-width 1 :border-color colors/gray}]
[react/text {:style {:color (when bg? colors/white)}} color-name]
[react/text {:style {:color (when bg? colors/white)}} color]
[react/text {:style {:margin-top 6 :color (if bg? colors/white-transparent colors/gray) :font-size 12}} usage]])
(defn colors-arr [title colors]
[react/view
[react/text title]
[react/view {:flex-direction :row :flex-wrap :wrap :flex 1 :margin-vertical 24}
(for [color colors]
[react/view {:margin-left 10 :width 40 :height 40 :border-radius 20 :background-color color}])]])
(defn colors []
[react/scroll-view
[react/view {:flex-direction :row :flex-wrap :wrap :flex 1}
[color "Accent Blue" colors/blue "blue" "Links, buttons"]
[color "Light Blue" colors/blue-light "blue-light" "Button background"]
[color "White" colors/white "white" "Background, icons"]
[color "Dark Grey" colors/gray "gray" "Secondary text"]
[color "Light Grey" colors/gray-lighter "gray-lighter" "Background, inputs, dividers"]
[color "Black" colors/black "black" "Icons"]
[color "Red" colors/red "red" "Errors"]
[color "Green" colors/green "green" "Success"]
[color "40% of Dark Grey" colors/gray-transparent-40 "gray-transparent-40" "Chevrons in lists (>) "]
[color "10% of Black" colors/black-transparent "black-transparent" ""]
[color "70% of White" colors/white-transparent-70 "white-transparent-70" "Secondary text on blue background" true]
[color "40% of White" colors/white-transparent "white-transparent" "Chevrons in lists (>) on the\nblue background\nText in Wallet\n\n" true]
[color "10% of White" colors/white-transparent-10 "white-transparent-10" "Backgrounds behind icons" true]]
[colors-arr "Chat colors" colors/chat-colors]
[colors-arr "Account colors" colors/account-colors]])

View File

@ -1,16 +0,0 @@
(ns fiddle.views.icons
(:require-macros [status-im.utils.views :as views])
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.icons.vector-icons :as vector-icons]
[status-im.ui.components.colors :as colors]))
(views/defview icons []
(views/letsubs [icons [:icons]]
(if icons
[react/view {:flex-direction :row :flex-wrap :wrap :flex 1 :background-color colors/gray-transparent-40}
(for [icon icons]
[react/view {:padding 20}
[react/text {:srtle {:margin-bottom 5}} icon]
[vector-icons/icon icon]])]
[react/view
[react/text "To see all icons please run `clj prepare.clj` command in terminal"]])))

View File

@ -1,214 +0,0 @@
(ns fiddle.views.list-items
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.colors :as colors]
[status-im.ui.components.list-item.views :as list-item]
[fiddle.frame :as frame]
[status-im.ui.components.badge :as badge]
cljs.pprint
[reagent.core :as reagent]
[status-im.ui.components.button :as button])
(:require-macros [fiddle.snippets :as snippets]))
(defn item [name content]
[react/view
[react/text {:style {:color colors/gray :margin-bottom 10 :margin-top 40}} name]
[react/view {:background-color :white :width frame/width}
content]])
(defn list-header []
[react/view
{:background-color colors/gray-lighter
:flex 1
:padding 20
:flex-direction :row
:flex-wrap :wrap}
[react/view {:width 375}
[react/view {:background-color :white}
(snippets/code-snippet [list-item/list-item {:type :section-header :title "Header title"}])]]])
(defn list-items []
[react/view
{:background-color colors/gray-lighter
:flex 1
:padding 20
:flex-direction :row
:flex-wrap :wrap}
[react/view {:margin-right 10}
[item "Default with Image"
(snippets/code-snippet
[list-item/list-item
{:title "George"
:on-press #()
:icon [react/view
{:width 40
:height 40
:border-radius 20
:background-color colors/green}]}])]
[item "Default with Image, icon"
(snippets/code-snippet
[list-item/list-item
{:title "George"
:on-press #()
:icon [react/view
{:width 40
:height 40
:border-radius 20
:background-color colors/green}]
:accessories [:main-icons/more]}])]
[item "With radio button (TODO!)"
(snippets/code-snippet
[list-item/list-item
{:title "George"
:on-press #()
:icon [react/view
{:width 40
:height 40
:border-radius 20
:background-color colors/green}]}])]]
[react/view {:margin-right 10}
[item "Default wIth icon in circle"
(snippets/code-snippet
[list-item/list-item
{:title "Clear History"
:theme :action
:icon :main-icons/close
:on-press #()}])]
[item "Default wIth icon in circle, chevron"
(snippets/code-snippet
[list-item/list-item
{:title "Get a ENS username?"
:icon :main-icons/address
:on-press #()
:accessories [:chevron]}])]
[item "Default wIth icon in circle, chevron and accessory"
(snippets/code-snippet
[list-item/list-item
{:title "Contacts"
:icon :main-icons/in-contacts
:on-press #()
:accessories [[react/text {:style {:color colors/gray}} "4"]
:chevron]}])]
[item "Default wIth icon in circle, chevron and badge"
(snippets/code-snippet
[list-item/list-item
{:title "Privacy and Security"
:icon :main-icons/profile
:on-press #()
:accessories [[badge/badge "333"] :chevron]}])]
[item "Default wIth icon in circle, switch"
(snippets/code-snippet
[list-item/list-item
{:title "Notifications"
:icon :main-icons/notification
:on-press #()
:accessories
[[react/switch {}]]}])]
[item "Default wIth icon in circle, red"
(snippets/code-snippet
[list-item/list-item
{:title "Delete and Leave"
:theme :action-red
:icon :main-icons/delete
:on-press #()}])]]
[react/view {:margin-right 10}
[item "Two lines with icon in circle, chevron"
(snippets/code-snippet
[list-item/list-item
{:title "alex.stateofus.eth"
:subtitle "ENS name"
:icon :main-icons/address
:accessories [:chevron]
:on-press #()}])]
[item "Two lines with icon in circle"
(snippets/code-snippet
[list-item/list-item
{:title "alex.stateofus.eth"
:subtitle "ENS name"
:icon :main-icons/address
:on-press #()}])]
[item "Two lines with icon in circle, blue title"
(snippets/code-snippet
[list-item/list-item
{:title "Add or Create a Profile"
:subtitle "Requires signout"
:theme :action
:icon :main-icons/address
:on-press #()}])]
[item "Two lines with dapp icon,title and subtitle"
(snippets/code-snippet
[list-item/list-item
{:title "CryptoKitties"
:subtitle "https://cryptokitties.co"
:icon [react/view {:width 40
:height 40
:border-radius 20
:background-color colors/green}]
:on-press #()}])]]
[react/view {:margin-right 10}
[item "Default Small"
(snippets/code-snippet
[list-item/list-item
{:title "Everybody"
:type :small
:on-press #()}])]
[item "Default Small button"
(snippets/code-snippet
[list-item/list-item
{:title "Change Passcode"
:type :small
:theme :action
:on-press #()}])]
[item "Default Small red button"
(snippets/code-snippet
[list-item/list-item
{:title "Delete all Contacts"
:type :small
:theme :action-red
:on-press #()}])]
[item "Default Small with chevron"
(snippets/code-snippet
[list-item/list-item
{:title "Recovery Phrase"
:type :small
:on-press #()
:accessories [:chevron]}])]
[item "Default Small with chevron and accessory"
(snippets/code-snippet
[list-item/list-item
{:title "Main Currency"
:type :small
:on-press #()
:accessories [[react/text {:style {:color colors/gray}} "USD"]
:chevron]}])]
[item "Default Small with chevron, badge"
(snippets/code-snippet
[list-item/list-item
{:title "Recovery Phrase"
:type :small
:on-press #()
:accessories [[badge/badge "2"] :chevron]}])]]
[react/view {:margin-right 10}
[item "Long title"
(snippets/code-snippet
[list-item/list-item
{:title "loooooooooong loooooooooooooong looooooong title"
:subtitle "ENS name"
:icon :main-icons/address
:accessories [:chevron]
:on-press #()}])]
[item "Long subtitle"
(snippets/code-snippet
[list-item/list-item
{:title "alex.stateofus.eth"
:subtitle "loooooooooooooooong loooooong looooooong subtitle"
:icon :main-icons/address
:accessories [:chevron]
:on-press #()}])]
[item "Title-prefix + long title"
(snippets/code-snippet
[list-item/list-item
{:title-prefix "From"
:title-prefix-width 45
:title "title-prefix and loooooong title really loooonglooo00oooong"
:type :small
:on-press #()}])]]])

View File

@ -1,52 +0,0 @@
(ns fiddle.views.main
(:require-macros [status-im.utils.views :as views])
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.button :as button]
[fiddle.views.colors :as colors]
[fiddle.views.screens :as screens]
[fiddle.views.typography :as typography]
[fiddle.views.icons :as icons]
[fiddle.views.list-items :as list-items]
[fiddle.views.ui :as ui]
[fiddle.views.toolbar :as toolbar]
[fiddle.views.topbar :as topbar]
[re-frame.core :as re-frame]))
(defn btn [id label view-id]
[react/view {:margin-bottom 5}
[button/button
{:label label
:disabled? (= id view-id)
:type :secondary
:on-press #(re-frame/dispatch [:set :view-id id])}]])
(views/defview main []
(views/letsubs [view-id [:view-id]]
[react/view {:flex 1 :flex-direction :row :padding 10}
[react/view {:padding-right 20}
[btn :colors "Colors" view-id]
[btn :icons "Icons" view-id]
[btn :typography "Typography" view-id]
[btn :list-header "List Header" view-id]
[btn :list-items "List Items" view-id]
[btn :top-bar "Top Bar" view-id]
[btn :ui "UI elements" view-id]
[btn :tooltip "Tooltips" view-id]
[btn :bottom "Bottom Sheet" view-id]
[btn :popover "Popover" view-id]
[btn :input "Text input" view-id]
[btn :tabbar "Tab Bar" view-id]
[btn :toolbar "Toolbar" view-id]
[btn :snack "Snackbar" view-id]
[btn :screens "Screens" view-id]]
(case view-id
:colors [colors/colors]
:icons [icons/icons]
:screens [screens/screens]
:typography [typography/typography]
:list-items [list-items/list-items]
:toolbar [toolbar/toolbar-view]
:top-bar [topbar/topbar-view]
:list-header [list-items/list-header]
:ui [ui/ui]
[react/text "TODO"])]))

View File

@ -1,11 +0,0 @@
(ns fiddle.views.screens
(:require [re-frame.core :as re-frame]
[status-im.ui.components.react :as react]
[status-im.ui.screens.wallet.add-new.views :as add-new]
[fiddle.frame :as frame]))
(defn screens []
[react/view {:flex-direction :row}
[frame/frame
[add-new/add-account]]])

View File

@ -1,29 +0,0 @@
(ns fiddle.views.toolbar
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.toolbar :as toolbar]
[status-im.ui.components.colors :as colors]
cljs.pprint
[reagent.core :as reagent]
[status-im.ui.components.button :as button])
(:require-macros [fiddle.snippets :as snippets]))
(defn toolbar-view []
[react/view
{:background-color colors/gray-lighter
:flex 1
:padding 20
:flex-direction :row
:flex-wrap :wrap}
[react/view {:width 375}
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [toolbar/toolbar {:center {:type :secondary :label "Label"}}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [toolbar/toolbar {:left {:type :previous :label "Label"} :right {:type :next :label "Label"}}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [toolbar/toolbar {:left {:type :secondary :label "Label"} :right {:label "Label"}}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [toolbar/toolbar {:left {:type :previous :label "Label"}}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [toolbar/toolbar {:right {:type :next :label "Label"}}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [toolbar/toolbar {:center {:label "Label"}}])]]])

View File

@ -1,33 +0,0 @@
(ns fiddle.views.topbar
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.topbar :as topbar]
[status-im.ui.components.colors :as colors]
cljs.pprint
[reagent.core :as reagent])
(:require-macros [fiddle.snippets :as snippets]))
(defn topbar-view []
[react/view
{:background-color colors/gray-lighter
:flex 1
:padding 20
:flex-direction :row
:flex-wrap :wrap}
[react/view {:width 375}
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [topbar/topbar {:title "Chat Invites"}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [topbar/topbar {:title "Chat Invites tile tile title tile tile title tile tile title tile tile title tile tile title tile tile title 3"}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [topbar/topbar {:title "Chat" :navigation :none :show-border? true}])
[react/view {:height 10}]]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [topbar/topbar {:title "Blocked Users" :accessories [{:label "Done" :handler #(js/alert "Done")}]}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [topbar/topbar {:title "Blocked Users" :accessories [{:label "Done" :handler #(js/alert "Done")}] :navigation {:label "Cancel" :handler #(js/alert "Cancel")}}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [topbar/topbar {:title "Chat Invites" :accessories [{:icon :more :handler #(js/alert "More")}]}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [topbar/topbar {:title "Title" :accessories [{:icon :more :handler #(js/alert "More")} {:icon :share :handler #(js/alert "Share")}]}])]
[react/view {:background-color :white :margin 10}
(snippets/code-snippet [topbar/topbar {:title "test"}])]]])

View File

@ -1,21 +0,0 @@
(ns fiddle.views.typography
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.colors :as colors]
[status-im.ui.components.typography :as typography]))
(defn typo [name key]
[react/view {:flex-direction :row :align-items :center :margin-bottom 40}
[react/text {:style {:typography key :margin-right 20 :width 200}} name]
[react/text {:style {:margin-right 20 :width 200}} (str key)]
[react/text {:style {:color colors/gray}} (get typography/typography-styles key)]])
(defn typography []
[react/view {:flex-direction :row :flex 1}
[react/view {:padding 20}
[typo "Header" :header]
[typo "Title Bold" :title-bold]
[typo "Title" :title]
[typo "Main Medium" :main-medium]
[typo "Main" nil]
[typo "Caption" :caption]
[typo "TIMESTAMP" :timestamp]]])

View File

@ -1,82 +0,0 @@
(ns fiddle.views.ui
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.button :as button]
[status-im.ui.components.colors :as colors]
[status-im.ui.components.badge :as badge]
[status-im.ui.components.checkbox.view :as checkbox]
[reagent.core :as reagent]
[status-im.ui.components.radio :as radio]
cljs.pprint)
(:require-macros [fiddle.snippets :as snippets]))
(def sw (reagent/atom true))
(def ch (reagent/atom true))
(def ch2 (reagent/atom false))
(defn ui []
[react/view {:flex-direction :row :flex-wrap :wrap :flex 1}
[react/view
[react/text {:style {:typography :main-medium}} "Main button"]
[react/view {:padding 40 :background-color :while :border-radius 20}
(snippets/code-snippet [button/button {:label "Label"}] true)
(snippets/code-snippet [button/button {:label "Label" :disabled? true}] true)]]
[react/view
[react/text {:style {:typography :main-medium}} "Secondary button"]
[react/view {:padding 40 :background-color :while :border-radius 20}
(snippets/code-snippet [button/button {:label "Label" :type :secondary}] true)
(snippets/code-snippet [button/button {:label "Label" :type :secondary :disabled? true}] true)]]
[react/view
[react/text {:style {:typography :main-medium}} "Next and previous buttons"]
[react/view {:padding 40 :background-color :while :border-radius 20 :flex-direction :row}
[react/view
(snippets/code-snippet [button/button {:label "Label" :type :next}] true)
(snippets/code-snippet [button/button {:label "Label" :type :previous}] true)]
[react/view
(snippets/code-snippet [button/button {:label "Label" :type :next :disabled? true}] true)
(snippets/code-snippet [button/button {:label "Label2" :type :previous :disabled? true}] true)]]]
[react/view
[react/text {:style {:typography :main-medium}} "Switch"]
[react/view {:padding 40 :background-color :while :border-radius 20}
(snippets/code-snippet
[react/switch
{:track-color #js {:true colors/blue :false nil}
:value @sw
:on-value-change #(swap! sw not)
:disabled false}]
true)
[react/view {:height 20}]
(snippets/code-snippet
[react/switch
{:track-color #js {:true colors/blue :false nil}
:value false
:disabled true}]
true)]]
[react/view
[react/text {:style {:typography :main-medium}} "Badge"]
[react/view {:padding 40 :background-color :while :border-radius 20 :flex-direction :row :flex-wrap :wrap}
[react/view {:margin 10}
(snippets/code-snippet [badge/badge "8"] true)]
[react/view {:margin 10}
[badge/badge "8" true]]
[react/view {:margin 10}
[badge/badge "128"]]
[react/view {:margin 10}
[badge/badge "338" true]]]]
[react/view
[react/text {:style {:typography :main-medium}} "Checkbox"]
[react/view {:padding 40 :background-color :while :border-radius 20}
(snippets/code-snippet
[checkbox/checkbox
{:checked? @ch :on-value-change #(swap! ch not)}]
true)
[react/view {:height 20}]
(snippets/code-snippet
[checkbox/checkbox
{:checked? @ch2 :on-value-change #(swap! ch2 not)}]
true)]]
[react/view
[react/text {:style {:typography :main-medium}} "Radio button"]
[react/view {:padding 40 :background-color :while :border-radius 20}
(snippets/code-snippet [radio/radio true] true)
[react/view {:height 20}]
(snippets/code-snippet [radio/radio false] true)]]])

View File

@ -1,6 +0,0 @@
import React from 'react';
import ReactDOM from 'react-dom';
window.deps = {'react-native-web' : require('react-native-web') };
window.React = React;
window.ReactDOM = ReactDOM;
window.ReactNativeWeb = window.deps['react-native-web'];

View File

@ -1,20 +0,0 @@
(ns status-im.i18n-resources
(:require-macros [status-im.i18n :as i18n])
(:require [status-im.utils.types :as types]
[clojure.string :as string]))
(def default-device-language
:en)
;; translations
(def translations-by-locale
(->> (i18n/translations [:en :es_419 :fa :ko :ms :pl :ru :zh_Hans_CN])
(map (fn [[k t]]
(let [k' (-> (name k)
(string/replace "_" "-")
keyword)]
[k' (types/json->clj t)])))
(into {})))
;; API compatibility
(defn load-language [lang])

View File

@ -1,43 +0,0 @@
(ns status-im.react-native.js-dependencies)
(def action-button (fn [] #js {:default #js {:Item #js {}}}))
(def config (fn [] #js {:default #js {}}))
(def camera (fn [] #js {:default #js {:constants #js {}}}))
(def dialogs (fn [] #js {}))
(def dismiss-keyboard (fn [] #js {}))
(def emoji-picker (fn [] #js {:default #js {}}))
(def fs (fn [] #js {}))
(def i18n #js {:locale "en"})
(def react-native-languages #js {:language "en", :addEventListener (fn []), :removeEventListener (fn [])})
(def image-crop-picker (fn [] #js {}))
(def image-resizer (fn [] #js {}))
(def qr-code (fn [] #js {}))
(def react-native
#js {:NativeModules #js {}
:Animated #js {:View #js {}
:FlatList #js {}
:Text #js {}}
:DeviceEventEmitter #js {:addListener (fn [])}
:Dimensions #js {:get (fn [])}})
(def vector-icons (fn [] #js {:default #js {}}))
(def webview (fn [] #js {:WebView #js {}}))
(def touchid (fn [] #js {}))
(def svg (fn [] #js {:default #js {}}))
(def status-keycard (fn [] #js {:default #js {}}))
(def snoopy (fn [] #js {:default #js {}}))
(def snoopy-filter (fn [] #js {:default #js {}}))
(def snoopy-bars (fn [] #js {:default #js {}}))
(def snoopy-buffer (fn [] #js {:default #js {}}))
(def fetch (fn [_ _] #js {}))
(def background-timer (fn [] #js {:setTimeout js/setTimeout
:setInterval js/setInterval
:clearTimeout js/clearTimeout
:clearInterval js/clearInterval}))
(def keychain (fn [] #js {:setGenericPassword (constantly (.resolve js/Promise true))}))
(def react-navigation #js {:NavigationActions #js {}})
(def react-native-mail (fn [] #js {:mail #js {}}))
(def react-native-navigation-twopane #js {})

View File

@ -1,33 +0,0 @@
(ns status-im.react-native.resources)
(def ui
{:lock "images/ui/lock.png"
:tribute-to-talk "images/ui/tribute-to-talk.png"
:hardwallet-card "images/ui/hardwallet-card.png"
:secret-keys "images/ui/secret-keys.png"
:keycard-lock "images/ui/keycard-lock.png"
:keycard "images/ui/keycard.png"
:keycard-logo "images/ui/keycard-logo.png"
:keycard-logo-blue "images/ui/keycard-logo-blue.png"
:keycard-logo-gray "images/ui/keycard-logo-gray.png"
:keycard-key "images/ui/keycard-key.png"
:keycard-empty "images/ui/keycard-empty.png"
:keycard-phone "images/ui/keycard-phone.png"
:keycard-connection "images/ui/keycard-connection.png"
:keycard-wrong "images/ui/keycard-wrong.png"
:not-keycard "images/ui/not-keycard.png"
:status-logo "images/ui/status-logo.png"
:hold-card-animation "images/ui/hold-card-animation.gif"
:warning-sign "images/ui/warning-sign.png"
:phone-nfc-on "images/ui/phone-nfc-on.png"
:phone-nfc-off "images/ui/phone-nfc-off.png"
:dapp-store "images/ui/dapp-store.png"
:ens-header "images/ui/ens-header.png"})
(def loaded-images (atom {}))
(defn get-image [k]
(if (contains? @loaded-images k)
(get @loaded-images k)
(get (swap! loaded-images assoc k
(get ui k)) k)))

View File

@ -1,328 +0,0 @@
(ns status-im.ui.components.react
(:require-macros [status-im.utils.views :as views])
(:require [goog.object :as object]
[reagent.core :as reagent]
[status-im.ui.components.styles :as styles]
[status-im.utils.utils :as utils]
[status-im.i18n :as i18n]
[status-im.ui.components.colors :as colors]
[status-im.ui.components.typography :as typography]
[status-im.utils.platform :as platform]
[react-native-web :as rnw]))
(defn adapt-class [class]
(when class
(reagent/adapt-react-class class)))
(defn get-web-class [name]
(fn []
(adapt-class (goog.object/get rnw name))))
(defn get-class [name] (get-web-class name))
(def device-event-emitter nil)
(defn dismiss-keyboard! [] ())
(def splash-screen nil)
;; React Components
(def app-registry nil)
(def app-state nil)
(def net-info nil)
(def view-class ((get-web-class "View")))
(defn view [& props]
(into []
(concat
[view-class]
(cond-> (into [] props)
(and (map? (first props)) (not (contains? (first props) :style)))
(assoc 0 {:style (first props)})))))
(def safe-area-view (get-web-class "SafeAreaView"))
(def progress-bar (get-web-class "ProgressBarAndroid"))
(def status-bar-class (get-web-class "StatusBar"))
(def scroll-view-class (get-web-class "ScrollView"))
(def keyboard-avoiding-view-class (get-web-class "KeyboardAvoidingView"))
(def text-class ((get-web-class "Text")))
(def text-input-class (get-web-class "TextInput"))
(def image-class (get-web-class "Image"))
(def picker-obj nil)
(def animated-flat-list-class #())
(defn picker-class [] )
(defn picker-item-class [] )
(defn valid-source? [source]
(or (not (map? source))
(not (contains? source :uri))
(and (contains? source :uri)
(:uri source))))
(defn image [{:keys [source] :as props}]
(when (valid-source? source)
(let [source (if (fn? source) (source) source)]
[(image-class) (assoc props :source source)])))
(def switch-class (get-web-class "Switch"))
(defn switch [props]
[(switch-class) props])
(def touchable-highlight ((get-web-class "TouchableOpacity")))
(def touchable-opacity-class (get-web-class "TouchableOpacity"))
(def activity-indicator-class (get-web-class "ActivityIndicator"))
(defn activity-indicator [props]
[(activity-indicator-class) props])
(def modal nil)
(def pan-responder nil)
(def animated (get-web-class "Animated"))
(defn animated-view-class []
(reagent/adapt-react-class (.-View (animated))))
(defn animated-view [props & content]
(vec (conj content props (animated-view-class))))
(def dimensions nil)
(def keyboard nil)
(def linking nil)
(def max-font-size-multiplier 1.25)
(defn prepare-text-props [props]
(-> props
(update :style typography/get-style)
(update-in [:style :font-family] #(or % "Inter"))
(assoc :max-font-size-multiplier max-font-size-multiplier)))
(defn prepare-nested-text-props [props]
(-> props
(update :style typography/get-nested-style)
(assoc :parseBasicMarkdown true)
(assoc :nested? true)))
;; Accessor methods for React Components
(defn text
"For nested text elements, use nested-text instead"
([text-element]
(text {} text-element))
([options text-element]
[text-class (prepare-text-props options) text-element]))
(defn nested-text
"Returns nested text elements with proper styling and typography
Do not use the nested? option, it is for internal usage of the function only"
[options & nested-text-elements]
(let [options-with-style (if (:nested? options)
(prepare-nested-text-props options)
(prepare-text-props options))]
(reduce (fn [acc text-element]
(conj acc
(if (string? text-element)
text-element
(let [[options & nested-text-elements] text-element]
(apply nested-text (prepare-nested-text-props options)
nested-text-elements)))))
[text-class (dissoc options-with-style :nested?)]
nested-text-elements)))
(defn text-input
[options text]
[(text-input-class)
(merge
{:underline-color-android :transparent
:max-font-size-multiplier max-font-size-multiplier
:placeholder-text-color colors/text-gray
:placeholder (i18n/label :t/type-a-message)
:value text}
(-> options
(update :style typography/get-style)
(update :style dissoc :line-height)))])
(defn i18n-text
[{:keys [style key]}]
[text {:style style} (i18n/label key)])
(defn icon
([n] (icon n styles/icon-default))
([n style]
[image {:source {:uri (keyword (str "icon_" (name n)))}
:resizeMode "contain"
:style style}]))
(defn touchable-opacity [props content]
[(touchable-opacity-class) props content])
#_(defn touchable-highlight [props content]
[(touchable-highlight-class)
(merge {:underlay-color :transparent} props)
content])
(defn touchable-without-feedback [props content]
nil)
(defn get-dimensions [name]
(js->clj (.get (dimensions) name) :keywordize-keys true))
(defn list-item [component]
(reagent/as-element component))
(defn value->picker-item [{:keys [value label]}]
[(picker-item-class) {:value (or value "") :label (or label value "")}])
(defn picker [{:keys [style on-change selected enabled data]}]
(into
[(picker-class) (merge (when style {:style style})
(when enabled {:enabled enabled})
(when on-change {:on-value-change on-change})
(when selected {:selected-value selected}))]
(map value->picker-item data)))
;; Image picker
(def image-picker-class nil)
(defn show-access-error [o]
(when (= "E_PERMISSION_MISSING" (object/get o "code"))
(utils/show-popup (i18n/label :t/error)
(i18n/label :t/photos-access-error))))
(defn show-image-picker
([images-fn]
(show-image-picker images-fn nil))
([images-fn media-type]
(let [image-picker (.-default (image-picker-class))]
(-> image-picker
(.openPicker (clj->js {:multiple false :mediaType (or media-type "any")}))
(.then images-fn)
(.catch show-access-error)))))
;; Clipboard
(def sharing
nil)
(defn copy-to-clipboard [text]
nil)
(defn get-from-clipboard [clbk]
nil)
;; HTTP Bridge
(def http-bridge nil)
;; KeyboardAvoidingView
(defn keyboard-avoiding-view [props & children]
(let [view-element (if platform/ios?
[(keyboard-avoiding-view-class) (merge {:behavior :padding} props)]
[view props])]
(vec (concat view-element children))))
(defn scroll-view [props & children]
(vec (conj children props (scroll-view-class))))
(views/defview with-activity-indicator
[{:keys [timeout style enabled? preview]} comp]
(views/letsubs
[loading (reagent/atom true)]
{:component-did-mount (fn []
(if (or (nil? timeout)
(> 100 timeout))
(reset! loading false)
(utils/set-timeout #(reset! loading false)
timeout)))}
(if (and (not enabled?) @loading)
(or preview
[view {:style (or style {:justify-content :center
:align-items :center})}
[activity-indicator {:animating true}]])
comp)))
(defn navigation-wrapper
"Wraps component so that it will be shown only when current-screen is one of views"
[{:keys [component views current-view hide?]
:or {hide? false}}]
(let [current-view? (if (set? views)
(views current-view)
(= views current-view))
style (if current-view?
{:flex 1
:zIndex 0}
{:opacity 0
:flex 0
:zIndex -1})
component' (if (fn? component) [component] component)]
(when (or (not hide?) (and hide? current-view?))
(if hide?
component'
[view style (if (fn? component) [component] component)]))))
(defn with-empty-preview [comp]
[with-activity-indicator
{:preview [view {}]}
comp])
;; Platform-specific View
(defmulti create-main-screen-view #(cond
platform/iphone-x? :iphone-x
platform/ios? :ios
platform/android? :android))
(defmethod create-main-screen-view :iphone-x [current-view]
(fn [props & children]
(let [props (merge props
{:background-color
(case current-view
(:wallet-send-transaction
:wallet-request-transaction
:wallet-send-assets
:wallet-request-assets
:choose-recipient
:recent-recipients
:select-account
:wallet-send-transaction-request
:contact-code
:wallet-settings-hook)
colors/blue
(:qr-viewer
:recipient-qr-code)
"#2f3031"
colors/white)})
bottom-background (when (#{:recent-recipients
:select-account
:wallet-send-assets
:wallet-request-assets} current-view)
[view {:background-color colors/white
:position :absolute
:bottom 0
:right 0
:left 0
:height 100
:z-index -1000}])
children (conj children bottom-background)]
(apply vector (safe-area-view) props children))))
(defmethod create-main-screen-view :default [_]
view)
(views/defview main-screen-modal-view [current-view & components]
(views/letsubs []
(let [main-screen-view (create-main-screen-view current-view)]
[main-screen-view styles/flex
[keyboard-avoiding-view
{:flex 1 :flex-direction :column}
(apply vector view styles/flex components)]])))

View File

@ -1,6 +0,0 @@
module.exports = {
entry: './src/js/index.js',
output: {
filename: 'index_bundle.js'
}
}

View File

@ -69,15 +69,6 @@ PODS:
- DoubleConversion
- glog
- glog (0.3.5)
- libwebp (1.1.0):
- libwebp/demux (= 1.1.0)
- libwebp/mux (= 1.1.0)
- libwebp/webp (= 1.1.0)
- libwebp/demux (1.1.0):
- libwebp/webp
- libwebp/mux (1.1.0):
- libwebp/demux
- libwebp/webp (1.1.0)
- OpenSSL-Universal (1.0.2.20):
- OpenSSL-Universal/Static (= 1.0.2.20)
- OpenSSL-Universal/Static (1.0.2.20)
@ -351,10 +342,6 @@ PODS:
- React
- RNDeviceInfo (5.6.1):
- React
- RNFastImage (8.3.4):
- React-Core
- SDWebImage (~> 5.8)
- SDWebImageWebPCoder (~> 0.6.1)
- RNFS (2.16.6):
- React
- RNGestureHandler (1.8.0):
@ -382,12 +369,6 @@ PODS:
- React
- RNSVG (9.13.6):
- React
- SDWebImage (5.10.0):
- SDWebImage/Core (= 5.10.0)
- SDWebImage/Core (5.10.0)
- SDWebImageWebPCoder (0.6.1):
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.7)
- SQLCipher (3.4.2):
- SQLCipher/standard (= 3.4.2)
- SQLCipher/common (3.4.2)
@ -470,7 +451,6 @@ DEPENDENCIES:
- "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)"
- "RNCPushNotificationIOS (from `../node_modules/@react-native-community/push-notification-ios`)"
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
- RNFastImage (from `../node_modules/react-native-fast-image`)
- RNFS (from `../node_modules/react-native-fs`)
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`)
@ -498,10 +478,7 @@ SPEC REPOS:
- Flipper-PeerTalk
- Flipper-RSocket
- FlipperKit
- libwebp
- OpenSSL-Universal
- SDWebImage
- SDWebImageWebPCoder
- SQLCipher
- SSZipArchive
- TOCropViewController
@ -602,8 +579,6 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-community/push-notification-ios"
RNDeviceInfo:
:path: "../node_modules/react-native-device-info"
RNFastImage:
:path: "../node_modules/react-native-fast-image"
RNFS:
:path: "../node_modules/react-native-fs"
RNGestureHandler:
@ -646,7 +621,6 @@ SPEC CHECKSUMS:
FlipperKit: ab353d41aea8aae2ea6daaf813e67496642f3d7d
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
glog: cee4319f395bad5865ef3f32466c2e0ae677432c
libwebp: 946cb3063cea9236285f7e9a8505d806d30e07f3
OpenSSL-Universal: ff34003318d5e1163e9529b08470708e389ffcdd
Permission-Camera: afad27bf90337684d4a86f3825112d648c8c4d3b
Permission-Microphone: 0ffabc3fe1c75cfb260525ee3f529383c9f4368c
@ -689,7 +663,6 @@ SPEC CHECKSUMS:
RNCMaskedView: 71fc32d971f03b7f03d6ab6b86b730c4ee64f5b6
RNCPushNotificationIOS: c145c6253ea016e5efeff604f2720736b4a596f7
RNDeviceInfo: b6e650fbd234732c759544218657d549b4339038
RNFastImage: d4870d58f5936111c56218dbd7fcfc18e65b58ff
RNFS: 2bd9eb49dc82fa9676382f0585b992c424cd59df
RNGestureHandler: 7a5833d0f788dbd107fbb913e09aa0c1ff333c39
RNImageCropPicker: 38865ab4af1b0b2146ad66061196bc0184946855
@ -700,8 +673,6 @@ SPEC CHECKSUMS:
RNReanimated: 89f5e0a04d1dd52fbf27e7e7030d8f80a646a3fc
RNScreens: b748efec66e095134c7166ca333b628cd7e6f3e2
RNSVG: 8ba35cbeb385a52fd960fd28db9d7d18b4c2974f
SDWebImage: 9169792e9eec3e45bba2a0c02f74bf8bd922d1ee
SDWebImageWebPCoder: d0dac55073088d24b2ac1b191a71a8f8d0adac21
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
SSZipArchive: 62d4947b08730e4cda640473b0066d209ff033c9
TOCropViewController: da59f531f8ac8a94ef6d6c0fc34009350f9e8bfe

View File

@ -405,20 +405,6 @@
}
},
{
"path": "androidx/databinding/databinding-common/3.4.0/databinding-common-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "2853715477959d9c44169d570dd9add271b114af",
"sha256": "1rx6l013gjvvzkyl5yyh1mjpxmx93f73z30kx05aw3b5ca473irb"
},
"jar": {
"sha1": "0265b8ca5d867c32dd0b9032bd7e7bf49a1af199",
"sha256": "0rmnw8mk47qyc61fm3q3h0iwrmc1kgs5k4qzs9l9jmp5c5yhl95f"
}
},
{
"path": "androidx/databinding/databinding-common/3.5.3/databinding-common-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -461,20 +447,6 @@
}
},
{
"path": "androidx/databinding/databinding-compiler-common/3.4.0/databinding-compiler-common-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "9ca08ae6fc9410da3b1b5134ee541682893d4ba7",
"sha256": "1v6pximinv8242rhmhk2w48r13a66fgx3lzc943dkgnapqawddin"
},
"jar": {
"sha1": "9a080792ea0c78422230c02bc8f457e7a6c19f17",
"sha256": "0nphxaqd8kqdd30hxq83sqj820fdkapq8fp51jj1xxpi6rwl3q99"
}
},
{
"path": "androidx/databinding/databinding-compiler-common/3.5.3/databinding-compiler-common-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -517,20 +489,6 @@
}
},
{
"path": "androidx/exifinterface/exifinterface/1.0.0/exifinterface-1.0.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "aar",
"pom": {
"sha1": "33b6860f537daa47cfc3184f6e592b5271a71958",
"sha256": "1czjzcvh9w0xg2702dh725d2vvphvsim77k490pbg2ps76vwq5gf"
},
"jar": {
"sha1": "1ab12ceadd49f94006e1ec0ea5fa51b701169cd5",
"sha256": "04fcaly958lpy9myzmbr8gpfxf8h3v8pfjy1ykzlxxdqm88bwj7f"
}
},
{
"path": "androidx/exifinterface/exifinterface/1.1.0-beta01/exifinterface-1.1.0-beta01",
"host": "https://dl.google.com/dl/android/maven2",
@ -1273,20 +1231,6 @@
}
},
{
"path": "com/android/databinding/baseLibrary/3.4.0/baseLibrary-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "12823b42714e1bae1864e6b7c067986cd68eef8d",
"sha256": "0bbq57aa9b0a5rb3dj6vndapknmndvfj5mddzldlw5c7x281ai0i"
},
"jar": {
"sha1": "767805331463128dfb118a15813e6ff65290dda6",
"sha256": "1s0b94xlfi4nmiz73g2yw1y9k0d4g5a3bdyw3xi984mfh5416jc5"
}
},
{
"path": "com/android/databinding/baseLibrary/3.5.3/baseLibrary-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -1665,20 +1609,6 @@
}
},
{
"path": "com/android/tools/analytics-library/crash/26.4.0/crash-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "1ca1832d9c698cc28dba3d1717fe784cee98dbd9",
"sha256": "1v2nyvy9hgjs8a0rnrlcnk7sa98frmpllkbvvrpcv4x6zqpd78f4"
},
"jar": {
"sha1": "45f30743b0d2fb45f1e1458e56baa104221f5501",
"sha256": "09k1ciqzspbhji5701a20j64nly9rclmypjyjy82q4ad0dvrr8fi"
}
},
{
"path": "com/android/tools/analytics-library/crash/26.5.3/crash-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -1763,20 +1693,6 @@
}
},
{
"path": "com/android/tools/analytics-library/protos/26.4.0/protos-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "d3238191160aaf3ac9b80bc57fa83a000ec1f8ab",
"sha256": "0jch7nrb0v3cibhb16vp2kbk19xi8wzm2r9gcahdpjza0ykan3if"
},
"jar": {
"sha1": "850cd51c9aa8ab2e39a2a0cb8d7e90282d4d18db",
"sha256": "0pqkn8gn6rf99063wgjqxns3pzwb6xxq60pl369x75v7b0ahjxmd"
}
},
{
"path": "com/android/tools/analytics-library/protos/26.5.3/protos-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -1861,20 +1777,6 @@
}
},
{
"path": "com/android/tools/analytics-library/shared/26.4.0/shared-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "15b359d285679b9632d86f4f65528a70475e7b46",
"sha256": "044p4n17idswizlw257j8lc0cblpr0g538c2sb6rvzb4yhracjly"
},
"jar": {
"sha1": "2d083560f501898bcd0c42e704abcfb7746ef20f",
"sha256": "1lhf7mf9n2iv0z399cvx921kxpj6950rx316h6f90j2xj1m10chk"
}
},
{
"path": "com/android/tools/analytics-library/shared/26.5.3/shared-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -1959,20 +1861,6 @@
}
},
{
"path": "com/android/tools/analytics-library/tracker/26.4.0/tracker-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "eb46dc11ac785fe37e5b8083cb403e14106d479e",
"sha256": "0l7nd0s64f5rip725wc719d580ph030gyrvs9dsn9rr5ar8592fy"
},
"jar": {
"sha1": "b3f28a0cfe0b5424e280f97123e4f7d4b7aa2ce9",
"sha256": "15kpsdyj34v0g4mfzwzn1nhx8h4q10j6lbcpy8smkmsczpxhq0nh"
}
},
{
"path": "com/android/tools/analytics-library/tracker/26.5.3/tracker-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -2057,20 +1945,6 @@
}
},
{
"path": "com/android/tools/annotations/26.4.0/annotations-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "175eaca5e1a643ceb1a97763b1e16346cb80e9f1",
"sha256": "14hdx981jn4dkg8jr19qhk8dwzhmcf7pmm88q6izwx64xnkvcnc5"
},
"jar": {
"sha1": "99ccefd34e8488ece2098165d0ae1eedb6491797",
"sha256": "06nckr1ryvsw4czfx21126lnxm60nxc3m97ssrhsi8n33675p5d7"
}
},
{
"path": "com/android/tools/annotations/26.5.3/annotations-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -2197,20 +2071,6 @@
}
},
{
"path": "com/android/tools/build/apksig/3.4.0/apksig-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "cbb9693c9eee84f7ee77161a083276e17c9ebe50",
"sha256": "0d2f7i49yywiggpkbjgm96zad64m4ac6liv9xd82cjy8ghrzylva"
},
"jar": {
"sha1": "5f67d13c63f838b3add79f01e7bb7ffe0e1c2e66",
"sha256": "0zijfwhhz8a59w8q05c42q2rsqad3gvacm8351b9giirc63a3mci"
}
},
{
"path": "com/android/tools/build/apksig/3.5.3/apksig-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -2253,20 +2113,6 @@
}
},
{
"path": "com/android/tools/build/apkzlib/3.4.0/apkzlib-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "c7a6ed9e7ae21b3970484bfcfc65b998f9b8e6f1",
"sha256": "0d9bqc8cqclx2wl8m06f2mbh25qkk0i98jw8vhqmxqkzqw187x40"
},
"jar": {
"sha1": "3cd3ade50ba5b812f77e24cb24e5fa9c567cf156",
"sha256": "14jmac360qar023bahg5cr5w6ygbd8wzg2lb1s2dw7fzbxgwhlw6"
}
},
{
"path": "com/android/tools/build/apkzlib/3.5.3/apkzlib-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -2351,20 +2197,6 @@
}
},
{
"path": "com/android/tools/build/builder-model/3.4.0/builder-model-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "5e3739c81b3d3d740c2fd9b4ab1e6a191ea50505",
"sha256": "1wiwsgab5d7l82aijyis0sqdn7js34aqsxx4fb8xhnxivz313xi4"
},
"jar": {
"sha1": "768154ff0029313694e6b7d1576ef79dfe7e2b7e",
"sha256": "0fw5xbclskq1wiz50mpdvv3nabshk8sn0iyb1fkidw594j0i73x8"
}
},
{
"path": "com/android/tools/build/builder-model/3.5.3/builder-model-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -2449,20 +2281,6 @@
}
},
{
"path": "com/android/tools/build/builder-test-api/3.4.0/builder-test-api-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "051d1fa13112ad9a7bd3234e7689e5fbfca92245",
"sha256": "1vrppzcj1n0y0xxnlrw6gj51ybgxh99w8jwdnknh3c0by5sqwjrq"
},
"jar": {
"sha1": "c7b44da938640cb249dcc719ede09c2e9896711d",
"sha256": "0vzj9mfpn97l0sbrf9l2bf03ql8770ppv1hhl23pdjhrxjqrl21i"
}
},
{
"path": "com/android/tools/build/builder-test-api/3.5.3/builder-test-api-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -2547,20 +2365,6 @@
}
},
{
"path": "com/android/tools/build/builder/3.4.0/builder-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "3365268f89e9135371e597098eaf988a3a70a502",
"sha256": "1aq4y97vyxx6hmay6y56xvlcw8qnca1k7qzqcdszr233x2mw9mby"
},
"jar": {
"sha1": "b237d03672bae54a1013deab3bbd936d78f07e79",
"sha256": "0y96j838dmdg2mwa3w0f0bsvcd0a02ayv1gikc450zrs42sj2qj7"
}
},
{
"path": "com/android/tools/build/builder/3.5.3/builder-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -2617,20 +2421,6 @@
}
},
{
"path": "com/android/tools/build/bundletool/0.7.2/bundletool-0.7.2",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "b9bed5ad5d87c480dea482f713dd72af621a0546",
"sha256": "0n9lgg8kljnd8j7ji0k6v3lqny0yg13hxahsgh832kpg7gyga5z9"
},
"jar": {
"sha1": "31f71b66edcbe41de0268e14c961a7799a03d42a",
"sha256": "153qkzflw3s2k9dyg982v4p0pnrisd5bp47shcak9qy98i6b62s2"
}
},
{
"path": "com/android/tools/build/bundletool/0.9.0/bundletool-0.9.0",
"host": "https://dl.google.com/dl/android/maven2",
@ -2715,20 +2505,6 @@
}
},
{
"path": "com/android/tools/build/gradle-api/3.4.0/gradle-api-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "6cfc754464acd2820b4c434818a7f0951ff3dea8",
"sha256": "0d527z8plycsdjdrbkh4p1cvi5aycb5rda1zy3q84ild0gb6br0m"
},
"jar": {
"sha1": "ac85b2c363dbcad0303df561c8c4f99a925c2878",
"sha256": "0a2n2w06vinhmsighwcqdk37c5nirliddd4jyk1174kiyqwclpi1"
}
},
{
"path": "com/android/tools/build/gradle-api/3.5.3/gradle-api-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -2855,20 +2631,6 @@
}
},
{
"path": "com/android/tools/build/gradle/3.4.0/gradle-3.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "a228bd2aeb317dc19aa497461270ab0f5782df86",
"sha256": "1d8skgmra728gsjwbv8jzy2k3lcbj86p44x19r073hdffi0hk5y6"
},
"jar": {
"sha1": "016af40a504b8f8ff572c8c2bbf4ace3dccd2f5b",
"sha256": "1jn6ncrrmmz6bw8bmj79k5rds1r9qlk8kzilcqvrr0j854mdwdlc"
}
},
{
"path": "com/android/tools/build/gradle/3.5.3/gradle-3.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -3037,20 +2799,6 @@
}
},
{
"path": "com/android/tools/build/manifest-merger/26.4.0/manifest-merger-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "0927e963177f6d980c0ae6056a1adcb9f30213ac",
"sha256": "0js5hkbzscpzfhp9wjw9w5n3mf7byigx3kkzs8pbx713d6ik054v"
},
"jar": {
"sha1": "97ad7348b1c018f304378c9b72094fb9cbfe6433",
"sha256": "087jns1aasb6lbd11cmn2vnd82sdm4n1rhlpbq1nblgd1mlmxr19"
}
},
{
"path": "com/android/tools/build/manifest-merger/26.5.3/manifest-merger-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -3135,20 +2883,6 @@
}
},
{
"path": "com/android/tools/common/26.4.0/common-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "958cdd943cfb7082f79079e1214567c7c7fd6a08",
"sha256": "18qnpywh83vaxyv8ag656w3lphlbz1x4jkz9mqqad0khfvlbya92"
},
"jar": {
"sha1": "539939e284fba9fe343b890a6e21c9333767c886",
"sha256": "0lj8k1bwbcr22y4h5ndbcqx3da065673h4gh01vym10j7i5vjh7a"
}
},
{
"path": "com/android/tools/common/26.5.3/common-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -3233,20 +2967,6 @@
}
},
{
"path": "com/android/tools/ddms/ddmlib/26.4.0/ddmlib-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "0a1a50723a483648400f69573e3ceb5e807b1820",
"sha256": "1cm59lil1yjyk4cn97ihis5gymm2snznfffaydizb28m4i072w2g"
},
"jar": {
"sha1": "889c2419aefceeb31749d49615eb64e798747458",
"sha256": "0h69i0g0gkgxcl8mpfh73fwsp5idc2xxflbcpnnncc8ccgj6zxck"
}
},
{
"path": "com/android/tools/ddms/ddmlib/26.5.3/ddmlib-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -3331,20 +3051,6 @@
}
},
{
"path": "com/android/tools/dvlib/26.4.0/dvlib-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "756956e60531e4f00986f603622a0b670facd2ae",
"sha256": "1izz6p97dzb886v33ij0aarqqir0lg07jfa0n9bf9dmwb4q127lx"
},
"jar": {
"sha1": "48ac12dd54ff16487d3553861e108d9e38d5b2f7",
"sha256": "1k2hmpnij1fzvvbkqr2fcax4x0bjnq4v7dnixrna66xh6p2qkbr3"
}
},
{
"path": "com/android/tools/dvlib/26.5.3/dvlib-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -3527,20 +3233,6 @@
}
},
{
"path": "com/android/tools/layoutlib/layoutlib-api/26.4.0/layoutlib-api-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "f9dfbc2282e922fb5489d901c66c379a5ff8d8de",
"sha256": "0d6a1pr3f4h59y96vvchfhmcsbbm3zs6i05llsf2d46i5xpg15ky"
},
"jar": {
"sha1": "c76e05e0c19ae0f5fffe2dcc190bd5a0aa7b546b",
"sha256": "1qqjg86nn15zvgf4s9mp1945jvj1zndr2qg35c3j9clky9f8y4jj"
}
},
{
"path": "com/android/tools/layoutlib/layoutlib-api/26.5.3/layoutlib-api-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -3681,20 +3373,6 @@
}
},
{
"path": "com/android/tools/lint/lint-gradle-api/26.4.0/lint-gradle-api-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "c68f16527b8f34cf5a0586d7353d4f2a9a6b8424",
"sha256": "0d174g8imwpz17nrzm8r82vjjqhfl1ynrlznarv9badf2cpj9arx"
},
"jar": {
"sha1": "931c6d23146c4d8286aa814eb8d5d8af9b69af11",
"sha256": "03wd85q6hifs450g59r80yfna32kwygrcvmixbd11anjqy2pljvi"
}
},
{
"path": "com/android/tools/lint/lint-gradle-api/26.5.3/lint-gradle-api-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -3835,20 +3513,6 @@
}
},
{
"path": "com/android/tools/repository/26.4.0/repository-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "22274a4c32383b81da5b64777b35fbbad4c28c9a",
"sha256": "1vhnzqmgm40f3i2inwgsml9bb9l7wy0wff2qwrjppknqf71my5cv"
},
"jar": {
"sha1": "d91be89a520ae1e1d0abcc41e87afa5f905a8dad",
"sha256": "0sqp1fjbr2l9qhx1mj72axc1s3y726x9n4lldpf794qr8smn65rx"
}
},
{
"path": "com/android/tools/repository/26.5.3/repository-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -3933,20 +3597,6 @@
}
},
{
"path": "com/android/tools/sdklib/26.4.0/sdklib-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "33931ab73e3d1335f1c9924616f9be58b724915c",
"sha256": "1bj8k1369rgfy1wsa2sbyf7amda4fmpnib7mzj3h6igqa1qy753j"
},
"jar": {
"sha1": "2249d66f8d8392630a03f59e23f0eef871f795a5",
"sha256": "0cn1wibglab86m50zlb90knkiq7k5k3p3w0wfrnk4fh1j8wc4m5q"
}
},
{
"path": "com/android/tools/sdklib/26.5.3/sdklib-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -4031,20 +3681,6 @@
}
},
{
"path": "com/android/tools/sdk-common/26.4.0/sdk-common-26.4.0",
"host": "https://dl.google.com/dl/android/maven2",
"type": "jar",
"pom": {
"sha1": "6fc0cc23504ccda715f3015e95901054ba1233d5",
"sha256": "1w34gqfljrsff7pw8cn0k9q7pn9fvz5p1k6k4adbnqyicp2sjfyv"
},
"jar": {
"sha1": "7cda5b1442edfbd2f81c0b525f80d72ef960bc07",
"sha256": "03qvlgpvmsajyzw7hj4zibv8bqscs8qwi68jpyvwdzrhbd9259bq"
}
},
{
"path": "com/android/tools/sdk-common/26.5.3/sdk-common-26.5.3",
"host": "https://dl.google.com/dl/android/maven2",
@ -5753,90 +5389,6 @@
}
},
{
"path": "com/github/bumptech/glide/annotations/4.11.0/annotations-4.11.0",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "08445189d31e761a6006cde3bb72542a7a6a23dc",
"sha256": "123whb07rzgp7bycdsdmgfcdz8yla4fqk85w7w9vja6m2z9p2pn9"
},
"jar": {
"sha1": "c57bae5a18147f8ae22f4da49baac875c6b6f84f",
"sha256": "0glv8zqdcj7ss2jihsic6kzdrpdwi9qd8ab22xi4k0kd00wd46fj"
}
},
{
"path": "com/github/bumptech/glide/compiler/4.11.0/compiler-4.11.0",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "63ca5a3bb1eb0c1ef5d3fbde26a794d2a22170ff",
"sha256": "0q73n4d498g90k2z1xcc6kwqj4im40xpp38qhsq9ybpx2gff5azc"
},
"jar": {
"sha1": "2be868cd9ce1b7dcd7f6152c7345cf42e658eb8c",
"sha256": "0w471sc62qzdxljn9535m2pr1hif69fb0j1la8fin9inbhkdz359"
}
},
{
"path": "com/github/bumptech/glide/disklrucache/4.11.0/disklrucache-4.11.0",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "947bbfe64d4645c07ab022daf20030a8bd2d05d0",
"sha256": "1rmidh9x46jkynf0myvr2s2qvq7syr61w8c8kbkzbfd8gnx9brhr"
},
"jar": {
"sha1": "ed93d2e20549ad85f692d964788ec77520d78a8b",
"sha256": "067gsnqgclyrvxs5anx3vl03zghx9bfv07h3vfiplxqv2yjparyh"
}
},
{
"path": "com/github/bumptech/glide/gifdecoder/4.11.0/gifdecoder-4.11.0",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "fa549921eb02e2eedc4a96a54b1d71d951b6a982",
"sha256": "0nw9v5mcihm8hahmczsdp0h9v9bmhvgk5lmf8213v4dw0p1d185v"
},
"jar": {
"sha1": "5cdb23974646b860c48cca81327960c3593f8879",
"sha256": "1iwn2lj0cdh09xpp109nb8iprqfdnfq2xbrrmpswnrig7n2z77wf"
}
},
{
"path": "com/github/bumptech/glide/glide/4.11.0/glide-4.11.0",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "86a47dbf0e23ff171c04ede1d34f61a0d6577f44",
"sha256": "15lyrkca1hg8nn8n5c48k90jway1m98rhwk837d2afywzai619xm"
},
"jar": {
"sha1": "26b70ede6fde7c4aeb7333c3e72be7bdee081f75",
"sha256": "0fqi5w5h3i130x7cz46crbxw6fvwn91d0hz9qmmdzass9ffwgrch"
}
},
{
"path": "com/github/bumptech/glide/okhttp3-integration/4.11.0/okhttp3-integration-4.11.0",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "a708e6d659d80f64d63e836bded1247322ed67ff",
"sha256": "1x6k9kd35v3q431xqw45p50mwxc0dg6zaksn18lkcppky2n2m3wq"
},
"jar": {
"sha1": "570be0c0a843bbe4f1d20f6f497f10f8da298845",
"sha256": "0knirllm3h0bm96b2w3rkksjby3d9fk7qxlyb1gs4wapnak8z4vw"
}
},
{
"path": "com/googlecode/json-simple/json-simple/1.1/json-simple-1.1",
"host": "https://repo.maven.apache.org/maven2",
@ -6534,26 +6086,26 @@
},
{
"path": "com/google/truth/truth-parent/1.1/truth-parent-1.1",
"path": "com/google/truth/truth-parent/1.1.2/truth-parent-1.1.2",
"host": "https://repo.maven.apache.org/maven2",
"type": "pom",
"pom": {
"sha1": "3cbf9ceaf6ef05428e90896fccae392e603995c0",
"sha256": "0glydydivdc1n5ib3r9hbsxyrvdy16qp7a1553rmm8sn8b50h8qz"
"sha1": "487d2acd34ac5f8987f443497856cd93c51f1e79",
"sha256": "0xg70v08sfwch9sfy8a4549k82z58j0hn17wp347kdn2rb3g1k87"
}
},
{
"path": "com/google/truth/truth/1.1/truth-1.1",
"path": "com/google/truth/truth/1.1.2/truth-1.1.2",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "b7bcc00a1490dcdac703f101097a1462fdeb8e1f",
"sha256": "0vx0jk1j260gj29vsn23gwv00s937z7469v0xsdgdg89186r8x1z"
"sha1": "390514856a5e29e0ce91b7a1a695761f47374336",
"sha256": "0b7pgsnhas3kqy11xhxgqlwyf17b77la2jzk6k5d67f9srjn9xs0"
},
"jar": {
"sha1": "6a096a16646559c24397b03f797d0c9d75ee8720",
"sha256": "07lr2g01bk7hh6zajwzxjbi0qahf95bbab3qxdvk131rf640rbj2"
"sha1": "90621af08df4be0c1619645707460c7065c81c45",
"sha256": "063m7hqq7im9dpma56cgh195y6rx198dkpngc3q811xfnsw06pm8"
}
},
@ -6665,20 +6217,6 @@
}
},
{
"path": "com/squareup/okhttp3/okhttp/3.9.1/okhttp-3.9.1",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "7a34bfe0899e4b1a4b84f4e9e79c221bd37e9808",
"sha256": "1vjwzaf5y4qfc5pvbsa79m11zjvzhn1b3rszvv6xxky1rpha3hdw"
},
"jar": {
"sha1": "84b4b7d1c4a238e7899972b7446c250691e65f1f",
"sha256": "0pkqnz1dmfrhvr17qbv1dr5nylvfnf5l8vgw0zjjdfiblhbi1l50"
}
},
{
"path": "com/squareup/okhttp3/okhttp/3.12.1/okhttp-3.12.1",
"host": "https://repo.maven.apache.org/maven2",
@ -6708,26 +6246,16 @@
},
{
"path": "com/squareup/okhttp3/okhttp/4.10.0-RC1/okhttp-4.10.0-RC1",
"path": "com/squareup/okhttp3/okhttp/5.0.0-alpha.2/okhttp-5.0.0-alpha.2",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "8d708879a928532a5a33c5fc3b8549bbcc8b56f6",
"sha256": "1pvvzfnmfw4d17cclp5mh3paldzyy152x18m3sfvs18libzvph63"
"sha1": "afe00f17c08b21b7e356667a05f18b948bd64b95",
"sha256": "0kqa21fl17l9l9s5kncvsz92wayp6i285qqf1v23fkb58ig20m4l"
},
"jar": {
"sha1": "5380afa5a75a340c470b194e10fdf5c2499b81ed",
"sha256": "09x0lfq6vfppmcf69d9mx0hyij2q6mrapynynaxs9g7ka2zkvhcz"
}
},
{
"path": "com/squareup/okhttp3/parent/3.9.1/parent-3.9.1",
"host": "https://repo.maven.apache.org/maven2",
"type": "pom",
"pom": {
"sha1": "e55ee2b70a7a64431236eac139096e369db69bb6",
"sha256": "0lqm0gpbxfkw7n530hfr2jxr7r4cgiia2ahd0m1kb6kwdfzf05gm"
"sha1": "bf7bed2b2469e05290e258813396114ef080f574",
"sha256": "1zzmw406i776k076cmrx9g52s7slqw93nq4zga9da7g6q3fwlp7a"
}
},
@ -8406,16 +7934,16 @@
},
{
"path": "org/checkerframework/checker-qual/3.9.1/checker-qual-3.9.1",
"path": "org/checkerframework/checker-qual/3.10.0/checker-qual-3.10.0",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "a81dd752dcacf18628a82ca8303c9c801a532e5f",
"sha256": "1abmx1cvi9ki1gl36s3yxq3qd3c2hrgxmf5ax4m5yh7xhppr155j"
"sha1": "c390f25c63524b5c05da6fa6d446c3a593a40e89",
"sha256": "0a6ra0sazc6ab8r6jn1h4spp1d4gq1zhxxnfxlslblz0ihh4x5m3"
},
"jar": {
"sha1": "4fccadf37f1c61a0895bac3d42fe0c530438826c",
"sha256": "0xp7x9syd9v2lq9m3w5q19k8gn0bjv20v9k1bzj2mfrmpaqnh15b"
"sha1": "710fd6abff4b26b40dc0917050dc4c67efcf60b6",
"sha256": "04i5rcbvpwb8jfn3xg04n21m9i040vmybrc16g9rdi5alqn8ip54"
}
},
@ -8472,16 +8000,16 @@
},
{
"path": "org/codehaus/mojo/animal-sniffer-annotations/1.19/animal-sniffer-annotations-1.19",
"path": "org/codehaus/mojo/animal-sniffer-annotations/1.20/animal-sniffer-annotations-1.20",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "45a124d1de95705d6d8e7547e131ebdb3a99fada",
"sha256": "1lpidi60kl17mn45c7r00kw2s2msd1qbshg6r32ikk0dv09m379s"
"sha1": "4daa545f375cc4e539a97425fb75aa52f856d5e4",
"sha256": "149f92fjjr21y0hv0sxfwaayl3dwgm8sadi472i6dchvpaj6wdz6"
},
"jar": {
"sha1": "1536e1a8fd552dc05f12b5f0827fbb2ee3d5a89b",
"sha256": "17gf2dy2rjlccw3g1n82ipdv8hacak6dnpygaifsn4xgxryc4zp6"
"sha1": "0d98c2b001fcb9031859ec9d21914c2ce78912a5",
"sha256": "1b12fpkw0gz0d04jd0bpqr70jx6fw3qddlccq3svihidrbgl9pdy"
}
},
@ -8506,12 +8034,12 @@
},
{
"path": "org/codehaus/mojo/animal-sniffer-parent/1.19/animal-sniffer-parent-1.19",
"path": "org/codehaus/mojo/animal-sniffer-parent/1.20/animal-sniffer-parent-1.20",
"host": "https://repo.maven.apache.org/maven2",
"type": "pom",
"pom": {
"sha1": "dd4912ea50c7ed0941f713e49457212e83eab926",
"sha256": "1f4m3si7bnbdgrl11w5v7r7n99rnj2mkj19awwdyyf5dywkmgav7"
"sha1": "a1725fa054a1b943fa3a8e7ee72f1b57b507488d",
"sha256": "1bqwv253zjjgm0fdm3hinqmbmvgj8vpwh650cvfrvcg6mdsfd4y4"
}
},
@ -8536,12 +8064,12 @@
},
{
"path": "org/codehaus/mojo/mojo-parent/50/mojo-parent-50",
"path": "org/codehaus/mojo/mojo-parent/61/mojo-parent-61",
"host": "https://repo.maven.apache.org/maven2",
"type": "pom",
"pom": {
"sha1": "8caf7f67d94e762418df68f034c88b6f18433860",
"sha256": "0fs9vpgg1lip8pdhfn1rh535wxikvrmyj0dnr28pfsjvn78wl6gq"
"sha1": "11fdf4908dbf89fc128efc868ad990ad0a0a8b8a",
"sha256": "1bh5g5nzl8624prasq9r4r8i3r7cw7b7bwa9g7342rghbjsl4cvm"
}
},
@ -9143,20 +8671,6 @@
}
},
{
"path": "org/jetbrains/kotlin/kotlin-reflect/1.3.21/kotlin-reflect-1.3.21",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "4f1b4f4073d5e72115beca8daa2434c71a57ca6c",
"sha256": "1k0b2w4zkvs24xqbsx1g3zjgpbml7dmc2s5xnwg9cfr2jkwymm22"
},
"jar": {
"sha1": "d0d5ff2ac2ebd8a42697af41e20fc225a23c5d3b",
"sha256": "0sn2w3ly7k28xy3vp9k4515zqd62pqljmq9y7q51w69k4s15q1m3"
}
},
{
"path": "org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50",
"host": "https://repo.maven.apache.org/maven2",
@ -9283,20 +8797,6 @@
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.21/kotlin-stdlib-common-1.3.21",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "bbd836209881cb60c42ece1fe1fb0f73d6d104dc",
"sha256": "0gc7szhlsph3d99xqbhnlv9qr8fd7f1b27ik2bfq645bl4q36i0y"
},
"jar": {
"sha1": "f30e4a9897913e53d778f564110bafa1fef46643",
"sha256": "19sjvl52mkp060ciw887y61dbc0azibrg6jnb17yd58qc5xiz9nf"
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.31/kotlin-stdlib-common-1.3.31",
"host": "https://repo.maven.apache.org/maven2",
@ -9353,6 +8853,20 @@
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.4.21/kotlin-stdlib-common-1.4.21",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "079977f80977960cfc8bc34ddd3d12f9d198682e",
"sha256": "1gay55x737xvn3af5dddlai0mgy6j81r69bfnw7ayf7qh2w0m16d"
},
"jar": {
"sha1": "7f48a062aa4b53215998780f7c245a4276828e1d",
"sha256": "1zxwrhz7fl4qzrxn2q252b8z005nm5r2sppr8wgpxin4v6bz2b41"
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71/kotlin-stdlib-jdk7-1.2.71",
"host": "https://repo.maven.apache.org/maven2",
@ -9381,20 +8895,6 @@
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.21/kotlin-stdlib-jdk7-1.3.21",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "988e21086849c2d0a5a7019e2b0ebd0b0f2b0007",
"sha256": "0xjs018bbgcznw413qvkgp9znydqjgfq1dl906jzhgg7di0vlir6"
},
"jar": {
"sha1": "d207ce2c9bcf17dc8e51bab4dbfdac4d013e7138",
"sha256": "1bwql4kbdf0m4rnzqvjkh921y231xqslvbiqd7d408fl9xh7ay58"
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50",
"host": "https://repo.maven.apache.org/maven2",
@ -9437,20 +8937,6 @@
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.21/kotlin-stdlib-jdk8-1.3.21",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "412a6443082420a3ed1060e1c8ab85a11c9e5a56",
"sha256": "11wrz5mzlp7s4xyg4lns4nrqh0kqphydb9l2j53dsvfdzp6c2bap"
},
"jar": {
"sha1": "d0634d54452abc421db494ad32dd215e6591c49f",
"sha256": "1m3lgzjd5ww7lwqxqbjngzccqhx816iabg1f8iaiqahjmikfs8sq"
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.50/kotlin-stdlib-jdk8-1.3.50",
"host": "https://repo.maven.apache.org/maven2",
@ -9577,20 +9063,6 @@
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.21/kotlin-stdlib-1.3.21",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "01cbb529302e235c1bc873de00a85e970335aa61",
"sha256": "19drzlj9ykx1cxckdyf8f6fr1k0yav6s04l4xi4gwnvc74rymqcw"
},
"jar": {
"sha1": "4bcc2012b84840e19e1e28074284cac908be0295",
"sha256": "0d5hf8y7kavrc2911x454wp3qiwlbdvwmch67r1m0vzhv5q27fiq"
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.31/kotlin-stdlib-1.3.31",
"host": "https://repo.maven.apache.org/maven2",
@ -9647,6 +9119,20 @@
}
},
{
"path": "org/jetbrains/kotlin/kotlin-stdlib/1.4.21/kotlin-stdlib-1.4.21",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "65b290e29135432a1cd6bd364407d39b271f09ff",
"sha256": "1gp23b2hbl287xd29r8wf3bihsrxg03j7qaj1c2s56x7nwlmlv07"
},
"jar": {
"sha1": "4a668382d7c38688d3490afde93b6a113ed46698",
"sha256": "06yh6zhs73imf9mg0ldisw4g5pak7cydx8c3mc95k66v1665v37p"
}
},
{
"path": "org/jetbrains/kotlin/kotlin-util-io/1.3.50/kotlin-util-io-1.3.50",
"host": "https://repo.maven.apache.org/maven2",
@ -9836,16 +9322,16 @@
},
{
"path": "org/ow2/asm/asm-analysis/9.0/asm-analysis-9.0",
"path": "org/ow2/asm/asm-analysis/9.1/asm-analysis-9.1",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "34da681c919e0f467c0e53aeefa6516b2715c266",
"sha256": "1pa7mgmvhm868lcgjs9dw2m244m6zabqy3bd3i5i0fqbks5svy2a"
"sha1": "e30004dc53274dc96d0b9c6a3ac06bdcf6d23d86",
"sha256": "0mkiyjq3mvfaayvrb7wpyq6wii68hr7gnwfza6liqhq33g0m8m5c"
},
"jar": {
"sha1": "4630afefbb43939c739445dde0af1a5729a0fb4e",
"sha256": "19n2r4nk0nsy8189h479hh2vhzi8nyd4ad55kandm92nz1nxwiid"
"sha1": "4f61b83b81d8b659958f4bcc48907e93ecea55a0",
"sha256": "0d5yqddg5gwayvg4j31772ap0j3c0jc60r4ri9ddmgmqn50q1a41"
}
},
@ -9878,16 +9364,16 @@
},
{
"path": "org/ow2/asm/asm-commons/9.0/asm-commons-9.0",
"path": "org/ow2/asm/asm-commons/9.1/asm-commons-9.1",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "14fd7f7242906f78ad5a7d6639e6b59f9d57ded5",
"sha256": "0xppnddjs7v6rdppjaf7br8mlhw68g9nknwpy3i98x4282277rqh"
"sha1": "5914a98fed0e76a0ce92a75704cacaf2454ae90a",
"sha256": "0zqv32hxgws5hanbbi3vg0f7npybx9k04yidc479rzlagfr53xm0"
},
"jar": {
"sha1": "5a34a3a9ac44f362f35d1b27932380b0031a3334",
"sha256": "0bq90arz3xy4gk87n8yfrb77jv9icch01yrc5znx8yz6nyn9140v"
"sha1": "8b971b182eb5cf100b9e8d4119152d83e00e0fdd",
"sha256": "0360f2s9csaljbpgbjl8qkgihbnqin8719mdk550qb613zf2djxg"
}
},
@ -10012,16 +9498,16 @@
},
{
"path": "org/ow2/asm/asm-tree/9.0/asm-tree-9.0",
"path": "org/ow2/asm/asm-tree/9.1/asm-tree-9.1",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "e6eca3c6573a118b219a71487fa3f508b4ae1eaf",
"sha256": "1rx4k1jkpngiy3gs4892fgzw72b6wdngb402bhghw492zffp0pb3"
"sha1": "aeef4f505fe557517394dc29e404fba6ba98c428",
"sha256": "0k5ra36zylih3bx4bv9bclbd5w2k2ba0xmy7h47lcdf00y90v85n"
},
"jar": {
"sha1": "9df939f25c556b0c7efe00701d47e77a49837f24",
"sha256": "03g0fv44wiwsxgl1m5pys10d2xsymidf8s457a462n5r5qrmzhp2"
"sha1": "c333f2a855069cb8eb17a40a3eb8b1b67755d0eb",
"sha256": "0wsa9dq9rgzpp1cjsvx01gzshxm7nkn9rc05c9jdg5cmksjay07x"
}
},
@ -10096,16 +9582,16 @@
},
{
"path": "org/ow2/asm/asm/9.0/asm-9.0",
"path": "org/ow2/asm/asm/9.1/asm-9.1",
"host": "https://repo.maven.apache.org/maven2",
"type": "jar",
"pom": {
"sha1": "938b82b2a78eb9b1d383a5fcb243a1801c6e2ea0",
"sha256": "1bcl7bh8bl42ssddpkla4rayhwi9k6p2946pr36wrgyi1mcma0yy"
"sha1": "927153d04a920d5f06a9a4aefd5f6be60726117d",
"sha256": "13fyrv9l97fkiygij71pbf9gapj0m5z69i6zrf41fawgsq6sk0y6"
},
"jar": {
"sha1": "af582ff60bc567c42d931500c3fdc20e0141ddf9",
"sha256": "1q48g3afm40a1yshp7i35idx8i9k1zhb834x6kyr5vjaj5s7by8d"
"sha1": "a99500cf6eea30535eeac6be73899d048f8d12a8",
"sha256": "18pbdf9z11m9jjh31z3ska2xxm27jiiv8j3wrc5zyj5bbx2xx96d"
}
},

View File

@ -21,15 +21,12 @@ androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview:1.0.0
androidx.databinding:databinding-common:3.2.1
androidx.databinding:databinding-common:3.3.1
androidx.databinding:databinding-common:3.4.0
androidx.databinding:databinding-common:3.5.3
androidx.databinding:databinding-compiler-common:3.2.1
androidx.databinding:databinding-compiler-common:3.3.1
androidx.databinding:databinding-compiler-common:3.4.0
androidx.databinding:databinding-compiler-common:3.5.3
androidx.documentfile:documentfile:1.0.0
androidx.drawerlayout:drawerlayout:1.0.0
androidx.exifinterface:exifinterface:1.0.0
androidx.exifinterface:exifinterface:1.1.0-beta01
androidx.exifinterface:exifinterface:1.1.0-rc01
androidx.fragment:fragment:1.0.0
@ -85,35 +82,35 @@ com.afollestad.material-dialogs:core:0.9.6.0
com.android.databinding:baseLibrary:1.0-rc5
com.android.databinding:baseLibrary:3.0.0
com.android.databinding:baseLibrary:3.0.1
com.android.databinding:baseLibrary:3.1.4
com.android.databinding:baseLibrary:3.2.1
com.android.databinding:baseLibrary:3.3.1
com.android.databinding:baseLibrary:3.4.0
com.android.databinding:baseLibrary:3.5.3
com.android.databinding:compilerCommon:1.0-rc5
com.android.databinding:compilerCommon:3.0.0
com.android.databinding:compilerCommon:3.0.1
com.android.databinding:compilerCommon:3.1.4
com.android.installreferrer:installreferrer:1.1.2
com.android.tools.analytics-library:crash:26.2.1
com.android.tools.analytics-library:crash:26.3.1
com.android.tools.analytics-library:crash:26.4.0
com.android.tools.analytics-library:crash:26.5.3
com.android.tools.analytics-library:protos:26.0.0
com.android.tools.analytics-library:protos:26.0.1
com.android.tools.analytics-library:protos:26.1.4
com.android.tools.analytics-library:protos:26.2.1
com.android.tools.analytics-library:protos:26.3.1
com.android.tools.analytics-library:protos:26.4.0
com.android.tools.analytics-library:protos:26.5.3
com.android.tools.analytics-library:shared:26.0.0
com.android.tools.analytics-library:shared:26.0.1
com.android.tools.analytics-library:shared:26.1.4
com.android.tools.analytics-library:shared:26.2.1
com.android.tools.analytics-library:shared:26.3.1
com.android.tools.analytics-library:shared:26.4.0
com.android.tools.analytics-library:shared:26.5.3
com.android.tools.analytics-library:tracker:26.0.0
com.android.tools.analytics-library:tracker:26.0.1
com.android.tools.analytics-library:tracker:26.1.4
com.android.tools.analytics-library:tracker:26.2.1
com.android.tools.analytics-library:tracker:26.3.1
com.android.tools.analytics-library:tracker:26.4.0
com.android.tools.analytics-library:tracker:26.5.3
com.android.tools.build.jetifier:jetifier-core:1.0.0-alpha10
com.android.tools.build.jetifier:jetifier-core:1.0.0-beta02
@ -121,77 +118,78 @@ com.android.tools.build.jetifier:jetifier-core:1.0.0-beta04
com.android.tools.build.jetifier:jetifier-processor:1.0.0-alpha10
com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02
com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta04
com.android.tools.build:aapt2-proto:0.1.0
com.android.tools.build:aapt2-proto:0.3.1
com.android.tools.build:aapt2-proto:0.4.0
com.android.tools.build:apksig:3.0.0
com.android.tools.build:apksig:3.0.1
com.android.tools.build:apksig:3.1.4
com.android.tools.build:apksig:3.2.1
com.android.tools.build:apksig:3.3.1
com.android.tools.build:apksig:3.4.0
com.android.tools.build:apksig:3.5.3
com.android.tools.build:apkzlib:3.2.1
com.android.tools.build:apkzlib:3.3.1
com.android.tools.build:apkzlib:3.4.0
com.android.tools.build:apkzlib:3.5.3
com.android.tools.build:builder-model:1.1.3
com.android.tools.build:builder-model:1.3.1
com.android.tools.build:builder-model:1.5.0
com.android.tools.build:builder-model:3.0.0
com.android.tools.build:builder-model:3.0.1
com.android.tools.build:builder-model:3.1.4
com.android.tools.build:builder-model:3.2.1
com.android.tools.build:builder-model:3.3.1
com.android.tools.build:builder-model:3.4.0
com.android.tools.build:builder-model:3.5.3
com.android.tools.build:builder-test-api:1.1.3
com.android.tools.build:builder-test-api:1.3.1
com.android.tools.build:builder-test-api:1.5.0
com.android.tools.build:builder-test-api:3.0.0
com.android.tools.build:builder-test-api:3.0.1
com.android.tools.build:builder-test-api:3.1.4
com.android.tools.build:builder-test-api:3.2.1
com.android.tools.build:builder-test-api:3.3.1
com.android.tools.build:builder-test-api:3.4.0
com.android.tools.build:builder-test-api:3.5.3
com.android.tools.build:builder:1.1.3
com.android.tools.build:builder:1.3.1
com.android.tools.build:builder:1.5.0
com.android.tools.build:builder:3.0.0
com.android.tools.build:builder:3.0.1
com.android.tools.build:builder:3.1.4
com.android.tools.build:builder:3.2.1
com.android.tools.build:builder:3.3.1
com.android.tools.build:builder:3.4.0
com.android.tools.build:builder:3.5.3
com.android.tools.build:bundletool:0.1.0-alpha01
com.android.tools.build:bundletool:0.5.0
com.android.tools.build:bundletool:0.6.0
com.android.tools.build:bundletool:0.7.2
com.android.tools.build:bundletool:0.9.0
com.android.tools.build:gradle-api:3.0.0
com.android.tools.build:gradle-api:3.0.1
com.android.tools.build:gradle-api:3.1.4
com.android.tools.build:gradle-api:3.2.1
com.android.tools.build:gradle-api:3.3.1
com.android.tools.build:gradle-api:3.4.0
com.android.tools.build:gradle-api:3.5.3
com.android.tools.build:gradle-core:1.1.3
com.android.tools.build:gradle-core:1.3.1
com.android.tools.build:gradle-core:1.5.0
com.android.tools.build:gradle-core:3.0.0
com.android.tools.build:gradle-core:3.0.1
com.android.tools.build:gradle-core:3.1.4
com.android.tools.build:gradle:1.1.3
com.android.tools.build:gradle:1.3.1
com.android.tools.build:gradle:1.5.0
com.android.tools.build:gradle:3.0.0
com.android.tools.build:gradle:3.0.1
com.android.tools.build:gradle:3.1.4
com.android.tools.build:gradle:3.2.1
com.android.tools.build:gradle:3.3.1
com.android.tools.build:gradle:3.4.0
com.android.tools.build:gradle:3.5.3
com.android.tools.build:manifest-merger:24.1.3
com.android.tools.build:manifest-merger:24.3.1
com.android.tools.build:manifest-merger:24.5.0
com.android.tools.build:manifest-merger:26.0.0
com.android.tools.build:manifest-merger:26.0.1
com.android.tools.build:manifest-merger:26.1.4
com.android.tools.build:manifest-merger:26.2.1
com.android.tools.build:manifest-merger:26.3.1
com.android.tools.build:manifest-merger:26.4.0
com.android.tools.build:manifest-merger:26.5.3
com.android.tools.build:transform-api:1.5.0
com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api
@ -200,9 +198,9 @@ com.android.tools.ddms:ddmlib:24.3.1
com.android.tools.ddms:ddmlib:24.5.0
com.android.tools.ddms:ddmlib:26.0.0
com.android.tools.ddms:ddmlib:26.0.1
com.android.tools.ddms:ddmlib:26.1.4
com.android.tools.ddms:ddmlib:26.2.1
com.android.tools.ddms:ddmlib:26.3.1
com.android.tools.ddms:ddmlib:26.4.0
com.android.tools.ddms:ddmlib:26.5.3
com.android.tools.external.com-intellij:intellij-core:26.0.0
com.android.tools.external.com-intellij:intellij-core:26.0.1
@ -219,9 +217,9 @@ com.android.tools.layoutlib:layoutlib-api:24.3.1
com.android.tools.layoutlib:layoutlib-api:24.5.0
com.android.tools.layoutlib:layoutlib-api:26.0.0
com.android.tools.layoutlib:layoutlib-api:26.0.1
com.android.tools.layoutlib:layoutlib-api:26.1.4
com.android.tools.layoutlib:layoutlib-api:26.2.1
com.android.tools.layoutlib:layoutlib-api:26.3.1
com.android.tools.layoutlib:layoutlib-api:26.4.0
com.android.tools.layoutlib:layoutlib-api:26.5.3
com.android.tools.lint:lint-api:24.1.3
com.android.tools.lint:lint-api:24.3.1
@ -235,9 +233,9 @@ com.android.tools.lint:lint-checks:24.5.0
com.android.tools.lint:lint-checks:26.0.0
com.android.tools.lint:lint-checks:26.0.1
com.android.tools.lint:lint-checks:26.5.3
com.android.tools.lint:lint-gradle-api:26.1.4
com.android.tools.lint:lint-gradle-api:26.2.1
com.android.tools.lint:lint-gradle-api:26.3.1
com.android.tools.lint:lint-gradle-api:26.4.0
com.android.tools.lint:lint-gradle-api:26.5.3
com.android.tools.lint:lint-gradle:26.5.3
com.android.tools.lint:lint:24.1.3
@ -251,51 +249,51 @@ com.android.tools:annotations:24.3.1
com.android.tools:annotations:24.5.0
com.android.tools:annotations:26.0.0
com.android.tools:annotations:26.0.1
com.android.tools:annotations:26.1.4
com.android.tools:annotations:26.2.1
com.android.tools:annotations:26.3.1
com.android.tools:annotations:26.4.0
com.android.tools:annotations:26.5.3
com.android.tools:common:24.1.3
com.android.tools:common:24.3.1
com.android.tools:common:24.5.0
com.android.tools:common:26.0.0
com.android.tools:common:26.0.1
com.android.tools:common:26.1.4
com.android.tools:common:26.2.1
com.android.tools:common:26.3.1
com.android.tools:common:26.4.0
com.android.tools:common:26.5.3
com.android.tools:dvlib:24.1.3
com.android.tools:dvlib:24.3.1
com.android.tools:dvlib:24.5.0
com.android.tools:dvlib:26.0.0
com.android.tools:dvlib:26.0.1
com.android.tools:dvlib:26.1.4
com.android.tools:dvlib:26.2.1
com.android.tools:dvlib:26.3.1
com.android.tools:dvlib:26.4.0
com.android.tools:dvlib:26.5.3
com.android.tools:repository:26.0.0
com.android.tools:repository:26.0.1
com.android.tools:repository:26.1.4
com.android.tools:repository:26.2.1
com.android.tools:repository:26.3.1
com.android.tools:repository:26.4.0
com.android.tools:repository:26.5.3
com.android.tools:sdklib:24.1.3
com.android.tools:sdklib:24.3.1
com.android.tools:sdklib:24.5.0
com.android.tools:sdklib:26.0.0
com.android.tools:sdklib:26.0.1
com.android.tools:sdklib:26.1.4
com.android.tools:sdklib:26.2.1
com.android.tools:sdklib:26.3.1
com.android.tools:sdklib:26.4.0
com.android.tools:sdklib:26.5.3
com.android.tools:sdk-common:24.1.3
com.android.tools:sdk-common:24.3.1
com.android.tools:sdk-common:24.5.0
com.android.tools:sdk-common:26.0.0
com.android.tools:sdk-common:26.0.1
com.android.tools:sdk-common:26.1.4
com.android.tools:sdk-common:26.2.1
com.android.tools:sdk-common:26.3.1
com.android.tools:sdk-common:26.4.0
com.android.tools:sdk-common:26.5.3
com.drewnoakes:metadata-extractor:2.9.1
com.facebook.conceal:conceal:1.1.3
@ -333,12 +331,6 @@ com.facebook.soloader:annotation:0.9.0
com.facebook.soloader:nativeloader:0.9.0
com.facebook.soloader:soloader:0.9.0
com.facebook.yoga:proguard-annotations:1.14.1
com.github.bumptech.glide:annotations:4.11.0
com.github.bumptech.glide:compiler:4.11.0
com.github.bumptech.glide:disklrucache:4.11.0
com.github.bumptech.glide:gifdecoder:4.11.0
com.github.bumptech.glide:glide:4.11.0
com.github.bumptech.glide:okhttp3-integration:4.11.0
com.github.status-im.status-keycard-java:android:3.0.4
com.github.status-im.status-keycard-java:lib:3.0.4
com.github.status-im:function:0.0.1
@ -356,9 +348,11 @@ com.google.code.findbugs:jsr305:1.3.9
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.2.4
com.google.code.gson:gson:2.3
com.google.code.gson:gson:2.7
com.google.code.gson:gson:2.8.0
com.google.code.gson:gson:2.8.5
com.google.errorprone:error_prone_annotations:2.0.18
com.google.errorprone:error_prone_annotations:2.1.2
com.google.errorprone:error_prone_annotations:2.2.0
com.google.errorprone:error_prone_annotations:2.3.1
com.google.guava:failureaccess:1.0.1
@ -465,7 +459,6 @@ org.jetbrains.kotlin:kotlin-native-utils:1.3.50
org.jetbrains.kotlin:kotlin-reflect:1.1.3-2
org.jetbrains.kotlin:kotlin-reflect:1.2.0
org.jetbrains.kotlin:kotlin-reflect:1.3.20
org.jetbrains.kotlin:kotlin-reflect:1.3.21
org.jetbrains.kotlin:kotlin-reflect:1.3.50
org.jetbrains.kotlin:kotlin-scripting-common:1.3.50
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.3.50
@ -474,20 +467,19 @@ org.jetbrains.kotlin:kotlin-scripting-jvm:1.3.50
org.jetbrains.kotlin:kotlin-script-runtime:1.3.50
org.jetbrains.kotlin:kotlin-stdlib-common:1.2.71
org.jetbrains.kotlin:kotlin-stdlib-common:1.3.20
org.jetbrains.kotlin:kotlin-stdlib-common:1.3.21
org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.71
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.20
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50
org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.0
org.jetbrains.kotlin:kotlin-stdlib-jre8:1.2.0
org.jetbrains.kotlin:kotlin-stdlib:1.1.3-2
org.jetbrains.kotlin:kotlin-stdlib:1.2.0
org.jetbrains.kotlin:kotlin-stdlib:1.2.71
org.jetbrains.kotlin:kotlin-stdlib:1.3.20
org.jetbrains.kotlin:kotlin-stdlib:1.3.21
org.jetbrains.kotlin:kotlin-stdlib:1.3.50
org.jetbrains.kotlin:kotlin-util-io:1.3.50
org.jetbrains.trove4j:trove4j:20160824

View File

@ -27,15 +27,12 @@ https://dl.google.com/dl/android/maven2/androidx/cursoradapter/cursoradapter/1.0
https://dl.google.com/dl/android/maven2/androidx/customview/customview/1.0.0/customview-1.0.0.pom
https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/3.2.1/databinding-common-3.2.1.pom
https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/3.3.1/databinding-common-3.3.1.pom
https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/3.4.0/databinding-common-3.4.0.pom
https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/3.5.3/databinding-common-3.5.3.pom
https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-compiler-common/3.2.1/databinding-compiler-common-3.2.1.pom
https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-compiler-common/3.3.1/databinding-compiler-common-3.3.1.pom
https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-compiler-common/3.4.0/databinding-compiler-common-3.4.0.pom
https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-compiler-common/3.5.3/databinding-compiler-common-3.5.3.pom
https://dl.google.com/dl/android/maven2/androidx/documentfile/documentfile/1.0.0/documentfile-1.0.0.pom
https://dl.google.com/dl/android/maven2/androidx/drawerlayout/drawerlayout/1.0.0/drawerlayout-1.0.0.pom
https://dl.google.com/dl/android/maven2/androidx/exifinterface/exifinterface/1.0.0/exifinterface-1.0.0.pom
https://dl.google.com/dl/android/maven2/androidx/exifinterface/exifinterface/1.1.0-beta01/exifinterface-1.1.0-beta01.pom
https://dl.google.com/dl/android/maven2/androidx/exifinterface/exifinterface/1.1.0-rc01/exifinterface-1.1.0-rc01.pom
https://dl.google.com/dl/android/maven2/androidx/fragment/fragment/1.0.0/fragment-1.0.0.pom
@ -89,7 +86,6 @@ https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.0.
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.1.4/baseLibrary-3.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.2.1/baseLibrary-3.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.3.1/baseLibrary-3.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.4.0/baseLibrary-3.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.5.3/baseLibrary-3.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/databinding/compilerCommon/3.0.0/compilerCommon-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/databinding/compilerCommon/3.0.1/compilerCommon-3.0.1.pom
@ -117,35 +113,30 @@ https://dl.google.com/dl/android/maven2/com/android/support/support-vector-drawa
https://dl.google.com/dl/android/maven2/com/android/support/support-vector-drawable/27.0.1/support-vector-drawable-27.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/26.2.1/crash-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/26.3.1/crash-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/26.4.0/crash-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/26.5.3/crash-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.0.0/protos-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.0.1/protos-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.1.4/protos-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.2.1/protos-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.3.1/protos-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.4.0/protos-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.5.3/protos-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.0.0/shared-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.0.1/shared-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.1.4/shared-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.2.1/shared-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.3.1/shared-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.4.0/shared-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.5.3/shared-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.0.0/tracker-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.0.1/tracker-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.1.4/tracker-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.2.1/tracker-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.3.1/tracker-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.4.0/tracker-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.5.3/tracker-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.0.0/annotations-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.0.1/annotations-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.1.4/annotations-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.2.1/annotations-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.3.1/annotations-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.4.0/annotations-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.5.3/annotations-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2-proto/0.1.0/aapt2-proto-0.1.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2-proto/0.3.1/aapt2-proto-0.3.1.pom
@ -155,44 +146,37 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.0.1/apk
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.1.4/apksig-3.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.2.1/apksig-3.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.3.1/apksig-3.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.4.0/apksig-3.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.5.3/apksig-3.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/3.2.1/apkzlib-3.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/3.3.1/apkzlib-3.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/3.4.0/apkzlib-3.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/3.5.3/apkzlib-3.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.0.0/builder-model-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.0.1/builder-model-3.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.1.4/builder-model-3.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.2.1/builder-model-3.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.3.1/builder-model-3.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.4.0/builder-model-3.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.5.3/builder-model-3.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.0.0/builder-test-api-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.0.1/builder-test-api-3.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.1.4/builder-test-api-3.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.2.1/builder-test-api-3.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.3.1/builder-test-api-3.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.4.0/builder-test-api-3.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.5.3/builder-test-api-3.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.0.0/builder-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.0.1/builder-3.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.1.4/builder-3.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.2.1/builder-3.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.3.1/builder-3.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.4.0/builder-3.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.5.3/builder-3.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.1.0-alpha01/bundletool-0.1.0-alpha01.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.5.0/bundletool-0.5.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.6.0/bundletool-0.6.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.7.2/bundletool-0.7.2.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.9.0/bundletool-0.9.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.0.0/gradle-api-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.0.1/gradle-api-3.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.1.4/gradle-api-3.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.2.1/gradle-api-3.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.3.1/gradle-api-3.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.4.0/gradle-api-3.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.5.3/gradle-api-3.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-core/3.0.0/gradle-core-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-core/3.0.1/gradle-core-3.0.1.pom
@ -202,7 +186,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.1/gra
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.4/gradle-3.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.3.1/gradle-3.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.4.0/gradle-3.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-core/1.0.0-alpha10/jetifier-core-1.0.0-alpha10.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-core/1.0.0-beta02/jetifier-core-1.0.0-beta02.pom
@ -215,28 +198,24 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.1.4/manifest-merger-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.2.1/manifest-merger-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.3.1/manifest-merger-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.4.0/manifest-merger-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.5.3/manifest-merger-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.0.0/common-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.0.1/common-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.1.4/common-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.2.1/common-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.3.1/common-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.4.0/common-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.5.3/common-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.0.0/ddmlib-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.0.1/ddmlib-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.1.4/ddmlib-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.2.1/ddmlib-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.3.1/ddmlib-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.4.0/ddmlib-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.5.3/ddmlib-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.0.0/dvlib-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.0.1/dvlib-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.1.4/dvlib-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.2.1/dvlib-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.3.1/dvlib-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.4.0/dvlib-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.5.3/dvlib-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/external/com-intellij/intellij-core/26.0.0/intellij-core-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/external/com-intellij/intellij-core/26.0.1/intellij-core-26.0.1.pom
@ -250,7 +229,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-ap
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.1.4/layoutlib-api-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.2.1/layoutlib-api-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.3.1/layoutlib-api-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.4.0/layoutlib-api-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.5.3/layoutlib-api-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-api/26.0.0/lint-api-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-api/26.0.1/lint-api-26.0.1.pom
@ -261,7 +239,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-checks/26.5.
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.1.4/lint-gradle-api-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.2.1/lint-gradle-api-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.3.1/lint-gradle-api-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.4.0/lint-gradle-api-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.5.3/lint-gradle-api-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle/26.5.3/lint-gradle-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint/26.0.0/lint-26.0.0.pom
@ -272,21 +249,18 @@ https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.0.1/repo
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.1.4/repository-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.2.1/repository-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.3.1/repository-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.4.0/repository-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.5.3/repository-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.0.0/sdklib-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.0.1/sdklib-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.1.4/sdklib-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.2.1/sdklib-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.3.1/sdklib-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.4.0/sdklib-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.5.3/sdklib-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.0.0/sdk-common-26.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.0.1/sdk-common-26.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.1.4/sdk-common-26.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.2.1/sdk-common-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.3.1/sdk-common-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.4.0/sdk-common-26.4.0.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.5.3/sdk-common-26.5.3.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/17.0.0/play-services-basement-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-base/17.0.0/play-services-base-17.0.0.pom
@ -409,12 +383,6 @@ https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.6.0/soload
https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.8.2/soloader-0.8.2.pom
https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.9.0/soloader-0.9.0.pom
https://repo.maven.apache.org/maven2/com/facebook/stetho/stetho/1.3.1/stetho-1.3.1.pom
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/annotations/4.11.0/annotations-4.11.0.pom
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/compiler/4.11.0/compiler-4.11.0.pom
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/disklrucache/4.11.0/disklrucache-4.11.0.pom
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/gifdecoder/4.11.0/gifdecoder-4.11.0.pom
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/glide/4.11.0/glide-4.11.0.pom
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/okhttp3-integration/4.11.0/okhttp3-integration-4.11.0.pom
https://repo.maven.apache.org/maven2/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.pom
https://repo.maven.apache.org/maven2/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.pom
https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/3/auto-parent-3.pom
@ -471,8 +439,8 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/4.0.0-rc-
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.0.0/protobuf-parent-3.0.0.pom
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.4.0/protobuf-parent-3.4.0.pom
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.0.0-rc-2/protobuf-parent-4.0.0-rc-2.pom
https://repo.maven.apache.org/maven2/com/google/truth/truth-parent/1.1/truth-parent-1.1.pom
https://repo.maven.apache.org/maven2/com/google/truth/truth/1.1/truth-1.1.pom
https://repo.maven.apache.org/maven2/com/google/truth/truth-parent/1.1.2/truth-parent-1.1.2.pom
https://repo.maven.apache.org/maven2/com/google/truth/truth/1.1.2/truth-1.1.2.pom
https://repo.maven.apache.org/maven2/com/google/zxing/core/3.3.0/core-3.3.0.pom
https://repo.maven.apache.org/maven2/com/google/zxing/zxing-parent/3.3.0/zxing-parent-3.3.0.pom
https://repo.maven.apache.org/maven2/com/intellij/annotations/12.0/annotations-12.0.pom
@ -481,11 +449,9 @@ https://repo.maven.apache.org/maven2/com/parse/bolts/bolts-tasks/1.4.0/bolts-tas
https://repo.maven.apache.org/maven2/com/squareup/javapoet/1.8.0/javapoet-1.8.0.pom
https://repo.maven.apache.org/maven2/com/squareup/javawriter/2.5.0/javawriter-2.5.0.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.12.12/okhttp-urlconnection-3.12.12.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.9.1/okhttp-3.9.1.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.1/okhttp-3.12.1.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.12/okhttp-3.12.12.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/4.10.0-RC1/okhttp-4.10.0-RC1.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.9.1/parent-3.9.1.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/5.0.0-alpha.2/okhttp-5.0.0-alpha.2.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.1/parent-3.12.1.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.12/parent-3.12.12.pom
https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.15.0/okio-parent-1.15.0.pom
@ -625,18 +591,18 @@ https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.48/bcprov
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk15on-1.56.pom
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.60/bcprov-jdk15on-1.60.pom
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.pom
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.9.1/checker-qual-3.9.1.pom
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.10.0/checker-qual-3.10.0.pom
https://repo.maven.apache.org/maven2/org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-all/2.4.15/groovy-all-2.4.15.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.19/animal-sniffer-annotations-1.19.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.20/animal-sniffer-annotations-1.20.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.17/animal-sniffer-parent-1.17.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.19/animal-sniffer-parent-1.19.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.20/animal-sniffer-parent-1.20.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/34/mojo-parent-34.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/40/mojo-parent-40.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/50/mojo-parent-50.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/61/mojo-parent-61.pom
https://repo.maven.apache.org/maven2/org/conscrypt/conscrypt-android/2.0.0/conscrypt-android-2.0.0.pom
https://repo.maven.apache.org/maven2/org/easymock/easymockclassextension/3.2/easymockclassextension-3.2.pom
https://repo.maven.apache.org/maven2/org/easymock/easymock-parent/3.2/easymock-parent-3.2.pom
@ -682,7 +648,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-native-utils/1.
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.1.3-2/kotlin-reflect-1.1.3-2.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.2.0/kotlin-reflect-1.2.0.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.20/kotlin-reflect-1.3.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.21/kotlin-reflect-1.3.21.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.3.50/kotlin-scripting-common-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.50/kotlin-scripting-compiler-embeddable-1.3.50.pom
@ -692,18 +657,16 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71/kotlin-stdlib-common-1.2.71.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.0/kotlin-stdlib-common-1.3.0.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.20/kotlin-stdlib-common-1.3.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.21/kotlin-stdlib-common-1.3.21.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.31/kotlin-stdlib-common-1.3.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.10/kotlin-stdlib-common-1.4.10.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.20/kotlin-stdlib-common-1.4.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.21/kotlin-stdlib-common-1.4.21.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71/kotlin-stdlib-jdk7-1.2.71.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.20/kotlin-stdlib-jdk7-1.3.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.21/kotlin-stdlib-jdk7-1.3.21.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.2.71/kotlin-stdlib-jdk8-1.2.71.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.20/kotlin-stdlib-jdk8-1.3.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.21/kotlin-stdlib-jdk8-1.3.21.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.50/kotlin-stdlib-jdk8-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jre7/1.2.0/kotlin-stdlib-jre7-1.2.0.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jre8/1.2.0/kotlin-stdlib-jre8-1.2.0.pom
@ -713,11 +676,11 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.20/k
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.71/kotlin-stdlib-1.2.71.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.0/kotlin-stdlib-1.3.0.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.20/kotlin-stdlib-1.3.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.21/kotlin-stdlib-1.3.21.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.31/kotlin-stdlib-1.3.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.10/kotlin-stdlib-1.4.10.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.20/kotlin-stdlib-1.4.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.21/kotlin-stdlib-1.4.21.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.3.50/kotlin-util-io-1.3.50.pom
https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.5.2/junit-jupiter-api-5.5.2.pom
https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.5.2/junit-platform-commons-1.5.2.pom
@ -732,10 +695,10 @@ https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/5.1/asm-analysis-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/6.0/asm-analysis-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/9.0/asm-analysis-9.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/9.1/asm-analysis-9.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/5.1/asm-commons-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/6.0/asm-commons-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/9.0/asm-commons-9.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/9.1/asm-commons-9.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-debug-all/5.0.1/asm-debug-all-5.0.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-debug-all/6.0_BETA/asm-debug-all-6.0_BETA.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/5.0.1/asm-parent-5.0.1.pom
@ -746,13 +709,13 @@ https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/6.0_BETA/asm-parent-
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/5.1/asm-tree-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/6.0/asm-tree-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/9.0/asm-tree-9.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/9.1/asm-tree-9.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/5.1/asm-util-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/6.0/asm-util-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/5.1/asm-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/6.0/asm-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.0/asm-9.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.1/asm-9.1.pom
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.3/ow2-1.3.pom
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.5/ow2-1.5.pom
https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom

View File

@ -12,7 +12,6 @@ react-native-config
react-native-dark-mode
react-native-device-info
react-native-dialogs
react-native-fast-image
react-native-fs
react-native-gesture-handler
react-native-haptic-feedback

View File

@ -41,7 +41,6 @@
"react-native-dark-mode": "^0.2.2",
"react-native-device-info": "^5.6.1",
"react-native-dialogs": "^1.0.4",
"react-native-fast-image": "^8.3.4",
"react-native-fetch-polyfill": "^1.1.2",
"react-native-fs": "^2.14.1",
"react-native-gesture-handler": "^1.8.0",

View File

@ -1,11 +0,0 @@
patch-package
--- a/node_modules/metro/src/DeltaBundler/WorkerFarm.js
+++ b/node_modules/metro/src/DeltaBundler/WorkerFarm.js
@@ -130,6 +130,7 @@ class WorkerFarm {
if (execArgv.length > 0 && execArgv[0].charAt(0) !== "-") {
execArgv.shift();
}
+ execArgv.push("--max-old-space-size=8192");
const env = _extends({}, process.env, {
// Force color to print syntax highlighted code frames.

View File

@ -16,7 +16,7 @@
[refactor-nrepl "2.5.0"]
[cider/cider-nrepl "0.25.3"]
[cider/piggieback "0.4.1"]
[re-frisk-remote "1.3.8"]
[re-frisk-remote "1.3.11"]
;; routing
[bidi "2.1.6"]
;; test dependencies
@ -51,7 +51,7 @@
;; in the SHADOW_HOST env variable to make sure that
;; it will use the right interface
:local-ip #shadow/env "SHADOW_HOST"}
:chunks {:fleets status-im.default-fleet/default-fleets
:chunks {:fleets status-im.fleet.default-fleet/default-fleets
:chats status-im.chat.default-chats/default-chats}
:release {:closure-defines {status-im.utils.config/INFURA_TOKEN #shadow/env "INFURA_TOKEN"}
:compiler-options {:output-feature-set :es6

View File

@ -1,6 +1,6 @@
(ns mocks.js-dependencies
(:require-macros [status-im.utils.slurp :refer [slurp]])
(:require [status-im.default-fleet :refer (default-fleets)])
(:require [status-im.fleet.default-fleet :refer (default-fleets)])
(:require [status-im.chat.default-chats :refer (default-chats)]))
(def action-button #js {:default #js {:Item #js {}}})
@ -25,7 +25,6 @@
:RefreshControl {}
:FlatList {}
:Text {}
:ProgressBarAndroid {}
:StatusBar {}
:ScrollView {}
:KeyboardAvoidingView {}
@ -72,7 +71,7 @@
(def reanimated-bottom-sheet #js {:default #js {}})
(def vector-icons #js {:default #js {}})
(def icons #js {:default #js {}})
(def webview #js {:WebView #js {}})
(def status-keycard #js {:default #js {}})
@ -196,10 +195,6 @@
(def push-notification-ios #js {})
(def fast-image #js {:priority #js {}
:cacheControl #js {}
:resizeMode #js {}})
;; Update i18n_resources.cljs
(defn mock [module]
(case module
@ -224,7 +219,6 @@
"react-native-dialogs" dialogs
"react-native" react-native
"react-native-fs" fs
"react-native-fast-image" fast-image
"react-native-mail" react-native-mail
"react-native-image-resizer" image-resizer
"react-native-haptic-feedback" react-native-haptic-feedback

View File

@ -6,7 +6,7 @@
[quo.design-system.spacing :as spacing]
[quo.components.text :as text]
;; FIXME:
[status-im.ui.components.icons.vector-icons :as icons]))
[status-im.ui.components.icons.icons :as icons]))
(defn style-container [type]
(merge {:height 44

View File

@ -7,7 +7,7 @@
[quo.gesture-handler :as gh]
[quo.design-system.colors :as colors]
[quo.components.controls.styles :as styles]
[status-im.ui.components.icons.vector-icons :as icons]))
[status-im.ui.components.icons.icons :as icons]))
(defn control-builder [component]
(fn [props]

View File

@ -9,7 +9,7 @@
[quo.components.controls.view :as controls]
[quo.components.tooltip :as tooltip]
;; FIXME:
[status-im.ui.components.icons.vector-icons :as icons]
[status-im.ui.components.icons.icons :as icons]
[quo.components.animated.pressable :as animated]))
(defn themes [theme]

View File

@ -4,7 +4,7 @@
[oops.core :refer [ocall]]
[quo.react-native :as rn]
;; TODO(Ferossgp): Move icon component to lib
[status-im.ui.components.icons.vector-icons :as icons]
[status-im.ui.components.icons.icons :as icons]
[quo.components.tooltip :as tooltip]
[quo.platform :as platform]
[quo.design-system.typography :as typography]

View File

@ -7,7 +7,7 @@
[quo.design-system.spacing :as spacing]
[quo.platform :as platform]
;; FIXME(Ferossgp): Dependecy on status
[status-im.ui.components.icons.vector-icons :as vector-icons]))
[status-im.ui.components.icons.icons :as icons]))
(def ^:private initial-height 22)
@ -66,7 +66,7 @@
(when platform/ios?
;; NOTE(Ferossgp): Android does not show elevation for tooltip making it lost on white bg
[vector-icons/icon :icons/tooltip-tip {:width 18
:height 8
:container-style {:elevation 3}
:color (:ui-background @colors/theme)}])]]])))
[icons/icon :icons/tooltip-tip {:width 18
:height 8
:container-style {:elevation 3}
:color (:ui-background @colors/theme)}])]]])))

View File

@ -1,26 +0,0 @@
(ns quo.fast-image
(:require [reagent.core :as reagent]
["react-native-fast-image" :as react-native-fast-image]))
;; Fast iamge
;;TODO : Gif crashes on Samsung S10 https://github.com/status-im/status-react/issues/11610
(def image (reagent/adapt-react-class react-native-fast-image))
(def fast-image-preload (.-preload react-native-fast-image))
(def fast-image-priorities
{:low (-> ^js react-native-fast-image .-priority .-low)
:normal (-> ^js react-native-fast-image .-priority .-normal)
:high (-> ^js react-native-fast-image .-priority .-high)})
(def fast-image-cache
{:immutable (-> ^js react-native-fast-image .-cacheControl .-immutable)
:web (-> ^js react-native-fast-image .-cacheControl .-web)
:cache-only (-> ^js react-native-fast-image .-cacheControl .-cacheOnly)})
(def fast-image-resize-mode
{:contain (-> ^js react-native-fast-image .-resizeMode .-contain)
:cover (-> ^js react-native-fast-image .-resizeMode .-cover)
:stretch (-> ^js react-native-fast-image .-resizeMode .-stretch)
:center (-> ^js react-native-fast-image .-resizeMode .-center)})

View File

@ -1,13 +1,12 @@
(ns quo.previews.icons
(:require [quo.design-system.colors :as colors]
[quo.react-native :as rn]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.icons.vector-icons :as vector-icons]))
[status-im.ui.components.icons.icons :as icons]))
(defn preview []
[rn/scroll-view {:background-color (:ui-background @colors/theme)
:flex 1}
(for [i (keys icons/icons)]
[rn/view {:flex-direction :row}
[vector-icons/icon (keyword i)]
[icons/icon (keyword i)]
[rn/text i]])])

View File

@ -1,11 +0,0 @@
(ns reagent.dom)
;; Shimmed namespace to make reagent 0.6.0 work with react native packager
(defn render
([_ _])
([_ _ _]))
(defn unmount-component-at-node [_])
(defn dom-node [_])
(defn force-update-all [])

View File

@ -8,7 +8,7 @@
[status-im.acquisition.gateway :as gateway]
[status-im.chat.models :as chat]
[status-im.navigation :as navigation]
[status-im.ui.components.bottom-sheet.core :as bottom-sheet]))
[status-im.bottom-sheet.core :as bottom-sheet]))
(def public-chat "public-chat")

View File

@ -2,7 +2,7 @@
(:require [re-frame.core :as re-frame]
[status-im.utils.fx :as fx]
[status-im.ethereum.core :as ethereum]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.utils.types :as types]))

View File

@ -2,7 +2,7 @@
(:require [re-frame.core :as re-frame]
[status-im.notifications.android :as pn-android]
[status-im.utils.fx :as fx]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.notifications.core :as notifications]
[status-im.ui.components.react :as react]
[quo.platform :as platform]

View File

@ -0,0 +1,98 @@
(ns status-im.add-new.core
(:require [clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.ens :as ens]
[status-im.ethereum.resolver :as resolver]
[status-im.add-new.db :as db]
[status-im.utils.random :as random]
[status-im.utils.utils :as utils]
[status-im.utils.fx :as fx]
[status-im.chat.models :as chat]
[status-im.i18n.i18n :as i18n]
[status-im.contact.core :as contact]
[status-im.router.core :as router]
[status-im.navigation :as navigation]))
(re-frame/reg-fx
:resolve-public-key
(fn [{:keys [chain contact-identity cb]}]
(let [registry (get ens/ens-registries chain)
ens-name (resolver/ens-name-parse contact-identity)]
(resolver/pubkey registry ens-name cb))))
;;NOTE we want to handle only last resolve
(def resolve-last-id (atom nil))
(fx/defn new-chat-set-new-identity
{:events [:new-chat/set-new-identity]}
[{db :db} new-identity-raw new-ens-name id]
(when (or (not id) (= id @resolve-last-id))
(let [new-identity (utils/safe-trim new-identity-raw)
is-public-key? (and (string? new-identity)
(string/starts-with? new-identity "0x"))
is-ens? (and (not is-public-key?)
(ens/valid-eth-name-prefix? new-identity))
error (db/validate-pub-key db new-identity)]
(reset! resolve-last-id nil)
(merge {:db (assoc db
:contacts/new-identity
{:public-key new-identity
:state (cond is-ens?
:searching
(and (string/blank? new-identity) (not new-ens-name))
:empty
error
:error
:else
:valid)
:error error
:ens-name (resolver/ens-name-parse new-ens-name)})}
(when is-ens?
(reset! resolve-last-id (random/id))
(let [chain (ethereum/chain-keyword db)]
{:resolve-public-key
{:chain chain
:contact-identity new-identity
:cb #(re-frame/dispatch [:new-chat/set-new-identity
%
new-identity
@resolve-last-id])}}))))))
(fx/defn clear-new-identity
{:events [::clear-new-identity ::new-chat-focus]}
[{:keys [db]}]
{:db (dissoc db :contacts/new-identity)})
(fx/defn qr-code-handled
{:events [::qr-code-handled]}
[{:keys [db] :as cofx} {:keys [type public-key chat-id data]} {:keys [new-contact?] :as opts}]
(let [public-key? (and (string? data)
(string/starts-with? data "0x"))
chat-key (cond
(= type :private-chat) chat-id
(= type :contact) public-key
(and (= type :undefined)
public-key?) data)
validation-result (db/validate-pub-key db chat-key)]
(if-not validation-result
(if new-contact?
(fx/merge cofx
(contact/add-contact chat-key nil)
(navigation/navigate-to-cofx :contacts-list {}))
(chat/start-chat cofx chat-key))
{:utils/show-popup {:title (i18n/label :t/unable-to-read-this-code)
:content (case validation-result
:invalid
(i18n/label :t/use-valid-contact-code)
:yourself
(i18n/label :t/can-not-add-yourself))
:on-dismiss #(re-frame/dispatch [:navigate-to :home])}})))
(fx/defn qr-code-scanned
{:events [:contact/qr-code-scanned]}
[{:keys [db]} data opts]
{::router/handle-uri {:chain (ethereum/chain-keyword db)
:chats (get db :chats)
:uri data
:cb #(re-frame/dispatch [::qr-code-handled % opts])}})

View File

@ -1,4 +1,4 @@
(ns status-im.ui.screens.add-new.new-chat.db
(ns status-im.add-new.db
(:require [status-im.ethereum.ens :as ens]
[cljs.spec.alpha :as spec]))
@ -12,4 +12,14 @@
(= public-key ens/default-key))
:invalid
(own-public-key? db public-key)
:yourself))
:yourself))
(spec/def ::name :global/not-empty-string)
(spec/def ::topic (spec/and :global/not-empty-string
(partial re-matches #"[a-z0-9\-]+")))
(defn valid-topic? [topic]
(and topic
(spec/valid? ::topic topic)
(not (spec/valid? :global/public-key topic))))

View File

@ -1,7 +1,7 @@
(ns status-im.bootnodes.core
(:require [clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.navigation :as navigation]
[status-im.utils.fx :as fx]))
@ -22,6 +22,7 @@
(get-in cofx [:db :multiaccount :custom-bootnodes network id])))
(fx/defn set-input
{:events [:bootnodes.ui/input-changed]}
[{:keys [db]} input-key value]
{:db (update
db
@ -35,6 +36,7 @@
:url (not (valid-address? value)))})})
(fx/defn edit
{:events [:bootnodes.ui/add-bootnode-pressed]}
[{:keys [db] :as cofx} id]
(let [{:keys [id
address
@ -61,6 +63,8 @@
[:multiaccounts.update.callback/save-settings-success])}))))
(fx/defn upsert
{:events [:bootnodes.ui/save-pressed]
:interceptors [(re-frame/inject-cofx :random-id-generator)]}
[{{:bootnodes/keys [manage] :keys [multiaccount] :as db} :db
random-id-generator :random-id-generator :as cofx}]
(let [{:keys [name id url]} manage
@ -94,11 +98,13 @@
{:success-event [:multiaccounts.update.callback/save-settings-success]})))
(fx/defn set-bootnodes-from-qr
{:events [:bootnodes.callback/qr-code-scanned]}
[cofx url]
(assoc (set-input cofx :url (string/trim url))
:dispatch [:navigate-back]))
(fx/defn show-delete-bootnode-confirmation
{:events [:bootnodes.ui/delete-pressed]}
[_ bootnode-id]
{:ui/show-confirmation {:title (i18n/label :t/delete-bootnode-title)
:content (i18n/label :t/delete-bootnode-are-you-sure)
@ -106,6 +112,7 @@
:on-accept #(re-frame/dispatch [:bootnodes.ui/delete-confirmed bootnode-id])}})
(fx/defn delete-bootnode
{:events [:bootnodes.ui/delete-confirmed]}
[cofx bootnode-id]
(fx/merge cofx
(delete bootnode-id)

View File

@ -0,0 +1,22 @@
(ns status-im.bottom-sheet.core
(:require [status-im.utils.fx :as fx]))
(fx/defn show-bottom-sheet
[{:keys [db]} {:keys [view options]}]
{:db (assoc db
:bottom-sheet/show? true
:bottom-sheet/view view
:bottom-sheet/options options)})
(fx/defn show-bottom-sheet-event
{:events [:bottom-sheet/show-sheet]}
[cofx view options]
(show-bottom-sheet
cofx
{:view view
:options options}))
(fx/defn hide-bottom-sheet
{:events [:bottom-sheet/hide]}
[{:keys [db]}]
{:db (assoc db :bottom-sheet/show? false)})

View File

@ -7,7 +7,7 @@
[status-im.ethereum.ens :as ens]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.ethereum.resolver :as resolver]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.native-module.core :as status]
[status-im.ui.components.list-selection :as list-selection]
[status-im.navigation :as navigation]
@ -22,7 +22,7 @@
[taoensso.timbre :as log]
[status-im.signing.core :as signing]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.ui.components.bottom-sheet.core :as bottom-sheet]
[status-im.bottom-sheet.core :as bottom-sheet]
[status-im.browser.webview-ref :as webview-ref]
["eth-phishing-detect" :as eth-phishing-detect]
[status-im.utils.debounce :as debounce]))
@ -50,6 +50,7 @@
(string/starts-with? url "https://")))))
(fx/defn remove-browser
{:events [:browser.ui/remove-browser-pressed]}
[{:keys [db]} browser-id]
{:db (update-in db [:browser/browsers] dissoc browser-id)
::json-rpc/call [{:method "browsers_deleteBrowser"
@ -104,6 +105,7 @@
{:db (update db :browser/options assoc :url (or resolved-url current-url) :resolving? false)}))))
(fx/defn resolve-ens-contenthash
{:events [:browser.callback/resolve-ens-contenthash]}
[{:keys [db]}]
(let [current-url (get-current-url (get-current-browser db))
host (http/url-host current-url)
@ -160,6 +162,7 @@
(pos? history-index))
(fx/defn navigate-to-previous-page
{:events [:browser.ui/previous-page-button-pressed]}
[cofx]
(let [{:keys [history-index] :as browser} (get-current-browser (:db cofx))]
(when (can-go-back? browser)
@ -178,6 +181,7 @@
(< history-index (dec (count history))))
(fx/defn navigate-to-next-page
{:events [:browser.ui/next-page-button-pressed]}
[cofx]
(let [{:keys [history-index] :as browser} (get-current-browser (:db cofx))]
(when (can-go-forward? browser)
@ -212,6 +216,7 @@
(str "https://swarm-gateways.net/bzz:/" hash))
(fx/defn resolve-ens-multihash-success
{:events [:browser.callback/resolve-ens-multihash-success]}
[{:keys [db] :as cofx} m]
(let [current-url (get-current-url (get-current-browser db))
host (http/url-host current-url)
@ -225,12 +230,14 @@
(assoc-in [:browser/options :resolved-ens host] gateway))})))
(fx/defn resolve-ens-multihash-error
{:events [:browser.callback/resolve-ens-multihash-error]}
[{:keys [db] :as cofx}]
(update-browser-options cofx {:url (get-current-url (get-current-browser db))
:resolving? false
:error? true}))
(fx/defn handle-browser-error
{:events [:browser/error-occured]}
[cofx]
(fx/merge cofx
(update-browser-option :error? true)
@ -242,7 +249,8 @@
{:browser/show-web-browser-selection url}))
(fx/defn handle-message-link
[cofx link]
{:events [:browser.ui/message-link-pressed]}
[_ link]
(if (links/universal-link? link)
{:dispatch [:universal-links/handle-url link]}
{:browser/show-browser-selection link}))
@ -271,6 +279,7 @@
(update-browser cofx (assoc browser :name title)))))
(fx/defn navigation-state-changed
{:events [:browser/navigation-state-changed]}
[cofx event error?]
(let [{:strs [url loading title]} (js->clj event)
deep-link? (links/deep-link? url)]
@ -286,6 +295,7 @@
"Opens a url in the current browser, which mean no new entry is added to the home page
and history of the current browser is updated so that the user can navigate back to the
origin url"
{:events [:browser.ui/url-submitted]}
[cofx url]
(let [browser (get-current-browser (:db cofx))
normalized-url (http/normalize-and-decode-url url)]
@ -300,6 +310,7 @@
"Opens a url in the browser. If a host can be extracted from the url and
there is already a browser for this host, this browser is reused
If the browser is reused, the history is flushed"
{:events [:browser.ui/open-url]}
[{:keys [db] :as cofx} url]
(let [normalized-url (http/normalize-and-decode-url url)
browser {:browser-id (random/id)
@ -317,6 +328,7 @@
(fx/defn open-existing-browser
"Opens an existing browser with it's history"
{:events [:browser.ui/browser-item-selected]}
[{:keys [db] :as cofx} browser-id]
(let [browser (get-in db [:browser/browsers browser-id])]
(fx/merge cofx
@ -364,12 +376,17 @@
[second-param (if typed? first-param (normalize-message first-param))]))))
(fx/defn send-to-bridge
[cofx message]
{:events [:browser.callback/call-rpc]}
[_ message]
{:browser/send-to-bridge message})
(defn web3-sign-message? [method]
(#{constants/web3-sign-typed-data constants/web3-sign-typed-data-v3 constants/web3-personal-sign
constants/web3-keycard-sign-typed-data} method))
(fx/defn web3-send-async
[cofx {:keys [method params id] :as payload} message-id]
(let [message? (constants/web3-sign-message? method)
(let [message? (web3-sign-message? method)
dapps-address (get-in cofx [:db :multiaccount :dapps-address])
typed? (not= constants/web3-personal-sign method)]
(if (or message? (= constants/web3-send-transaction method))
@ -434,19 +451,22 @@
(web3-send-async cofx payload message-id)))
(fx/defn handle-scanned-qr-code
[cofx data {:keys [dapp-name permission message-id]}]
{:events [:browser.bridge.callback/qr-code-scanned]}
[cofx data {{:keys [dapp-name permission message-id]} :data}]
(fx/merge (assoc-in cofx [:db :browser/options :yielding-control?] false)
(browser.permissions/send-response-to-bridge permission message-id true data)
(browser.permissions/process-next-permission dapp-name)
(navigation/navigate-back)))
(fx/defn handle-canceled-qr-code
[cofx {:keys [dapp-name permission message-id]}]
{:events [:browser.bridge.callback/qr-code-canceled]}
[cofx {{:keys [dapp-name permission message-id]} :data}]
(fx/merge (assoc-in cofx [:db :browser/options :yielding-control?] false)
(browser.permissions/send-response-to-bridge permission message-id true nil)
(browser.permissions/process-next-permission dapp-name)))
(fx/defn process-bridge-message
{:events [:browser/bridge-message-received]}
[{:keys [db] :as cofx} message]
(let [browser (get-current-browser db)
url-original (get-current-url browser)
@ -534,3 +554,28 @@
[cofx]
(debounce/clear :browser/navigation-state-changed)
(navigation/navigate-to-cofx cofx :empty-tab nil))
(fx/defn url-input-pressed
{:events [:browser.ui/url-input-pressed]}
[cofx _]
(update-browser-option cofx :url-editing? true))
(fx/defn url-input-blured
{:events [:browser.ui/url-input-blured]}
[cofx]
(update-browser-option cofx :url-editing? false))
(fx/defn lock-pressed
{:events [:browser.ui/lock-pressed]}
[cofx secure?]
(update-browser-option cofx :show-tooltip (if secure? :secure :not-secure)))
(fx/defn close-tooltip-pressed
{:events [:browser.ui/close-tooltip-pressed]}
[cofx]
(update-browser-option cofx :show-tooltip nil))
(fx/defn loading-started
{:events [:browser/loading-started]}
[cofx]
(update-browser-options cofx {:error? false :loading? true}))

View File

@ -1,7 +1,7 @@
(ns status-im.browser.permissions
(:require [status-im.constants :as constants]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.navigation :as navigation]
[status-im.qr-scanner.core :as qr-scanner]
[status-im.utils.fx :as fx]))
@ -80,6 +80,7 @@
:on-success #()}]}))
(fx/defn revoke-dapp-permissions
{:events [:dapps/revoke-access]}
[cofx dapp]
(fx/merge cofx
(revoke-permissions dapp)
@ -121,6 +122,7 @@
(fx/defn allow-permission
"Add permission to set of allowed permission and process next permission"
{:events [:browser.permissions.ui/dapp-permission-allowed]}
[{:keys [db] :as cofx}]
(let [{:keys [requested-permission message-id dapp-name yield-control? params]}
(get-in db [:browser/options :show-permission])]
@ -132,6 +134,7 @@
(fx/defn deny-permission
"Add permission to set of allowed permission and process next permission"
{:events [:browser.permissions.ui/dapp-permission-denied]}
[{:keys [db] :as cofx}]
(let [{:keys [requested-permission message-id dapp-name]} (get-in db [:browser/options :show-permission])]
(fx/merge (assoc-in cofx [:db :browser/options :show-permission] nil)

View File

@ -1,46 +0,0 @@
(ns status-im.chaos-mode.core
(:require [status-im.utils.fx :as fx]
[re-frame.core :as re-frame]
[status-im.utils.utils :as utils]
[status-im.utils.http :as http]
[status-im.utils.types :as types]))
(def interval-5m (* 5 60 1000))
(defonce interval-id (atom nil))
(def url "https://cloudflare-dns.com/dns-query?name=chaos-unicorn-day.status.im&type=TXT")
(defn chaos-mode-switched [chaos-mode?]
(re-frame/dispatch [:multiaccounts.ui/chaos-mode-switched chaos-mode?]))
(defn handle-response [response]
(let [status-id (:Status (types/json->clj response))
chaos-mode? (zero? status-id)]
(chaos-mode-switched chaos-mode?)))
(defn check-record []
(http/get url
handle-response
(fn [])
nil
{"accept" "application/dns-json"}))
(re-frame/reg-fx
:chaos-mode/start-checking
(fn []
(when @interval-id
(utils/clear-interval @interval-id))
(check-record)
(reset!
interval-id
(utils/set-interval check-record interval-5m))))
(re-frame/reg-fx
:chaos-mode/stop-checking
(fn []
(utils/clear-interval @interval-id)))
(fx/defn check-chaos-mode [_]
{:chaos-mode/start-checking nil})
(fx/defn stop-checking [_]
{:chaos-mode/stop-checking nil})

View File

@ -7,7 +7,7 @@
[status-im.data-store.chats :as chats-store]
[status-im.data-store.messages :as messages-store]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.mailserver.core :as mailserver]
[status-im.ui.components.colors :as colors]
[status-im.constants :as constants]
@ -16,7 +16,9 @@
[status-im.utils.fx :as fx]
[status-im.utils.utils :as utils]
[status-im.utils.types :as types]
[status-im.ui.screens.add-new.new-public-chat.db :as new-public-chat.db]))
[status-im.add-new.db :as new-public-chat.db]
[status-im.mailserver.topics :as mailserver.topics]
[status-im.mailserver.constants :as mailserver.constants]))
(defn chats []
(:chats (types/json->clj (js/require "./chats.js"))))
@ -85,6 +87,7 @@
by mailserver, corresponding event :chat.ui/join-time-messages-checked
dissociates these two fileds via this function, thereby signalling that the
public chat is not fresh anymore."
{:events [:chat.ui/join-time-messages-checked]}
[{:keys [db] :as cofx} chat-id]
(when (:might-have-join-time-messages? (get-chat cofx chat-id))
{:db (dissoc-join-time-fields db chat-id)}))
@ -198,6 +201,7 @@
(fx/defn clear-history
"Clears history of the particular chat"
{:events [:chat.ui/clear-history]}
[{:keys [db] :as cofx} chat-id remove-chat?]
(let [{:keys [last-message public?
deleted-at-clock-value]} (get-in db [:chats chat-id])
@ -227,14 +231,15 @@
(fx/defn remove-chat
"Removes chat completely from app, producing all necessary effects for that"
[{:keys [db now] :as cofx} chat-id navigate-home?]
{:events [:chat.ui/remove-chat]}
[{:keys [db now] :as cofx} chat-id]
(fx/merge cofx
(mailserver/remove-gaps chat-id)
(mailserver/remove-range chat-id)
(deactivate-chat chat-id)
(clear-history chat-id true)
(transport.filters/stop-listening chat-id)
(when (and navigate-home? (not (= (:view-id db) :home)))
(when (not (= (:view-id db) :home))
(navigation/navigate-to-cofx :home {}))))
(fx/defn offload-all-messages
@ -265,6 +270,7 @@
(fx/defn navigate-to-chat
"Takes coeffects map and chat-id, returns effects necessary for navigation and preloading data"
{:events [:chat.ui/navigate-to-chat]}
[{db :db :as cofx} chat-id]
(fx/merge cofx
{:db (assoc db :inactive-chat-id chat-id)}
@ -273,6 +279,7 @@
(fx/defn start-chat
"Start a chat, making sure it exists"
{:events [:chat.ui/start-chat]}
[{:keys [db] :as cofx} chat-id]
;; don't allow to open chat with yourself
(when (not= (multiaccounts.model/current-public-key cofx) chat-id)
@ -290,6 +297,7 @@
(fx/defn start-public-chat
"Starts a new public chat"
{:events [:chat.ui/start-public-chat]}
[cofx topic {:keys [dont-navigate? profile-public-key]}]
(if (or (new-public-chat.db/valid-topic? topic) profile-public-key)
(if (active-chat? cofx topic)
@ -321,6 +329,7 @@
(fx/defn disable-chat-cooldown
"Turns off chat cooldown (protection against message spamming)"
{:events [:chat/disable-cooldown]}
[{:keys [db]}]
{:db (assoc db :chat/cooldown-enabled? false)})
@ -372,3 +381,58 @@
(fx/merge (assoc-in cofx [:db :contacts/identity] identity)
(contact.core/create-contact identity)
(navigation/navigate-to-cofx :profile nil)))
(fx/defn clear-history-pressed
{:events [:chat.ui/clear-history-pressed]}
[_ chat-id]
{:ui/show-confirmation
{:title (i18n/label :t/clear-history-title)
:content (i18n/label :t/clear-history-confirmation-content)
:confirm-button-text (i18n/label :t/clear-history-action)
:on-accept #(do
(re-frame/dispatch [:bottom-sheet/hide])
(re-frame/dispatch [:chat.ui/clear-history chat-id false]))}})
(fx/defn chat-ui-fill-gaps
{:events [:chat.ui/fill-gaps]}
[{:keys [db] :as cofx} gap-ids]
(let [chat-id (:current-chat-id db)
topics (mailserver.topics/topics-for-current-chat db)
gaps (keep
(fn [id]
(get-in db [:mailserver/gaps chat-id id]))
gap-ids)]
(mailserver/fill-the-gap
cofx
{:gaps gaps
:topics topics
:chat-id chat-id})))
(fx/defn chat-ui-fetch-more
{:events [:chat.ui/fetch-more]}
[{:keys [db] :as cofx}]
(let [chat-id (:current-chat-id db)
{:keys [lowest-request-from]}
(get-in db [:mailserver/ranges chat-id])
topics (mailserver.topics/topics-for-current-chat db)
gaps [{:id :first-gap
:to lowest-request-from
:from (- lowest-request-from mailserver.constants/one-day)}]]
(mailserver/fill-the-gap
cofx
{:gaps gaps
:topics topics
:chat-id chat-id})))
(fx/defn chat-ui-remove-chat-pressed
{:events [:chat.ui/remove-chat-pressed]}
[_ chat-id]
{:ui/show-confirmation
{:title (i18n/label :t/delete-confirmation)
:content (i18n/label :t/delete-chat-confirmation)
:confirm-button-text (i18n/label :t/delete)
:on-accept #(do
(re-frame/dispatch [:bottom-sheet/hide])
(re-frame/dispatch [:chat.ui/remove-chat chat-id]))}})

View File

@ -6,12 +6,13 @@
[status-im.chat.models.message :as chat.message]
[status-im.chat.models.message-content :as message-content]
[status-im.constants :as constants]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.utils.datetime :as datetime]
[status-im.utils.fx :as fx]
["emojilib" :as emojis]
[status-im.chat.models.mentions :as mentions]
[status-im.utils.utils :as utils]))
[status-im.utils.utils :as utils]
[status-im.multiaccounts.update.core :as multiaccounts.update]))
(defn text->emoji
"Replaces emojis in a specified `text`"
@ -26,10 +27,12 @@
(fx/defn set-chat-input-text
"Set input text for current-chat. Takes db and input text and cofx
as arguments and returns new fx. Always clear all validation messages."
{:events [:chat.ui/set-chat-input-text]}
[{{:keys [current-chat-id] :as db} :db} new-input]
{:db (assoc-in db [:chat/inputs current-chat-id :input-text] (text->emoji new-input))})
(fx/defn select-mention
{:events [:chat.ui/select-mention]}
[{:keys [db] :as cofx} text-input-ref {:keys [alias name searched-text match] :as user}]
(let [chat-id (:current-chat-id db)
new-text (mentions/new-input-text-with-mention cofx user)
@ -95,6 +98,7 @@
(fx/defn reply-to-message
"Sets reference to previous chat message and focuses on input"
{:events [:chat.ui/reply-to-message]}
[{:keys [db] :as cofx} message]
(let [current-chat-id (:current-chat-id db)]
(fx/merge cofx
@ -106,6 +110,7 @@
(fx/defn cancel-message-reply
"Cancels stage message reply"
{:events [:chat.ui/cancel-message-reply]}
[{:keys [db]}]
(let [current-chat-id (:current-chat-id db)]
{:db (assoc-in db [:chat/inputs current-chat-id :metadata :responding-to-message] nil)}))
@ -182,6 +187,7 @@
(fx/defn send-current-message
"Sends message from current chat input"
{:events [:chat.ui/send-current-message]}
[{{:keys [current-chat-id] :as db} :db :as cofx}]
(let [{:keys [input-text]} (get-in db [:chat/inputs current-chat-id])
input-text-with-mentions (mentions/check-mentions cofx input-text)]
@ -189,3 +195,19 @@
(send-messages input-text-with-mentions current-chat-id)
(mentions/clear-mentions)
(mentions/clear-cursor))))
(fx/defn chat-send-sticker
{:events [:chat/send-sticker]}
[{{:keys [current-chat-id multiaccount]} :db :as cofx} {:keys [hash] :as sticker}]
(fx/merge
cofx
(multiaccounts.update/multiaccount-update
:stickers/recent-stickers
(conj (remove #(= hash %) (:stickers/recent-stickers multiaccount)) hash)
{})
(send-sticker-message sticker current-chat-id)))
(fx/defn chat-send-audio
{:events [:chat/send-audio]}
[{{:keys [current-chat-id]} :db :as cofx} audio-path duration]
(send-audio-message cofx audio-path duration current-chat-id))

View File

@ -132,6 +132,7 @@
(message-seen/mark-messages-seen current-chat-id)))))
(fx/defn load-more-messages
{:events [:chat.ui/load-more-messages]}
[{:keys [db] :as cofx}]
(when-let [current-chat-id (:current-chat-id db)]
(when-let [session-id (get-in db [:pagination-info current-chat-id :messages-initialized?])]

View File

@ -228,6 +228,7 @@
(fx/defn delete-message
"Deletes chat message, rebuild message-list"
{:events [:chat.ui/delete-message]}
[{:keys [db] :as cofx} chat-id message-id]
(fx/merge cofx
{:db (update-in db [:messages chat-id] dissoc message-id)}

View File

@ -29,3 +29,10 @@
loaded-unviewed-ids)}
(messages-store/mark-messages-seen chat-id loaded-unviewed-ids nil)
(update-chats-unviewed-messages-count {:chat-id chat-id})))))
(fx/defn ui-mark-messages-seen
{:events [:chat.ui/mark-messages-seen]}
[{:keys [db] :as cofx} view-id]
(fx/merge cofx
{:db (assoc db :view-id view-id)}
(mark-messages-seen cofx (:current-chat-id db))))

View File

@ -0,0 +1,13 @@
(ns status-im.chat.models.transport
(:require [status-im.utils.fx :as fx]
[status-im.transport.message.core :as transport.message]
[status-im.chat.models.message :as chat.message]))
(fx/defn chat-ui-resend-message
{:events [:chat.ui/resend-message]}
[{:keys [db] :as cofx} chat-id message-id]
(let [message (get-in db [:messages chat-id message-id])]
(fx/merge
cofx
(transport.message/set-message-envelope-hash chat-id message-id (:message-type message) 1)
(chat.message/resend-message chat-id message-id))))

View File

@ -109,16 +109,16 @@
"3" {:clock-value 2}}}
:chats {chat-id {:last-message {:clock-value 10}}}}}]
(testing "it deletes all the messages"
(let [actual (chat/remove-chat cofx chat-id true)]
(let [actual (chat/remove-chat cofx chat-id)]
(is (= {} (get-in actual [:db :messages chat-id])))))
(testing "it sets a deleted-at-clock-value equal to the last message clock-value"
(let [actual (chat/remove-chat cofx chat-id true)]
(let [actual (chat/remove-chat cofx chat-id)]
(is (= 10 (get-in actual [:db :chats chat-id :deleted-at-clock-value])))))
(testing "it sets the chat as inactive"
(let [actual (chat/remove-chat cofx chat-id true)]
(let [actual (chat/remove-chat cofx chat-id)]
(is (= false (get-in actual [:db :chats chat-id :is-active])))))
(testing "it makes the relevant json-rpc calls"
(let [actual (chat/remove-chat cofx chat-id true)]
(let [actual (chat/remove-chat cofx chat-id)]
(is (::json-rpc/call actual))
(is (= 4 (count (::json-rpc/call actual))))))))

View File

@ -7,7 +7,7 @@
[status-im.constants :as constants]
[status-im.chat.models :as models.chat]
[status-im.transport.filters.core :as models.filters]
[status-im.ui.components.bottom-sheet.core :as bottom-sheet]
[status-im.bottom-sheet.core :as bottom-sheet]
[status-im.data-store.chats :as data-store.chats]
[status-im.ethereum.json-rpc :as json-rpc]))

View File

@ -1,34 +1,31 @@
(ns status-im.constants
(:require [status-im.react-native.resources :as resources]
[status-im.i18n :as i18n]))
(:require [status-im.react-native.resources :as resources]))
(def ethereum-rpc-url "http://localhost:8545")
(def ^:const ms-in-bg-for-require-bioauth 5000)
(def ms-in-bg-for-require-bioauth 5000)
(def ^:const content-type-text 1)
(def ^:const content-type-sticker 2)
(def ^:const content-type-status 3)
(def ^:const content-type-emoji 4)
(def ^:const content-type-command 5)
(def ^:const content-type-system-text 6)
(def ^:const content-type-image 7)
(def ^:const content-type-audio 8)
(def ^:const content-type-community 9)
(def content-type-text 1)
(def content-type-sticker 2)
(def content-type-status 3)
(def content-type-emoji 4)
(def content-type-command 5)
(def content-type-system-text 6)
(def content-type-image 7)
(def content-type-audio 8)
(def content-type-community 9)
(def ^:const emoji-reaction-love 1)
(def ^:const emoji-reaction-thumbs-up 2)
(def ^:const emoji-reaction-thumbs-down 3)
(def ^:const emoji-reaction-laugh 4)
(def ^:const emoji-reaction-sad 5)
(def ^:const emoji-reaction-angry 6)
(def emoji-reaction-love 1)
(def emoji-reaction-thumbs-up 2)
(def emoji-reaction-thumbs-down 3)
(def emoji-reaction-laugh 4)
(def emoji-reaction-sad 5)
(def emoji-reaction-angry 6)
(def one-to-one-chat-type 1)
(def public-chat-type 2)
(def private-group-chat-type 3)
(def profile-chat-type 4)
(def timeline-chat-type 5)
(def community-chat-type 6)
(def ^:const one-to-one-chat-type 1)
(def ^:const public-chat-type 2)
(def ^:const private-group-chat-type 3)
(def ^:const profile-chat-type 4)
(def ^:const timeline-chat-type 5)
(def ^:const community-chat-type 6)
(def reactions {emoji-reaction-love (:love resources/reactions)
emoji-reaction-thumbs-up (:thumbs-up resources/reactions)
@ -37,156 +34,68 @@
emoji-reaction-sad (:sad resources/reactions)
emoji-reaction-angry (:angry resources/reactions)})
(def invitation-state-unknown 0)
(def invitation-state-requested 1)
(def invitation-state-rejected 2)
(def invitation-state-approved 3)
(def invitation-state-granted 4)
(def invitation-state-removed 5)
(def ^:const invitation-state-unknown 0)
(def ^:const invitation-state-requested 1)
(def ^:const invitation-state-rejected 2)
(def ^:const invitation-state-approved 3)
(def ^:const invitation-state-granted 4)
(def ^:const invitation-state-removed 5)
(def message-type-one-to-one 1)
(def message-type-public-group 2)
(def message-type-private-group 3)
(def message-type-private-group-system-message 4)
(def ^:const message-type-one-to-one 1)
(def ^:const message-type-public-group 2)
(def ^:const message-type-private-group 3)
(def ^:const message-type-private-group-system-message 4)
(def command-state-request-address-for-transaction 1)
(def command-state-request-address-for-transaction-declined 2)
(def command-state-request-address-for-transaction-accepted 3)
(def command-state-request-transaction 4)
(def command-state-request-transaction-declined 5)
(def command-state-transaction-pending 6)
(def command-state-transaction-sent 7)
(def ^:const command-state-request-address-for-transaction 1)
(def ^:const command-state-request-address-for-transaction-declined 2)
(def ^:const command-state-request-address-for-transaction-accepted 3)
(def ^:const command-state-request-transaction 4)
(def ^:const command-state-request-transaction-declined 5)
(def ^:const command-state-transaction-pending 6)
(def ^:const command-state-transaction-sent 7)
(def profile-pictures-visibility-contacts-only 1)
(def profile-pictures-visibility-everyone 2)
(def profile-pictures-visibility-none 3)
(def ^:const profile-pictures-visibility-contacts-only 1)
(def ^:const profile-pictures-visibility-everyone 2)
(def ^:const profile-pictures-visibility-none 3)
(def min-password-length 6)
(def max-group-chat-participants 20)
(def default-number-of-messages 20)
(def ^:const min-password-length 6)
(def ^:const max-group-chat-participants 20)
(def ^:const default-number-of-messages 20)
(def mailserver-password "status-offline-inbox")
(def ^:const mailserver-password "status-offline-inbox")
(def system "system")
(def ^:const send-transaction-failed-parse-response 1)
(def ^:const send-transaction-failed-parse-params 2)
(def ^:const send-transaction-no-account-selected 3)
(def ^:const send-transaction-invalid-tx-sender 4)
(def ^:const send-transaction-err-decrypt 5)
(def currencies
{:aed {:id :aed :code "AED" :display-name (i18n/label :t/currency-display-name-aed) :symbol "د.إ"}
:afn {:id :afn :code "AFN" :display-name (i18n/label :t/currency-display-name-afn) :symbol "؋"}
:ars {:id :ars :code "ARS" :display-name (i18n/label :t/currency-display-name-ars) :symbol "$"}
:aud {:id :aud :code "AUD" :display-name (i18n/label :t/currency-display-name-aud) :symbol "$"}
:bbd {:id :bbd :code "BBD" :display-name (i18n/label :t/currency-display-name-bbd) :symbol "$"}
:bdt {:id :bdt :code "BDT" :display-name (i18n/label :t/currency-display-name-bdt) :symbol " Tk"}
:bgn {:id :bgn :code "BGN" :display-name (i18n/label :t/currency-display-name-bgn) :symbol "лв"}
:bhd {:id :bhd :code "BHD" :display-name (i18n/label :t/currency-display-name-bhd) :symbol "BD"}
:bnd {:id :bnd :code "BND" :display-name (i18n/label :t/currency-display-name-bnd) :symbol "$"}
:bob {:id :bob :code "BOB" :display-name (i18n/label :t/currency-display-name-bob) :symbol "$b"}
:brl {:id :brl :code "BRL" :display-name (i18n/label :t/currency-display-name-brl) :symbol "R$"}
:btn {:id :btn :code "BTN" :display-name (i18n/label :t/currency-display-name-btn) :symbol "Nu."}
:cad {:id :cad :code "CAD" :display-name (i18n/label :t/currency-display-name-cad) :symbol "$"}
:chf {:id :chf :code "CHF" :display-name (i18n/label :t/currency-display-name-chf) :symbol "CHF"}
:clp {:id :clp :code "CLP" :display-name (i18n/label :t/currency-display-name-clp) :symbol "$"}
:cny {:id :cny :code "CNY" :display-name (i18n/label :t/currency-display-name-cny) :symbol "¥"}
:cop {:id :cop :code "COP" :display-name (i18n/label :t/currency-display-name-cop) :symbol "$"}
:crc {:id :crc :code "CRC" :display-name (i18n/label :t/currency-display-name-crc) :symbol "₡"}
:czk {:id :czk :code "CZK" :display-name (i18n/label :t/currency-display-name-czk) :symbol "Kč"}
:dkk {:id :dkk :code "DKK" :display-name (i18n/label :t/currency-display-name-dkk) :symbol "kr"}
:dop {:id :dop :code "DOP" :display-name (i18n/label :t/currency-display-name-dop) :symbol "RD$"}
:egp {:id :egp :code "EGP" :display-name (i18n/label :t/currency-display-name-egp) :symbol "£"}
:etb {:id :etb :code "ETB" :display-name (i18n/label :t/currency-display-name-etb) :symbol "Br"}
:eur {:id :eur :code "EUR" :display-name (i18n/label :t/currency-display-name-eur) :symbol "€"}
:gbp {:id :gbp :code "GBP" :display-name (i18n/label :t/currency-display-name-gbp) :symbol "£"}
:gel {:id :gel :code "GEL" :display-name (i18n/label :t/currency-display-name-gel) :symbol "₾"}
:ghs {:id :ghs :code "GHS" :display-name (i18n/label :t/currency-display-name-ghs) :symbol "¢"}
:hkd {:id :hkd :code "HKD" :display-name (i18n/label :t/currency-display-name-hkd) :symbol "$"}
:hrk {:id :hrk :code "HRK" :display-name (i18n/label :t/currency-display-name-hrk) :symbol "kn"}
:huf {:id :huf :code "HUF" :display-name (i18n/label :t/currency-display-name-huf) :symbol "Ft"}
:idr {:id :idr :code "IDR" :display-name (i18n/label :t/currency-display-name-idr) :symbol "Rp"}
:ils {:id :ils :code "ILS" :display-name (i18n/label :t/currency-display-name-ils) :symbol "₪"}
:inr {:id :inr :code "INR" :display-name (i18n/label :t/currency-display-name-inr) :symbol "₹"}
:isk {:id :isk :code "ISK" :display-name (i18n/label :t/currency-display-name-isk) :symbol "kr"}
:jmd {:id :jmd :code "JMD" :display-name (i18n/label :t/currency-display-name-jmd) :symbol "J$"}
:jpy {:id :jpy :code "JPY" :display-name (i18n/label :t/currency-display-name-jpy) :symbol "¥"}
:kes {:id :kes :code "KES" :display-name (i18n/label :t/currency-display-name-kes) :symbol "KSh"}
:krw {:id :krw :code "KRW" :display-name (i18n/label :t/currency-display-name-krw) :symbol "₩"}
:kwd {:id :kwd :code "KWD" :display-name (i18n/label :t/currency-display-name-kwd) :symbol "د.ك"}
:kzt {:id :kzt :code "KZT" :display-name (i18n/label :t/currency-display-name-kzt) :symbol "лв"}
:lkr {:id :lkr :code "LKR" :display-name (i18n/label :t/currency-display-name-lkr) :symbol "₨"}
:mad {:id :mad :code "MAD" :display-name (i18n/label :t/currency-display-name-mad) :symbol "MAD"}
:mdl {:id :mdl :code "MDL" :display-name (i18n/label :t/currency-display-name-mdl) :symbol "MDL"}
:mur {:id :mur :code "MUR" :display-name (i18n/label :t/currency-display-name-mur) :symbol "₨"}
:mwk {:id :mwk :code "MWK" :display-name (i18n/label :t/currency-display-name-mwk) :symbol "MK"}
:mxn {:id :mxn :code "MXN" :display-name (i18n/label :t/currency-display-name-mxn) :symbol "$"}
:myr {:id :myr :code "MYR" :display-name (i18n/label :t/currency-display-name-myr) :symbol "RM"}
:mzn {:id :mzn :code "MZN" :display-name (i18n/label :t/currency-display-name-mzn) :symbol "MT"}
:nad {:id :nad :code "NAD" :display-name (i18n/label :t/currency-display-name-nad) :symbol "$"}
:ngn {:id :ngn :code "NGN" :display-name (i18n/label :t/currency-display-name-ngn) :symbol "₦"}
:nok {:id :nok :code "NOK" :display-name (i18n/label :t/currency-display-name-nok) :symbol "kr"}
:npr {:id :npr :code "NPR" :display-name (i18n/label :t/currency-display-name-npr) :symbol "₨"}
:nzd {:id :nzd :code "NZD" :display-name (i18n/label :t/currency-display-name-nzd) :symbol "$"}
:omr {:id :omr :code "OMR" :display-name (i18n/label :t/currency-display-name-omr) :symbol "﷼"}
:pen {:id :pen :code "PEN" :display-name (i18n/label :t/currency-display-name-pen) :symbol "S/."}
:pgk {:id :pgk :code "PGK" :display-name (i18n/label :t/currency-display-name-pgk) :symbol "K"}
:php {:id :php :code "PHP" :display-name (i18n/label :t/currency-display-name-php) :symbol "₱"}
:pkr {:id :pkr :code "PKR" :display-name (i18n/label :t/currency-display-name-pkr) :symbol "₨"}
:pln {:id :pln :code "PLN" :display-name (i18n/label :t/currency-display-name-pln) :symbol "zł"}
:pyg {:id :pyg :code "PYG" :display-name (i18n/label :t/currency-display-name-pyg) :symbol "Gs"}
:qar {:id :qar :code "QAR" :display-name (i18n/label :t/currency-display-name-qar) :symbol "﷼"}
:ron {:id :ron :code "RON" :display-name (i18n/label :t/currency-display-name-ron) :symbol "lei"}
:rsd {:id :rsd :code "RSD" :display-name (i18n/label :t/currency-display-name-rsd) :symbol "Дин."}
:rub {:id :rub :code "RUB" :display-name (i18n/label :t/currency-display-name-rub) :symbol "₽"}
:sar {:id :sar :code "SAR" :display-name (i18n/label :t/currency-display-name-sar) :symbol "﷼"}
:sek {:id :sek :code "SEK" :display-name (i18n/label :t/currency-display-name-sek) :symbol "kr"}
:sgd {:id :sgd :code "SGD" :display-name (i18n/label :t/currency-display-name-sgd) :symbol "$"}
:thb {:id :thb :code "THB" :display-name (i18n/label :t/currency-display-name-thb) :symbol "฿"}
:ttd {:id :ttd :code "TTD" :display-name (i18n/label :t/currency-display-name-ttd) :symbol "TT$"}
:twd {:id :twd :code "TWD" :display-name (i18n/label :t/currency-display-name-twd) :symbol "NT$"}
:tzs {:id :tzs :code "TZS" :display-name (i18n/label :t/currency-display-name-tzs) :symbol "TSh"}
:try {:id :try :code "TRY" :display-name (i18n/label :t/currency-display-name-try) :symbol "₺"}
:uah {:id :uah :code "UAH" :display-name (i18n/label :t/currency-display-name-uah) :symbol "₴"}
:ugx {:id :ugx :code "UGX" :display-name (i18n/label :t/currency-display-name-ugx) :symbol "USh"}
:uyu {:id :uyu :code "UYU" :display-name (i18n/label :t/currency-display-name-uyu) :symbol "$U"}
:usd {:id :usd :code "USD" :display-name (i18n/label :t/currency-display-name-usd) :symbol "$"}
:vef {:id :vef :code "VEF" :display-name (i18n/label :t/currency-display-name-vef) :symbol "Bs"}
:vnd {:id :vnd :code "VND" :display-name (i18n/label :t/currency-display-name-vnd) :symbol "₫"}
:zar {:id :zar :code "ZAR" :display-name (i18n/label :t/currency-display-name-zar) :symbol "R"}})
(def ^:const web3-send-transaction "eth_sendTransaction")
(def ^:const web3-personal-sign "personal_sign")
(def ^:const web3-sign-typed-data "eth_signTypedData")
(def ^:const web3-sign-typed-data-v3 "eth_signTypedData_v3")
(def send-transaction-failed-parse-response 1)
(def send-transaction-failed-parse-params 2)
(def send-transaction-no-account-selected 3)
(def send-transaction-invalid-tx-sender 4)
(def send-transaction-err-decrypt 5)
(def ^:const web3-keycard-sign-typed-data "keycard_signTypedData")
(def web3-send-transaction "eth_sendTransaction")
(def web3-personal-sign "personal_sign")
(def web3-sign-typed-data "eth_signTypedData")
(def web3-sign-typed-data-v3 "eth_signTypedData_v3")
;; Keycard ns
(def web3-keycard-sign-typed-data "keycard_signTypedData")
(defn web3-sign-message? [method]
(#{web3-sign-typed-data web3-sign-typed-data-v3 web3-personal-sign web3-keycard-sign-typed-data} method))
(def status-create-address "status_createaddress")
(def ^:const status-create-address "status_createaddress")
; BIP44 Wallet Root Key, the extended key from which any wallet can be derived
(def path-wallet-root "m/44'/60'/0'/0")
(def ^:const path-wallet-root "m/44'/60'/0'/0")
; EIP1581 Root Key, the extended key from which any whisper key/encryption key can be derived
(def path-eip1581 "m/43'/60'/1581'")
(def ^:const path-eip1581 "m/43'/60'/1581'")
; BIP44-0 Wallet key, the default wallet key
(def path-default-wallet (str path-wallet-root "/0"))
(def ^:const path-default-wallet (str path-wallet-root "/0"))
; EIP1581 Chat Key 0, the default whisper key
(def path-whisper (str path-eip1581 "/0'/0"))
(def ^:const path-whisper (str path-eip1581 "/0'/0"))
(def path-default-wallet-keyword (keyword path-default-wallet))
(def path-whisper-keyword (keyword path-whisper))
(def path-wallet-root-keyword (keyword path-wallet-root))
(def path-eip1581-keyword (keyword path-eip1581))
(def ^:const path-default-wallet-keyword (keyword path-default-wallet))
(def ^:const path-whisper-keyword (keyword path-whisper))
(def ^:const path-wallet-root-keyword (keyword path-wallet-root))
(def ^:const path-eip1581-keyword (keyword path-eip1581))
(def method-id-transfer "0xa9059cbb")
(def method-id-approve "0x095ea7b3")
(def method-id-approve-and-call "0xcae9ca51")
(def ^:const method-id-transfer "0xa9059cbb")
(def ^:const method-id-approve "0x095ea7b3")
(def ^:const method-id-approve-and-call "0xcae9ca51")
(def regx-emoji #"^((?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F|[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])+$")
(def regx-bold #"\*[^*]+\*")
@ -195,21 +104,18 @@
(def regx-universal-link #"((^https?://join.status.im/)|(^status-im://))[\x00-\x7F]+$")
(def regx-deep-link #"((^ethereum:.*)|(^status-im://[\x00-\x7F]+$))")
(def lines-collapse-threshold 20)
(def chars-collapse-threshold 600)
(def ^:const dapp-permission-contact-code "contact-code")
(def ^:const dapp-permission-web3 "web3")
(def ^:const dapp-permission-qr-code "qr-code")
(def ^:const api-response "api-response")
(def ^:const api-request "api-request")
(def ^:const history-state-changed "history-state-changed")
(def ^:const web3-send-async-read-only "web3-send-async-read-only")
(def ^:const web3-send-async-callback "web3-send-async-callback")
(def ^:const scan-qr-code "scan-qr-code")
(def dapp-permission-contact-code "contact-code")
(def dapp-permission-web3 "web3")
(def dapp-permission-qr-code "qr-code")
(def api-response "api-response")
(def api-request "api-request")
(def history-state-changed "history-state-changed")
(def web3-send-async-read-only "web3-send-async-read-only")
(def web3-send-async-callback "web3-send-async-callback")
(def scan-qr-code "scan-qr-code")
(def ^:const faq "https://status.im/faq/")
(def ^:const faq-keycard (str faq "#keycard"))
(def ^:const keycard-integration-link "https://status.im/keycard-integration")
(def faq "https://status.im/faq/")
(def faq-keycard (str faq "#keycard"))
(def keycard-integration-link "https://status.im/keycard-integration")
(def status-community-id "0x039b2da47552aa117a96ea8f1d4d108ba66637c7517a3c94a57b99dbb8a002eda2")
(def ^:const status-community-id "0x039b2da47552aa117a96ea8f1d4d108ba66637c7517a3c94a57b99dbb8a002eda2")

View File

@ -36,6 +36,7 @@
(apply fx/merge cofx fxs)))
(fx/defn block-contact
{:events [:contact.ui/block-contact-confirmed]}
[{:keys [db now] :as cofx} public-key]
(let [contact (-> (contact.db/public-key->contact
(:contacts/contacts db)
@ -59,6 +60,7 @@
(navigation/navigate-back)))))
(fx/defn unblock-contact
{:events [:contact.ui/unblock-contact-pressed]}
[{:keys [db now] :as cofx} public-key]
(let [contact (-> (get-in db [:contacts/contacts public-key])
(assoc :last-updated now)

View File

@ -0,0 +1,26 @@
(ns status-im.contact.chat
(:require [re-frame.core :as re-frame]
[status-im.navigation :as navigation]
[status-im.utils.fx :as fx]
[status-im.chat.models :as chat]
[status-im.contact.core :as contact]))
(fx/defn send-message-pressed
{:events [:contact.ui/send-message-pressed]
:interceptors [(re-frame/inject-cofx :random-id-generator)]}
[cofx {:keys [public-key]}]
(chat/start-chat cofx public-key))
(fx/defn contact-code-submitted
{:events [:contact.ui/contact-code-submitted]
:interceptors [(re-frame/inject-cofx :random-id-generator)]}
[{{:contacts/keys [new-identity]} :db :as cofx} new-contact? nickname]
(let [{:keys [public-key ens-name]} new-identity]
(fx/merge cofx
#(if new-contact?
(contact/add-contact % public-key nickname)
(chat/start-chat % public-key))
#(when new-contact?
(navigation/navigate-back %))
#(when ens-name
(contact/name-verified % public-key ens-name)))))

View File

@ -68,6 +68,8 @@
(fx/defn add-contact
"Add a contact and set pending to false"
{:events [:contact.ui/add-to-contact-pressed]
:interceptors [(re-frame/inject-cofx :random-id-generator)]}
[{:keys [db] :as cofx} public-key nickname]
(when (not= (get-in db [:multiaccount :public-key]) public-key)
(let [contact (cond-> (get-in db [:contacts/contacts public-key]
@ -110,6 +112,7 @@
(contacts-store/fetch-contacts-rpc cofx #(re-frame/dispatch [::contacts-loaded %])))
(fx/defn open-contact-toggle-list
{:events [:contact.ui/start-group-chat-pressed]}
[{:keys [db] :as cofx}]
(fx/merge cofx
{:db (assoc db

View File

@ -1,91 +1,25 @@
(ns status-im.core
(:require status-im.utils.db
status-im.subs
status-im.events
["react-native-languages" :default react-native-languages]
["react-native-shake" :as react-native-shake]
["react-native-screens" :refer (enableScreens)]
["react-native" :as rn :refer (DevSettings)]
status-im.subs
[status-im.ui.screens.views :as views]
[re-frame.core :as re-frame]
[re-frame.interop :as interop]
[reagent.core :as reagent]
[reagent.impl.batching :as batching]
[status-im.i18n :as i18n]
[status-im.notifications.local :as notifications]
[status-im.native-module.core :as status]
[status-im.ui.components.react :as react]
[status-im.ui.screens.views :as views]
[status-im.utils.error-handler :as error-handler]
[status-im.utils.logging.core :as utils.logs]
[status-im.utils.platform :as platform]
[status-im.utils.snoopy :as snoopy]
[status-im.utils.config :as config]))
[status-im.utils.config :as config]
["react-native-screens" :refer (enableScreens)]
["react-native" :as rn :refer (DevSettings LogBox)]))
(set! interop/next-tick js/setTimeout)
(set! batching/fake-raf #(js/setTimeout % 0))
(aset js/console "disableYellowBox" true)
;; TODO we must fix all warnings, currently it's just a noise
#_(if js/goog.DEBUG
(do
(.unstable_enableLogBox ^js rn)
(.ignoreWarnings (.-YellowBox ^js rn)
#js ["re-frame: overwriting"
"Warning: componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details."
"Warning: componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details."]))
(aset js/console "disableYellowBox" true))
(def app-registry (.-AppRegistry rn))
(def splash-screen (-> rn .-NativeModules .-SplashScreen))
(defn on-languages-change [^js event]
(i18n/set-language (.-language event)))
(defn on-shake []
(re-frame/dispatch [:shake-event]))
(defn app-state-change-handler [state]
(re-frame/dispatch [:app-state-change state]))
(defn root [_]
(reagent/create-class
{:component-did-mount
(fn [_]
(.addListener ^js react/keyboard
(if platform/ios?
"keyboardWillShow"
"keyboardDidShow")
(fn [^js e]
(let [h (.. e -endCoordinates -height)]
(re-frame/dispatch-sync [:set :keyboard-height h])
(re-frame/dispatch-sync [:set :keyboard-max-height h]))))
(.addListener ^js react/keyboard
(if platform/ios?
"keyboardWillHide"
"keyboardDidHide")
(fn [_]
(re-frame/dispatch-sync [:set :keyboard-height 0])))
(.addEventListener ^js react/app-state "change" app-state-change-handler)
(.addEventListener react-native-languages "change" on-languages-change)
(.addEventListener react-native-shake
"ShakeEvent"
on-shake)
(.hide ^js splash-screen))
:component-will-unmount
(fn []
(.removeEventListener ^js react/app-state "change" app-state-change-handler)
(.removeEventListener react-native-languages "change" on-languages-change))
:display-name "root"
:reagent-render views/main}))
(defn disable-rn-fast-refresh []
;;on Android this method doesn't work
(when (and js/goog.DEBUG platform/ios? DevSettings)
(when-let [nm (.-_nativeModule DevSettings)]
;;there is a bug in RN, so we have to enable it first and then disable
(.setHotLoadingEnabled ^js nm true)
(js/setTimeout #(.setHotLoadingEnabled ^js nm false) 1000))))
(.ignoreAllLogs LogBox)
(defn init []
(utils.logs/init-logs config/log-level)
@ -94,9 +28,14 @@
(re-frame/dispatch-sync [:init/app-started])
(when platform/android?
(status/set-soft-input-mode status/adjust-resize))
(.registerComponent ^js app-registry "StatusIm" #(reagent/reactify-component root))
(.registerComponent ^js (.-AppRegistry rn) "StatusIm" #(reagent/reactify-component views/root))
(notifications/listen-notifications)
(when platform/android?
(.registerHeadlessTask ^js app-registry "LocalNotifications" notifications/handle))
(.registerHeadlessTask ^js (.-AppRegistry rn) "LocalNotifications" notifications/handle))
(snoopy/subscribe!)
(disable-rn-fast-refresh))
(when (and js/goog.DEBUG platform/ios? DevSettings)
;;on Android this method doesn't work
(when-let [nm (.-_nativeModule DevSettings)]
;;there is a bug in RN, so we have to enable it first and then disable
(.setHotLoadingEnabled ^js nm true)
(js/setTimeout #(.setHotLoadingEnabled ^js nm false) 1000))))

View File

@ -1,4 +1,4 @@
(ns status-im.ui.screens.currency-settings.models
(ns status-im.currency.core
(:require [status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.utils.fx :as fx]
[status-im.wallet.prices :as prices]))
@ -7,6 +7,7 @@
(get-in db [:multiaccount :currency] :usd))
(fx/defn set-currency
{:events [:wallet.settings.ui/currency-selected]}
[{:keys [db] :as cofx} currency]
(fx/merge cofx
(multiaccounts.update/multiaccount-update

View File

@ -1,6 +1,6 @@
(ns status-im.ui.screens.currency-settings.models-test
(ns status-im.currency.core-test
(:require [cljs.test :refer-macros [deftest is]]
[status-im.ui.screens.currency-settings.models :as models]))
[status-im.currency.core :as models]))
(deftest get-currency
(is (= :usd (models/get-currency {:multiaccount {:currency :usd}})))

View File

@ -7,7 +7,6 @@
(def app-db {:keyboard-height 0
:contacts/contacts {}
:pairing/installations {}
:qr-codes {}
:group/selected-contacts #{}
:chats {}
:current-chat-id nil
@ -20,8 +19,6 @@
:peers-count 0
:node-info {}
:peers-summary []
:my-profile/editing? false
:transport/filters {}
:transport/message-envelopes {}
:mailserver/mailservers (fleet/default-mailservers {})
:mailserver/topics {}

View File

@ -17,6 +17,7 @@
(log/error ::error event))
(fx/defn register-subscription
{:events [:ethereum.callback/subscription-success]}
[{:keys [db]} id handler]
{:db (assoc-in db [:ethereum/subscriptions id] handler)})

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
(ns status-im.fleet.core
(:require [re-frame.core :as re-frame]
[status-im.constants :as constants]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.node.core :as node]
[status-im.utils.config :as config]
@ -33,7 +33,8 @@
(node/fleets db)))
(fx/defn show-save-confirmation
[{:keys [db] :as cofx} fleet]
{:events [:fleet.ui/fleet-selected]}
[_ fleet]
{:ui/show-confirmation
{:title (i18n/label :t/close-app-title)
:content (i18n/label :t/change-fleet
@ -68,6 +69,7 @@
nodes))))})
(fx/defn save
{:events [:fleet.ui/save-fleet-confirmed]}
[{:keys [db now] :as cofx} fleet]
(let [old-fleet (get-in db [:multiaccount :fleet])]
(when (not= fleet old-fleet)

View File

@ -1,5 +1,5 @@
(ns status-im.default-fleet
(ns status-im.fleet.default-fleet
(:require-macros [status-im.utils.slurp :refer [slurp]]))
(def default-fleets
(slurp "resources/config/fleets.json"))
(slurp "resources/config/fleets.json"))

View File

@ -13,13 +13,15 @@
[status-im.transport.filters.core :as transport.filters]
[status-im.navigation :as navigation]
[status-im.utils.fx :as fx]
[status-im.constants :as constants]))
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]))
(fx/defn remove-member
"Format group update message and sign membership"
[{:keys [db] :as cofx} chat-id member]
{::json-rpc/call [{:method (json-rpc/call-ext-method "removeMemberFromGroupChat")
:params [nil chat-id member]
{:events [:group-chats.ui/remove-member-pressed]}
[_ chat-id member]
{::json-rpc/call [{:method (json-rpc/call-ext-method "removeMemberFromGroupChat")
:params [nil chat-id member]
:on-success #(re-frame/dispatch [::chat-updated %])}]})
(fx/defn set-up-filter
@ -60,37 +62,42 @@
[navigate-fx]))))
(fx/defn join-chat
[cofx chat-id]
{::json-rpc/call [{:method (json-rpc/call-ext-method "confirmJoiningGroup")
:params [chat-id]
{:events [:group-chats.ui/join-pressed]}
[_ chat-id]
{::json-rpc/call [{:method (json-rpc/call-ext-method "confirmJoiningGroup")
:params [chat-id]
:on-success #(re-frame/dispatch [::chat-updated %])}]})
(fx/defn create
{:events [:group-chats.ui/create-pressed]
:interceptors [(re-frame/inject-cofx :random-guid-generator)]}
[{:keys [db] :as cofx} group-name]
(let [selected-contacts (:group/selected-contacts db)]
{::json-rpc/call [{:method (json-rpc/call-ext-method "createGroupChatWithMembers")
:params [nil group-name (into [] selected-contacts)]
{::json-rpc/call [{:method (json-rpc/call-ext-method "createGroupChatWithMembers")
:params [nil group-name (into [] selected-contacts)]
:on-success #(re-frame/dispatch [::chat-updated %])}]}))
(fx/defn create-from-link
[cofx {:keys [chat-id invitation-admin chat-name]}]
(if (get-in cofx [:db :chats chat-id :is-active])
(models.chat/navigate-to-chat cofx chat-id)
{::json-rpc/call [{:method (json-rpc/call-ext-method "createGroupChatFromInvitation")
:params [chat-name chat-id invitation-admin]
{::json-rpc/call [{:method (json-rpc/call-ext-method "createGroupChatFromInvitation")
:params [chat-name chat-id invitation-admin]
:on-success #(re-frame/dispatch [::chat-updated %])}]}))
(fx/defn make-admin
[{:keys [db] :as cofx} chat-id member]
{::json-rpc/call [{:method (json-rpc/call-ext-method "addAdminsToGroupChat")
:params [nil chat-id [member]]
{:events [:group-chats.ui/make-admin-pressed]}
[_ chat-id member]
{::json-rpc/call [{:method (json-rpc/call-ext-method "addAdminsToGroupChat")
:params [nil chat-id [member]]
:on-success #(re-frame/dispatch [::chat-updated %])}]})
(fx/defn add-members
"Add members to a group chat"
{:events [:group-chats.ui/add-members-pressed]}
[{{:keys [current-chat-id selected-participants]} :db :as cofx}]
{::json-rpc/call [{:method (json-rpc/call-ext-method "addMembersToGroupChat")
:params [nil current-chat-id selected-participants]
{::json-rpc/call [{:method (json-rpc/call-ext-method "addMembersToGroupChat")
:params [nil current-chat-id selected-participants]
:on-success #(re-frame/dispatch [::chat-updated %])}]})
(fx/defn add-members-from-invitation
@ -106,8 +113,8 @@
"Leave chat"
{:events [:group-chats.ui/leave-chat-confirmed]}
[{:keys [db] :as cofx} chat-id]
{::json-rpc/call [{:method (json-rpc/call-ext-method "leaveGroupChat")
:params [nil chat-id true]
{::json-rpc/call [{:method (json-rpc/call-ext-method "leaveGroupChat")
:params [nil chat-id true]
:on-success #(re-frame/dispatch [::chat-updated %])}]})
(fx/defn remove
@ -132,9 +139,9 @@
{:events [:group-chats.ui/name-changed]}
[{:keys [db] :as cofx} chat-id new-name]
(when (valid-name? new-name)
{:db (assoc-in db [:chats chat-id :name] new-name)
::json-rpc/call [{:method (json-rpc/call-ext-method "changeGroupChatName")
:params [nil chat-id new-name]
{:db (assoc-in db [:chats chat-id :name] new-name)
::json-rpc/call [{:method (json-rpc/call-ext-method "changeGroupChatName")
:params [nil chat-id new-name]
:on-success #(re-frame/dispatch [::chat-updated %])}]}))
(fx/defn membership-retry
@ -153,9 +160,9 @@
[{{:keys [current-chat-id chats] :as db} :db :as cofx}]
(let [{:keys [invitation-admin]} (get chats current-chat-id)
message (get-in db [:chat/memberships current-chat-id :message])]
{:db (assoc-in db [:chat/memberships current-chat-id] nil)
::json-rpc/call [{:method (json-rpc/call-ext-method "sendGroupChatInvitationRequest")
:params [nil current-chat-id invitation-admin message]
{:db (assoc-in db [:chat/memberships current-chat-id] nil)
::json-rpc/call [{:method (json-rpc/call-ext-method "sendGroupChatInvitationRequest")
:params [nil current-chat-id invitation-admin message]
:on-success #(re-frame/dispatch [:transport/invitation-sent %])}]}))
(fx/defn send-group-chat-membership-rejection
@ -180,3 +187,49 @@
first
:type
(= constants/invitation-state-removed)))
(fx/defn deselect-contact
{:events [:deselect-contact]}
[{:keys [db]} id]
{:db (update db :group/selected-contacts disj id)})
(fx/defn select-contact
{:events [:select-contact]}
[{:keys [db]} id]
{:db (update db :group/selected-contacts conj id)})
(fx/defn deselect-participant
{:events [:deselect-participant]}
[{:keys [db]} id]
{:db (update db :selected-participants disj id)})
(fx/defn select-participant
{:events [:select-participant]}
[{:keys [db]} id]
{:db (update db :selected-participants conj id)})
(fx/defn add-participants-toggle-list
{:events [:group/add-participants-toggle-list]}
[{db :db}]
{:db (assoc db :selected-participants #{})})
(fx/defn show-group-chat-profile
{:events [:show-group-chat-profile]}
[{:keys [db] :as cofx} chat-id]
(fx/merge cofx
{:db (-> db
(assoc :new-chat-name (get-in db [:chats chat-id :name]))
(assoc :current-chat-id chat-id))}
(navigation/navigate-to-cofx :group-chat-profile nil)))
(fx/defn ui-leave-chat-pressed
{:events [:group-chats.ui/leave-chat-pressed]}
[_ chat-id]
{:ui/show-confirmation
{:title (i18n/label :t/leave-confirmation)
:content (i18n/label :t/leave-chat-confirmation)
:confirm-button-text (i18n/label :t/leave)
:on-accept #(do
(re-frame/dispatch [:bottom-sheet/hide])
(re-frame/dispatch [:group-chats.ui/leave-chat-confirmed chat-id]))}})

View File

@ -1,8 +1,8 @@
(ns status-im.i18n
(ns status-im.i18n.i18n
(:require
[clojure.string :as string]
["i18n-js" :as i18n]
[status-im.i18n-resources :as i18n-resources]
[status-im.i18n.i18n-resources :as i18n-resources]
[status-im.goog.i18n :as goog.i18n]))
(set! (.-locale i18n) (name i18n-resources/default-device-language))

View File

@ -1,4 +1,4 @@
(ns status-im.i18n-resources
(ns status-im.i18n.i18n-resources
(:require [clojure.string :as string]
["i18n-js" :as i18n-js]
["react-native-languages" :default react-native-languages]))

View File

@ -1,7 +1,7 @@
(ns status-im.i18n-test
(ns status-im.i18n.i18n-test
(:require [cljs.test :refer-macros [deftest is]]
[status-im.i18n :as i18n]
[status-im.i18n-resources :as i18n-resources]
[status-im.i18n.i18n :as i18n]
[status-im.i18n.i18n-resources :as i18n-resources]
[clojure.set :as set]
[cljs.spec.alpha :as spec]
[clojure.string :as string]))

View File

@ -54,7 +54,9 @@
:dispatch-later [{:dispatch [::initialize-view {:logout? logout?}]
:ms 100}]})))
(fx/defn start-app [cofx]
(fx/defn start-app
{:events [:init/app-started]}
[cofx]
(fx/merge cofx
{:get-supported-biometric-auth nil
::init-theme nil

View File

@ -1,5 +1,5 @@
(ns status-im.keycard.change-pin
(:require [status-im.i18n :as i18n]
(:require [status-im.i18n.i18n :as i18n]
[status-im.navigation :as navigation]
[status-im.keycard.onboarding :as onboarding]
[status-im.utils.fx :as fx]

View File

@ -3,14 +3,14 @@
[re-frame.core :as re-frame]
[status-im.ethereum.core :as ethereum]
[status-im.keycard.nfc :as nfc]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.navigation :as navigation]
[status-im.ui.components.bottom-sheet.events :as bottom-sheet]
[status-im.ui.screens.keycard.keycard-interaction :as keycard-sheet]
[status-im.utils.fx :as fx]
[status-im.utils.keychain.core :as keychain]
[status-im.utils.types :as types]
[taoensso.timbre :as log]))
[taoensso.timbre :as log]
[status-im.bottom-sheet.core :as bottom-sheet]))
(def default-pin "000000")

View File

@ -10,7 +10,7 @@
[status-im.keycard.recovery :as recovery]
[status-im.keycard.sign :as sign]
[status-im.keycard.wallet :as wallet]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.multiaccounts.recover.core :as multiaccounts.recover]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.navigation :as navigation]
@ -542,3 +542,14 @@
:keycard
:from-key-storage-and-migration?
boolean))
(fx/defn ui-recovery-phrase-cancel-pressed
{:events [:keycard.ui/recovery-phrase-cancel-pressed]}
[{:keys [db]}]
{:db (assoc-in db [:keycard :setup-step] :recovery-phrase)})
(fx/defn ui-pin-numpad-delete-button-pressed
{:events [:keycard.ui/pin-numpad-delete-button-pressed]}
[{:keys [db]} step]
(when-not (empty? (get-in db [:keycard :pin step]))
{:db (update-in db [:keycard :pin step] pop)}))

View File

@ -1,6 +1,6 @@
(ns status-im.keycard.delete-key
(:require [status-im.multiaccounts.logout.core :as multiaccounts.logout]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.navigation :as navigation]
[status-im.utils.fx :as fx]
[taoensso.timbre :as log]

View File

@ -8,7 +8,7 @@
[status-im.keycard.recovery :as recovery]
[status-im.keycard.onboarding :as onboarding]
status-im.keycard.fx
[status-im.ui.components.bottom-sheet.core :as bottom-sheet]
[status-im.bottom-sheet.core :as bottom-sheet]
[status-im.signing.core :as signing.core]))
(fx/defn login-got-it-pressed

View File

@ -1,7 +1,7 @@
(ns status-im.keycard.onboarding
(:require [clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.navigation :as navigation]
[status-im.utils.fx :as fx]
[status-im.keycard.common :as common]

View File

@ -4,14 +4,14 @@
[status-im.multiaccounts.create.core :as multiaccounts.create]
[status-im.utils.fx :as fx]
[re-frame.core :as re-frame]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[taoensso.timbre :as log]
[status-im.keycard.common :as common]
status-im.keycard.fx
[status-im.constants :as constants]
[status-im.ethereum.eip55 :as eip55]
[status-im.ethereum.core :as ethereum]
[status-im.ui.components.bottom-sheet.core :as bottom-sheet]
[status-im.bottom-sheet.core :as bottom-sheet]
[status-im.utils.platform :as platform]))
(fx/defn pair* [_ password]

View File

@ -7,7 +7,7 @@
[status-im.native-module.core :as status]
[status-im.utils.types :as types]
[status-im.utils.utils :as utils]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[clojure.string :as string]
[taoensso.timbre :as log]
[status-im.multiaccounts.create.core :as multiaccounts.create]))

View File

@ -2,7 +2,7 @@
(:require [re-frame.core :as re-frame]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.multiaccounts.logout.core :as multiaccounts.logout]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.navigation :as navigation]
[status-im.utils.fx :as fx]
[taoensso.timbre :as log]

View File

@ -2,10 +2,11 @@
(:require [re-frame.core :as re-frame]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.node.core :as node]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.utils.fx :as fx]))
(fx/defn save-log-level
{:events [:log-level.ui/change-log-level-confirmed]}
[{:keys [db now] :as cofx} log-level]
(let [old-log-level (get-in db [:multiaccount :log-level])]
(when (not= old-log-level log-level)
@ -17,7 +18,8 @@
{:on-success #(re-frame/dispatch [:logout])})))))
(fx/defn show-change-log-level-confirmation
[{:keys [db]} {:keys [name value] :as log-level}]
{:events [:log-level.ui/log-level-selected]}
[_ {:keys [name value]}]
{:ui/show-confirmation
{:title (i18n/label :t/close-app-title)
:content (i18n/label :t/change-log-level

View File

@ -5,15 +5,13 @@
[re-frame.core :as re-frame]
[status-im.data-store.mailservers :as data-store.mailservers]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.i18n :as i18n]
[status-im.i18n.i18n :as i18n]
[status-im.mailserver.constants :as constants]
[status-im.multiaccounts.model :as multiaccounts.model]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.native-module.core :as status]
[status-im.node.core :as node]
[status-im.ui.screens.mobile-network-settings.utils
:as
mobile-network-utils]
[status-im.utils.mobile-sync :as mobile-network-utils]
[status-im.navigation :as navigation]
[status-im.utils.config :as config]
[status-im.utils.fx :as fx]
@ -370,8 +368,9 @@
topics (topics/topics-for-chat db chat-id)]
(reduce assoc-topic-chat chats-map topics)))
(fx/defn handle-request-success [{{:keys [chats] :as db} :db}
{:keys [request-id topics]}]
(fx/defn handle-request-success
{:events [:mailserver.callback/request-success]}
[{{:keys [chats] :as db} :db} {:keys [request-id topics]}]
(when (:mailserver/current-request db)
(let [by-topic-never-synced-chats
(reduce-kv
@ -524,6 +523,7 @@
"the current mailserver has been trusted
update mailserver status to `:connected` and request messages
if mailserver is ready"
{:events [:mailserver.callback/mark-trusted-peer-success]}
[{:keys [db] :as cofx}]
(fx/merge cofx
{:db (update-mailserver-state db :connected)}
@ -533,6 +533,7 @@
"the current mailserver sym-key has been generated
add sym-key to the mailserver in app-db and request messages if
mailserver is ready"
{:events [:mailserver.callback/generate-mailserver-symkey-success]}
[{:keys [db] :as cofx} {:keys [id]} sym-key-id]
(let [current-fleet (node/current-fleet-key db)]
(fx/merge
@ -545,6 +546,7 @@
(process-next-messages-request))))
(fx/defn update-use-mailservers
{:events [:mailserver.ui/use-history-switch-pressed]}
[cofx use-mailservers?]
(fx/merge cofx
(multiaccounts.update/multiaccount-update :use-mailservers? use-mailservers? {})
@ -604,6 +606,7 @@
(fx/defn check-connection
"Check connection checks that the connection is successfully connected,
otherwise it will try to change mailserver and connect again"
{:events [:mailserver/check-connection-timeout :mailserver.callback/mark-trusted-peer-error]}
[{:keys [db now] :as cofx}]
;; check if logged into multiaccount
(when (contains? db :multiaccount)
@ -894,6 +897,7 @@
(process-next-messages-request))))))))
(fx/defn retry-next-messages-request
{:events [:mailserver.ui/retry-request-pressed]}
[{:keys [db] :as cofx}]
(fx/merge cofx
{:db (dissoc db :mailserver/request-error)}
@ -953,6 +957,7 @@
(handle-request-error cofx errorMessage))))
(fx/defn show-request-error-popup
{:events [:mailserver.ui/request-error-pressed]}
[{:keys [db]}]
(let [mailserver-error (:mailserver/request-error db)]
{:utils/show-confirmation
@ -991,6 +996,7 @@
:request first-request})))))
(fx/defn resend-request
{:events [:mailserver.callback/resend-request]}
[{:keys [db] :as cofx} {:keys [request-id]}]
(let [current-request (:mailserver/current-request db)
gap-request? (executing-gap-request? db)]
@ -1065,7 +1071,9 @@
(let [[initial host] (extract-address-components address)]
(str "enode://" initial ":" password "@" host)))
(fx/defn set-input [{:keys [db]} input-key value]
(fx/defn set-input
{:events [:mailserver.ui/input-changed]}
[{:keys [db]} input-key value]
{:db (update
db
:mailserver.edit/mailserver
@ -1092,7 +1100,9 @@
(def default? (comp not :user-defined fetch))
(fx/defn edit [{:keys [db] :as cofx} id]
(fx/defn edit
{:events [:mailserver.ui/user-defined-mailserver-selected]}
[{:keys [db] :as cofx} id]
(let [{:keys [id address password name]} (fetch db id)
url (when address (build-url address password))]
(fx/merge cofx
@ -1108,6 +1118,8 @@
(update :id name)))
(fx/defn upsert
{:events [:mailserver.ui/save-pressed]
:interceptors [(re-frame/inject-cofx :random-id-generator)]}
[{{:mailserver.edit/keys [mailserver] :keys [multiaccount] :as db} :db
random-id-generator :random-id-generator :as cofx}]
@ -1145,6 +1157,7 @@
(connected? db id))))
(fx/defn delete
{:events [:mailserver.ui/delete-confirmed]}
[{:keys [db] :as cofx} id]
(if (can-delete? db id)
{:db (-> db
@ -1161,6 +1174,7 @@
{:dispatch [:navigate-back]}))
(fx/defn show-connection-confirmation
{:events [:mailserver.ui/default-mailserver-selected :mailserver.ui/connect-pressed]}
[{:keys [db]} mailserver-id]
(let [current-fleet (node/current-fleet-key db)]
{:ui/show-confirmation
@ -1176,6 +1190,7 @@
:on-cancel nil}}))
(fx/defn show-delete-confirmation
{:events [:mailserver.ui/delete-pressed]}
[{:keys [db]} mailserver-id]
{:ui/show-confirmation
{:title (i18n/label :t/delete-mailserver-title)
@ -1185,14 +1200,18 @@
[:mailserver.ui/delete-confirmed mailserver-id])}})
(fx/defn set-url-from-qr
{:events [:mailserver.callback/qr-code-scanned]}
[cofx url]
(assoc (set-input cofx :url url)
:dispatch [:navigate-back]))
(fx/defn dismiss-connection-error [{:keys [db]} new-state]
(fx/defn dismiss-connection-error
{:events [:mailserver.ui/dismiss-connection-error]}
[{:keys [db]} new-state]
{:db (assoc db :mailserver/connection-error-dismissed new-state)})
(fx/defn save-settings
{:events [:mailserver.ui/connect-confirmed]}
[{:keys [db] :as cofx} current-fleet mailserver-id]
(let [{:keys [address]} (fetch-current db)
pinned-mailservers (get-in db [:multiaccount :pinned-mailservers])
@ -1212,6 +1231,7 @@
{})))))
(fx/defn unpin
{:events [:mailserver.ui/unpin-pressed]}
[{:keys [db] :as cofx}]
(let [current-fleet (node/current-fleet-key db)
pinned-mailservers (get-in db [:multiaccount :pinned-mailservers])]
@ -1223,6 +1243,7 @@
(change-mailserver))))
(fx/defn pin
{:events [:mailserver.ui/pin-pressed]}
[{:keys [db] :as cofx}]
(let [current-fleet (node/current-fleet-key db)
mailserver-id (:mailserver/current-id db)
@ -1259,3 +1280,10 @@
(assoc-in [:mailserver/gaps chat-id] gaps))}
(data-store.mailservers/delete-gaps outdated-gaps))))
(fx/defn mailserver-ui-add-pressed
{:events [:mailserver.ui/add-pressed]}
[{:keys [db] :as cofx}]
(fx/merge cofx
{:db (dissoc db :mailserver.edit/mailserver)}
(navigation/navigate-to-cofx :edit-mailserver nil)))

Some files were not shown because too many files have changed in this diff Show More