Compare commits

...

10 Commits

Author SHA1 Message Date
Elias Nahum
f8fa73a52d Bump app build number to 258 (#3775) 2020-01-07 08:44:22 -03:00
Elias Nahum
32238fce9e MM-21476 Fix iOS inAppPinCode (#3773) 2020-01-07 09:09:27 +08:00
Elias Nahum
234b7c9b62 Bump app version number to 1.26.2 (#3774) 2020-01-06 16:59:26 -03:00
Mattermost Build
40f61d6b2f Bump app build number to 256 (#3750) 2019-12-20 14:03:48 -03:00
Mattermost Build
f5b9583670 Fix RN patch for CBA support (#3747) 2019-12-20 14:00:25 -03:00
Mattermost Build
0134ab31b7 Bump app build number to 255 (#3742) 2019-12-19 21:47:35 -07:00
Mattermost Build
8d26937830 Automated cherry pick of #3738 (#3739)
* Fix headers for ESR 5.9

* check if reactions is defined to avoid a crash with servers without metadata

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2019-12-19 21:37:58 -07:00
Mattermost Build
09172ac532 Bump app build number to 254 (#3734) 2019-12-18 21:43:45 -07:00
Mattermost Build
387b6aec2b Bump app version number to 1.26.1 (#3731) 2019-12-18 21:39:29 -07:00
Miguel Alatzar
e653a290e8 Upgrade jsc-android (#3720) (#3728) 2019-12-18 21:29:14 -07:00
15 changed files with 183 additions and 55 deletions

View File

@@ -140,8 +140,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
missingDimensionStrategy "RNN.reactNativeVersion", "reactNative60"
versionCode 253
versionName "1.26.0"
versionCode 258
versionName "1.26.2"
multiDexEnabled = true
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'

View File

@@ -44,7 +44,12 @@ function makeMapStateToProps() {
channel: channelId,
permission: Permissions.ADD_REACTION,
});
canAddMoreReactions = Object.values(reactions).length < MAX_ALLOWED_REACTIONS;
if (reactions) {
// On servers without metadata reactions at this point can be undefined
canAddMoreReactions = Object.values(reactions).length < MAX_ALLOWED_REACTIONS;
}
canRemoveReaction = haveIChannelPermission(state, {
team: teamId,
channel: channelId,

View File

@@ -19,7 +19,14 @@ export function setCSRFFromCookie(url) {
CookieManager.get(url, false).then((res) => {
const token = res.MMCSRF;
if (token) {
Client4.setCSRF(token?.value || token);
let value = null;
if (typeof token === 'object' && Object.prototype.hasOwnProperty.call(token, 'value')) {
value = token.value;
} else {
value = token;
}
Client4.setCSRF(value);
}
resolve();
});

View File

@@ -1,22 +1,22 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.1)
CFPropertyList (3.0.2)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
atomos (0.1.3)
aws-eventstream (1.0.3)
aws-partitions (1.242.0)
aws-sdk-core (3.80.0)
aws-partitions (1.262.0)
aws-sdk-core (3.86.0)
aws-eventstream (~> 1.0, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-kms (1.25.0)
aws-sdk-kms (1.27.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.57.0)
aws-sdk-core (~> 3, >= 3.77.0)
aws-sdk-s3 (1.60.1)
aws-sdk-core (~> 3, >= 3.83.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.1.0)
@@ -34,8 +34,8 @@ GEM
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.5)
emoji_regex (1.0.1)
excon (0.68.0)
faraday (0.17.0)
excon (0.71.1)
faraday (0.17.3)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6)
faraday (>= 0.7.4)
@@ -43,7 +43,7 @@ GEM
faraday_middleware (0.13.1)
faraday (>= 0.7.4, < 1.0)
fastimage (2.1.7)
fastlane (2.136.0)
fastlane (2.139.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0)
babosa (>= 1.0.2, < 2.0.0)
@@ -52,13 +52,13 @@ GEM
commander-fastlane (>= 4.4.6, < 5.0.0)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 2.0)
excon (>= 0.45.0, < 1.0.0)
excon (>= 0.71.0, < 1.0.0)
faraday (~> 0.17)
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 0.13.1)
fastimage (>= 2.1.0, < 3.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-api-client (>= 0.21.2, < 0.24.0)
google-api-client (>= 0.29.2, < 0.37.0)
google-cloud-storage (>= 1.15.0, < 2.0.0)
highline (>= 1.7.2, < 2.0.0)
json (< 3.0.0)
@@ -77,7 +77,7 @@ GEM
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.8.1, < 2.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
fastlane-plugin-android_change_package_identifier (0.1.0)
@@ -86,49 +86,49 @@ GEM
fastlane-plugin-find_replace_string (0.1.0)
fastlane-plugin-versioning_android (0.1.0)
gh_inspector (1.1.3)
google-api-client (0.23.9)
google-api-client (0.36.4)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.5, < 0.7.0)
googleauth (~> 0.9)
httpclient (>= 2.8.1, < 3.0)
mime-types (~> 3.0)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
signet (~> 0.9)
signet (~> 0.12)
google-cloud-core (1.4.1)
google-cloud-env (~> 1.0)
google-cloud-env (1.3.0)
faraday (~> 0.11)
google-cloud-storage (1.16.0)
google-cloud-storage (1.25.1)
addressable (~> 2.5)
digest-crc (~> 0.4)
google-api-client (~> 0.23)
google-api-client (~> 0.33)
google-cloud-core (~> 1.2)
googleauth (>= 0.6.2, < 0.10.0)
googleauth (0.6.7)
googleauth (~> 0.9)
mini_mime (~> 1.0)
googleauth (0.10.0)
faraday (~> 0.12)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (~> 0.7)
signet (~> 0.12)
highline (1.7.10)
http-cookie (1.0.3)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.4.0)
json (2.2.0)
json (2.3.0)
jwt (2.1.0)
memoist (0.16.1)
mime-types (3.3)
mime-types-data (~> 3.2015)
mime-types-data (3.2019.1009)
mini_magick (4.9.5)
memoist (0.16.2)
mini_magick (4.10.1)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
multi_json (1.14.1)
multi_xml (0.6.0)
multipart-post (2.0.0)
nanaimo (0.2.6)
naturally (2.2.0)
nokogiri (1.10.5)
nokogiri (1.10.7)
mini_portile2 (~> 2.4.0)
os (1.0.1)
plist (3.5.0)
@@ -146,7 +146,7 @@ GEM
faraday (~> 0.9)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.6)
simctl (1.6.7)
CFPropertyList
naturally
slack-notifier (2.3.2)
@@ -155,7 +155,7 @@ GEM
unicode-display_width (~> 1.1, >= 1.1.1)
tty-cursor (0.7.0)
tty-screen (0.7.0)
tty-spinner (0.9.1)
tty-spinner (0.9.2)
tty-cursor (~> 0.7)
uber (0.1.0)
unf (0.1.4)
@@ -163,7 +163,7 @@ GEM
unf_ext (0.0.7.6)
unicode-display_width (1.6.0)
word_wrap (1.0.0)
xcodeproj (1.13.0)
xcodeproj (1.14.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)

View File

@@ -1112,7 +1112,7 @@
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 258;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
ENABLE_BITCODE = NO;
@@ -1150,7 +1150,7 @@
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 258;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
ENABLE_BITCODE = NO;

View File

@@ -19,7 +19,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.26.0</string>
<string>1.26.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@@ -34,7 +34,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>253</string>
<string>258</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>
@@ -78,6 +78,8 @@
<string>Save downloaded Photos and Videos from your Mattermost instance to your device</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>Send voice messages to your Mattermost instance</string>
<key>NSFaceIDUsageDescription</key>
<string>Mattermost uses Face ID to restrict unauthorized users from accessing the app.</string>
<key>UIAppFonts</key>
<array>
<string>Entypo.ttf</string>

View File

@@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>1.26.0</string>
<string>1.26.2</string>
<key>CFBundleVersion</key>
<string>253</string>
<string>258</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>

View File

@@ -15,10 +15,10 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.26.0</string>
<string>1.26.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>253</string>
<string>258</string>
</dict>
</plist>

View File

@@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>1.26.0</string>
<string>1.26.2</string>
<key>CFBundleVersion</key>
<string>253</string>
<string>258</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>

View File

@@ -208,10 +208,14 @@ PODS:
- React
- react-native-image-picker (0.28.1):
- React
- react-native-local-auth (1.5.0):
- React
- react-native-netinfo (4.4.0):
- React
- react-native-notifications (2.0.6):
- React
- react-native-passcode-status (1.1.2):
- React
- react-native-safe-area (0.5.1):
- React
- react-native-video (5.0.2):
@@ -326,8 +330,10 @@ DEPENDENCIES:
- react-native-cookies (from `../node_modules/react-native-cookies/ios`)
- react-native-document-picker (from `../node_modules/react-native-document-picker`)
- react-native-image-picker (from `../node_modules/react-native-image-picker`)
- react-native-local-auth (from `../node_modules/react-native-local-auth`)
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
- react-native-notifications (from `../node_modules/react-native-notifications`)
- react-native-passcode-status (from `../node_modules/react-native-passcode-status`)
- react-native-safe-area (from `../node_modules/react-native-safe-area`)
- react-native-video (from `../node_modules/react-native-video`)
- react-native-webview (from `../node_modules/react-native-webview`)
@@ -416,10 +422,14 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-document-picker"
react-native-image-picker:
:path: "../node_modules/react-native-image-picker"
react-native-local-auth:
:path: "../node_modules/react-native-local-auth"
react-native-netinfo:
:path: "../node_modules/@react-native-community/netinfo"
react-native-notifications:
:path: "../node_modules/react-native-notifications"
react-native-passcode-status:
:path: "../node_modules/react-native-passcode-status"
react-native-safe-area:
:path: "../node_modules/react-native-safe-area"
react-native-video:
@@ -502,8 +512,10 @@ SPEC CHECKSUMS:
react-native-cookies: 854d59c4135c70b92a02ca4930e68e4e2eb58150
react-native-document-picker: c36bf5f067a581657ecaf7124dcd921a8be19061
react-native-image-picker: fd93361c666f397bdf72f9c6c23f13d2685b9173
react-native-local-auth: 5081a70211643de74bb207e007401a0c81b37a20
react-native-netinfo: 892a5130be97ff8bb69c523739c424a2ffc296d1
react-native-notifications: d5cb54ef8bf3004dcb56c887650dea08ecbddee7
react-native-passcode-status: 88c4f6e074328bc278bd127646b6c694ad5a530a
react-native-safe-area: e8230b0017d76c00de6b01e2412dcf86b127c6a3
react-native-video: 961749da457e73bf0b5565edfbaffc25abfb8974
react-native-webview: 0d1c2b4e7ffb0543a74fa0512f2f8dc5fb0e49e2

12
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "mattermost-mobile",
"version": "1.26.0",
"version": "1.26.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -4311,7 +4311,7 @@
"dependencies": {
"json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
"dev": true
}
@@ -6675,9 +6675,9 @@
"dev": true
},
"jsc-android": {
"version": "241213.1.0",
"resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-241213.1.0.tgz",
"integrity": "sha512-AH8NYyMNLNhcUEF97QbMxPNLNW+oiSBlvm1rsMNzgJ1d5TQzdh/AOJGsxeeESp3m9YIWGLCgUvGTVoVLs0p68A=="
"version": "241213.2.0",
"resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-241213.2.0.tgz",
"integrity": "sha512-nfddejB9jxFSG+Uewf+zwATFi8F2CZEEgoHLoOj13egiBDoC7zMoxK1c5/Ycf3AGmGuwCgjpn3LWe0f4tKYbjw=="
},
"jsdom": {
"version": "11.12.0",
@@ -8351,7 +8351,7 @@
}
},
"mmjstool": {
"version": "github:mattermost/mattermost-utilities#b3e2e308b8b85469849a91c21958b46a89ab33ab",
"version": "github:mattermost/mattermost-utilities#ce99d7a9e82128a02fd36e44720a4aef2653810d",
"from": "github:mattermost/mattermost-utilities",
"dev": true,
"requires": {

View File

@@ -1,6 +1,6 @@
{
"name": "mattermost-mobile",
"version": "1.26.0",
"version": "1.26.2",
"description": "Mattermost Mobile with React Native",
"repository": "git@github.com:mattermost/mattermost-mobile.git",
"author": "Mattermost, Inc.",
@@ -23,7 +23,7 @@
"fuse.js": "3.4.5",
"intl": "1.2.5",
"jail-monkey": "2.3.0",
"jsc-android": "241213.1.0",
"jsc-android": "241213.2.0",
"mattermost-redux": "github:mattermost/mattermost-redux#6421d6ee52784c629a405d010047becbbf196c00",
"mime-db": "1.42.0",
"moment-timezone": "0.5.27",

View File

@@ -114,7 +114,7 @@ index 1b17cff..9efa98e 100644
#pragma mark - RCTSRWebSocketDelegate
diff --git a/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m b/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m
index a134d2e..e815938 100644
index a134d2e..e1d9988 100644
--- a/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m
+++ b/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m
@@ -231,7 +231,7 @@ @implementation RCTSRWebSocket
@@ -155,7 +155,44 @@ index a134d2e..e815938 100644
}
- (void)_RCTSR_commonInit;
@@ -518,6 +522,24 @@ - (void)_initializeStreams;
@@ -347,6 +351,36 @@ - (void)setReadyState:(RCTSRReadyState)aReadyState;
#endif
+- (SecIdentityRef) GetIdentityByName:(NSString *)name
+{
+ NSMutableDictionary * query = [[NSMutableDictionary alloc] init];
+
+ //Set up the invariant pieces of the query
+ [query setObject:(id)kSecMatchLimitAll forKey:(id)kSecMatchLimit];
+ [query setObject:(id)kCFBooleanTrue forKey:(id)kSecReturnRef];
+ [query setObject:(id)kCFBooleanTrue forKey:(id)kSecReturnData];
+ [query setObject:(id)kCFBooleanTrue forKey:(id)kSecReturnAttributes];
+ [query setObject:(id)kSecClassIdentity forKey:(id)kSecClass];
+ [query setObject:name forKey:(id)kSecAttrLabel];
+
+ OSStatus resultCode = noErr;
+ CFTypeRef result = nil;
+ //Execute the query saving the results in items.
+ resultCode = SecItemCopyMatching((CFDictionaryRef)query, &result);
+ CFDictionaryRef item = (CFDictionaryRef)CFArrayGetValueAtIndex((CFArrayRef)result, 0);
+ if (item != nil) {
+ SecIdentityRef identity = nil;
+ CFTypeRef value;
+ if(CFDictionaryGetValueIfPresent(item, kSecValueRef, &value))
+ {
+ identity = (SecIdentityRef)value;
+ }
+
+ return identity;
+ }
+ return nil;
+}
+
- (void)open;
{
assert(_url);
@@ -518,6 +552,24 @@ - (void)_initializeStreams;
RCTLogInfo(@"SocketRocket: In debug mode. Allowing connection to any root cert");
#endif

View File

@@ -0,0 +1,26 @@
diff --git a/node_modules/react-native-local-auth/react-native-local-auth.podspec b/node_modules/react-native-local-auth/react-native-local-auth.podspec
new file mode 100644
index 0000000..9cec893
--- /dev/null
+++ b/node_modules/react-native-local-auth/react-native-local-auth.podspec
@@ -0,0 +1,20 @@
+require "json"
+package = JSON.parse(File.read(File.join(__dir__, '/package.json')))
+
+Pod::Spec.new do |s|
+ s.name = package['name']
+ s.version = package['version']
+ s.summary = package['description']
+ s.description = package['description']
+ s.homepage = package['homepage']
+ s.license = package['license']
+ s.author = package['author']
+ s.source = { :git => 'https://github.com/mattermost/react-native-local-auth.git' }
+
+ s.platform = :ios, '7.0'
+ s.ios.deployment_target = '7.0'
+
+ s.source_files = "*.{h,m}"
+
+ s.dependency 'React'
+end

View File

@@ -0,0 +1,39 @@
diff --git a/node_modules/react-native-passcode-status/ios/RNPasscodeStatus.h b/node_modules/react-native-passcode-status/ios/RNPasscodeStatus.h
index 95adfbb..0a83fd3 100644
--- a/node_modules/react-native-passcode-status/ios/RNPasscodeStatus.h
+++ b/node_modules/react-native-passcode-status/ios/RNPasscodeStatus.h
@@ -7,7 +7,7 @@
//
#import <Foundation/Foundation.h>
-#import <RCTBridgeModule.h>
+#import "RCTBridgeModule.h"
#import "UIDevice+PasscodeStatus.h"
#import "RCTUtils.h"
diff --git a/node_modules/react-native-passcode-status/react-native-passcode-status.podspec b/node_modules/react-native-passcode-status/react-native-passcode-status.podspec
new file mode 100644
index 0000000..874e763
--- /dev/null
+++ b/node_modules/react-native-passcode-status/react-native-passcode-status.podspec
@@ -0,0 +1,20 @@
+require "json"
+package = JSON.parse(File.read(File.join(__dir__, '/package.json')))
+
+Pod::Spec.new do |s|
+ s.name = package['name']
+ s.version = package['version']
+ s.summary = package['description']
+ s.description = package['description']
+ s.homepage = package['homepage']
+ s.license = package['license']
+ s.author = package['author']
+ s.source = { :git => 'https://github.com/tradle/react-native-passcode-status.git' }
+
+ s.platform = :ios, '7.0'
+ s.ios.deployment_target = '7.0'
+
+ s.source_files = "ios/*.{h,m}"
+
+ s.dependency 'React'
+end