From 550fa04e339b8412bb80b4f92677f009e39bf5fb Mon Sep 17 00:00:00 2001 From: Ulises Manuel <90291778+ulisesmac@users.noreply.github.com> Date: Fri, 26 Jan 2024 09:52:04 -0600 Subject: [PATCH 1/5] [#18512] incomplete list of collectibles (#18577) * Fix var naming react-native-svg namespace * Update collectible components to show SVGs * Display collectibles containing collection images * Show collectibles containing SVG animations as static images * Reduce collectibles fetching priority * Add support to visualize SVGs in collectible detail screen --- .../components/profile/collectible/view.cljs | 23 +++++-- src/quo/components/tabs/tab/view.cljs | 2 +- src/react_native/fast_image.cljs | 3 +- src/react_native/svg.cljs | 5 +- .../contexts/wallet/collectible/view.cljs | 66 +++++++++++-------- .../contexts/wallet/events/collectibles.cljs | 6 +- src/status_im/subs/wallet/collectibles.cljs | 38 ++++++++--- 7 files changed, 97 insertions(+), 46 deletions(-) diff --git a/src/quo/components/profile/collectible/view.cljs b/src/quo/components/profile/collectible/view.cljs index b3bae35073d..7260857e3a6 100644 --- a/src/quo/components/profile/collectible/view.cljs +++ b/src/quo/components/profile/collectible/view.cljs @@ -2,7 +2,9 @@ (:require [quo.components.markdown.text :as text] [quo.components.profile.collectible.style :as style] - [react-native.core :as rn])) + [react-native.core :as rn] + [react-native.fast-image :as fast-image] + [react-native.svg :as svg])) (defn remaining-tiles [amount] @@ -14,12 +16,21 @@ (str "+" amount)]]) (defn tile - [{:keys [style resource size]}] - (let [source (if (string? resource) {:uri resource} resource)] + [{:keys [style size resource]}] + (let [svg? (and (map? resource) (:svg? resource)) + image-style (style/tile-style-by-size size)] [rn/view {:style style} - [rn/image - {:style (style/tile-style-by-size size) - :source source}]])) + (if svg? + [rn/view + {:style {:border-radius (:border-radius image-style) + :overflow :hidden}} + [svg/svg-uri (assoc image-style :uri (:uri resource))]] + [fast-image/fast-image + {:style image-style + :source (if (string? resource) + {:uri resource + :priority :low} + resource)}])])) (defn two-tiles [{:keys [images size]}] diff --git a/src/quo/components/tabs/tab/view.cljs b/src/quo/components/tabs/tab/view.cljs index dbd9185a59c..ffce2e235d2 100644 --- a/src/quo/components/tabs/tab/view.cljs +++ b/src/quo/components/tabs/tab/view.cljs @@ -27,7 +27,7 @@ 9.213 11.877 8.436 C 11.787 7.866 11.649 7.313 11.468 6.781 Z" :clip-path "url(#clip0_5514_84289)"}] [svg/defs - [svg/clippath {:id "clip0_5514_84289"} + [svg/clip-path {:id "clip0_5514_84289"} [svg/rect {:width width :height height :fill :none}]]]]) (defn- content diff --git a/src/react_native/fast_image.cljs b/src/react_native/fast_image.cljs index a25092186a8..995b3c332c3 100644 --- a/src/react_native/fast_image.cljs +++ b/src/react_native/fast_image.cljs @@ -20,7 +20,8 @@ (merge props {:source (if (string? source) - {:uri source} + {:uri source + :priority :high} source) :on-error (fn [e] (when-let [on-error (:on-error props)] diff --git a/src/react_native/svg.cljs b/src/react_native/svg.cljs index f44f13bfc69..e9397c2d873 100644 --- a/src/react_native/svg.cljs +++ b/src/react_native/svg.cljs @@ -6,10 +6,11 @@ (def svg (reagent/adapt-react-class Svg/default)) (def path (reagent/adapt-react-class Svg/Path)) (def rect (reagent/adapt-react-class Svg/Rect)) -(def clippath (reagent/adapt-react-class Svg/ClipPath)) +(def clip-path (reagent/adapt-react-class Svg/ClipPath)) (def defs (reagent/adapt-react-class Svg/Defs)) (def circle (reagent/adapt-react-class Svg/Circle)) -(def svgxml (reagent/adapt-react-class Svg/SvgXml)) +(def svg-xml (reagent/adapt-react-class Svg/SvgXml)) +(def svg-uri (reagent/adapt-react-class Svg/SvgUri)) (def g (reagent/adapt-react-class Svg/G)) (def linear-gradient (reagent/adapt-react-class Svg/LinearGradient)) (def stop (reagent/adapt-react-class Svg/Stop)) diff --git a/src/status_im/contexts/wallet/collectible/view.cljs b/src/status_im/contexts/wallet/collectible/view.cljs index c24ce1dfe4d..ab95f7cde5f 100644 --- a/src/status_im/contexts/wallet/collectible/view.cljs +++ b/src/status_im/contexts/wallet/collectible/view.cljs @@ -3,6 +3,7 @@ [quo.core :as quo] [quo.theme :as quo.theme] [react-native.core :as rn] + [react-native.svg :as svg] [reagent.core :as reagent] [status-im.common.scroll-page.view :as scroll-page] [status-im.contexts.wallet.collectible.style :as style] @@ -75,14 +76,18 @@ (let [selected-tab (reagent/atom :overview) on-tab-change #(reset! selected-tab %)] (fn [] - (let [collectible (rf/sub [:wallet/last-collectible-details]) - animation-shared-element-id (rf/sub [:animation-shared-element-id]) - {:keys [collectible-data preview-url - collection-data id]} collectible - token-id (:token-id id) + (let [collectible (rf/sub [:wallet/last-collectible-details]) + animation-shared-element-id (rf/sub [:animation-shared-element-id]) + {:keys [id + preview-url + collection-data + collectible-data]} collectible + {svg? :svg? + preview-uri :uri} preview-url + token-id (:token-id id) {collection-image :image-url - collection-name :name} collection-data - {collectible-name :name} collectible-data] + collection-name :name} collection-data + {collectible-name :name} collectible-data] [scroll-page/scroll-page {:navigate-back? true :height 148 @@ -94,29 +99,38 @@ [:show-bottom-sheet {:content collectible-actions-sheet :theme theme}])}] - :picture preview-url}} + :picture preview-uri}} [rn/view {:style style/container} [rn/view {:style style/preview-container} [rn/touchable-opacity {:active-opacity 1 - :on-press #(rf/dispatch [:lightbox/navigate-to-lightbox - token-id - {:images [{:image preview-url - :image-width 300 ; collectibles don't have - ; width/height but we need - ; to pass something - :image-height 300 ; without it animation - ; doesn't work smoothly and - ; :border-radius not - ; applied - :id token-id - :header collectible-name - :description collection-name}] - :index 0}])} - [rn/image - {:source preview-url - :style style/preview - :native-ID (when (= animation-shared-element-id token-id) :shared-element)}]]] + :on-press (fn [] + (if svg? + (js/alert "Can't visualize SVG images in lightbox") + (rf/dispatch [:lightbox/navigate-to-lightbox + token-id + {:images [{:image preview-uri + :image-width 300 ; collectibles don't have + ; width/height but we need + ; to pass something + :image-height 300 ; without it animation + ; doesn't work smoothly and + ; :border-radius not + ; applied + :id token-id + :header collectible-name + :description collection-name}] + :index 0}])))} + (if svg? + [rn/view + {:style (assoc style/preview :overflow :hidden) + :native-ID (when (= animation-shared-element-id token-id) + :shared-element)} + [svg/svg-uri (assoc style/preview :uri preview-uri)]] + [rn/image + {:source preview-uri + :style style/preview + :native-ID (when (= animation-shared-element-id token-id) :shared-element)}])]] [header collectible-name collection-name collection-image] [cta-buttons] [quo/tabs diff --git a/src/status_im/contexts/wallet/events/collectibles.cljs b/src/status_im/contexts/wallet/events/collectibles.cljs index cc4b0371c34..f287759f210 100644 --- a/src/status_im/contexts/wallet/events/collectibles.cljs +++ b/src/status_im/contexts/wallet/events/collectibles.cljs @@ -24,9 +24,11 @@ (defn displayable-collectible? [collectible] - (let [{:keys [image-url animation-url]} (:collectible-data collectible)] + (let [{{:keys [image-url animation-url]} :collectible-data + {collection-image-url :image-url} :collection-data} collectible] (or (not (string/blank? animation-url)) - (not (string/blank? image-url))))) + (not (string/blank? image-url)) + (not (string/blank? collection-image-url))))) (defn- add-collectibles-to-accounts [accounts collectibles] diff --git a/src/status_im/subs/wallet/collectibles.cljs b/src/status_im/subs/wallet/collectibles.cljs index a1f7bbdcc3f..5a9bb959769 100644 --- a/src/status_im/subs/wallet/collectibles.cljs +++ b/src/status_im/subs/wallet/collectibles.cljs @@ -3,17 +3,39 @@ [clojure.string :as string] [re-frame.core :as re-frame])) +(defn- svg-animation? + [url media-type] + (and (not (string/blank? url)) + (string/includes? media-type "svg"))) + +(defn- animation? + [url media-type] + (and (not (string/blank? url)) + (not (string/blank? media-type)))) + (defn- preview-url - [{:keys [image-url animation-url animation-media-type]}] - (if (and (not (string/blank? animation-url)) - (not= animation-media-type "image/svg+xml")) - animation-url - image-url)) + [{{collectible-image-url :image-url + animation-url :animation-url + animation-media-type :animation-media-type} :collectible-data + {collection-image-url :image-url} :collection-data}] + (cond + (svg-animation? animation-url animation-media-type) + {:uri animation-url + :svg? true} + + (animation? animation-url animation-media-type) + {:uri animation-url} + + (not (string/blank? collectible-image-url)) + {:uri collectible-image-url} + + :else + {:uri collection-image-url})) (defn add-collectibles-preview-url [collectibles] - (map (fn [{:keys [collectible-data] :as collectible}] - (assoc collectible :preview-url (preview-url collectible-data))) + (map (fn [collectible] + (assoc collectible :preview-url (preview-url collectible))) collectibles)) (re-frame/reg-sub @@ -47,7 +69,7 @@ :<- [:wallet] (fn [wallet] (let [last-collectible (:last-collectible-details wallet)] - (assoc last-collectible :preview-url (preview-url (:collectible-data last-collectible)))))) + (assoc last-collectible :preview-url (preview-url last-collectible))))) (re-frame/reg-sub :wallet/last-collectible-details-chain-id From be618bfafee5b31a74969149980b9c5cf48b8128 Mon Sep 17 00:00:00 2001 From: mmilad75 <55688834+mmilad75@users.noreply.github.com> Date: Fri, 26 Jan 2024 21:30:01 +0330 Subject: [PATCH 2/5] Wallet: Disable long-press feature on tokens in watch-only accounts. #18597 (#18598) * add functionality * update condition --- .../contexts/wallet/common/token_value/view.cljs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/status_im/contexts/wallet/common/token_value/view.cljs b/src/status_im/contexts/wallet/common/token_value/view.cljs index 53ab4f5a79d..46740bf8062 100644 --- a/src/status_im/contexts/wallet/common/token_value/view.cljs +++ b/src/status_im/contexts/wallet/common/token_value/view.cljs @@ -41,10 +41,12 @@ (defn view [item] - [quo/token-value - (merge item - {:on-long-press - #(rf/dispatch - [:show-bottom-sheet - {:content (fn [] [token-value-drawer item]) - :selected-item (fn [] [quo/token-value item])}])})]) + (let [{:keys [watch-only?]} (rf/sub [:wallet/current-viewing-account])] + [quo/token-value + (cond-> item + (not watch-only?) + (assoc :on-long-press + #(rf/dispatch + [:show-bottom-sheet + {:content (fn [] [token-value-drawer item]) + :selected-item (fn [] [quo/token-value item])}])))])) From 205b74cd3401c11dd43b4aacf5ace66c533b86fb Mon Sep 17 00:00:00 2001 From: Yevheniia Berdnyk Date: Fri, 26 Jan 2024 17:30:29 +0200 Subject: [PATCH 3/5] e2e: remived xfail marks --- test/appium/tests/critical/chats/test_1_1_public_chats.py | 1 - test/appium/tests/critical/chats/test_group_chat.py | 2 +- test/appium/tests/critical/chats/test_public_chat_browsing.py | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/test/appium/tests/critical/chats/test_1_1_public_chats.py b/test/appium/tests/critical/chats/test_1_1_public_chats.py index b06360ee3d5..aa52ac6f280 100644 --- a/test/appium/tests/critical/chats/test_1_1_public_chats.py +++ b/test/appium/tests/critical/chats/test_1_1_public_chats.py @@ -567,7 +567,6 @@ def test_1_1_chat_send_image_with_camera(self): self.errors.verify_no_errors() @marks.testrail_id(702783) - @marks.xfail(reason="Data delivery issue") def test_1_1_chat_is_shown_message_sent_delivered_from_offline(self): # self.chat_2.jump_to_card_by_text(self.username_1) # self.chat_1.jump_to_card_by_text(self.username_2) diff --git a/test/appium/tests/critical/chats/test_group_chat.py b/test/appium/tests/critical/chats/test_group_chat.py index e8db4d6ef9a..f3758c636b6 100644 --- a/test/appium/tests/critical/chats/test_group_chat.py +++ b/test/appium/tests/critical/chats/test_group_chat.py @@ -283,7 +283,6 @@ def test_group_chat_send_image_save_and_share(self): self.errors.verify_no_errors() @marks.testrail_id(702808) - @marks.xfail(reason="Data delivery issue") def test_group_chat_offline_pn(self): for i in range(1, 3): self.homes[i].navigate_back_to_home_view() @@ -294,6 +293,7 @@ def test_group_chat_offline_pn(self): message_1, message_2 = 'message from old member', 'message from new member' self.homes[0].just_fyi("Put admin device to offline and send messages from members") + self.homes[0].navigate_back_to_home_view() app_package = self.drivers[0].current_package self.homes[0].driver.set_network_connection(ConnectionType.AIRPLANE_MODE) self.chats[1].send_message(message_1) diff --git a/test/appium/tests/critical/chats/test_public_chat_browsing.py b/test/appium/tests/critical/chats/test_public_chat_browsing.py index ea2be2700ee..740e2001a76 100644 --- a/test/appium/tests/critical/chats/test_public_chat_browsing.py +++ b/test/appium/tests/critical/chats/test_public_chat_browsing.py @@ -633,7 +633,6 @@ def test_community_unread_messages_badge(self): channel_1_element.click() self.errors.verify_no_errors() - @marks.xfail(reason="Message can be missed after unblock: https://github.com/status-im/status-mobile/issues/16873") @marks.testrail_id(702894) def test_community_contact_block_unblock_offline(self): for i, channel in enumerate([self.channel_1, self.channel_2]): From 302020653b5db33a9335bf50cb5359a9fd8cd1be Mon Sep 17 00:00:00 2001 From: Ibrahem Khalil Date: Sun, 28 Jan 2024 14:59:10 +0200 Subject: [PATCH 4/5] Add lastOpenedAt and JoinedAt for communities (#18439) --- .../status_im/data_store/communities.cljs | 4 +++- .../contexts/communities/events.cljs | 19 +++++++++++++++++-- status-go-version.json | 6 +++--- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/legacy/status_im/data_store/communities.cljs b/src/legacy/status_im/data_store/communities.cljs index 3553b4989ac..80ca8268c7b 100644 --- a/src/legacy/status_im/data_store/communities.cljs +++ b/src/legacy/status_im/data_store/communities.cljs @@ -57,7 +57,9 @@ :tokenPermissions :token-permissions :communityTokensMetadata :tokens-metadata :introMessage :intro-message - :muteTill :muted-till}) + :muteTill :muted-till + :lastOpenedAt :last-opened-at + :joinedAt :joined-at}) (update :admin-settings set/rename-keys {:pinMessageAllMembersEnabled :pin-message-all-members-enabled?}) diff --git a/src/status_im/contexts/communities/events.cljs b/src/status_im/contexts/communities/events.cljs index f1f90ef2664..bd6632e392a 100644 --- a/src/status_im/contexts/communities/events.cljs +++ b/src/status_im/contexts/communities/events.cljs @@ -362,14 +362,16 @@ (rf/merge cofx {:fx [[:dispatch [:communities/fetch-community deserialized-key]] - [:dispatch [:navigate-to :community-overview deserialized-key]]]} + [:dispatch [:navigate-to :community-overview deserialized-key]] + [:dispatch [:communities/update-last-opened-at deserialized-key]]]} (navigation/pop-to-root :shell-stack))))) (rf/reg-event-fx :communities/navigate-to-community-chat (fn [{:keys [db]} [chat-id pop-to-root?]] (let [{:keys [community-id]} (get-in db [:chats chat-id])] {:fx [(when community-id - [:dispatch [:communities/fetch-community community-id]]) + [:dispatch [:communities/fetch-community community-id]] + [:dispatch [:communities/update-last-opened-at community-id]]) (if pop-to-root? [:dispatch [:chat/pop-to-root-and-navigate-to-chat chat-id]] [:dispatch [:chat/navigate-to-chat chat-id]])]}))) @@ -424,3 +426,16 @@ (fn [{:keys [db]} [community-id]] (when (get-in db [:communities community-id]) {:db (update-in db [:communities community-id] dissoc :fetching-revealed-accounts)}))) + +(rf/reg-event-fx :communities/update-last-opened-at + (fn [_ [community-id]] + {:json-rpc/call [{:method "wakuext_communityUpdateLastOpenedAt" + :params [community-id] + :on-success #(rf/dispatch [:communities/update-last-opened-at-success community-id + %]) + :on-error #(log/error (str "failed to update last opened at for community " + %))}]})) + +(rf/reg-event-fx :communities/update-last-opened-at-success + (fn [{:keys [db]} [community-id last-opened-at]] + {:db (assoc-in db [:communities community-id :last-opened-at] last-opened-at)})) diff --git a/status-go-version.json b/status-go-version.json index 794f1d642a4..3a73ff331ff 100644 --- a/status-go-version.json +++ b/status-go-version.json @@ -3,7 +3,7 @@ "_comment": "Instead use: scripts/update-status-go.sh ", "owner": "status-im", "repo": "status-go", - "version": "v0.172.6", - "commit-sha1": "6e30fbb211b0e0bb1e7966cce4e215c4080aac5c", - "src-sha256": "1k3hg2m25qvgvqxmy8im3xhjwvdyvaq49yks92642h9rw494nb94" + "version": "v0.172.8", + "commit-sha1": "436d22985661322ffda4eb44c1a160e6804f3823", + "src-sha256": "1y3l469k2085qaml7dmaky1rlanl4phq2p6yyk97074yw839jzj1" } From 901818492db21c580a7fc9f8174d1e191feac488 Mon Sep 17 00:00:00 2001 From: Lungu Cristian Date: Mon, 29 Jan 2024 13:33:46 +0200 Subject: [PATCH 5/5] Replace unmaintained biometrics package (#18531) * feat: added react-native-biometrics dependency * chore: added malli schema to auth * fix: malli schema * feat: using react-native-biometrics * fix: removed biometry not-enrolled error supression * feat: added check for enabled biometric * fix: biometrics error handling on ios * chore: remove touch-id library * chore: cleanup * removed proj.list dep * fix: gradle get_projects regex edge-case Handles cases when the gradle project has a description, which shows up when running `gradle projects` as (`react-native-biometrics` - react-native-biometrics), breaking `make nix-update-gradle`. Here we're just adjusting the regex to ignore everything in the line after the closing (`). * build: ran "make nix-update-gradle" * chore: comment typo * chore: replaced old lib in test mocks * fix: addressed review comments * fix: using event for standard-auth biometrics * ref: using ex-cause for biometric error codes * fix: removed promesa changes * fix: auth slide biometric success not triggered --- doc/dependencies.md | 4 +- ios/Podfile.lock | 14 +- nix/deps/gradle/deps.json | 556 +----------------- nix/deps/gradle/deps.list | 33 -- nix/deps/gradle/deps.urls | 42 +- nix/deps/gradle/get_projects.sh | 2 +- nix/deps/gradle/proj.list | 2 +- package.json | 2 +- src/mocks/js_dependencies.cljs | 4 +- src/react_native/biometrics.cljs | 76 +++ src/react_native/keychain.cljs | 8 +- src/react_native/touch_id.cljs | 20 - src/status_im/common/biometric/events.cljs | 139 ++--- src/status_im/common/keychain/events.cljs | 20 +- .../standard_auth/authorize.cljs | 46 +- src/status_im/constants.cljs | 8 +- .../contexts/profile/login/events.cljs | 32 +- yarn.lock | 10 +- 18 files changed, 230 insertions(+), 788 deletions(-) create mode 100644 src/react_native/biometrics.cljs delete mode 100644 src/react_native/touch_id.cljs diff --git a/doc/dependencies.md b/doc/dependencies.md index 47f139d92f5..9a0656392b3 100644 --- a/doc/dependencies.md +++ b/doc/dependencies.md @@ -144,9 +144,9 @@ used for keycard used for svg icons, mostly collectibles are using svg TODO: updating requires a pod update on iOS -## "react-native-touch-id": "^4.4.1" +## "react-native-biometrics": "^3.0.1" -used for touch-id identification +used for biometric authentication on Android and iOS ## "react-native-webview": "git+https://github.com/status-im/react-native-webview.git#v8.0.7_3" diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 5383bf42766..486b75e8554 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -305,6 +305,8 @@ PODS: - glog - react-native-background-timer (2.2.0): - React + - react-native-biometrics (3.0.1): + - React-Core - react-native-blob-util (0.13.18): - React-Core - react-native-blur (4.3.3): @@ -517,8 +519,6 @@ PODS: - SocketRocket (0.6.1) - SSZipArchive (2.4.3) - TOCropViewController (2.6.1) - - TouchID (4.4.1): - - React - Yoga (1.14.0) DEPENDENCIES: @@ -548,6 +548,7 @@ DEPENDENCIES: - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - react-native-background-timer (from `../node_modules/react-native-background-timer`) + - react-native-biometrics (from `../node_modules/react-native-biometrics`) - react-native-blob-util (from `../node_modules/react-native-blob-util`) - "react-native-blur (from `../node_modules/@react-native-community/blur`)" - "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)" @@ -603,7 +604,6 @@ DEPENDENCIES: - RNSVG (from `../node_modules/react-native-svg`) - secp256k1 (from `https://github.com/status-im/secp256k1.swift.git`) - SSZipArchive (= 2.4.3) - - TouchID (from `../node_modules/react-native-touch-id`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: @@ -669,6 +669,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/logger" react-native-background-timer: :path: "../node_modules/react-native-background-timer" + react-native-biometrics: + :path: "../node_modules/react-native-biometrics" react-native-blob-util: :path: "../node_modules/react-native-blob-util" react-native-blur: @@ -778,8 +780,6 @@ EXTERNAL SOURCES: secp256k1: :git: https://github.com/status-im/secp256k1.swift.git :submodules: true - TouchID: - :path: "../node_modules/react-native-touch-id" Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" @@ -793,7 +793,7 @@ CHECKOUT OPTIONS: :submodules: true SPEC CHECKSUMS: - boost: 64032b9e9b938fda23325e68a3771f0fabf414dc + boost: 57d2868c099736d80fcd648bf211b4431e51a558 BVLinearGradient: 612a04ff38e8480291f3379ee5b5a2c571f03fe0 CryptoSwift: c4f2debceb38bf44c80659afe009f71e23e4a082 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 @@ -822,6 +822,7 @@ SPEC CHECKSUMS: React-jsinspector: aef73cbd43b70675f572214d10fa438c89bf11ba React-logger: 2e4aee3e11b3ec4fa6cfd8004610bbb3b8d6cca4 react-native-background-timer: 1f7d560647b40e6a60b01c452ba29c54bf581fc4 + react-native-biometrics: 352e5a794bfffc46a0c86725ea7dc62deb085bdc react-native-blob-util: 600972b1782380a5a7d5db61a3817ea32349dae9 react-native-blur: c6d0a1dc2b4b519f7afe3b14d8151998632b6d18 react-native-cameraroll: 4701ae7c3dbcd3f5e9e150ca17f250a276154b35 @@ -881,7 +882,6 @@ SPEC CHECKSUMS: SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863 - TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4 Yoga: 86fed2e4d425ee4c6eab3813ba1791101ee153c6 PODFILE CHECKSUM: 3f98ce893757dfa17e609ef7cd24fa41635b73a6 diff --git a/nix/deps/gradle/deps.json b/nix/deps/gradle/deps.json index ebfaab77872..0eb31c8111e 100644 --- a/nix/deps/gradle/deps.json +++ b/nix/deps/gradle/deps.json @@ -1055,21 +1055,6 @@ } }, - { - "path": "androidx/databinding/databinding-common/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "databinding-common-3.3.1.pom": { - "sha1": "2e932d3219ea5f6d1078b24a8a3ce24b209c9309", - "sha256": "sha256-J5Qv7Gy8ROM19MN5Rx/lo2BsA7Zwt+NG6lXxYtjrF10=" - }, - "databinding-common-3.3.1.jar": { - "sha1": "45795e2f688474b219d37beb7f9f6756578e6454", - "sha256": "sha256-mq9hUr+3QZCgovJ1St/aoqkP7Ef50KwR811ej5iYkyw=" - } - } - }, - { "path": "androidx/databinding/databinding-common/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -1179,21 +1164,6 @@ } }, - { - "path": "androidx/databinding/databinding-compiler-common/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "databinding-compiler-common-3.3.1.pom": { - "sha1": "123c2b1dd44ec6e2441be9441bdf393462936928", - "sha256": "sha256-na2hPeqxkcTcC9T7EvFs12+r1ygfSfnOHIirb3kXyzI=" - }, - "databinding-compiler-common-3.3.1.jar": { - "sha1": "e96aa159e1ed5c5a3461d15adfc42ef5b1f68b59", - "sha256": "sha256-sfLOroi0d73GMp2r8SCNhCHFrT/HzPpEOXEOVBcvxh0=" - } - } - }, - { "path": "androidx/databinding/databinding-compiler-common/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -2755,21 +2725,6 @@ } }, - { - "path": "com/android/databinding/baseLibrary/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "baseLibrary-3.3.1.pom": { - "sha1": "611fd96b47fdd27dd88afc23829975278d47774c", - "sha256": "sha256-dKLQobB7s6ExmWyEIG/CHmDQaT4pa7EI07c9B7hnUj8=" - }, - "baseLibrary-3.3.1.jar": { - "sha1": "702acc804e85563d3ae7b8ee49122e4f857dde83", - "sha256": "sha256-5QRyEqpp1J0FULCvlrQQC4xslwG4PD+24ZzGbzxK6cQ=" - } - } - }, - { "path": "com/android/databinding/baseLibrary/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -3288,21 +3243,6 @@ } }, - { - "path": "com/android/tools/analytics-library/crash/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "crash-26.3.1.pom": { - "sha1": "7b667eb48f02b8ba2a981a962e9c1137e251c1e0", - "sha256": "sha256-m0FH4hP4dmWwzUXF6w47Q79EWJf5r9rKF/c8wjjF01c=" - }, - "crash-26.3.1.jar": { - "sha1": "46163f2cf0e16a1ba9be2ad6dddc39f1a1d6b613", - "sha256": "sha256-k5OoPOLz+pZ4LCU98yROaZo7PfGG3pJssTiVj6+VYpM=" - } - } - }, - { "path": "com/android/tools/analytics-library/crash/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -3442,21 +3382,6 @@ } }, - { - "path": "com/android/tools/analytics-library/protos/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "protos-26.3.1.pom": { - "sha1": "d6015a3a017dcb62d9a9a56c28b5c47bb6727a91", - "sha256": "sha256-IP1qlda7IElg7qdLFBTEWy78J0+4Tf90MnqRYezfc3k=" - }, - "protos-26.3.1.jar": { - "sha1": "f35a0accd93cfbb4306268ea748e1ac49920a0a8", - "sha256": "sha256-70/09xLY//RrI3jBwQh5l1hXdvpsGhwgBpbXd0eNnUw=" - } - } - }, - { "path": "com/android/tools/analytics-library/protos/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -3596,21 +3521,6 @@ } }, - { - "path": "com/android/tools/analytics-library/shared/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "shared-26.3.1.pom": { - "sha1": "af1e1e7d120696bfee452247b5224290d91d828f", - "sha256": "sha256-3Hxmxmp5mFLNaGRaEXOJSRxiTU1U+OzdX5QENgHtys4=" - }, - "shared-26.3.1.jar": { - "sha1": "3457faee7a68d84dcbd258889567153acfc731a2", - "sha256": "sha256-bSe5quJj4rwth0SR72dh86WuH34wzEq2v7ktd/2tO/A=" - } - } - }, - { "path": "com/android/tools/analytics-library/shared/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -3750,21 +3660,6 @@ } }, - { - "path": "com/android/tools/analytics-library/tracker/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "tracker-26.3.1.pom": { - "sha1": "6775a4eeafd2ef5270750388ee53503eeafa688b", - "sha256": "sha256-+mgVCnuDFGnXWVQ1ZGPkmcJjl1ubk/YmTQ3qjRHlKwg=" - }, - "tracker-26.3.1.jar": { - "sha1": "26248cad2525e003752322cfc6bd86182df7daac", - "sha256": "sha256-JG6AgEtANgzjGNp7nRKUjgrUHQwpzHvbOGF9weaWnYg=" - } - } - }, - { "path": "com/android/tools/analytics-library/tracker/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -3904,21 +3799,6 @@ } }, - { - "path": "com/android/tools/annotations/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "annotations-26.3.1.pom": { - "sha1": "bce2159e811cceee12498cb34812cbae1e7b8eda", - "sha256": "sha256-Y7XWCr1wC4On07xPXk1+cRxZsOB6WsMmd2FOP/1xJLE=" - }, - "annotations-26.3.1.jar": { - "sha1": "3d46d5da6d5dd17df682a22b914cdc6b84677731", - "sha256": "sha256-U0rc5Q64KdT4yXW8NOpVs49oxjAOAA4rR8Q6xnLQxyE=" - } - } - }, - { "path": "com/android/tools/annotations/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -4346,21 +4226,6 @@ } }, - { - "path": "com/android/tools/build/apksig/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "apksig-3.3.1.pom": { - "sha1": "e916d810d293ce4ab620435b41d2e3bc67972cd3", - "sha256": "sha256-cGliMgmhK5sal8XJypuekagqDkDG4h4LlMc5barHh80=" - }, - "apksig-3.3.1.jar": { - "sha1": "5dc32667e573a18b05119685ac3f2b8c0f17182d", - "sha256": "sha256-NXs57dinjUgKlT5rl8CYWf1AyXLBpJtvnTvT1LmYyy0=" - } - } - }, - { "path": "com/android/tools/build/apksig/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -4470,21 +4335,6 @@ } }, - { - "path": "com/android/tools/build/apkzlib/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "apkzlib-3.3.1.pom": { - "sha1": "02214cdec00c2553430192a7f36e9a28cf96bf6f", - "sha256": "sha256-IVhIC03ar9F8K15CEeAPstojFB93BY+VjRqUlFBZ0IU=" - }, - "apkzlib-3.3.1.jar": { - "sha1": "0563a5b71668b4fe7da03a0a3054c9fdd973d3cf", - "sha256": "sha256-ZAVmwOT1BZATm7z7sP90TB9tzZ8mL48tAVn8QZQTgcw=" - } - } - }, - { "path": "com/android/tools/build/apkzlib/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -4624,21 +4474,6 @@ } }, - { - "path": "com/android/tools/build/builder-model/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "builder-model-3.3.1.pom": { - "sha1": "4011d22709777c4063e84d39dbfe4ed535a31905", - "sha256": "sha256-XVNezIVtl4YN/ZElCFrqki4FTrfZ4SRPg3p0n76b++M=" - }, - "builder-model-3.3.1.jar": { - "sha1": "2c47cf0451da2eaad484ccd2d580a8cfd23fa064", - "sha256": "sha256-BXtSlcP+jNze+uaN47+/nHbTnaI+BMw0ZdZgA3oxfwA=" - } - } - }, - { "path": "com/android/tools/build/builder-model/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -4790,21 +4625,6 @@ } }, - { - "path": "com/android/tools/build/builder-test-api/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "builder-test-api-3.3.1.pom": { - "sha1": "e79a310b9c89fcb62f343b727f5747783c778861", - "sha256": "sha256-heZof7B9lqEFRE1Rouwnrz9798H5w72QcGZ9QblfZAY=" - }, - "builder-test-api-3.3.1.jar": { - "sha1": "c1a1ce91c0f34c43a52c54c1a2f6fdbaafadd3da", - "sha256": "sha256-KYnV5vE5YwFoEC40dwJCFbnKvew+Gqc4saBze0tfyww=" - } - } - }, - { "path": "com/android/tools/build/builder-test-api/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -4956,21 +4776,6 @@ } }, - { - "path": "com/android/tools/build/builder/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "builder-3.3.1.pom": { - "sha1": "fbca96adc8069b8fcb01c7271c3b4be4f901b517", - "sha256": "sha256-pg/e6U4EqMemXDi6m2UFhcOkv0cisGFnuI85cO4UA+Q=" - }, - "builder-3.3.1.jar": { - "sha1": "e4d2ad1ef694fca700b3ab1f4df4b79313d17c98", - "sha256": "sha256-zoj1PYZLXN+oW1cC5yiz1u0NOqkoy2HghCRtSlUBXFI=" - } - } - }, - { "path": "com/android/tools/build/builder/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -5092,21 +4897,6 @@ } }, - { - "path": "com/android/tools/build/bundletool/0.6.0", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "bundletool-0.6.0.pom": { - "sha1": "5a6e5b5af1687285125f43e00a8e5a8efe6f76a4", - "sha256": "sha256-YDqi6WyRrkPynACNA16mdo0fJya6qjAqXwzYBFfgRiI=" - }, - "bundletool-0.6.0.jar": { - "sha1": "fb944be26f692e6ac937924ad5be7faa4093dd80", - "sha256": "sha256-QAU1QDlstRlZ0GYLSihk7mqBaXi/AT/UwB3L7IlcS7o=" - } - } - }, - { "path": "com/android/tools/build/bundletool/0.9.0", "repo": "https://dl.google.com/dl/android/maven2", @@ -5242,21 +5032,6 @@ } }, - { - "path": "com/android/tools/build/gradle-api/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "gradle-api-3.3.1.pom": { - "sha1": "c9a6cecdb5e233c2ffde76507bddc6f26ade5528", - "sha256": "sha256-3BUSdrg4w9TdT8QdcwRoOkTGotjb3ngpdN9p+1g8dRQ=" - }, - "gradle-api-3.3.1.jar": { - "sha1": "93aac19942998e480db4195212150fb30f7a78cd", - "sha256": "sha256-SMmx/OFMswX3/3XdL97Ds/qtZK/pFQbviYoEsIbmtBY=" - } - } - }, - { "path": "com/android/tools/build/gradle-api/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -5457,21 +5232,6 @@ } }, - { - "path": "com/android/tools/build/gradle/3.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "gradle-3.3.1.pom": { - "sha1": "1769370bffda87132eb79580bf54ccb9eb339020", - "sha256": "sha256-9eitp3Q6B3or5f+qF0Q0VmkSQa7ZEoYVgAXzUcRA/3w=" - }, - "gradle-3.3.1.jar": { - "sha1": "7d642f14aa35443dd7aeecd0600c17da37d3bccc", - "sha256": "sha256-9WSZq8Ux35uuhlFo5y8kCHAtSgH0bXuMGgowDWLcEb0=" - } - } - }, - { "path": "com/android/tools/build/gradle/3.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -5593,21 +5353,6 @@ } }, - { - "path": "com/android/tools/build/jetifier/jetifier-core/1.0.0-beta02", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "jetifier-core-1.0.0-beta02.pom": { - "sha1": "db878af76000b681798b114a5169163b1efe59ea", - "sha256": "sha256-kJGGklY7MCjkeLrxyUM3jfSIOTpSeJWMbzaWO2jfw7k=" - }, - "jetifier-core-1.0.0-beta02.jar": { - "sha1": "fa93fdb83bdfd51e80e09a808fb2515a7134d406", - "sha256": "sha256-72H4QwL4tB3OOFjB/H56kOx0omOgITsfZegMVhRaR5M=" - } - } - }, - { "path": "com/android/tools/build/jetifier/jetifier-core/1.0.0-beta04", "repo": "https://dl.google.com/dl/android/maven2", @@ -5672,21 +5417,6 @@ } }, - { - "path": "com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta02", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "jetifier-processor-1.0.0-beta02.pom": { - "sha1": "3bf006f5a449806a9ad493a99c9f9417b3040ef0", - "sha256": "sha256-+zYwiX233O8PE6VViKrYxkvcGPZ64KHizNR1igcioa8=" - }, - "jetifier-processor-1.0.0-beta02.jar": { - "sha1": "624d187319c8dfd6bc8281b4afbab87c39bbb005", - "sha256": "sha256-J+UFZWvlNLNIYHQy/EEeKVQLCE0NTkhlIyqnYswe9Aw=" - } - } - }, - { "path": "com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta04", "repo": "https://dl.google.com/dl/android/maven2", @@ -5781,21 +5511,6 @@ } }, - { - "path": "com/android/tools/build/manifest-merger/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "manifest-merger-26.3.1.pom": { - "sha1": "1aad18d13e7389cf148b1c6c468b2947ca23cbbd", - "sha256": "sha256-YNhLNKJlpgVeZhxpOvIFB1mgbYpuXLpk370esi0vpPU=" - }, - "manifest-merger-26.3.1.jar": { - "sha1": "aa94f738e318fc73059d9207f433f13556072d05", - "sha256": "sha256-hNrba75FBJgCeexO/2RdkaGgsPpagAQjmjS5vOZ1crU=" - } - } - }, - { "path": "com/android/tools/build/manifest-merger/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -5947,21 +5662,6 @@ } }, - { - "path": "com/android/tools/common/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "common-26.3.1.pom": { - "sha1": "b79360c83ea68ba7f0ac0fadf7c48e1a53511352", - "sha256": "sha256-mvrBYjeX9GBEevDT9gMuQfLdXx1N7pSbd3OBSR6NxVM=" - }, - "common-26.3.1.jar": { - "sha1": "b0e3aa846dd94f9608018f7ef6501d1069f6488c", - "sha256": "sha256-QashymLYGxzYciSbVSlD1rzTZmN32f1/cY3rQd7HM9Y=" - } - } - }, - { "path": "com/android/tools/common/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -6101,21 +5801,6 @@ } }, - { - "path": "com/android/tools/ddms/ddmlib/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "ddmlib-26.3.1.pom": { - "sha1": "14405d92c982c96ace23b7a4c505b0d9de58cd8d", - "sha256": "sha256-MhUp9OEUJ8VtX0uLtcJkLAHza1LkO1wwnEk81IM9sNE=" - }, - "ddmlib-26.3.1.jar": { - "sha1": "61ca2873fcce1012ba9782adf7e9b0e164fb6007", - "sha256": "sha256-oTYJ+lhJr4+Os0JzaOG8KMp7DwSvKGwLqVoAfrkkHro=" - } - } - }, - { "path": "com/android/tools/ddms/ddmlib/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -6255,21 +5940,6 @@ } }, - { - "path": "com/android/tools/dvlib/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "dvlib-26.3.1.pom": { - "sha1": "c438f3c025bd878ac3b54368e012b3792f9c8928", - "sha256": "sha256-3lL/6GFK8OCRXxbiIujskxfriVuL9GtfE7hU8B2mDdY=" - }, - "dvlib-26.3.1.jar": { - "sha1": "971430b6163a834656d07434c46fee64d109ad8e", - "sha256": "sha256-cLMOL4Sc+kKqE7+GWenhTAKtfLSkbLKB4CKOuC5XM4s=" - } - } - }, - { "path": "com/android/tools/dvlib/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -6514,21 +6184,6 @@ } }, - { - "path": "com/android/tools/layoutlib/layoutlib-api/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "layoutlib-api-26.3.1.pom": { - "sha1": "0355e0146c59a91fbb303d7faaa6d2d0413f5dde", - "sha256": "sha256-az/hSE+y4dWr/4VYc0KxX5tM3W6E/Vkjm9r7ShTtLXg=" - }, - "layoutlib-api-26.3.1.jar": { - "sha1": "969ef3a7c0c3b245a3efe8aff7a2f6f15ff4e824", - "sha256": "sha256-Tk6yS7wTU2sl1t063kHZJWr1rnuBpBe5a1WEMLUKQV4=" - } - } - }, - { "path": "com/android/tools/layoutlib/layoutlib-api/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -6728,21 +6383,6 @@ } }, - { - "path": "com/android/tools/lint/lint-gradle-api/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "lint-gradle-api-26.3.1.pom": { - "sha1": "dbdbed4b5fa948b991335771c7005fc8aa8be73b", - "sha256": "sha256-6xds70C7k1Yy8gaACv2XSeMP+suuYIgzflDCP2vG5CA=" - }, - "lint-gradle-api-26.3.1.jar": { - "sha1": "d55e1bcbe4e7c0bb97f5c385a003c4339e38d07f", - "sha256": "sha256-RcBjcp/izzXWOh/9Ih17gtPkpxWay2AvqWuc/5BN5sk=" - } - } - }, - { "path": "com/android/tools/lint/lint-gradle-api/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -7017,21 +6657,6 @@ } }, - { - "path": "com/android/tools/repository/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "repository-26.3.1.pom": { - "sha1": "ab5a2f6cbedccf4ff9efbd5301fe26c9d1aaea2a", - "sha256": "sha256-VRlYrn5H3gUTtUim8TrCf8Bv8/Ww/x6aQ8SAjzRz6zc=" - }, - "repository-26.3.1.jar": { - "sha1": "0fe4c713437ebfb8c68e95c717c063843bd63758", - "sha256": "sha256-UZR25PiBJMbbndC98J8MSqXMi/Hvq4Dd3uL3Wmug784=" - } - } - }, - { "path": "com/android/tools/repository/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -7171,21 +6796,6 @@ } }, - { - "path": "com/android/tools/sdklib/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "sdklib-26.3.1.pom": { - "sha1": "d6cfc0d8a0f49620138cfaea6c51201c7c678633", - "sha256": "sha256-gnUcqRaojEMoL7ZX1kJerqAstwsEAJlroYEZr6GRRCE=" - }, - "sdklib-26.3.1.jar": { - "sha1": "85c3c1de8824ca1f5ff491690931256c23a7297b", - "sha256": "sha256-aEN9Fbfmle8G6Yu88HEQQJlVtjsBijR7pofwGuxQfQo=" - } - } - }, - { "path": "com/android/tools/sdklib/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -7325,21 +6935,6 @@ } }, - { - "path": "com/android/tools/sdk-common/26.3.1", - "repo": "https://dl.google.com/dl/android/maven2", - "files": { - "sdk-common-26.3.1.pom": { - "sha1": "9b7b4248e21db9c342dba7c3e891f740246b97c3", - "sha256": "sha256-jFp1bExxaochJmmIvOMohkjrj3uDF3DFct1Pcp85iqg=" - }, - "sdk-common-26.3.1.jar": { - "sha1": "c9bed0f05024f919fe6168ef381afbe72074a272", - "sha256": "sha256-s2dcStd5EUHIfzaADxkUIz8q9Rx2b+F67BsVIsgOL8g=" - } - } - }, - { "path": "com/android/tools/sdk-common/26.5.4", "repo": "https://dl.google.com/dl/android/maven2", @@ -11342,17 +10937,6 @@ } }, - { - "path": "com/google/guava/guava-parent/26.0-jre", - "repo": "https://repo.maven.apache.org/maven2", - "files": { - "guava-parent-26.0-jre.pom": { - "sha1": "3a638a46e3277ff6a3d43d2a50bcccfac2966815", - "sha256": "sha256-u31c1BfA19714+Jwkv3SNSLT/CUa2KB5VsE84Fc66qM=" - } - } - }, - { "path": "com/google/guava/guava-parent/27.0.1-jre", "repo": "https://repo.maven.apache.org/maven2", @@ -11505,21 +11089,6 @@ } }, - { - "path": "com/google/guava/guava/26.0-jre", - "repo": "https://repo.maven.apache.org/maven2", - "files": { - "guava-26.0-jre.pom": { - "sha1": "7883e19f8b0cca8c4498d476743e31b107674155", - "sha256": "sha256-HDN63JpKtLhE2oHahZNlgbiUbHy3EoTF3L2vHqp+4Qk=" - }, - "guava-26.0-jre.jar": { - "sha1": "6a806eff209f36f635f943e16d97491f00f6bfab", - "sha256": "sha256-oOnKutZlvCC80rAfEI5fwD91bhOuqAq6rbn0BwM76iw=" - } - } - }, - { "path": "com/google/guava/guava/27.0.1-jre", "repo": "https://repo.maven.apache.org/maven2", @@ -14121,16 +13690,16 @@ }, { - "path": "net/bytebuddy/byte-buddy-agent/1.14.10", + "path": "net/bytebuddy/byte-buddy-agent/1.14.11", "repo": "https://repo.maven.apache.org/maven2", "files": { - "byte-buddy-agent-1.14.10.pom": { - "sha1": "ab24aa41b81d9496ec9ccd188a0449327d93bfdf", - "sha256": "sha256-U7yX6ca/fC0OX5y6x9Xeaykk2RbPS4F+ajo1kpx5a0o=" + "byte-buddy-agent-1.14.11.pom": { + "sha1": "00a2165ce3253489dd9fd0836a169dfce74e2042", + "sha256": "sha256-VBMQ/3WsTurkYFUJn8Ec3b5TqcBe6vry9wMgZQ2zzOk=" }, - "byte-buddy-agent-1.14.10.jar": { - "sha1": "90ed94ac044ea8953b224304c762316e91fd6b31", - "sha256": "sha256-Z5k6idR8pY/4aIAqREjd0VDl/k5aVkXe2ZDXtNVXprk=" + "byte-buddy-agent-1.14.11.jar": { + "sha1": "f9cb566608fbac6bc7bf54901a7aa11543a989ee", + "sha256": "sha256-L1N6Yhpk+nAT1oxpWnajTujXna105jXKyhbdViV664A=" } } }, @@ -14158,12 +13727,12 @@ }, { - "path": "net/bytebuddy/byte-buddy-parent/1.14.10", + "path": "net/bytebuddy/byte-buddy-parent/1.14.11", "repo": "https://repo.maven.apache.org/maven2", "files": { - "byte-buddy-parent-1.14.10.pom": { - "sha1": "4c560a925c30d5911dc875af5af4737e21b397be", - "sha256": "sha256-xpghkGD7DlZaDyyWCU6Ssg7+FG/WFjayyeTAO9m6Sns=" + "byte-buddy-parent-1.14.11.pom": { + "sha1": "696bf3e007e88bd1c0c2d877d74e0f3c56f2b96f", + "sha256": "sha256-RsDxP8l3jcLrtpdIgjqixMvwfqt9GMaqGRxSnRZQiSs=" } } }, @@ -14199,16 +13768,16 @@ }, { - "path": "net/bytebuddy/byte-buddy/1.14.10", + "path": "net/bytebuddy/byte-buddy/1.14.11", "repo": "https://repo.maven.apache.org/maven2", "files": { - "byte-buddy-1.14.10.pom": { - "sha1": "8806052a8770a6b3e14362ed0ce6ef263e6a20ab", - "sha256": "sha256-zVh4KEX/ju3y7YOgw+30Xu65nhTAWvii6QGGDqCAzq8=" + "byte-buddy-1.14.11.pom": { + "sha1": "5ecfcd2f75aa8c7b6347d864a4d0a5212c360301", + "sha256": "sha256-NYRJ1sc1OFhFCN2K5s/eVrr0o0t2e3HZzEZE8PH0IRo=" }, - "byte-buddy-1.14.10.jar": { - "sha1": "8117daf4a612122eb4f517f66adff778cb8b4737", - "sha256": "sha256-MObgRGQ3pn2zfit/fTP1B4fd/ZcDWTGd/QVGnaoty84=" + "byte-buddy-1.14.11.jar": { + "sha1": "725602eb7c8c56b51b9c21f273f9df5c909d9e7d", + "sha256": "sha256-Yq4oGH7SsGKBPaap1We/7nM8NBWCaZti3ZgCMHKaAxM=" } } }, @@ -17822,21 +17391,6 @@ } }, - { - "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.20", - "repo": "https://repo.maven.apache.org/maven2", - "files": { - "kotlin-reflect-1.3.20.pom": { - "sha1": "7cc0e8dc8e9bf863127aee4501449e25e85a6f78", - "sha256": "sha256-ajZdjTUpX69X8t86ssuQQgnaqsiQb8Y3R9Pjv6sJPeI=" - }, - "kotlin-reflect-1.3.20.jar": { - "sha1": "cd49eec32cf964333faf59e04b4085eac7008477", - "sha256": "sha256-7hqSbtZY594ObfAkLNV0s7TgjmT+emgngibG8tM3Mjg=" - } - } - }, - { "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.50", "repo": "https://repo.maven.apache.org/maven2", @@ -18227,21 +17781,6 @@ } }, - { - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.20", - "repo": "https://repo.maven.apache.org/maven2", - "files": { - "kotlin-stdlib-common-1.3.20.pom": { - "sha1": "507fa9faf5120c5c5247bc1b23476ad91760c09c", - "sha256": "sha256-BIjdHCYv5hfXc2K8Sa+BjYztQJQ6pbA8GITb8kdRCjA=" - }, - "kotlin-stdlib-common-1.3.20.jar": { - "sha1": "7d7934e26ce34da1a0a8d00e38038d7cf3375e89", - "sha256": "sha256-Br3Yrto0fvbvPk6diKASVMzbcHhLaXSV9qQh/WY6tkk=" - } - } - }, - { "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.31", "repo": "https://repo.maven.apache.org/maven2", @@ -18527,21 +18066,6 @@ } }, - { - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.20", - "repo": "https://repo.maven.apache.org/maven2", - "files": { - "kotlin-stdlib-jdk7-1.3.20.pom": { - "sha1": "665178dfa4d04de64edecf5f0dbda61b55f8f4e3", - "sha256": "sha256-SdtmBiZNOmpI+QgzXASEYirVyPTfjEjdSgAmdA4eFsU=" - }, - "kotlin-stdlib-jdk7-1.3.20.jar": { - "sha1": "aa17d6fd473ce53061a7b2b9d2ae96f547cae93d", - "sha256": "sha256-/Sr3C90rwCT7A8vtYzyhQ4cso2pqFuIYzGfIkLefsx0=" - } - } - }, - { "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50", "repo": "https://repo.maven.apache.org/maven2", @@ -18722,21 +18246,6 @@ } }, - { - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.20", - "repo": "https://repo.maven.apache.org/maven2", - "files": { - "kotlin-stdlib-jdk8-1.3.20.pom": { - "sha1": "5c65523f57e3918ef722a15faae5173fc9a31331", - "sha256": "sha256-DF+73Rh7hSpRoKP7YskCSdpOdN//jf/5RphOL3AlCkI=" - }, - "kotlin-stdlib-jdk8-1.3.20.jar": { - "sha1": "b1f3cb184c4ce4139741454df2f8fca5320f822d", - "sha256": "sha256-bAgx5+OsqjkL8i952B8y8hLcj94ZgHo1Sk7k9migxHg=" - } - } - }, - { "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.50", "repo": "https://repo.maven.apache.org/maven2", @@ -18962,21 +18471,6 @@ } }, - { - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.20", - "repo": "https://repo.maven.apache.org/maven2", - "files": { - "kotlin-stdlib-1.3.20.pom": { - "sha1": "9d1e01f424795aa471a8def0b5dc8aeeb537aafd", - "sha256": "sha256-Mu+dGkDXXOr0F5KW7VTdylp+ekpl4aAZ5kmOusg14Rw=" - }, - "kotlin-stdlib-1.3.20.jar": { - "sha1": "eb2a232734e09fcd1b958a5c7520a93c6de38b32", - "sha256": "sha256-YB+RDalo+z2o6te2Tta/XJcQ2DzqN+SmMYR+fWiOM2E=" - } - } - }, - { "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.31", "repo": "https://repo.maven.apache.org/maven2", @@ -19666,16 +19160,16 @@ }, { - "path": "org/mockito/mockito-core/5.8.0", + "path": "org/mockito/mockito-core/5.9.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "mockito-core-5.8.0.pom": { - "sha1": "a2b7b33c5d649a2f48b1e7aab95d81671f66875f", - "sha256": "sha256-dJWKzd4UjzC/ox/8CFi2L3H2PMws602KjGfX9CjUOi0=" + "mockito-core-5.9.0.pom": { + "sha1": "2054dcc15b9ede899cb9ec6e8e960e36c68b4574", + "sha256": "sha256-BJDEL+Yu7WRzQdpAojcHGW2BO0TbKj3KMB2IFz56yPc=" }, - "mockito-core-5.8.0.jar": { - "sha1": "df310627f77f859114ad31e1376fff0dce263cca", - "sha256": "sha256-wyD2YqA8KVHtzFGkS2TXmo6ZQ3P/VIRTtf2vad6+RoI=" + "mockito-core-5.9.0.jar": { + "sha1": "faa88b96db3aeb96a93e83dec7491345bfbfc414", + "sha256": "sha256-u62Rhe1zSWX6x+Nn8OUVlvaVMeUdiyy87BBI3W+0Hyw=" } } }, diff --git a/nix/deps/gradle/deps.list b/nix/deps/gradle/deps.list index b8449b0344e..85cf1272e0c 100644 --- a/nix/deps/gradle/deps.list +++ b/nix/deps/gradle/deps.list @@ -49,7 +49,6 @@ androidx.core:core:1.7.0 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.5.4 androidx.databinding:databinding-common:4.1.0 androidx.databinding:databinding-common:7.0.4 @@ -57,7 +56,6 @@ androidx.databinding:databinding-common:7.2.1 androidx.databinding:databinding-common:7.3.1 androidx.databinding:databinding-common:7.4.2 androidx.databinding:databinding-compiler-common:3.2.1 -androidx.databinding:databinding-compiler-common:3.3.1 androidx.databinding:databinding-compiler-common:3.5.4 androidx.databinding:databinding-compiler-common:4.1.0 androidx.databinding:databinding-compiler-common:7.0.4 @@ -159,7 +157,6 @@ 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.2.1 -com.android.databinding:baseLibrary:3.3.1 com.android.databinding:baseLibrary:3.5.4 com.android.databinding:baseLibrary:4.1.0 com.android.databinding:baseLibrary:7.0.4 @@ -170,7 +167,6 @@ com.android.databinding:compilerCommon:1.0-rc5 com.android.databinding:compilerCommon:3.0.0 com.android.databinding:compilerCommon:3.0.1 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.5.4 com.android.tools.analytics-library:crash:27.1.0 com.android.tools.analytics-library:crash:30.0.4 @@ -180,7 +176,6 @@ com.android.tools.analytics-library:crash:30.4.2 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.2.1 -com.android.tools.analytics-library:protos:26.3.1 com.android.tools.analytics-library:protos:26.5.4 com.android.tools.analytics-library:protos:27.1.0 com.android.tools.analytics-library:protos:30.0.4 @@ -190,7 +185,6 @@ com.android.tools.analytics-library:protos:30.4.2 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.2.1 -com.android.tools.analytics-library:shared:26.3.1 com.android.tools.analytics-library:shared:26.5.4 com.android.tools.analytics-library:shared:27.1.0 com.android.tools.analytics-library:shared:30.0.4 @@ -200,7 +194,6 @@ com.android.tools.analytics-library:shared:30.4.2 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.2.1 -com.android.tools.analytics-library:tracker:26.3.1 com.android.tools.analytics-library:tracker:26.5.4 com.android.tools.analytics-library:tracker:27.1.0 com.android.tools.analytics-library:tracker:30.0.4 @@ -208,12 +201,10 @@ com.android.tools.analytics-library:tracker:30.2.1 com.android.tools.analytics-library:tracker:30.3.1 com.android.tools.analytics-library:tracker:30.4.2 com.android.tools.build.jetifier:jetifier-core:1.0.0-alpha10 -com.android.tools.build.jetifier:jetifier-core:1.0.0-beta02 com.android.tools.build.jetifier:jetifier-core:1.0.0-beta04 com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09 com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10 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.jetifier:jetifier-processor:1.0.0-beta09 com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10 @@ -232,7 +223,6 @@ com.android.tools.build:aaptcompiler:7.4.2 com.android.tools.build:apksig:3.0.0 com.android.tools.build:apksig:3.0.1 com.android.tools.build:apksig:3.2.1 -com.android.tools.build:apksig:3.3.1 com.android.tools.build:apksig:3.5.4 com.android.tools.build:apksig:4.1.0 com.android.tools.build:apksig:7.0.4 @@ -240,7 +230,6 @@ com.android.tools.build:apksig:7.2.1 com.android.tools.build:apksig:7.3.1 com.android.tools.build:apksig:7.4.2 com.android.tools.build:apkzlib:3.2.1 -com.android.tools.build:apkzlib:3.3.1 com.android.tools.build:apkzlib:3.5.4 com.android.tools.build:apkzlib:4.1.0 com.android.tools.build:apkzlib:7.0.4 @@ -252,7 +241,6 @@ 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.2.1 -com.android.tools.build:builder-model:3.3.1 com.android.tools.build:builder-model:3.5.4 com.android.tools.build:builder-model:4.1.0 com.android.tools.build:builder-model:7.0.4 @@ -264,7 +252,6 @@ 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.2.1 -com.android.tools.build:builder-test-api:3.3.1 com.android.tools.build:builder-test-api:3.5.4 com.android.tools.build:builder-test-api:4.1.0 com.android.tools.build:builder-test-api:7.0.4 @@ -276,7 +263,6 @@ 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.2.1 -com.android.tools.build:builder:3.3.1 com.android.tools.build:builder:3.5.4 com.android.tools.build:builder:4.1.0 com.android.tools.build:builder:7.0.4 @@ -284,7 +270,6 @@ com.android.tools.build:builder:7.2.1 com.android.tools.build:builder:7.3.1 com.android.tools.build:builder:7.4.2 com.android.tools.build:bundletool:0.5.0 -com.android.tools.build:bundletool:0.6.0 com.android.tools.build:bundletool:0.9.0 com.android.tools.build:bundletool:0.14.0 com.android.tools.build:bundletool:1.6.0 @@ -294,7 +279,6 @@ com.android.tools.build:bundletool:1.11.4 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.2.1 -com.android.tools.build:gradle-api:3.3.1 com.android.tools.build:gradle-api:3.5.4 com.android.tools.build:gradle-api:4.1.0 com.android.tools.build:gradle-api:7.0.4 @@ -311,7 +295,6 @@ 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.2.1 -com.android.tools.build:gradle:3.3.1 com.android.tools.build:gradle:3.5.4 com.android.tools.build:gradle:4.1.0 com.android.tools.build:gradle:7.0.4 @@ -322,7 +305,6 @@ 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.2.1 -com.android.tools.build:manifest-merger:26.3.1 com.android.tools.build:manifest-merger:26.5.4 com.android.tools.build:manifest-merger:27.1.0 com.android.tools.build:manifest-merger:30.0.4 @@ -336,7 +318,6 @@ 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.2.1 -com.android.tools.ddms:ddmlib:26.3.1 com.android.tools.ddms:ddmlib:26.5.4 com.android.tools.ddms:ddmlib:27.1.0 com.android.tools.ddms:ddmlib:30.0.4 @@ -355,7 +336,6 @@ 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.2.1 -com.android.tools.layoutlib:layoutlib-api:26.3.1 com.android.tools.layoutlib:layoutlib-api:26.5.4 com.android.tools.layoutlib:layoutlib-api:27.1.0 com.android.tools.layoutlib:layoutlib-api:30.0.4 @@ -371,7 +351,6 @@ 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-gradle-api:26.2.1 -com.android.tools.lint:lint-gradle-api:26.3.1 com.android.tools.lint:lint-gradle-api:26.5.4 com.android.tools.lint:lint-gradle-api:27.1.0 com.android.tools.lint:lint-model:27.1.0 @@ -412,7 +391,6 @@ 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.2.1 -com.android.tools:annotations:26.3.1 com.android.tools:annotations:26.5.4 com.android.tools:annotations:27.1.0 com.android.tools:annotations:30.0.4 @@ -424,7 +402,6 @@ 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.2.1 -com.android.tools:common:26.3.1 com.android.tools:common:26.5.4 com.android.tools:common:27.1.0 com.android.tools:common:30.0.4 @@ -436,7 +413,6 @@ 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.2.1 -com.android.tools:dvlib:26.3.1 com.android.tools:dvlib:26.5.4 com.android.tools:dvlib:27.1.0 com.android.tools:dvlib:30.0.4 @@ -446,7 +422,6 @@ com.android.tools:dvlib:30.4.2 com.android.tools:repository:26.0.0 com.android.tools:repository:26.0.1 com.android.tools:repository:26.2.1 -com.android.tools:repository:26.3.1 com.android.tools:repository:26.5.4 com.android.tools:repository:27.1.0 com.android.tools:repository:30.0.4 @@ -458,7 +433,6 @@ 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.2.1 -com.android.tools:sdklib:26.3.1 com.android.tools:sdklib:26.5.4 com.android.tools:sdklib:27.1.0 com.android.tools:sdklib:30.0.4 @@ -470,7 +444,6 @@ 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.2.1 -com.android.tools:sdk-common:26.3.1 com.android.tools:sdk-common:26.5.4 com.android.tools:sdk-common:27.1.0 com.android.tools:sdk-common:30.0.4 @@ -590,7 +563,6 @@ com.google.guava:failureaccess:1.0.1 com.google.guava:guava:17.0 com.google.guava:guava:22.0 com.google.guava:guava:23.0 -com.google.guava:guava:26.0-jre com.google.guava:guava:27.0.1-jre com.google.guava:guava:28.1-jre com.google.guava:guava:29.0-jre @@ -817,7 +789,6 @@ org.jetbrains.kotlin:kotlin-project-model:1.6.20 org.jetbrains.kotlin:kotlin-project-model:1.9.0 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.50 org.jetbrains.kotlin:kotlin-reflect:1.3.72 org.jetbrains.kotlin:kotlin-reflect:1.4.32 @@ -834,7 +805,6 @@ org.jetbrains.kotlin:kotlin-scripting-jvm:1.6.20 org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.0 org.jetbrains.kotlin:kotlin-script-runtime:1.9.0 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.50 org.jetbrains.kotlin:kotlin-stdlib-common:1.3.72 org.jetbrains.kotlin:kotlin-stdlib-common:1.4.32 @@ -843,7 +813,6 @@ org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 org.jetbrains.kotlin:kotlin-stdlib-common:1.7.22 org.jetbrains.kotlin:kotlin-stdlib-common:1.9.0 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.50 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.32 @@ -852,7 +821,6 @@ org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.20 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0 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.50 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 @@ -861,7 +829,6 @@ org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.22 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 org.jetbrains.kotlin:kotlin-stdlib:1.1.3-2 org.jetbrains.kotlin:kotlin-stdlib:1.2.71 -org.jetbrains.kotlin:kotlin-stdlib:1.3.20 org.jetbrains.kotlin:kotlin-stdlib:1.3.50 org.jetbrains.kotlin:kotlin-stdlib:1.3.72 org.jetbrains.kotlin:kotlin-stdlib:1.4.32 diff --git a/nix/deps/gradle/deps.urls b/nix/deps/gradle/deps.urls index cba1f595887..a12be9dc5ef 100644 --- a/nix/deps/gradle/deps.urls +++ b/nix/deps/gradle/deps.urls @@ -62,7 +62,6 @@ https://dl.google.com/dl/android/maven2/androidx/core/core/1.7.0/core-1.7.0.pom https://dl.google.com/dl/android/maven2/androidx/cursoradapter/cursoradapter/1.0.0/cursoradapter-1.0.0.pom 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.5.4/databinding-common-3.5.4.pom https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/4.1.0/databinding-common-4.1.0.pom https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/7.0.4/databinding-common-7.0.4.pom @@ -70,7 +69,6 @@ https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/ https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/7.3.1/databinding-common-7.3.1.pom https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-common/7.4.2/databinding-common-7.4.2.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.5.4/databinding-compiler-common-3.5.4.pom https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-compiler-common/4.1.0/databinding-compiler-common-4.1.0.pom https://dl.google.com/dl/android/maven2/androidx/databinding/databinding-compiler-common/7.0.4/databinding-compiler-common-7.0.4.pom @@ -170,7 +168,6 @@ https://dl.google.com/dl/android/maven2/android/arch/lifecycle/runtime/1.0.0/run https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.0.0/baseLibrary-3.0.0.pom https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.0.1/baseLibrary-3.0.1.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.5.4/baseLibrary-3.5.4.pom https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/4.1.0/baseLibrary-4.1.0.pom https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/7.0.4/baseLibrary-7.0.4.pom @@ -205,7 +202,6 @@ https://dl.google.com/dl/android/maven2/com/android/support/support-v4/26.0.2/su https://dl.google.com/dl/android/maven2/com/android/support/support-vector-drawable/26.0.2/support-vector-drawable-26.0.2.pom 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.5.4/crash-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/27.1.0/crash-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/30.0.4/crash-30.0.4.pom @@ -215,7 +211,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/cras 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.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.5.4/protos-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/27.1.0/protos-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/30.0.4/protos-30.0.4.pom @@ -225,7 +220,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/prot 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.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.5.4/shared-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/27.1.0/shared-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/30.0.4/shared-30.0.4.pom @@ -235,7 +229,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shar 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.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.5.4/tracker-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/27.1.0/tracker-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/30.0.4/tracker-30.0.4.pom @@ -245,7 +238,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/trac 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.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.5.4/annotations-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/annotations/27.1.0/annotations-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/annotations/30.0.4/annotations-30.0.4.pom @@ -271,7 +263,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/aaptcompiler/7.4 https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.0.0/apksig-3.0.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.0.1/apksig-3.0.1.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.5.4/apksig-3.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/4.1.0/apksig-4.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.0.4/apksig-7.0.4.pom @@ -279,7 +270,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.2.1/apk https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.3.1/apksig-7.3.1.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.4.2/apksig-7.4.2.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.5.4/apkzlib-3.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/4.1.0/apkzlib-4.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/7.0.4/apkzlib-7.0.4.pom @@ -289,7 +279,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/7.4.2/ap 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.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.5.4/builder-model-3.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/4.1.0/builder-model-4.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/7.0.4/builder-model-7.0.4.pom @@ -299,7 +288,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/7. 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.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.5.4/builder-test-api-3.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/4.1.0/builder-test-api-4.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/7.0.4/builder-test-api-7.0.4.pom @@ -309,7 +297,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api 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.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.5.4/builder-3.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/4.1.0/builder-4.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/7.0.4/builder-7.0.4.pom @@ -317,7 +304,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/7.2.1/bu https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/7.3.1/builder-7.3.1.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/7.4.2/builder-7.4.2.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.9.0/bundletool-0.9.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.14.0/bundletool-0.14.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/1.6.0/bundletool-1.6.0.pom @@ -327,7 +313,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/1.11. 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.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.5.4/gradle-api-3.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/4.1.0/gradle-api-4.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/7.0.4/gradle-api-7.0.4.pom @@ -340,7 +325,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-settings- https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.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.5.4/gradle-3.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.0/gradle-4.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/7.0.4/gradle-7.0.4.pom @@ -348,19 +332,16 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/7.2.1/gra https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/7.3.1/gradle-7.3.1.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/7.4.2/gradle-7.4.2.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 https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-core/1.0.0-beta04/jetifier-core-1.0.0-beta04.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-core/1.0.0-beta09/jetifier-core-1.0.0-beta09.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-core/1.0.0-beta10/jetifier-core-1.0.0-beta10.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-processor/1.0.0-alpha10/jetifier-processor-1.0.0-alpha10.pom -https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta02/jetifier-processor-1.0.0-beta02.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta04/jetifier-processor-1.0.0-beta04.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta09/jetifier-processor-1.0.0-beta09.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta10/jetifier-processor-1.0.0-beta10.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.0.0/manifest-merger-26.0.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.0.1/manifest-merger-26.0.1.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.5.4/manifest-merger-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/27.1.0/manifest-merger-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/30.0.4/manifest-merger-30.0.4.pom @@ -370,7 +351,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/ 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.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.5.4/common-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/common/27.1.0/common-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/common/30.0.4/common-30.0.4.pom @@ -380,7 +360,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/common/30.4.2/common-3 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.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.5.4/ddmlib-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/27.1.0/ddmlib-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/30.0.4/ddmlib-30.0.4.pom @@ -390,7 +369,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/30.4.2/ddm 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.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.5.4/dvlib-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/27.1.0/dvlib-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/30.0.4/dvlib-30.0.4.pom @@ -407,7 +385,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/external/org-jetbrains https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.0.0/layoutlib-api-26.0.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.0.1/layoutlib-api-26.0.1.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.5.4/layoutlib-api-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/27.1.0/layoutlib-api-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/30.0.4/layoutlib-api-30.0.4.pom @@ -421,7 +398,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-checks/26.0. https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-checks/26.0.1/lint-checks-26.0.1.pom https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-checks/30.4.2/lint-checks-30.4.2.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.5.4/lint-gradle-api-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/27.1.0/lint-gradle-api-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle/30.4.2/lint-gradle-30.4.2.pom @@ -440,7 +416,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/play-sdk-proto/30.4.2/ https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.0.0/repository-26.0.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.0.1/repository-26.0.1.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.5.4/repository-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/repository/27.1.0/repository-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/repository/30.0.4/repository-30.0.4.pom @@ -450,7 +425,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/repository/30.4.2/repo 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.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.5.4/sdklib-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/27.1.0/sdklib-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/30.0.4/sdklib-30.0.4.pom @@ -460,7 +434,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/30.4.2/sdklib-3 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.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.5.4/sdk-common-26.5.4.pom https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/27.1.0/sdk-common-27.1.0.pom https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/30.0.4/sdk-common-30.0.4.pom @@ -715,7 +688,6 @@ https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/17.0/guava-pa https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/22.0/guava-parent-22.0.pom https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/23.0/guava-parent-23.0.pom https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/26.0-android/guava-parent-26.0-android.pom -https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/26.0-jre/guava-parent-26.0-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/27.0.1-jre/guava-parent-27.0.1-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/28.1-jre/guava-parent-28.1-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/29.0-jre/guava-parent-29.0-jre.pom @@ -728,7 +700,6 @@ https://repo.maven.apache.org/maven2/com/google/guava/guava/17.0/guava-17.0.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/22.0/guava-22.0.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/23.0/guava-23.0.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/26.0-android/guava-26.0-android.pom -https://repo.maven.apache.org/maven2/com/google/guava/guava/26.0-jre/guava-26.0-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/27.0.1-jre/guava-27.0.1-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/28.1-jre/guava-28.1-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/29.0-jre/guava-29.0-jre.pom @@ -913,13 +884,13 @@ https://repo.maven.apache.org/maven2/junit/junit/4.13.2/junit-4.13.2.pom https://repo.maven.apache.org/maven2/me/zhanghai/android/materialprogressbar/library/1.4.2/library-1.4.2.pom https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.11.13/byte-buddy-agent-1.11.13.pom https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.11.19/byte-buddy-agent-1.11.19.pom -https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.14.10/byte-buddy-agent-1.14.10.pom +https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.pom https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.11.13/byte-buddy-parent-1.11.13.pom https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.11.19/byte-buddy-parent-1.11.19.pom -https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.14.10/byte-buddy-parent-1.14.10.pom +https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.14.11/byte-buddy-parent-1.14.11.pom https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.11.13/byte-buddy-1.11.13.pom https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.11.19/byte-buddy-1.11.19.pom -https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.14.10/byte-buddy-1.14.10.pom +https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.pom https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.6.0/jna-platform-5.6.0.pom https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom https://repo.maven.apache.org/maven2/net/java/jvnet-parent/1/jvnet-parent-1.pom @@ -1167,7 +1138,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-project-model/1 https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-project-model/1.9.0/kotlin-project-model-1.9.0.pom 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.50/kotlin-reflect-1.3.50.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.72/kotlin-reflect-1.3.72.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.4.32/kotlin-reflect-1.4.32.pom @@ -1194,7 +1164,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.0/kotlin-script-runtime-1.9.0.pom 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.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.3.60/kotlin-stdlib-common-1.3.60.pom @@ -1214,7 +1183,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1 https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.22/kotlin-stdlib-common-1.7.22.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.0/kotlin-stdlib-common-1.9.0.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.50/kotlin-stdlib-jdk7-1.3.50.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/kotlin-stdlib-jdk7-1.3.72.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.10/kotlin-stdlib-jdk7-1.4.10.pom @@ -1227,7 +1195,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7 https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.22/kotlin-stdlib-jdk7-1.7.22.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.0/kotlin-stdlib-jdk7-1.9.0.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.50/kotlin-stdlib-jdk8-1.3.50.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/kotlin-stdlib-jdk8-1.3.72.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.10/kotlin-stdlib-jdk8-1.4.10.pom @@ -1243,7 +1210,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.0/ko https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.20/kotlin-stdlib-1.2.20.pom 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.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.3.60/kotlin-stdlib-1.3.60.pom @@ -1288,7 +1254,7 @@ https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.po https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/2.1.0/stax-ex-2.1.0.pom https://repo.maven.apache.org/maven2/org/mockito/mockito-core/3.12.4/mockito-core-3.12.4.pom https://repo.maven.apache.org/maven2/org/mockito/mockito-core/4.0.0/mockito-core-4.0.0.pom -https://repo.maven.apache.org/maven2/org/mockito/mockito-core/5.8.0/mockito-core-5.8.0.pom +https://repo.maven.apache.org/maven2/org/mockito/mockito-core/5.9.0/mockito-core-5.9.0.pom https://repo.maven.apache.org/maven2/org/mockito/mockito-inline/4.0.0/mockito-inline-4.0.0.pom https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/3.2/objenesis-parent-3.2.pom https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/3.3/objenesis-parent-3.3.pom diff --git a/nix/deps/gradle/get_projects.sh b/nix/deps/gradle/get_projects.sh index 1d70efddf5c..8a97870a23e 100755 --- a/nix/deps/gradle/get_projects.sh +++ b/nix/deps/gradle/get_projects.sh @@ -19,4 +19,4 @@ trap show_gradle_log ERR ./gradlew projects --no-daemon --console plain 2>&1 \ | tee "${GRADLE_LOG_FILE}" \ | grep "Project ':" \ - | sed -E "s;^.--- Project '\:([@_a-zA-Z0-9\-]+)';\1;" + | sed -E "s;^.--- Project '\:([@_a-zA-Z0-9\-]+)'.*;\1;" diff --git a/nix/deps/gradle/proj.list b/nix/deps/gradle/proj.list index ccb5c683ead..a4a422c090b 100644 --- a/nix/deps/gradle/proj.list +++ b/nix/deps/gradle/proj.list @@ -1,6 +1,7 @@ app react-native-async-storage_async-storage react-native-background-timer +react-native-biometrics react-native-blob-util react-native-blur react-native-camera-kit @@ -36,6 +37,5 @@ react-native-static-safe-area-insets react-native-status react-native-status-keycard react-native-svg -react-native-touch-id react-native-transparent-video react-native-webview diff --git a/package.json b/package.json index 610535ac820..67f8d2e31b2 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "react-dom": "18.0.0", "react-native": "0.72.5", "react-native-background-timer": "^2.1.1", + "react-native-biometrics": "^3.0.1", "react-native-blob-util": "^0.13.18", "react-native-camera-kit": "14.0.0-beta13", "react-native-config": "^1.5.0", @@ -65,7 +66,6 @@ "react-native-static-safe-area-insets": "^2.2.0", "react-native-status-keycard": "git+https://github.com/status-im/react-native-status-keycard.git#refs/tags/v2.5.39", "react-native-svg": "13.10.0", - "react-native-touch-id": "^4.4.1", "react-native-transparent-video": "git+https://github.com/status-im/react-native-transparent-video.git#refs/tags/0.1.1", "react-native-webview": "13.6.3", "react-syntax-highlighter": "^15.5.0", diff --git a/src/mocks/js_dependencies.cljs b/src/mocks/js_dependencies.cljs index 56d7ae397b1..ec5d44576ea 100644 --- a/src/mocks/js_dependencies.cljs +++ b/src/mocks/js_dependencies.cljs @@ -164,7 +164,7 @@ {:MediaStates {} :PlaybackCategories {}}) (def net-info #js {}) -(def touchid #js {}) +(def react-native-biometrics #js {:default {}}) (def react-native-image-viewing #js {:default {}}) (def react-native-static-safe-area-insets #js {:default {}}) @@ -391,7 +391,7 @@ "react-native-fetch-polyfill" fetch "react-native-status-keycard" status-keycard "react-native-keychain" keychain - "react-native-touch-id" touchid + "react-native-biometrics" react-native-biometrics "@react-native-community/netinfo" net-info "react-native-dialogs" dialogs "react-native" react-native diff --git a/src/react_native/biometrics.cljs b/src/react_native/biometrics.cljs new file mode 100644 index 00000000000..0e46c6eaa79 --- /dev/null +++ b/src/react_native/biometrics.cljs @@ -0,0 +1,76 @@ +(ns react-native.biometrics + (:require + ["react-native-biometrics" :default Biometrics] + [clojure.string :as string] + [oops.core :as oops] + [react-native.platform :as platform] + [schema.core :as schema])) + +(def ^:private ^:const android-not-available-error-message "Biometric hardware unavailable") +(def ^:private ^:const android-not-enrolled-error-message "No fingerprints enrolled.") +(def ^:private ^:const ios-not-enrolled-error-message "No identities are enrolled") + +(defn get-supported-type + "Returns a JS promise that resolves with the biometrics types supported by the + device, regardless of whether it's enabled or disabled. + + Resolved values: `:Biometrics` `:FaceID` `:TouchID`" + [] + (-> (Biometrics.) + (.isSensorAvailable) + (.then (fn [result] + (-> result + (oops/oget :biometryType) + keyword))) + (.catch (constantly nil)))) + +(defn get-available + "Returns a JS promise that resolves to a boolean, which signifies whether + biometrics is enabled/disabled on the device." + [] + (-> (Biometrics.) + (.isSensorAvailable) + (.then (fn [result] + (oops/oget result :available))))) + +;; NOTE: the react-native-biometrics package error codes/messages differ across platforms. +;; On android we get error messages while on iOS it's a stringified Obj-C error object. +(defn- convert-auth-error-message + [message] + (let [cause (if platform/android? + (condp = message + android-not-enrolled-error-message ::not-enrolled + android-not-available-error-message ::not-available + ::unknown) + + (condp #(string/includes? %2 %1) message + ios-not-enrolled-error-message ::not-enrolled + ::unknown))] + (ex-info "Failed to authenticate with biometrics" + {:orig-error-message message} + cause))) + +(defn authenticate + "Returns a JS promise that resolves with a boolean auth success state: `true` for + success and `false` when canceled by user." + [{:keys [prompt-message fallback-prompt-message cancel-button-text]}] + (-> (Biometrics.) + (.simplePrompt #js + {"promptMessage" prompt-message + "fallbackPromptMessage" fallback-prompt-message + "cancelButtonText" cancel-button-text}) + (.then (fn [result] + (oops/oget result :success))) + (.catch (fn [error] + (-> (.-message error) + convert-auth-error-message + throw))))) + +(schema/=> authenticate + [:=> + [:cat + [:map {:closed true} + [:prompt-message string?] + [:fallback-prompt-message {:optional true} string?] + [:cancel-button-text {:optional true} string?]]] + :any]) diff --git a/src/react_native/keychain.cljs b/src/react_native/keychain.cljs index 15ea0bc8b5d..0a3c7e1e401 100644 --- a/src/react_native/keychain.cljs +++ b/src/react_native/keychain.cljs @@ -72,9 +72,11 @@ (defn get-credentials "Gets the credentials for a specified server from the Keychain" - [server callback] - (-> (.getInternetCredentials ^js react-native-keychain (string/lower-case server)) - (.then callback))) + ([server] + (get-credentials server identity)) + ([server callback] + (-> (.getInternetCredentials ^js react-native-keychain (string/lower-case server)) + (.then callback)))) (defn reset-credentials [server] diff --git a/src/react_native/touch_id.cljs b/src/react_native/touch_id.cljs deleted file mode 100644 index 2c225e597f2..00000000000 --- a/src/react_native/touch_id.cljs +++ /dev/null @@ -1,20 +0,0 @@ -(ns react-native.touch-id - (:require - ["react-native-touch-id" :default touchid])) - -;; currently, for android, react-native-touch-id -;; is not returning supported biometric type -;; defaulting to :fingerprint -(def android-default-support :fingerprint) - -(defn get-supported-type - [callback] - (-> (.isSupported ^js touchid) - (.then #(callback (or (keyword %) android-default-support))) - (.catch #(callback nil)))) - -(defn authenticate - [{:keys [on-success on-fail reason options]}] - (-> (.authenticate ^js touchid reason (clj->js options)) - (.then #(when on-success (on-success %))) - (.catch #(when on-fail (on-fail (aget % "code")))))) diff --git a/src/status_im/common/biometric/events.cljs b/src/status_im/common/biometric/events.cljs index 79848bb0c70..ab2c3a5d937 100644 --- a/src/status_im/common/biometric/events.cljs +++ b/src/status_im/common/biometric/events.cljs @@ -2,9 +2,8 @@ (:require [native-module.core :as native-module] [re-frame.core :as re-frame] - [react-native.async-storage :as async-storage] + [react-native.biometrics :as biometrics] [react-native.platform :as platform] - [react-native.touch-id :as touch-id] [status-im.common.keychain.events :as keychain] [status-im.constants :as constants] [taoensso.timbre :as log] @@ -12,27 +11,19 @@ [utils.re-frame :as rf])) (def android-device-blacklisted? - (= (:brand (native-module/get-device-model-info)) "bannedbrand")) - -(defn get-supported-type - [callback] - (cond platform/ios? (touch-id/get-supported-type callback) - platform/android? (if android-device-blacklisted? - (callback nil) - (touch-id/get-supported-type callback)) - :else (callback nil))) + (and platform/android? (= (:brand (native-module/get-device-model-info)) "bannedbrand"))) (defn get-label-by-type [biometric-type] (condp = biometric-type - :fingerprint (i18n/label :t/biometric-fingerprint) - :FaceID (i18n/label :t/biometric-faceid) + constants/biometrics-type-android (i18n/label :t/biometric-fingerprint) + constants/biometrics-type-face-id (i18n/label :t/biometric-faceid) (i18n/label :t/biometric-touchid))) (defn get-icon-by-type [biometric-type] (condp = biometric-type - :FaceID :i/face-id + constants/biometrics-type-face-id :i/face-id :i/touch-id)) (re-frame/reg-fx @@ -41,8 +32,10 @@ ;;NOTE: if we can't save user password, we can't use biometric (keychain/can-save-user-password? (fn [can-save?] - (when can-save? - (get-supported-type #(rf/dispatch [:biometric/get-supported-biometric-type-success %]))))))) + (when (and can-save? (not android-device-blacklisted?)) + (-> (biometrics/get-supported-type) + (.then (fn [type] + (rf/dispatch [:biometric/get-supported-biometric-type-success type]))))))))) (rf/defn get-supported-biometric-auth-success {:events [:biometric/get-supported-biometric-type-success]} @@ -51,82 +44,32 @@ (rf/defn show-message {:events [:biometric/show-message]} - [_ code] - (let [handle-error? (and code - (not (contains? #{constants/biometric-error-user-canceled - constants/biometric-error-user-fallback} - code))) - content (if (#{constants/biometric-error-not-available - constants/biometric-error-not-enrolled} - code) - (i18n/label :t/grant-face-id-permissions) - (i18n/label :t/biometric-auth-error {:code code}))] - (when handle-error? - {:effects.utils/show-popup - {:title (i18n/label :t/biometric-auth-login-error-title) - :content content}}))) - -(defn- supress-biometry-error-key - [key-uid] - (keyword (str "biometric/supress-not-enrolled-error-" key-uid))) - -;; NOTE: if the account had biometrics registered, but it's not enrolled at the moment, -;; we should show the error message only once and supress further "NOT_ENROLLED" errors -;; until biometry is enrolled again. Note that we can only know that when :biometric/authenticate -;; is dispatched and fails with "NOT_ENROLLED", since :biometric/get-supported-biometric-type -;; only tells us what kind of biometric is available on the device, but it doesn't know of its -;; enrollment status. -(re-frame/reg-fx - :biometric/supress-not-enrolled-error - (fn [[key-uid dispatch-event]] - (let [storage-key (supress-biometry-error-key key-uid)] - (-> (async-storage/get-item storage-key identity) - (.then (fn [item] - (when (not item) - (rf/dispatch dispatch-event) - (async-storage/set-item! storage-key true)))) - (.catch (fn [err] - (log/error "Couldn't supress biometry NOT_ENROLLED error" - {:key-uid key-uid - :event :biometric/supress-not-enrolled-error - :error err}))))))) + [_ error] + (let [code (ex-cause error) + content (if (#{::biometrics/not-enrolled + ::biometrics/not-available} + code) + (i18n/label :t/grant-face-id-permissions) + (i18n/label :t/biometric-auth-error {:code code}))] + {:effects.utils/show-popup + {:title (i18n/label :t/biometric-auth-login-error-title) + :content content}})) -;; NOTE: when biometrics is re-enrolled, we erase the flag in async-storage to assure -;; the "NOT_ENROLLED" error message will be shown again if biometrics is un-enrolled -;; in the future. -(re-frame/reg-fx - :biometric/reset-not-enrolled-error - (fn [key-uid] - (let [storage-key (supress-biometry-error-key key-uid)] - (-> (async-storage/get-item storage-key identity) - (.then (fn [supress?] - (when supress? - (async-storage/set-item! storage-key nil)))) - (.catch (fn [err] - (log/error "Couldn't reset supressing biometry NOT_ENROLLED error" - {:key-uid key-uid - :event :biometric/reset-not-enrolled-error - :error err}))))))) (re-frame/reg-fx :biometric/authenticate - (fn [options] - (touch-id/authenticate - (merge - {:reason (i18n/label :t/biometric-auth-reason-login) - :options (merge - {:unifiedErrors true} - (when platform/ios? - {:passcodeFallback false - :fallbackLabel (i18n/label :t/biometric-auth-login-ios-fallback-label)}) - (when platform/android? - {:title (i18n/label :t/biometric-auth-android-title) - :imageColor :blue - :imageErrorColor :red - :sensorDescription (i18n/label :t/biometric-auth-android-sensor-desc) - :sensorErrorDescription (i18n/label :t/biometric-auth-android-sensor-error-desc) - :cancelText (i18n/label :t/cancel)}))} - options)))) + (fn [{:keys [on-success on-fail prompt-message]}] + (-> (biometrics/authenticate + {:prompt-message (or prompt-message (i18n/label :t/biometric-auth-reason-login)) + :fallback-prompt-message (i18n/label + :t/biometric-auth-login-ios-fallback-label) + :cancel-button-text (i18n/label :t/cancel)}) + (.then (fn [not-canceled?] + (when (and on-success not-canceled?) + (on-success)))) + (.catch (fn [err] + (when on-fail + (on-fail err))))))) (rf/defn authenticate {:events [:biometric/authenticate]} @@ -155,3 +98,23 @@ (let [key-uid (get-in db [:profile/profile :key-uid])] {:db (assoc db :auth-method constants/auth-method-none) :keychain/clear-user-password key-uid}))) + +(rf/reg-fx + :biometric/check-if-available + (fn [[key-uid callback]] + (keychain/can-save-user-password? + (fn [can-save?] + (when can-save? + (-> (biometrics/get-available) + (.then (fn [available?] + (when-not available? + (throw (js/Error. "biometric-not-available"))))) + (.then #(keychain/get-auth-method! key-uid)) + (.then (fn [auth-method] + (when auth-method (callback auth-method)))) + (.catch (fn [err] + (when-not (= (.-message err) "biometric-not-available") + (log/error "Failed to check if biometrics is available" + {:error err + :key-uid key-uid + :event :profile.login/check-biometric})))))))))) diff --git a/src/status_im/common/keychain/events.cljs b/src/status_im/common/keychain/events.cljs index bd479aa5f7d..1e12b52fc31 100644 --- a/src/status_im/common/keychain/events.cljs +++ b/src/status_im/common/keychain/events.cljs @@ -70,17 +70,13 @@ {:db (assoc db :auth-method method) :keychain/save-auth-method [key-uid method]}) -(re-frame/reg-fx - :keychain/get-auth-method - (fn [[key-uid callback]] - (can-save-user-password? - (fn [can-save?] - (if can-save? - (keychain/get-credentials - (str key-uid "-auth") - (fn [value] - (callback (if value (oops/oget value "password") auth-method-none)))) - (callback nil)))))) +(defn get-auth-method! + [key-uid] + (-> (str key-uid "-auth") + (keychain/get-credentials) + (.then (fn [value] + (if value (oops/oget value "password") auth-method-none))) + (.catch (constantly auth-method-none)))) (defn save-user-password! [key-uid password] @@ -101,7 +97,7 @@ (get-user-password! key-uid callback))) (rf/defn get-user-password - [_ key-uid callback] + [_ [key-uid callback]] {:keychain/get-user-password [key-uid callback]}) (defn- password-migration-key-name diff --git a/src/status_im/common/standard_authentication/standard_auth/authorize.cljs b/src/status_im/common/standard_authentication/standard_auth/authorize.cljs index 1784b34bbfc..b2bda80df8b 100644 --- a/src/status_im/common/standard_authentication/standard_auth/authorize.cljs +++ b/src/status_im/common/standard_authentication/standard_auth/authorize.cljs @@ -1,6 +1,6 @@ (ns status-im.common.standard-authentication.standard-auth.authorize (:require - [react-native.touch-id :as biometric] + [react-native.biometrics :as biometrics] [status-im.common.standard-authentication.enter-password.view :as enter-password] [taoensso.timbre :as log] [utils.i18n :as i18n] @@ -39,25 +39,29 @@ ; to retrigger biometric auth, so they can endlessly repeat this cycle. biometrics-login (fn [on-press-biometrics] (rf/dispatch [:dismiss-keyboard]) - (biometric/authenticate - {:reason (i18n/label :t/biometric-auth-confirm-message) - :on-success (fn [_response] - (on-close) - (rf/dispatch [:standard-auth/on-biometric-success - (handle-auth-success true)])) - :on-fail (fn [error] - (on-close) - (log/error "Authentication Failed. Error:" error) - (when on-auth-fail (on-auth-fail error)) - (password-login {:on-press-biometrics - #(on-press-biometrics - on-press-biometrics)}))}))] + (rf/dispatch + [:biometric/authenticate + {:prompt-message (i18n/label :t/biometric-auth-confirm-message) + :on-success (fn [] + (on-close) + (rf/dispatch [:standard-auth/on-biometric-success + (handle-auth-success true)])) + :on-fail (fn [error] + (on-close) + (log/error + (ex-message error) + (-> error ex-data (assoc :code (ex-cause error)))) + (when on-auth-fail (on-auth-fail error)) + (password-login {:on-press-biometrics + #(on-press-biometrics + on-press-biometrics)}))}]))] (if biometric-auth? - (biometric/get-supported-type - (fn [biometric-type] - (if biometric-type - (biometrics-login biometrics-login) - (do - (reset-password) - (password-login {}))))) + (-> (biometrics/get-supported-type) + (.then (fn [biometric-type] + (if biometric-type + (biometrics-login biometrics-login) + (do + (reset-password) + (password-login {}))))) + (.catch #(password-login {}))) (password-login {})))) diff --git a/src/status_im/constants.cljs b/src/status_im/constants.cljs index 8bbe8968543..fd24ef35f09 100644 --- a/src/status_im/constants.cljs +++ b/src/status_im/constants.cljs @@ -378,10 +378,10 @@ (def ^:const auth-method-biometric-prepare "biometric-prepare") (def ^:const auth-method-none "none") -(def ^:const biometric-error-user-canceled "USER_CANCELED") -(def ^:const biometric-error-user-fallback "USER_USER_FALLBACK") -(def ^:const biometric-error-not-available "NOT_AVAILABLE") -(def ^:const biometric-error-not-enrolled "NOT_ENROLLED") +;; NOTE all android biometrics falls under :Biometrics +(def ^:const biometrics-type-android :Biometrics) +(def ^:const biometrics-type-touch-id :TouchID) +(def ^:const biometrics-type-face-id :FaceID) (def ^:const onboarding-generating-keys-animation-duration-ms 7000) (def ^:const onboarding-generating-keys-navigation-retry-ms 3000) diff --git a/src/status_im/contexts/profile/login/events.cljs b/src/status_im/contexts/profile/login/events.cljs index b04c068ff4f..aad293b4070 100644 --- a/src/status_im/contexts/profile/login/events.cljs +++ b/src/status_im/contexts/profile/login/events.cljs @@ -16,7 +16,6 @@ [status-im.common.log :as logging] [status-im.common.universal-links :as universal-links] [status-im.config :as config] - [status-im.constants :as constants] [status-im.contexts.chat.contacts.events :as contacts] [status-im.contexts.chat.messenger.messages.link-preview.events :as link-preview] [status-im.contexts.profile.config :as profile.config] @@ -178,11 +177,11 @@ (rf/defn login-with-biometric-if-available {:events [:profile.login/login-with-biometric-if-available]} [_ key-uid] - {:keychain/get-auth-method [key-uid - #(rf/dispatch [:profile.login/get-auth-method-success % key-uid])]}) + {:biometric/check-if-available [key-uid + #(rf/dispatch [:profile.login/check-biometric-success % key-uid])]}) -(rf/defn get-auth-method-success - {:events [:profile.login/get-auth-method-success]} +(rf/defn check-biometric-success + {:events [:profile.login/check-biometric-success]} [{:keys [db]} auth-method key-uid] (merge {:db (assoc db :auth-method auth-method)} (when (= auth-method keychain/auth-method-biometric) @@ -194,7 +193,6 @@ :on-fail #(rf/dispatch [:profile.login/biometric-auth-fail %])}]))}}))) -;; result of :keychain/get-auth-method above (rf/defn get-user-password-success {:events [:profile.login/get-user-password-success]} [{:keys [db] :as cofx} password] @@ -209,22 +207,18 @@ :profile.login/biometric-success (fn [{:keys [db]}] (let [key-uid (get-in db [:profile/login :key-uid])] - {:db db - :fx [[:biometric/reset-not-enrolled-error key-uid] - [:keychain/get-user-password - [key-uid #(rf/dispatch [:profile.login/get-user-password-success %])]]]}))) + {:keychain/get-user-password [key-uid + #(rf/dispatch [:profile.login/get-user-password-success %])]}))) (rf/reg-event-fx :profile.login/biometric-auth-fail - (fn [{:keys [db]} [code]] - (let [key-uid (get-in db [:profile/login :key-uid])] - {:db db - :fx [(if (= code constants/biometric-error-not-enrolled) - [:biometric/supress-not-enrolled-error - [key-uid - [:biometric/show-message code]]] - [:dispatch [:biometric/show-message code]])]}))) - + (fn [_ [error]] + (log/error (ex-message error) + (-> error + ex-data + (assoc :code (ex-cause error) + :event :profile.login/biometric-auth-fail))) + {:dispatch [:biometric/show-message error]})) (rf/defn verify-database-password {:events [:profile.login/verify-database-password]} diff --git a/yarn.lock b/yarn.lock index 5de86771cba..9205514e62f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8169,6 +8169,11 @@ react-native-background-timer@^2.1.1: resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.2.0.tgz#ff82d30899209b924983cc00e6ce174b8de5054a" integrity sha512-Y7N6diSFko/FCJPMmB0PoBlmY1kEcma7qDVwn8t7zi12GLqpe/Vwls97onkSD8/QL+BR33BygUHOrLTPwgeKfg== +react-native-biometrics@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/react-native-biometrics/-/react-native-biometrics-3.0.1.tgz#23c5a0bdbae1fcb1e08b22936223fe0fc4af846e" + integrity sha512-Ru80gXRa9KG04sl5AB9HyjLjVbduhqZVjA+AiOSGqr+fNqCDmCu9y5WEksnjbnniNLmq1yGcw+qcLXmR1ddLDQ== + react-native-blob-util@^0.13.18: version "0.13.18" resolved "https://registry.yarnpkg.com/react-native-blob-util/-/react-native-blob-util-0.13.18.tgz#7b924d55607bda380d6e9862b621ed1ac0c007ec" @@ -8382,11 +8387,6 @@ react-native-svg@13.10.0: css-select "^5.1.0" css-tree "^1.1.3" -react-native-touch-id@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/react-native-touch-id/-/react-native-touch-id-4.4.1.tgz#8b1bb2d04c30bac36bb9696d2d723e719c4a8b08" - integrity sha512-1jTl8fC+0fxvqegy/XXTyo6vMvPhjzkoDdaqoYZx0OH8AT250NuXnNPyKktvigIcys3+2acciqOeaCall7lrvg== - "react-native-transparent-video@git+https://github.com/status-im/react-native-transparent-video.git#refs/tags/0.1.1": version "0.1.0" resolved "git+https://github.com/status-im/react-native-transparent-video.git#1327fc622f7521269f66299c3aca610494c76fe1"