Merge branch 'develop' into beta
This commit is contained in:
commit
adaa977c65
|
@ -0,0 +1,3 @@
|
||||||
|
export default {
|
||||||
|
openBrowserAsync: () => ''
|
||||||
|
};
|
|
@ -80,6 +80,7 @@ project.ext.react = [
|
||||||
]
|
]
|
||||||
|
|
||||||
apply from: "../../node_modules/react-native/react.gradle"
|
apply from: "../../node_modules/react-native/react.gradle"
|
||||||
|
apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set this to true to create two separate APKs instead of one:
|
* Set this to true to create two separate APKs instead of one:
|
||||||
|
@ -99,7 +100,7 @@ def enableProguardInReleaseBuilds = false
|
||||||
android {
|
android {
|
||||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_1_8
|
||||||
}
|
}
|
||||||
|
@ -109,7 +110,7 @@ android {
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode VERSIONCODE as Integer
|
versionCode VERSIONCODE as Integer
|
||||||
versionName "1.15.0"
|
versionName "1.15.1"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,6 +172,7 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
addUnimodulesDependencies()
|
||||||
implementation "org.webkit:android-jsc:r241213"
|
implementation "org.webkit:android-jsc:r241213"
|
||||||
implementation project(':react-native-firebase')
|
implementation project(':react-native-firebase')
|
||||||
implementation project(':react-native-webview')
|
implementation project(':react-native-webview')
|
||||||
|
@ -178,7 +180,9 @@ dependencies {
|
||||||
implementation project(':react-native-splash-screen')
|
implementation project(':react-native-splash-screen')
|
||||||
implementation project(':react-native-screens')
|
implementation project(':react-native-screens')
|
||||||
implementation project(':react-native-action-sheet')
|
implementation project(':react-native-action-sheet')
|
||||||
implementation project(':react-native-device-info')
|
implementation(project(":react-native-device-info"), {
|
||||||
|
exclude group: "com.google.android.gms"
|
||||||
|
})
|
||||||
implementation project(':react-native-gesture-handler')
|
implementation project(':react-native-gesture-handler')
|
||||||
implementation project(':react-native-image-crop-picker')
|
implementation project(':react-native-image-crop-picker')
|
||||||
implementation project(':react-native-i18n')
|
implementation project(':react-native-i18n')
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
package chat.rocket.reactnative;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.pm.ResolveInfo;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.support.customtabs.CustomTabsIntent;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
|
||||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
||||||
import com.facebook.react.bridge.ReactMethod;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import chat.rocket.reactnative.R;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Launches custom tabs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class CustomTabsAndroid extends ReactContextBaseJavaModule {
|
|
||||||
|
|
||||||
|
|
||||||
public CustomTabsAndroid(ReactApplicationContext reactContext) {
|
|
||||||
super(reactContext);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return "CustomTabsAndroid";
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactMethod
|
|
||||||
public void openURL(String url) throws NullPointerException {
|
|
||||||
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
|
|
||||||
CustomTabsIntent customTabsIntent = builder.build();
|
|
||||||
|
|
||||||
if (CustomTabsHelper.isChromeCustomTabsSupported(getReactApplicationContext())) {
|
|
||||||
customTabsIntent.launchUrl(getReactApplicationContext().getCurrentActivity(), Uri.parse(url));
|
|
||||||
} else {
|
|
||||||
//open in browser
|
|
||||||
Intent i = new Intent(Intent.ACTION_VIEW);
|
|
||||||
i.setData(Uri.parse(url));
|
|
||||||
//ensure browser is present
|
|
||||||
final List<ResolveInfo> customTabsApps = getReactApplicationContext()
|
|
||||||
.getCurrentActivity().getPackageManager().queryIntentActivities(i, 0);
|
|
||||||
|
|
||||||
if (customTabsApps.size() > 0) {
|
|
||||||
getReactApplicationContext().startActivity(i);
|
|
||||||
} else {
|
|
||||||
// no browser
|
|
||||||
Toast.makeText(getReactApplicationContext(), R.string.no_browser_found, Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
package chat.rocket.reactnative;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.pm.ResolveInfo;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Contains helper methods for custom tabs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class CustomTabsHelper {
|
|
||||||
|
|
||||||
private static final String SERVICE_ACTION = "android.support.customtabs.action.CustomTabsService";
|
|
||||||
private static final String CHROME_PACKAGE = "com.android.chrome";
|
|
||||||
|
|
||||||
public static boolean isChromeCustomTabsSupported(final Context context) {
|
|
||||||
Intent serviceIntent = new Intent(SERVICE_ACTION);
|
|
||||||
serviceIntent.setPackage(CHROME_PACKAGE);
|
|
||||||
List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentServices(serviceIntent, 0);
|
|
||||||
return !(resolveInfos == null || resolveInfos.isEmpty());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -35,6 +35,12 @@ import com.actionsheet.ActionSheetPackage;
|
||||||
import io.realm.react.RealmReactPackage;
|
import io.realm.react.RealmReactPackage;
|
||||||
import com.swmansion.rnscreens.RNScreensPackage;
|
import com.swmansion.rnscreens.RNScreensPackage;
|
||||||
|
|
||||||
|
import chat.rocket.reactnative.generated.BasePackageList;
|
||||||
|
|
||||||
|
import org.unimodules.adapters.react.ModuleRegistryAdapter;
|
||||||
|
import org.unimodules.adapters.react.ReactModuleRegistryProvider;
|
||||||
|
import org.unimodules.core.interfaces.SingletonModule;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
@ -43,6 +49,8 @@ import java.util.List;
|
||||||
|
|
||||||
public class MainApplication extends Application implements ReactApplication, INotificationsApplication {
|
public class MainApplication extends Application implements ReactApplication, INotificationsApplication {
|
||||||
|
|
||||||
|
private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(new BasePackageList().getPackageList(), Arrays.<SingletonModule>asList());
|
||||||
|
|
||||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||||
@Override
|
@Override
|
||||||
public boolean getUseDeveloperSupport() {
|
public boolean getUseDeveloperSupport() {
|
||||||
|
@ -71,10 +79,10 @@ public class MainApplication extends Application implements ReactApplication, IN
|
||||||
new ReactVideoPackage(),
|
new ReactVideoPackage(),
|
||||||
new ReactNativeAudioPackage(),
|
new ReactNativeAudioPackage(),
|
||||||
new KeyboardInputPackage(MainApplication.this),
|
new KeyboardInputPackage(MainApplication.this),
|
||||||
new RocketChatNativePackage(),
|
|
||||||
new FastImageViewPackage(),
|
new FastImageViewPackage(),
|
||||||
new RNI18nPackage(),
|
new RNI18nPackage(),
|
||||||
new RNNotificationsPackage(MainApplication.this)
|
new RNNotificationsPackage(MainApplication.this),
|
||||||
|
new ModuleRegistryAdapter(mModuleRegistryProvider)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
package chat.rocket.reactnative;
|
|
||||||
|
|
||||||
import com.facebook.react.ReactPackage;
|
|
||||||
import com.facebook.react.bridge.JavaScriptModule;
|
|
||||||
import com.facebook.react.bridge.NativeModule;
|
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
|
||||||
import com.facebook.react.uimanager.ViewManager;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class RocketChatNativePackage implements ReactPackage {
|
|
||||||
|
|
||||||
public List<Class<? extends JavaScriptModule>> createJSModules() {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
|
||||||
List<ViewManager> managers = new ArrayList<>();
|
|
||||||
return managers;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<NativeModule> createNativeModules(
|
|
||||||
ReactApplicationContext reactContext) {
|
|
||||||
List<NativeModule> modules = new ArrayList<>();
|
|
||||||
modules.add(new CustomTabsAndroid(reactContext));
|
|
||||||
return modules;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package chat.rocket.reactnative.generated;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import org.unimodules.core.interfaces.Package;
|
||||||
|
|
||||||
|
public class BasePackageList {
|
||||||
|
public List<Package> getPackageList() {
|
||||||
|
return Arrays.<Package>asList(
|
||||||
|
new expo.modules.constants.ConstantsPackage(),
|
||||||
|
new expo.modules.filesystem.FileSystemPackage(),
|
||||||
|
new expo.modules.permissions.PermissionsPackage(),
|
||||||
|
new expo.modules.webbrowser.WebBrowserPackage()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,6 +6,7 @@ buildscript {
|
||||||
compileSdkVersion = 28
|
compileSdkVersion = 28
|
||||||
targetSdkVersion = 28
|
targetSdkVersion = 28
|
||||||
supportLibVersion = "28.0.0"
|
supportLibVersion = "28.0.0"
|
||||||
|
glideVersion = "4.9.0"
|
||||||
}
|
}
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
apply from: '../node_modules/react-native-unimodules/gradle.groovy'
|
||||||
|
includeUnimodulesProjects()
|
||||||
|
|
||||||
rootProject.name = 'RocketChatRN'
|
rootProject.name = 'RocketChatRN'
|
||||||
include ':react-native-firebase'
|
include ':react-native-firebase'
|
||||||
project(':react-native-firebase').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase/android')
|
project(':react-native-firebase').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase/android')
|
||||||
|
|
|
@ -24,3 +24,4 @@ export const STATUS_COLORS = {
|
||||||
export const HEADER_BACKGROUND = isIOS ? '#f8f8f8' : '#2F343D';
|
export const HEADER_BACKGROUND = isIOS ? '#f8f8f8' : '#2F343D';
|
||||||
export const HEADER_TITLE = isIOS ? COLOR_TITLE : COLOR_WHITE;
|
export const HEADER_TITLE = isIOS ? COLOR_TITLE : COLOR_WHITE;
|
||||||
export const HEADER_BACK = isIOS ? COLOR_PRIMARY : COLOR_WHITE;
|
export const HEADER_BACK = isIOS ? COLOR_PRIMARY : COLOR_WHITE;
|
||||||
|
export const HEADER_TINT = isIOS ? COLOR_PRIMARY : COLOR_WHITE;
|
||||||
|
|
|
@ -15,7 +15,7 @@ let disconnectedListener;
|
||||||
let streamListener;
|
let streamListener;
|
||||||
let subServer;
|
let subServer;
|
||||||
|
|
||||||
export default async function subscribeRooms() {
|
export default function subscribeRooms() {
|
||||||
let timer = null;
|
let timer = null;
|
||||||
const loop = () => {
|
const loop = () => {
|
||||||
if (timer) {
|
if (timer) {
|
||||||
|
@ -156,12 +156,13 @@ export default async function subscribeRooms() {
|
||||||
try {
|
try {
|
||||||
// set the server that started this task
|
// set the server that started this task
|
||||||
subServer = this.sdk.client.host;
|
subServer = this.sdk.client.host;
|
||||||
await this.sdk.subscribeNotifyUser();
|
this.sdk.subscribeNotifyUser().catch(e => console.log(e));
|
||||||
|
|
||||||
|
return {
|
||||||
|
stop: () => stop()
|
||||||
|
};
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log('err_subscribe_rooms', e);
|
log('err_subscribe_rooms', e);
|
||||||
|
return Promise.reject();
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
|
||||||
stop: () => stop()
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -447,9 +447,12 @@ const RocketChat = {
|
||||||
// RC 0.59.0
|
// RC 0.59.0
|
||||||
return this.sdk.post('im.create', { username });
|
return this.sdk.post('im.create', { username });
|
||||||
},
|
},
|
||||||
joinRoom(roomId) {
|
joinRoom(roomId, type) {
|
||||||
// TODO: join code
|
// TODO: join code
|
||||||
// RC 0.48.0
|
// RC 0.48.0
|
||||||
|
if (type === 'p') {
|
||||||
|
return this.sdk.methodCall('joinRoom', roomId);
|
||||||
|
}
|
||||||
return this.sdk.post('channels.join', { roomId });
|
return this.sdk.post('channels.join', { roomId });
|
||||||
},
|
},
|
||||||
sendFileMessage,
|
sendFileMessage,
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
/**
|
|
||||||
* This exposes the native CustomTabsAndroid module as a JS module. This has a
|
|
||||||
* function 'openURL' which takes the following parameters:
|
|
||||||
*
|
|
||||||
* 1. String url: A url to be opened in customTabs
|
|
||||||
*/
|
|
||||||
import { NativeModules } from 'react-native';
|
|
||||||
|
|
||||||
module.exports = NativeModules.CustomTabsAndroid;
|
|
|
@ -25,12 +25,13 @@ class PushNotification {
|
||||||
NotificationsIOS.setBadgesCount(count);
|
NotificationsIOS.setBadgesCount(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
configure(params) {
|
async configure(params) {
|
||||||
this.onRegister = params.onRegister;
|
this.onRegister = params.onRegister;
|
||||||
this.onNotification = params.onNotification;
|
this.onNotification = params.onNotification;
|
||||||
|
|
||||||
|
const initial = await NotificationsIOS.getInitialNotification();
|
||||||
NotificationsIOS.consumeBackgroundQueue();
|
NotificationsIOS.consumeBackgroundQueue();
|
||||||
return Promise.resolve();
|
return Promise.resolve(initial);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default new PushNotification();
|
export default new PushNotification();
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
|
import { delay } from 'redux-saga';
|
||||||
import {
|
import {
|
||||||
put, select, race, take, fork, cancel, takeLatest
|
put, select, race, take, fork, cancel, takeLatest
|
||||||
} from 'redux-saga/effects';
|
} from 'redux-saga/effects';
|
||||||
import { BACKGROUND } from 'redux-enhancer-react-native-appstate';
|
import { BACKGROUND, INACTIVE } from 'redux-enhancer-react-native-appstate';
|
||||||
|
|
||||||
import * as types from '../actions/actionsTypes';
|
import * as types from '../actions/actionsTypes';
|
||||||
import { roomsSuccess, roomsFailure } from '../actions/rooms';
|
import { roomsSuccess, roomsFailure } from '../actions/rooms';
|
||||||
|
@ -61,13 +62,20 @@ const root = function* root() {
|
||||||
yield takeLatest(types.LOGOUT, handleLogout);
|
yield takeLatest(types.LOGOUT, handleLogout);
|
||||||
while (true) {
|
while (true) {
|
||||||
const params = yield take(types.ROOMS.REQUEST);
|
const params = yield take(types.ROOMS.REQUEST);
|
||||||
const roomsRequestTask = yield fork(handleRoomsRequest, params);
|
const isAuthenticated = yield select(state => state.login.isAuthenticated);
|
||||||
yield race({
|
if (isAuthenticated) {
|
||||||
serverReq: take(types.SERVER.SELECT_REQUEST),
|
const roomsRequestTask = yield fork(handleRoomsRequest, params);
|
||||||
background: take(BACKGROUND),
|
yield race({
|
||||||
logout: take(types.LOGOUT)
|
roomsSuccess: take(types.ROOMS.SUCCESS),
|
||||||
});
|
roomsFailure: take(types.ROOMS.FAILURE),
|
||||||
yield cancel(roomsRequestTask);
|
serverReq: take(types.SERVER.SELECT_REQUEST),
|
||||||
|
background: take(BACKGROUND),
|
||||||
|
inactive: take(INACTIVE),
|
||||||
|
logout: take(types.LOGOUT),
|
||||||
|
timeout: delay(30000)
|
||||||
|
});
|
||||||
|
yield cancel(roomsRequestTask);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
export default root;
|
export default root;
|
||||||
|
|
|
@ -29,4 +29,4 @@ export const Toast = React.forwardRef((props, ref) => (
|
||||||
opacity={0.8}
|
opacity={0.8}
|
||||||
/>
|
/>
|
||||||
));
|
));
|
||||||
export const showErrorAlert = (message: string, title: string) => Alert.alert(title, message, [{ text: 'OK', onPress: () => {} }], { cancelable: true });
|
export const showErrorAlert = (message, title, onPress = () => {}) => Alert.alert(title, message, [{ text: 'OK', onPress }], { cancelable: true });
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
import * as WebBrowser from 'expo-web-browser';
|
||||||
|
|
||||||
|
import { HEADER_TINT, HEADER_BACKGROUND } from '../constants/colors';
|
||||||
|
|
||||||
|
const openLink = url => WebBrowser.openBrowserAsync(url, {
|
||||||
|
toolbarColor: HEADER_BACKGROUND,
|
||||||
|
controlsColor: HEADER_TINT,
|
||||||
|
collapseToolbar: true,
|
||||||
|
showTitle: true
|
||||||
|
});
|
||||||
|
|
||||||
|
export default openLink;
|
|
@ -1,5 +0,0 @@
|
||||||
import CustomTabsAndroid from '../../nativeModules/CustomTabsAndroid';
|
|
||||||
|
|
||||||
const openLink = url => CustomTabsAndroid.openURL(url);
|
|
||||||
|
|
||||||
export default openLink;
|
|
|
@ -1,7 +0,0 @@
|
||||||
import SafariView from 'react-native-safari-view';
|
|
||||||
|
|
||||||
import { HEADER_BACK } from '../../constants/colors';
|
|
||||||
|
|
||||||
const openLink = url => SafariView.show({ url, fromBottom: false, tintColor: HEADER_BACK });
|
|
||||||
|
|
||||||
export default openLink;
|
|
|
@ -2,7 +2,7 @@ import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { WebView } from 'react-native-webview';
|
import { WebView } from 'react-native-webview';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
import { ActivityIndicator, StyleSheet } from 'react-native';
|
||||||
import RocketChat from '../lib/rocketchat';
|
import RocketChat from '../lib/rocketchat';
|
||||||
import { isIOS } from '../utils/deviceInfo';
|
import { isIOS } from '../utils/deviceInfo';
|
||||||
import { CloseModalButton } from '../containers/HeaderButton';
|
import { CloseModalButton } from '../containers/HeaderButton';
|
||||||
|
@ -12,6 +12,18 @@ const userAgent = isIOS
|
||||||
? 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1'
|
? 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1'
|
||||||
: 'Mozilla/5.0 (Linux; Android 6.0.1; SM-G920V Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36';
|
: 'Mozilla/5.0 (Linux; Android 6.0.1; SM-G920V Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36';
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
loading: {
|
||||||
|
position: 'absolute',
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
top: 0,
|
||||||
|
bottom: 0,
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
@connect(state => ({
|
@connect(state => ({
|
||||||
server: state.server.server
|
server: state.server.server
|
||||||
}))
|
}))
|
||||||
|
@ -29,7 +41,8 @@ export default class OAuthView extends React.PureComponent {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
logging: false
|
logging: false,
|
||||||
|
loading: false
|
||||||
};
|
};
|
||||||
this.redirectRegex = new RegExp(`(?=.*(${ props.server }))(?=.*(credentialToken))(?=.*(credentialSecret))`, 'g');
|
this.redirectRegex = new RegExp(`(?=.*(${ props.server }))(?=.*(credentialToken))(?=.*(credentialSecret))`, 'g');
|
||||||
}
|
}
|
||||||
|
@ -58,6 +71,7 @@ export default class OAuthView extends React.PureComponent {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { navigation } = this.props;
|
const { navigation } = this.props;
|
||||||
|
const { loading } = this.state;
|
||||||
const oAuthUrl = navigation.getParam('oAuthUrl');
|
const oAuthUrl = navigation.getParam('oAuthUrl');
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
|
@ -74,7 +88,15 @@ export default class OAuthView extends React.PureComponent {
|
||||||
this.login({ oauth: { ...credentials } });
|
this.login({ oauth: { ...credentials } });
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
onLoadStart={() => {
|
||||||
|
this.setState({ loading: true });
|
||||||
|
}}
|
||||||
|
|
||||||
|
onLoadEnd={() => {
|
||||||
|
this.setState({ loading: false });
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
|
{ loading ? <ActivityIndicator size='large' style={styles.loading} /> : null }
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,8 +151,11 @@ export default class ProfileView extends React.Component {
|
||||||
if (e.data && e.data.errorType === 'error-too-many-requests') {
|
if (e.data && e.data.errorType === 'error-too-many-requests') {
|
||||||
return showErrorAlert(e.data.error);
|
return showErrorAlert(e.data.error);
|
||||||
}
|
}
|
||||||
showErrorAlert(I18n.t('There_was_an_error_while_action', { action: I18n.t(action) }));
|
showErrorAlert(
|
||||||
// log(func, e);
|
I18n.t('There_was_an_error_while_action', { action: I18n.t(action) }),
|
||||||
|
'',
|
||||||
|
() => this.setState({ showPasswordAlert: false })
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
submit = async() => {
|
submit = async() => {
|
||||||
|
@ -162,7 +165,7 @@ export default class ProfileView extends React.Component {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setState({ saving: true, showPasswordAlert: false });
|
this.setState({ saving: true });
|
||||||
|
|
||||||
const {
|
const {
|
||||||
name, username, email, newPassword, currentPassword, avatar, customFields
|
name, username, email, newPassword, currentPassword, avatar, customFields
|
||||||
|
@ -218,7 +221,7 @@ export default class ProfileView extends React.Component {
|
||||||
} else {
|
} else {
|
||||||
setUser({ ...params });
|
setUser({ ...params });
|
||||||
}
|
}
|
||||||
this.setState({ saving: false });
|
this.setState({ saving: false, showPasswordAlert: false });
|
||||||
this.toast.show(I18n.t('Profile_saved_successfully'));
|
this.toast.show(I18n.t('Profile_saved_successfully'));
|
||||||
this.init();
|
this.init();
|
||||||
}
|
}
|
||||||
|
|
|
@ -437,12 +437,10 @@ export default class RoomView extends React.Component {
|
||||||
|
|
||||||
joinRoom = async() => {
|
joinRoom = async() => {
|
||||||
try {
|
try {
|
||||||
const result = await RocketChat.joinRoom(this.rid);
|
await RocketChat.joinRoom(this.rid, this.t);
|
||||||
if (result.success) {
|
this.internalSetState({
|
||||||
this.internalSetState({
|
joined: true
|
||||||
joined: true
|
});
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log('err_join_room', e);
|
log('err_join_room', e);
|
||||||
}
|
}
|
||||||
|
@ -450,7 +448,7 @@ export default class RoomView extends React.Component {
|
||||||
|
|
||||||
isOwner = () => {
|
isOwner = () => {
|
||||||
const { room } = this.state;
|
const { room } = this.state;
|
||||||
return room && room.roles && Array.from(Object.keys(room.roles), i => room.roles[i].value).includes('owner');
|
return room && room.roles && room.roles.length && !!room.roles.find(role => role === 'owner');
|
||||||
}
|
}
|
||||||
|
|
||||||
isMuted = () => {
|
isMuted = () => {
|
||||||
|
@ -461,7 +459,10 @@ export default class RoomView extends React.Component {
|
||||||
|
|
||||||
isReadOnly = () => {
|
isReadOnly = () => {
|
||||||
const { room } = this.state;
|
const { room } = this.state;
|
||||||
return (room.ro && !room.broadcast) || this.isMuted() || room.archived;
|
if (this.isOwner()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return (room && room.ro) || this.isMuted();
|
||||||
}
|
}
|
||||||
|
|
||||||
isBlocked = () => {
|
isBlocked = () => {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
# Uncomment the next line to define a global platform for your project
|
platform :ios, '10.0'
|
||||||
platform :ios, '9.0'
|
|
||||||
|
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
|
||||||
|
|
||||||
|
|
||||||
target 'RocketChatRN' do
|
target 'RocketChatRN' do
|
||||||
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
|
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
|
||||||
|
@ -44,6 +46,8 @@ target 'RocketChatRN' do
|
||||||
pod 'GoogleIDFASupport', '~> 3.14.0'
|
pod 'GoogleIDFASupport', '~> 3.14.0'
|
||||||
pod 'Firebase/Performance', '~> 5.20.1'
|
pod 'Firebase/Performance', '~> 5.20.1'
|
||||||
|
|
||||||
|
use_unimodules!
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
post_install do |installer|
|
post_install do |installer|
|
||||||
|
|
114
ios/Podfile.lock
114
ios/Podfile.lock
|
@ -3,6 +3,18 @@ PODS:
|
||||||
- Crashlytics (3.12.0):
|
- Crashlytics (3.12.0):
|
||||||
- Fabric (~> 1.9.0)
|
- Fabric (~> 1.9.0)
|
||||||
- DoubleConversion (1.1.6)
|
- DoubleConversion (1.1.6)
|
||||||
|
- EXAppLoaderProvider (5.0.1)
|
||||||
|
- EXConstants (5.0.1):
|
||||||
|
- UMConstantsInterface
|
||||||
|
- UMCore
|
||||||
|
- EXFileSystem (5.0.1):
|
||||||
|
- UMCore
|
||||||
|
- UMFileSystemInterface
|
||||||
|
- EXPermissions (5.0.1):
|
||||||
|
- UMCore
|
||||||
|
- UMPermissionsInterface
|
||||||
|
- EXWebBrowser (5.0.3):
|
||||||
|
- UMCore
|
||||||
- Fabric (1.9.0)
|
- Fabric (1.9.0)
|
||||||
- Firebase/Core (5.20.2):
|
- Firebase/Core (5.20.2):
|
||||||
- Firebase/CoreOnly
|
- Firebase/CoreOnly
|
||||||
|
@ -136,11 +148,31 @@ PODS:
|
||||||
- RNScreens (1.0.0-alpha.22):
|
- RNScreens (1.0.0-alpha.22):
|
||||||
- React
|
- React
|
||||||
- RSKImageCropper (2.2.1)
|
- RSKImageCropper (2.2.1)
|
||||||
|
- UMBarCodeScannerInterface (2.0.1)
|
||||||
|
- UMCameraInterface (2.0.1)
|
||||||
|
- UMConstantsInterface (2.0.1)
|
||||||
|
- UMCore (2.0.1)
|
||||||
|
- UMFaceDetectorInterface (2.0.1)
|
||||||
|
- UMFileSystemInterface (2.0.1)
|
||||||
|
- UMFontInterface (2.0.1)
|
||||||
|
- UMImageLoaderInterface (2.0.1)
|
||||||
|
- UMPermissionsInterface (2.0.1)
|
||||||
|
- UMReactNativeAdapter (2.0.1):
|
||||||
|
- React
|
||||||
|
- UMCore
|
||||||
|
- UMFontInterface
|
||||||
|
- UMSensorsInterface (2.0.1)
|
||||||
|
- UMTaskManagerInterface (2.0.1)
|
||||||
- yoga (0.59.8.React)
|
- yoga (0.59.8.React)
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- Crashlytics (~> 3.12.0)
|
- Crashlytics (~> 3.12.0)
|
||||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||||
|
- EXAppLoaderProvider (from `../node_modules/expo-app-loader-provider/ios`)
|
||||||
|
- EXConstants (from `../node_modules/expo-constants/ios`)
|
||||||
|
- EXFileSystem (from `../node_modules/expo-file-system/ios`)
|
||||||
|
- EXPermissions (from `../node_modules/expo-permissions/ios`)
|
||||||
|
- EXWebBrowser (from `../node_modules/expo-web-browser/ios`)
|
||||||
- Fabric (~> 1.9.0)
|
- Fabric (~> 1.9.0)
|
||||||
- Firebase/Core (~> 5.20.1)
|
- Firebase/Core (~> 5.20.1)
|
||||||
- Firebase/Performance (~> 5.20.1)
|
- Firebase/Performance (~> 5.20.1)
|
||||||
|
@ -163,6 +195,18 @@ DEPENDENCIES:
|
||||||
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
||||||
- RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`)
|
- RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`)
|
||||||
- RNScreens (from `../node_modules/react-native-screens`)
|
- RNScreens (from `../node_modules/react-native-screens`)
|
||||||
|
- UMBarCodeScannerInterface (from `../node_modules/unimodules-barcode-scanner-interface/ios`)
|
||||||
|
- UMCameraInterface (from `../node_modules/unimodules-camera-interface/ios`)
|
||||||
|
- UMConstantsInterface (from `../node_modules/unimodules-constants-interface/ios`)
|
||||||
|
- "UMCore (from `../node_modules/@unimodules/core/ios`)"
|
||||||
|
- UMFaceDetectorInterface (from `../node_modules/unimodules-face-detector-interface/ios`)
|
||||||
|
- UMFileSystemInterface (from `../node_modules/unimodules-file-system-interface/ios`)
|
||||||
|
- UMFontInterface (from `../node_modules/unimodules-font-interface/ios`)
|
||||||
|
- UMImageLoaderInterface (from `../node_modules/unimodules-image-loader-interface/ios`)
|
||||||
|
- UMPermissionsInterface (from `../node_modules/unimodules-permissions-interface/ios`)
|
||||||
|
- "UMReactNativeAdapter (from `../node_modules/@unimodules/react-native-adapter/ios`)"
|
||||||
|
- UMSensorsInterface (from `../node_modules/unimodules-sensors-interface/ios`)
|
||||||
|
- UMTaskManagerInterface (from `../node_modules/unimodules-task-manager-interface/ios`)
|
||||||
- yoga (from `../node_modules/react-native/ReactCommon/yoga`)
|
- yoga (from `../node_modules/react-native/ReactCommon/yoga`)
|
||||||
|
|
||||||
SPEC REPOS:
|
SPEC REPOS:
|
||||||
|
@ -190,6 +234,21 @@ SPEC REPOS:
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
DoubleConversion:
|
DoubleConversion:
|
||||||
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
||||||
|
EXAppLoaderProvider:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/expo-app-loader-provider/ios"
|
||||||
|
EXConstants:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/expo-constants/ios"
|
||||||
|
EXFileSystem:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/expo-file-system/ios"
|
||||||
|
EXPermissions:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/expo-permissions/ios"
|
||||||
|
EXWebBrowser:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/expo-web-browser/ios"
|
||||||
Folly:
|
Folly:
|
||||||
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
|
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
|
||||||
glog:
|
glog:
|
||||||
|
@ -208,6 +267,42 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/react-native-image-crop-picker"
|
:path: "../node_modules/react-native-image-crop-picker"
|
||||||
RNScreens:
|
RNScreens:
|
||||||
:path: "../node_modules/react-native-screens"
|
:path: "../node_modules/react-native-screens"
|
||||||
|
UMBarCodeScannerInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-barcode-scanner-interface/ios"
|
||||||
|
UMCameraInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-camera-interface/ios"
|
||||||
|
UMConstantsInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-constants-interface/ios"
|
||||||
|
UMCore:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/@unimodules/core/ios"
|
||||||
|
UMFaceDetectorInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-face-detector-interface/ios"
|
||||||
|
UMFileSystemInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-file-system-interface/ios"
|
||||||
|
UMFontInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-font-interface/ios"
|
||||||
|
UMImageLoaderInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-image-loader-interface/ios"
|
||||||
|
UMPermissionsInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-permissions-interface/ios"
|
||||||
|
UMReactNativeAdapter:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/@unimodules/react-native-adapter/ios"
|
||||||
|
UMSensorsInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-sensors-interface/ios"
|
||||||
|
UMTaskManagerInterface:
|
||||||
|
:path: !ruby/object:Pathname
|
||||||
|
path: "../node_modules/unimodules-task-manager-interface/ios"
|
||||||
yoga:
|
yoga:
|
||||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||||
|
|
||||||
|
@ -215,6 +310,11 @@ SPEC CHECKSUMS:
|
||||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||||
Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933
|
Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933
|
||||||
DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd
|
DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd
|
||||||
|
EXAppLoaderProvider: 8f2c04a0a8d9be91f7c37c2b8824077ee5d4bc01
|
||||||
|
EXConstants: 9fe56eec8bf0a3ee9beb8f3381fa91340a5b1e57
|
||||||
|
EXFileSystem: 96624bd4b93a0684335c421a6567a92b25bd7ddb
|
||||||
|
EXPermissions: 8e05008ed4fc8c9be6c17ea95301fc3f3f005a7b
|
||||||
|
EXWebBrowser: e03894b4583bb726e5ea05d01b341ba00134c2b5
|
||||||
Fabric: f988e33c97f08930a413e08123064d2e5f68d655
|
Fabric: f988e33c97f08930a413e08123064d2e5f68d655
|
||||||
Firebase: 0c8cf33f266410c61ab3e2265cfa412200351d9c
|
Firebase: 0c8cf33f266410c61ab3e2265cfa412200351d9c
|
||||||
FirebaseABTesting: 1f50b8d50f5e3469eea54e7463a7b7fe221d1f5e
|
FirebaseABTesting: 1f50b8d50f5e3469eea54e7463a7b7fe221d1f5e
|
||||||
|
@ -241,8 +341,20 @@ SPEC CHECKSUMS:
|
||||||
RNImageCropPicker: e608efe182652dc8690268cb99cb5a201f2b5ea3
|
RNImageCropPicker: e608efe182652dc8690268cb99cb5a201f2b5ea3
|
||||||
RNScreens: 720a9e6968beb73e8196239801e887d8401f86ed
|
RNScreens: 720a9e6968beb73e8196239801e887d8401f86ed
|
||||||
RSKImageCropper: 98296ad26b41753f796b6898d015509598f13d97
|
RSKImageCropper: 98296ad26b41753f796b6898d015509598f13d97
|
||||||
|
UMBarCodeScannerInterface: d5602e23de37f95bb4ee49ee3b2711e128058ae9
|
||||||
|
UMCameraInterface: dde8491778ed062348e569bad33a890e60c32c9d
|
||||||
|
UMConstantsInterface: de48a63a5af572fc4dcc0e68051b00503b83e301
|
||||||
|
UMCore: 047dc01ae4ccdd0c993f2c190f2489e5409c3ad0
|
||||||
|
UMFaceDetectorInterface: badd9e3d206f5ba254c85a26afa43da06638575f
|
||||||
|
UMFileSystemInterface: ff9a18c26ee6321dc21a3f9663efe3a55313d4db
|
||||||
|
UMFontInterface: 0575f33184974a38f3528a4750729c7f5256b848
|
||||||
|
UMImageLoaderInterface: ee8642347161d66272e841377a888957feb1f48e
|
||||||
|
UMPermissionsInterface: 2238fe9d7f99457a5cfe7f3140c2521c5bf453a6
|
||||||
|
UMReactNativeAdapter: 110be971ff044f8cfd37cbf565a264cd79858391
|
||||||
|
UMSensorsInterface: cda3ec177c7ff0a138e3135414b4a29013389358
|
||||||
|
UMTaskManagerInterface: 296793ab2a7e181fe5ebe2ba9b40ae208ab4b8fa
|
||||||
yoga: 92b2102c3d373d1a790db4ab761d2b0ffc634f64
|
yoga: 92b2102c3d373d1a790db4ab761d2b0ffc634f64
|
||||||
|
|
||||||
PODFILE CHECKSUM: f98adf896db83acfddda2f17bf015d55d15a89f2
|
PODFILE CHECKSUM: b5e15bac5f306ea636e16393a7a6eb42c017ea99
|
||||||
|
|
||||||
COCOAPODS: 1.6.2
|
COCOAPODS: 1.6.2
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-app-loader-provider/ios/EXAppLoaderProvider/Interfaces/EXAppLoaderInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-app-loader-provider/ios/EXAppLoaderProvider/EXAppLoaderProvider.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-app-loader-provider/ios/EXAppLoaderProvider/Interfaces/EXAppRecordInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-constants/ios/EXConstants/EXConstants.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-constants/ios/EXConstants/EXConstantsService.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-file-system/ios/EXFileSystem/EXDownloadDelegate.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-file-system/ios/EXFileSystem/EXFilePermissionModule.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-file-system/ios/EXFileSystem/EXFileSystem.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-file-system/ios/EXFileSystem/EXFileSystemAssetLibraryHandler.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-file-system/ios/EXFileSystem/EXFileSystemLocalFileHandler.h
|
1
ios/Pods/Headers/Private/EXPermissions/EXAudioRecordingPermissionRequester.h
generated
Symbolic link
1
ios/Pods/Headers/Private/EXPermissions/EXAudioRecordingPermissionRequester.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXAudioRecordingPermissionRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXCalendarRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXCameraPermissionRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXCameraRollRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXContactsRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXLocationRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXPermissions.h
|
1
ios/Pods/Headers/Private/EXPermissions/EXReactNativeUserNotificationCenterProxy.h
generated
Symbolic link
1
ios/Pods/Headers/Private/EXPermissions/EXReactNativeUserNotificationCenterProxy.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXReactNativeUserNotificationCenterProxy.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXRemindersRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXRemoteNotificationRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXSystemBrightnessRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-permissions/ios/EXPermissions/EXUserNotificationRequester.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-web-browser/ios/EXWebBrowser/EXWebBrowser.h
|
1
ios/Pods/Headers/Private/UMBarCodeScannerInterface/UMBarCodeScannerInterface.h
generated
Symbolic link
1
ios/Pods/Headers/Private/UMBarCodeScannerInterface/UMBarCodeScannerInterface.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-barcode-scanner-interface/ios/UMBarCodeScannerInterface/UMBarCodeScannerInterface.h
|
1
ios/Pods/Headers/Private/UMBarCodeScannerInterface/UMBarCodeScannerProviderInterface.h
generated
Symbolic link
1
ios/Pods/Headers/Private/UMBarCodeScannerInterface/UMBarCodeScannerProviderInterface.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-barcode-scanner-interface/ios/UMBarCodeScannerInterface/UMBarCodeScannerProviderInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-camera-interface/ios/UMCameraInterface/UMCameraInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-constants-interface/ios/UMConstantsInterface/UMConstantsInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMAppDelegateWrapper.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMAppLifecycleListener.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMAppLifecycleService.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMDefines.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMEventEmitter.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMEventEmitterService.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMExportedModule.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMInternalModule.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMJavaScriptContextProvider.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMKernelService.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMLogHandler.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Services/UMLogManager.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMModuleRegistry/UMModuleRegistry.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMModuleRegistryConsumer.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMModuleRegistry/UMModuleRegistryDelegate.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMModuleRegistryProvider/UMModuleRegistryProvider.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMSingletonModule.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMUIManager.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMUtilities.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/Protocols/UMUtilitiesInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/core/ios/UMCore/UMViewManager.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-face-detector-interface/ios/UMFaceDetectorInterface/UMFaceDetectorManager.h
|
1
ios/Pods/Headers/Private/UMFaceDetectorInterface/UMFaceDetectorManagerProvider.h
generated
Symbolic link
1
ios/Pods/Headers/Private/UMFaceDetectorInterface/UMFaceDetectorManagerProvider.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-face-detector-interface/ios/UMFaceDetectorInterface/UMFaceDetectorManagerProvider.h
|
1
ios/Pods/Headers/Private/UMFileSystemInterface/UMFilePermissionModuleInterface.h
generated
Symbolic link
1
ios/Pods/Headers/Private/UMFileSystemInterface/UMFilePermissionModuleInterface.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-file-system-interface/ios/UMFileSystemInterface/UMFilePermissionModuleInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-file-system-interface/ios/UMFileSystemInterface/UMFileSystemInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-font-interface/ios/UMFontInterface/UMFontManagerInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-font-interface/ios/UMFontInterface/UMFontProcessorInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-font-interface/ios/UMFontInterface/UMFontScalerInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-font-interface/ios/UMFontInterface/UMFontScalersManagerInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-image-loader-interface/ios/UMImageLoaderInterface/UMImageLoaderInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-permissions-interface/ios/UMPermissionsInterface/UMPermissionsInterface.h
|
1
ios/Pods/Headers/Private/UMPermissionsInterface/UMUserNotificationCenterProxyInterface.h
generated
Symbolic link
1
ios/Pods/Headers/Private/UMPermissionsInterface/UMUserNotificationCenterProxyInterface.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-permissions-interface/ios/UMPermissionsInterface/UMUserNotificationCenterProxyInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/UMBridgeModule.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/UMModuleRegistryAdapter/UMModuleRegistryAdapter.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/UMNativeModulesProxy/UMNativeModulesProxy.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/Services/UMReactFontManager.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/Services/UMReactLogHandler.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/Services/UMReactNativeAdapter.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/Services/UMReactNativeEventEmitter.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/UMViewManagerAdapter/UMViewManagerAdapter.h
|
1
ios/Pods/Headers/Private/UMReactNativeAdapter/UMViewManagerAdapterClassesRegistry.h
generated
Symbolic link
1
ios/Pods/Headers/Private/UMReactNativeAdapter/UMViewManagerAdapterClassesRegistry.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@unimodules/react-native-adapter/ios/UMReactNativeAdapter/UMModuleRegistryAdapter/UMViewManagerAdapterClassesRegistry.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-sensors-interface/ios/UMSensorsInterface/UMAccelerometerInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-sensors-interface/ios/UMSensorsInterface/UMBarometerInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-sensors-interface/ios/UMSensorsInterface/UMDeviceMotionInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-sensors-interface/ios/UMSensorsInterface/UMGyroscopeInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-sensors-interface/ios/UMSensorsInterface/UMMagnetometerInterface.h
|
1
ios/Pods/Headers/Private/UMSensorsInterface/UMMagnetometerUncalibratedInterface.h
generated
Symbolic link
1
ios/Pods/Headers/Private/UMSensorsInterface/UMMagnetometerUncalibratedInterface.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-sensors-interface/ios/UMSensorsInterface/UMMagnetometerUncalibratedInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-task-manager-interface/ios/UMTaskManagerInterface/UMTaskConsumerInterface.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/unimodules-task-manager-interface/ios/UMTaskManagerInterface/UMTaskInterface.h
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue