Merge branch 'develop' into chore/ts-RoomView
This commit is contained in:
commit
228e073f58
|
@ -144,7 +144,7 @@ android {
|
|||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode VERSIONCODE as Integer
|
||||
versionName "4.22.0"
|
||||
versionName "4.23.0"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
if (!isFoss) {
|
||||
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
|
||||
|
|
|
@ -6,7 +6,6 @@ import { inquiryQueueAdd, inquiryQueueRemove, inquiryQueueUpdate, inquiryRequest
|
|||
const removeListener = listener => listener.stop();
|
||||
|
||||
let connectedListener;
|
||||
let disconnectedListener;
|
||||
let queueListener;
|
||||
|
||||
const streamTopic = 'stream-livechat-inquiry-queue-observer';
|
||||
|
@ -48,10 +47,6 @@ export default function subscribeInquiry() {
|
|||
connectedListener.then(removeListener);
|
||||
connectedListener = false;
|
||||
}
|
||||
if (disconnectedListener) {
|
||||
disconnectedListener.then(removeListener);
|
||||
disconnectedListener = false;
|
||||
}
|
||||
if (queueListener) {
|
||||
queueListener.then(removeListener);
|
||||
queueListener = false;
|
||||
|
@ -59,7 +54,6 @@ export default function subscribeInquiry() {
|
|||
};
|
||||
|
||||
connectedListener = RocketChat.onStreamData('connected', handleConnection);
|
||||
disconnectedListener = RocketChat.onStreamData('close', handleConnection);
|
||||
queueListener = RocketChat.onStreamData(streamTopic, handleQueueMessageReceived);
|
||||
|
||||
try {
|
||||
|
|
|
@ -8,7 +8,6 @@ import messagesStatus from '../../../constants/messagesStatus';
|
|||
import log from '../../../utils/log';
|
||||
import random from '../../../utils/random';
|
||||
import store from '../../createStore';
|
||||
import { roomsRequest } from '../../../actions/rooms';
|
||||
import { handlePayloadUserInteraction } from '../actions';
|
||||
import buildMessage from '../helpers/buildMessage';
|
||||
import RocketChat from '../../rocketchat';
|
||||
|
@ -21,8 +20,6 @@ import { E2E_MESSAGE_TYPE } from '../../encryption/constants';
|
|||
|
||||
const removeListener = listener => listener.stop();
|
||||
|
||||
let connectedListener;
|
||||
let disconnectedListener;
|
||||
let streamListener;
|
||||
let subServer;
|
||||
let queue = {};
|
||||
|
@ -255,10 +252,6 @@ const debouncedUpdate = subscription => {
|
|||
};
|
||||
|
||||
export default function subscribeRooms() {
|
||||
const handleConnection = () => {
|
||||
store.dispatch(roomsRequest());
|
||||
};
|
||||
|
||||
const handleStreamMessageReceived = protectedFunction(async ddpMessage => {
|
||||
const db = database.active;
|
||||
|
||||
|
@ -388,14 +381,6 @@ export default function subscribeRooms() {
|
|||
});
|
||||
|
||||
const stop = () => {
|
||||
if (connectedListener) {
|
||||
connectedListener.then(removeListener);
|
||||
connectedListener = false;
|
||||
}
|
||||
if (disconnectedListener) {
|
||||
disconnectedListener.then(removeListener);
|
||||
disconnectedListener = false;
|
||||
}
|
||||
if (streamListener) {
|
||||
streamListener.then(removeListener);
|
||||
streamListener = false;
|
||||
|
@ -407,8 +392,6 @@ export default function subscribeRooms() {
|
|||
}
|
||||
};
|
||||
|
||||
connectedListener = this.sdk.onStreamData('connected', handleConnection);
|
||||
// disconnectedListener = this.sdk.onStreamData('close', handleConnection);
|
||||
streamListener = this.sdk.onStreamData('stream-notify-user', handleStreamMessageReceived);
|
||||
|
||||
try {
|
||||
|
|
|
@ -239,37 +239,34 @@ const RocketChat = {
|
|||
this.code = null;
|
||||
}
|
||||
|
||||
this.sdk = new RocketchatClient({ host: server, protocol: 'ddp', useSsl: useSsl(server) });
|
||||
// The app can't reconnect if reopen interval is 5s while in development
|
||||
this.sdk = new RocketchatClient({ host: server, protocol: 'ddp', useSsl: useSsl(server), reopen: __DEV__ ? 20000 : 5000 });
|
||||
this.getSettings();
|
||||
|
||||
const sdkConnect = () =>
|
||||
this.sdk
|
||||
.connect()
|
||||
.then(() => {
|
||||
const { server: currentServer } = reduxStore.getState().server;
|
||||
if (user && user.token && server === currentServer) {
|
||||
reduxStore.dispatch(loginRequest({ resume: user.token }, logoutOnError));
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('connect error', err);
|
||||
|
||||
// when `connect` raises an error, we try again in 10 seconds
|
||||
this.connectTimeout = setTimeout(() => {
|
||||
if (this.sdk?.client?.host === server) {
|
||||
sdkConnect();
|
||||
}
|
||||
}, 10000);
|
||||
});
|
||||
|
||||
sdkConnect();
|
||||
this.sdk
|
||||
.connect()
|
||||
.then(() => {
|
||||
console.log('connected');
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('connect error', err);
|
||||
});
|
||||
|
||||
this.connectingListener = this.sdk.onStreamData('connecting', () => {
|
||||
reduxStore.dispatch(connectRequest());
|
||||
});
|
||||
|
||||
this.connectedListener = this.sdk.onStreamData('connected', () => {
|
||||
const { connected } = reduxStore.getState().meteor;
|
||||
if (connected) {
|
||||
return;
|
||||
}
|
||||
reduxStore.dispatch(connectSuccess());
|
||||
const { server: currentServer } = reduxStore.getState().server;
|
||||
const { user } = reduxStore.getState().login;
|
||||
if (user?.token && server === currentServer) {
|
||||
reduxStore.dispatch(loginRequest({ resume: user.token }, logoutOnError));
|
||||
}
|
||||
});
|
||||
|
||||
this.closeListener = this.sdk.onStreamData('close', () => {
|
||||
|
|
|
@ -7,6 +7,21 @@ import I18n from '../i18n';
|
|||
import { extractHostname } from './server';
|
||||
|
||||
const { SSLPinning } = NativeModules;
|
||||
const { documentDirectory } = FileSystem;
|
||||
|
||||
const extractFileScheme = path => path.replace('file://', ''); // file:// isn't allowed by obj-C
|
||||
|
||||
const getPath = name => `${documentDirectory}/${name}`;
|
||||
|
||||
const persistCertificate = async (name, password) => {
|
||||
const certificatePath = getPath(name);
|
||||
const certificate = {
|
||||
path: extractFileScheme(certificatePath),
|
||||
password
|
||||
};
|
||||
await UserPreferences.setMapAsync(name, certificate);
|
||||
return certificate;
|
||||
};
|
||||
|
||||
const RCSSLPinning = Platform.select({
|
||||
ios: {
|
||||
|
@ -25,17 +40,9 @@ const RCSSLPinning = Platform.select({
|
|||
text: 'OK',
|
||||
onPress: async password => {
|
||||
try {
|
||||
const certificatePath = `${FileSystem.documentDirectory}/${name}`;
|
||||
|
||||
const certificatePath = getPath(name);
|
||||
await FileSystem.copyAsync({ from: uri, to: certificatePath });
|
||||
|
||||
const certificate = {
|
||||
path: certificatePath.replace('file://', ''), // file:// isn't allowed by obj-C
|
||||
password
|
||||
};
|
||||
|
||||
await UserPreferences.setMapAsync(name, certificate);
|
||||
|
||||
await persistCertificate(name, password);
|
||||
resolve(name);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
|
@ -49,16 +56,19 @@ const RCSSLPinning = Platform.select({
|
|||
reject(e);
|
||||
}
|
||||
}),
|
||||
setCertificate: async (alias, server) => {
|
||||
if (alias) {
|
||||
const certificate = await UserPreferences.getMapAsync(alias);
|
||||
setCertificate: async (name, server) => {
|
||||
if (name) {
|
||||
let certificate = await UserPreferences.getMapAsync(name);
|
||||
if (!certificate.path.match(extractFileScheme(documentDirectory))) {
|
||||
certificate = await persistCertificate(name, certificate.password);
|
||||
}
|
||||
await UserPreferences.setMapAsync(extractHostname(server), certificate);
|
||||
}
|
||||
}
|
||||
},
|
||||
android: {
|
||||
pickCertificate: () => SSLPinning?.pickCertificate(),
|
||||
setCertificate: alias => SSLPinning?.setCertificate(alias)
|
||||
setCertificate: name => SSLPinning?.setCertificate(name)
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -1682,7 +1682,7 @@
|
|||
INFOPLIST_FILE = NotificationService/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 4.22.0;
|
||||
MARKETING_VERSION = 4.23.0;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;
|
||||
|
@ -1719,7 +1719,7 @@
|
|||
INFOPLIST_FILE = NotificationService/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 4.22.0;
|
||||
MARKETING_VERSION = 4.23.0;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.22.0</string>
|
||||
<string>4.23.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.22.0</string>
|
||||
<string>4.23.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>KeychainGroup</key>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "rocket-chat-reactnative",
|
||||
"version": "4.22.0",
|
||||
"version": "4.23.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "react-native start",
|
||||
|
|
|
@ -3760,7 +3760,7 @@
|
|||
|
||||
"@rocket.chat/sdk@RocketChat/Rocket.Chat.js.SDK#mobile":
|
||||
version "1.1.0-mobile"
|
||||
resolved "https://codeload.github.com/RocketChat/Rocket.Chat.js.SDK/tar.gz/0ee2ded22b08b34ce7ab62b26e42a713dca0d1ac"
|
||||
resolved "https://codeload.github.com/RocketChat/Rocket.Chat.js.SDK/tar.gz/c64e69ea22514ae3bbe24e36ca77868fdae76157"
|
||||
dependencies:
|
||||
js-sha256 "^0.9.0"
|
||||
lru-cache "^4.1.1"
|
||||
|
|
Loading…
Reference in New Issue