diff --git a/.env.jenkins b/.env.jenkins
index c0b7efba4f..f0b8aff35d 100644
--- a/.env.jenkins
+++ b/.env.jenkins
@@ -1,6 +1,6 @@
CACHED_WEBVIEWS_ENABLED=1
DEBUG_WEBVIEW=1
-DEFAULT_NETWORK=mainnet_rpc
+DEFAULT_NETWORK=testnet_rpc
ERC20_CONTRACT_WARNINGS=0
ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
@@ -18,11 +18,13 @@ RPC_NETWORKS_ONLY=0
PARTITIONED_TOPIC=0
CONTRACT_NODES=1
STATUS_GO_ENABLE_NIMBUS=0
+COMMANDS_ENABLED=1
KEYCARD_TEST_MENU=0
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=1
DISABLE_WALLET_ON_MOBILE_NETWORK=1
APN_TOPIC=im.status.ethereum.pr
+VERIFY_TRANSACTION_CHAIN_ID=3
BLANK_PREVIEW=0
MAX_IMAGES_BATCH=5
GOOGLE_FREE=0
diff --git a/ios/StatusIm/Info.plist b/ios/StatusIm/Info.plist
index 37a03a47af..c8e89e8bbb 100644
--- a/ios/StatusIm/Info.plist
+++ b/ios/StatusIm/Info.plist
@@ -78,6 +78,8 @@
Location access is required for some DApps to function properly.
NSPhotoLibraryUsageDescription
Photos access is required to give you the ability to send images.
+ NSPhotoLibraryAddUsageDescription
+ Photos access is required to give you the ability to save images.
NSMicrophoneUsageDescription
Need microphone access for sending audio messages.
UIAppFonts
diff --git a/ios/StatusImPR/Info.plist b/ios/StatusImPR/Info.plist
index 6d292ddc57..a98eed5d40 100644
--- a/ios/StatusImPR/Info.plist
+++ b/ios/StatusImPR/Info.plist
@@ -83,6 +83,8 @@
Location access is required for some DApps to function properly.
NSPhotoLibraryUsageDescription
Photos access is required to give you the ability to send images.
+ NSPhotoLibraryAddUsageDescription
+ Photos access is required to give you the ability to save images.
NSMicrophoneUsageDescription
Need microphone access for sending audio messages.
UIAppFonts
diff --git a/src/status_im/chat/models/images.cljs b/src/status_im/chat/models/images.cljs
index 576f00907c..070b9aa9cf 100644
--- a/src/status_im/chat/models/images.cljs
+++ b/src/status_im/chat/models/images.cljs
@@ -9,6 +9,8 @@
[status-im.utils.image-processing :as image-processing]
[taoensso.timbre :as log]
[clojure.string :as string]
+ [status-im.i18n.i18n :as i18n]
+ [status-im.utils.utils :as utils]
[status-im.utils.platform :as platform]
[status-im.chat.models :as chat]))
@@ -35,24 +37,36 @@
(.-localIdentifier result)
(.-path result)))
+(defn android-save-image-to-gallery [base64-uri]
+ (react/image-get-size
+ base64-uri
+ (fn [width height]
+ (image-processing/resize
+ base64-uri
+ width
+ height
+ 100
+ (fn [^js resized-image]
+ (let [path (.-path resized-image)
+ path (if (string/starts-with? path "file") path (str "file://" path))]
+ (.saveToCameraRoll CameraRoll path)))
+ #(log/error "could not resize image" %)))))
+
(re-frame/reg-fx
::save-image-to-gallery
(fn [base64-uri]
(if platform/ios?
- (.saveToCameraRoll CameraRoll base64-uri)
- (react/image-get-size
- base64-uri
- (fn [width height]
- (image-processing/resize
- base64-uri
- width
- height
- 100
- (fn [^js resized-image]
- (let [path (.-path resized-image)
- path (if (string/starts-with? path "file") path (str "file://" path))]
- (.saveToCameraRoll CameraRoll path)))
- #(log/error "could not resize image" %)))))))
+ (-> (.saveToCameraRoll CameraRoll base64-uri)
+ (.catch #(utils/show-popup (i18n/label :t/error)
+ (i18n/label :t/external-storage-denied))))
+ (permissions/request-permissions
+ {:permissions [:write-external-storage]
+ :on-allowed #(android-save-image-to-gallery base64-uri)
+ :on-denied (fn []
+ (utils/set-timeout
+ #(utils/show-popup (i18n/label :t/error)
+ (i18n/label :t/external-storage-denied))
+ 50))}))))
(re-frame/reg-fx
::chat-open-image-picker-camera
diff --git a/status-go-version.json b/status-go-version.json
index 334804e700..716ffd951f 100644
--- a/status-go-version.json
+++ b/status-go-version.json
@@ -2,7 +2,7 @@
"_comment": "DO NOT EDIT THIS FILE BY HAND. USE 'scripts/update-status-go.sh ' instead",
"owner": "status-im",
"repo": "status-go",
- "version": "v0.85.0",
- "commit-sha1": "0c0e02e93af31207fedb04f98ae6161cd4bcb3df",
- "src-sha256": "1dzx8f0gjn5kbwkrfidnfacvahw79p85ampmps57bp0yszvq4rnl"
+ "version": "v0.86.2",
+ "commit-sha1": "d8d5d797dafdb5d042f0ec9eb27d0395840c57e6",
+ "src-sha256": "0pl75amwyydj58l2ff8f4nv148vnsz19nhpdas6y60g145h2nfqw"
}