Sending messages :)
This commit is contained in:
parent
f1a2290ac2
commit
f836982b09
|
@ -133,6 +133,7 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
compile project(':react-native-zeroconf')
|
||||||
compile project(':realm')
|
compile project(':realm')
|
||||||
compile fileTree(dir: "libs", include: ["*.jar"])
|
compile fileTree(dir: "libs", include: ["*.jar"])
|
||||||
compile "com.android.support:appcompat-v7:23.0.1"
|
compile "com.android.support:appcompat-v7:23.0.1"
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.rocketchatrn;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
|
||||||
import com.facebook.react.ReactApplication;
|
import com.facebook.react.ReactApplication;
|
||||||
|
import com.balthazargronon.RCTZeroconf.ZeroconfReactPackage;
|
||||||
import io.realm.react.RealmReactPackage;
|
import io.realm.react.RealmReactPackage;
|
||||||
import com.facebook.react.ReactNativeHost;
|
import com.facebook.react.ReactNativeHost;
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
||||||
|
@ -24,6 +25,7 @@ public class MainApplication extends Application implements ReactApplication {
|
||||||
protected List<ReactPackage> getPackages() {
|
protected List<ReactPackage> getPackages() {
|
||||||
return Arrays.<ReactPackage>asList(
|
return Arrays.<ReactPackage>asList(
|
||||||
new MainReactPackage(),
|
new MainReactPackage(),
|
||||||
|
new ZeroconfReactPackage(),
|
||||||
new RealmReactPackage()
|
new RealmReactPackage()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
rootProject.name = 'RocketChatRN'
|
rootProject.name = 'RocketChatRN'
|
||||||
|
include ':react-native-zeroconf'
|
||||||
|
project(':react-native-zeroconf').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-zeroconf/android')
|
||||||
include ':realm'
|
include ':realm'
|
||||||
project(':realm').projectDir = new File(rootProject.projectDir, '../node_modules/realm/android')
|
project(':realm').projectDir = new File(rootProject.projectDir, '../node_modules/realm/android')
|
||||||
|
|
||||||
|
|
69
app/login.js
69
app/login.js
|
@ -1,8 +1,8 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { View, TextInput, StyleSheet } from 'react-native';
|
import { View, TextInput, StyleSheet, KeyboardAvoidingView } from 'react-native';
|
||||||
import realm from './realm';
|
import realm from './realm';
|
||||||
import { loginWithPassword } from './meteor';
|
import { loginWithPassword, loadSubscriptions, Accounts } from './meteor';
|
||||||
|
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
|
@ -14,7 +14,6 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
input: {
|
input: {
|
||||||
height: 40,
|
height: 40,
|
||||||
// flex: 1,
|
|
||||||
borderColor: '#aaa',
|
borderColor: '#aaa',
|
||||||
marginLeft: 20,
|
marginLeft: 20,
|
||||||
marginRight: 20,
|
marginRight: 20,
|
||||||
|
@ -38,36 +37,26 @@ export default class LoginView extends React.Component {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
username: 'rodrigo',
|
username: '',
|
||||||
password: 'rodrigo'
|
password: ''
|
||||||
};
|
};
|
||||||
|
|
||||||
const { navigate } = this.props.navigation;
|
const { navigate } = this.props.navigation;
|
||||||
|
|
||||||
this.submit = () => {
|
Accounts.onLogin(() => {
|
||||||
loginWithPassword({ username: this.state.username }, this.state.password, () => {
|
loadSubscriptions(() => {
|
||||||
navigate('Rooms');
|
navigate('Rooms');
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// let url = this.state.text.trim();
|
this.submit = () => {
|
||||||
// if (!url) {
|
loginWithPassword({ username: this.state.username }, this.state.password);
|
||||||
// url = defaultServer;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // TODO: validate URL
|
|
||||||
|
|
||||||
// realm.write(() => {
|
|
||||||
// realm.objects('servers').filtered('current = true').forEach(item => item.current = false);
|
|
||||||
// realm.create('servers', {id: url, current: true}, true);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// navigate('Login');
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<View style={styles.view}>
|
<KeyboardAvoidingView style={styles.view} behavior='padding'>
|
||||||
<TextInput
|
<TextInput
|
||||||
style={styles.input}
|
style={styles.input}
|
||||||
onChangeText={username => this.setState({ username })}
|
onChangeText={username => this.setState({ username })}
|
||||||
|
@ -89,43 +78,7 @@ export default class LoginView extends React.Component {
|
||||||
onSubmitEditing={this.submit}
|
onSubmitEditing={this.submit}
|
||||||
placeholder='Password'
|
placeholder='Password'
|
||||||
/>
|
/>
|
||||||
</View>
|
</KeyboardAvoidingView>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// export class LoginView extends React.Component {
|
|
||||||
// renderRow(setting) {
|
|
||||||
// return (
|
|
||||||
// <Text>{setting._id}</Text>
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
|
|
||||||
// constructor(props) {
|
|
||||||
// super(props);
|
|
||||||
// connect();
|
|
||||||
// const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
|
|
||||||
|
|
||||||
// const getState = () => {
|
|
||||||
// return {
|
|
||||||
// dataSource: ds.cloneWithRows(realm.objects('settings'))
|
|
||||||
// };
|
|
||||||
// };
|
|
||||||
|
|
||||||
// realm.addListener('change', () => this.setState(getState()));
|
|
||||||
|
|
||||||
// this.state = getState();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// render() {
|
|
||||||
// return (
|
|
||||||
// <View>
|
|
||||||
// <Text>Title</Text>
|
|
||||||
// <ListView
|
|
||||||
// dataSource={this.state.dataSource}
|
|
||||||
// renderRow={this.renderRow}
|
|
||||||
// />
|
|
||||||
// </View>
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
import Meteor from 'react-native-meteor';
|
import Meteor from 'react-native-meteor';
|
||||||
|
import Random from 'react-native-meteor/lib/Random';
|
||||||
import realm from './realm';
|
import realm from './realm';
|
||||||
|
|
||||||
|
export { Accounts } from 'react-native-meteor';
|
||||||
|
|
||||||
export function connect(cb) {
|
export function connect(cb) {
|
||||||
const currentServer = realm.objects('servers').filtered('current = true')[0];
|
const currentServer = realm.objects('servers').filtered('current = true')[0];
|
||||||
const url = `${ currentServer.id }/websocket`;
|
const url = `${ currentServer.id }/websocket`;
|
||||||
|
@ -31,11 +34,29 @@ export function connect(cb) {
|
||||||
|
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Meteor.ddp.on("changed", ddbMessage => {
|
||||||
|
console.log('changed', ddbMessage);
|
||||||
|
if (ddbMessage.collection === 'stream-room-messages') {
|
||||||
|
setTimeout(function() {
|
||||||
|
realm.write(() => {
|
||||||
|
const message = ddbMessage.fields.args[0];
|
||||||
|
message.temp = false;
|
||||||
|
realm.create('messages', message, true);
|
||||||
|
});
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function loginWithPassword(selector, password, cb) {
|
export function loginWithPassword(selector, password, cb) {
|
||||||
Meteor.loginWithPassword(selector, password, () => {
|
Meteor.loginWithPassword(selector, password, (err, data) => {
|
||||||
|
cb && cb();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function loadSubscriptions(cb) {
|
||||||
Meteor.call('subscriptions/get', (err, data) => {
|
Meteor.call('subscriptions/get', (err, data) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
@ -52,8 +73,8 @@ export function loginWithPassword(selector, password, cb) {
|
||||||
realm.create('subscriptions', subscription, true);
|
realm.create('subscriptions', subscription, true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
cb();
|
cb && cb();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,8 +87,35 @@ export function loadMessagesForRoom(rid) {
|
||||||
|
|
||||||
realm.write(() => {
|
realm.write(() => {
|
||||||
data.messages.forEach((message) => {
|
data.messages.forEach((message) => {
|
||||||
|
message.temp = false;
|
||||||
realm.create('messages', message, true);
|
realm.create('messages', message, true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Meteor.subscribe('stream-room-messages', rid, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function sendMessage(rid, msg, cb) {
|
||||||
|
const _id = Random.id();
|
||||||
|
const user = Meteor.user();
|
||||||
|
|
||||||
|
realm.write(() => {
|
||||||
|
realm.create('messages', {
|
||||||
|
_id,
|
||||||
|
rid,
|
||||||
|
msg,
|
||||||
|
ts: new Date,
|
||||||
|
_updatedAt: new Date,
|
||||||
|
temp: true,
|
||||||
|
u: {
|
||||||
|
_id: user._id,
|
||||||
|
username: user.username
|
||||||
|
}
|
||||||
|
}, true);
|
||||||
|
});
|
||||||
|
|
||||||
|
Meteor.call('sendMessage', {_id, rid, msg}, (err, data) => {
|
||||||
|
cb && cb();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,38 @@
|
||||||
import { StackNavigator } from 'react-navigation';
|
import { StackNavigator } from 'react-navigation';
|
||||||
import LoginView from './login';
|
import LoginView from './login';
|
||||||
import NewServerView from './new-server';
|
import NewServerView from './servers/new';
|
||||||
|
import ListServerView from './servers/list';
|
||||||
import RoomsView from './rooms';
|
import RoomsView from './rooms';
|
||||||
import RoomView from './room';
|
import RoomView from './room';
|
||||||
|
|
||||||
|
const navigationOptions = {
|
||||||
|
// headerStyle: {
|
||||||
|
// backgroundColor: '#c1272d'
|
||||||
|
// },
|
||||||
|
// headerTitleStyle: {
|
||||||
|
// color: '#fff'
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
|
||||||
export default new StackNavigator({
|
export default new StackNavigator({
|
||||||
// Room: { screen: RoomView },
|
ListServer: {
|
||||||
Home: {
|
screen: ListServerView,
|
||||||
navigationOptions: {
|
navigationOptions
|
||||||
header: null
|
|
||||||
},
|
},
|
||||||
screen: NewServerView
|
NewServer: {
|
||||||
|
screen: NewServerView,
|
||||||
|
navigationOptions
|
||||||
},
|
},
|
||||||
Login: { screen: LoginView },
|
Login: { screen: LoginView },
|
||||||
Rooms: { screen: RoomsView },
|
Rooms: { screen: RoomsView },
|
||||||
Room: { screen: RoomView }
|
Room: {
|
||||||
|
screen: RoomView
|
||||||
|
// navigationOptions: {
|
||||||
|
// header: null
|
||||||
|
// }
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
|
// initialRouteName: 'Room',
|
||||||
cardStyle: {
|
cardStyle: {
|
||||||
backgroundColor: '#fff'
|
backgroundColor: '#fff'
|
||||||
}
|
}
|
||||||
|
|
14
app/realm.js
14
app/realm.js
|
@ -24,16 +24,16 @@ const subscriptionSchema = {
|
||||||
properties: {
|
properties: {
|
||||||
_id: 'string',
|
_id: 'string',
|
||||||
t: 'string',
|
t: 'string',
|
||||||
ts: 'date',
|
ts: { type: 'date', optional: true },
|
||||||
ls: 'date',
|
ls: { type: 'date', optional: true },
|
||||||
name: 'string',
|
name: 'string',
|
||||||
fname: { type: 'string', optional: true },
|
fname: { type: 'string', optional: true },
|
||||||
rid: 'string',
|
rid: 'string',
|
||||||
// u: { _id: 'hKCY2XGzHYk89SAaM', username: 'rodrigo', name: null },
|
// u: { _id: 'hKCY2XGzHYk89SAaM', username: 'rodrigo', name: null },
|
||||||
open: 'bool',
|
open: { type: 'bool', optional: true },
|
||||||
alert: 'bool',
|
alert: { type: 'bool', optional: true },
|
||||||
// roles: [ 'owner' ],
|
// roles: [ 'owner' ],
|
||||||
unread: 'int'
|
unread: { type: 'int', optional: true }
|
||||||
// userMentions: 0,
|
// userMentions: 0,
|
||||||
// groupMentions: 0,
|
// groupMentions: 0,
|
||||||
// _updatedAt: Fri Jul 28 2017 18:31:35 GMT-0300 (-03),
|
// _updatedAt: Fri Jul 28 2017 18:31:35 GMT-0300 (-03),
|
||||||
|
@ -61,10 +61,12 @@ const messagesSchema = {
|
||||||
u: 'users',
|
u: 'users',
|
||||||
// mentions: [],
|
// mentions: [],
|
||||||
// channels: [],
|
// channels: [],
|
||||||
_updatedAt: 'date'
|
_updatedAt: 'date',
|
||||||
|
temp: { type: 'bool', optional: true }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Realm.clearTestState();
|
// Realm.clearTestState();
|
||||||
|
|
||||||
const realm = new Realm({
|
const realm = new Realm({
|
||||||
|
|
86
app/room.js
86
app/room.js
|
@ -1,16 +1,17 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { View, Text, FlatList, StyleSheet, Image } from 'react-native';
|
import { View, KeyboardAvoidingView, Text, TextInput, FlatList, StyleSheet, Image } from 'react-native';
|
||||||
// import Markdown from 'react-native-simple-markdown';
|
// import Markdown from 'react-native-simple-markdown';
|
||||||
import realm from './realm';
|
import realm from './realm';
|
||||||
import { loadMessagesForRoom } from './meteor';
|
import { loadMessagesForRoom, sendMessage } from './meteor';
|
||||||
|
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
roomItem: {
|
roomItem: {
|
||||||
borderColor: '#aaa',
|
borderColor: '#aaa',
|
||||||
padding: 14,
|
padding: 14,
|
||||||
flexDirection: 'row'
|
flexDirection: 'row',
|
||||||
|
transform: [{ scaleY: -1 }]
|
||||||
},
|
},
|
||||||
avatar: {
|
avatar: {
|
||||||
backgroundColor: '#ccc',
|
backgroundColor: '#ccc',
|
||||||
|
@ -23,14 +24,33 @@ const styles = StyleSheet.create({
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
marginBottom: 5
|
marginBottom: 5
|
||||||
},
|
},
|
||||||
|
texts: {
|
||||||
|
flex: 1
|
||||||
|
},
|
||||||
|
msg: {
|
||||||
|
flex: 1
|
||||||
|
},
|
||||||
container: {
|
container: {
|
||||||
flex: 1
|
flex: 1
|
||||||
},
|
},
|
||||||
|
list: {
|
||||||
|
flex: 1,
|
||||||
|
transform: [{ scaleY: -1 }]
|
||||||
|
},
|
||||||
separator: {
|
separator: {
|
||||||
height: 1,
|
height: 1,
|
||||||
// width: "86%",
|
// width: "86%",
|
||||||
backgroundColor: '#CED0CE'
|
backgroundColor: '#CED0CE'
|
||||||
// marginLeft: "14%"
|
// marginLeft: "14%"
|
||||||
|
},
|
||||||
|
textBox: {
|
||||||
|
paddingTop: 1,
|
||||||
|
backgroundColor: '#ccc'
|
||||||
|
},
|
||||||
|
textBoxInput: {
|
||||||
|
height: 40,
|
||||||
|
backgroundColor: '#fff',
|
||||||
|
paddingLeft: 15
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -40,14 +60,19 @@ class RoomItem extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
const extraStyle = {};
|
||||||
|
if (this.props.item.temp) {
|
||||||
|
extraStyle.opacity = .3;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={styles.roomItem}>
|
<View style={[styles.roomItem, extraStyle]}>
|
||||||
<Image style={styles.avatar} source={{ uri: `http://localhost:3000/avatar/${ this.props.item.u.username }` }} />
|
<Image style={styles.avatar} source={{ uri: `http://localhost:3000/avatar/${ this.props.item.u.username }` }} />
|
||||||
<View>
|
<View style={styles.texts}>
|
||||||
<Text onPress={this._onPress} style={styles.username}>
|
<Text onPress={this._onPress} style={styles.username}>
|
||||||
{this.props.item.u.username}
|
{this.props.item.u.username}
|
||||||
</Text>
|
</Text>
|
||||||
<Text>
|
<Text style={styles.msg}>
|
||||||
{this.props.item.msg}
|
{this.props.item.msg}
|
||||||
</Text>
|
</Text>
|
||||||
{/* <Markdown whitelist={['link', 'url']}>
|
{/* <Markdown whitelist={['link', 'url']}>
|
||||||
|
@ -73,16 +98,26 @@ export default class RoomView extends React.Component {
|
||||||
this.rid = realm.objectForPrimaryKey('subscriptions', props.navigation.state.params.sid).rid;
|
this.rid = realm.objectForPrimaryKey('subscriptions', props.navigation.state.params.sid).rid;
|
||||||
// this.rid = 'GENERAL';
|
// this.rid = 'GENERAL';
|
||||||
|
|
||||||
|
this.state = this.getState();
|
||||||
|
|
||||||
loadMessagesForRoom(this.rid);
|
loadMessagesForRoom(this.rid);
|
||||||
|
|
||||||
const getState = () => ({
|
this.state = this.getState();
|
||||||
selected: new Map(),
|
}
|
||||||
dataSource: realm.objects('messages').filtered('rid = $0', this.rid)
|
|
||||||
|
getState = () => ({
|
||||||
|
...this.state,
|
||||||
|
dataSource: realm.objects('messages').filtered('rid = $0', this.rid).sorted('ts', true)
|
||||||
});
|
});
|
||||||
|
|
||||||
realm.addListener('change', () => this.setState(getState()));
|
updateState = () => (this.setState(this.getState()))
|
||||||
|
|
||||||
this.state = getState();
|
componentDidMount() {
|
||||||
|
realm.addListener('change', this.updateState);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
realm.removeListener('change', this.updateState);
|
||||||
}
|
}
|
||||||
|
|
||||||
renderItem = ({ item }) => (
|
renderItem = ({ item }) => (
|
||||||
|
@ -96,17 +131,44 @@ export default class RoomView extends React.Component {
|
||||||
<View style={styles.separator} />
|
<View style={styles.separator} />
|
||||||
);
|
);
|
||||||
|
|
||||||
|
submit = () => {
|
||||||
|
console.log(this.state.text);
|
||||||
|
if (this.state.text.trim() === '') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sendMessage(this.rid, this.state.text);
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
...this.state,
|
||||||
|
text: ''
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<View style={styles.container}>
|
<KeyboardAvoidingView style={styles.container} behavior='padding' keyboardVerticalOffset={64}>
|
||||||
<FlatList
|
<FlatList
|
||||||
|
ref={ref => this.listView = ref}
|
||||||
style={styles.list}
|
style={styles.list}
|
||||||
data={this.state.dataSource}
|
data={this.state.dataSource}
|
||||||
|
extraData={this.state}
|
||||||
renderItem={this.renderItem}
|
renderItem={this.renderItem}
|
||||||
keyExtractor={item => item._id}
|
keyExtractor={item => item._id}
|
||||||
ItemSeparatorComponent={this.renderSeparator}
|
ItemSeparatorComponent={this.renderSeparator}
|
||||||
/>
|
/>
|
||||||
|
<View style={styles.textBox}>
|
||||||
|
<TextInput
|
||||||
|
style={styles.textBoxInput}
|
||||||
|
value={this.state.text}
|
||||||
|
onChangeText={text => this.setState({ text })}
|
||||||
|
returnKeyType='send'
|
||||||
|
onSubmitEditing={this.submit}
|
||||||
|
autoFocus
|
||||||
|
placeholder='New message'
|
||||||
|
></TextInput>
|
||||||
</View>
|
</View>
|
||||||
|
</KeyboardAvoidingView>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ export default class RoomsView extends React.Component {
|
||||||
|
|
||||||
const getState = () => ({
|
const getState = () => ({
|
||||||
selected: new Map(),
|
selected: new Map(),
|
||||||
dataSource: realm.objects('subscriptions')
|
dataSource: realm.objects('subscriptions').sorted('name')
|
||||||
});
|
});
|
||||||
|
|
||||||
realm.addListener('change', () => this.setState(getState()));
|
realm.addListener('change', () => this.setState(getState()));
|
||||||
|
|
|
@ -0,0 +1,170 @@
|
||||||
|
import React from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import Zeroconf from 'react-native-zeroconf';
|
||||||
|
import { H1, View, TouchableOpacity, Text, TextInput, SectionList, Button, StyleSheet } from 'react-native';
|
||||||
|
|
||||||
|
import realm from '../realm';
|
||||||
|
import { connect } from '../meteor';
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
view: {
|
||||||
|
flex: 1,
|
||||||
|
flexDirection: 'column',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'stretch'
|
||||||
|
},
|
||||||
|
input: {
|
||||||
|
height: 40,
|
||||||
|
borderColor: '#aaa',
|
||||||
|
margin: 20,
|
||||||
|
padding: 5,
|
||||||
|
borderWidth: 0,
|
||||||
|
backgroundColor: '#f8f8f8'
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
textAlign: 'center',
|
||||||
|
color: '#888'
|
||||||
|
},
|
||||||
|
listItem: {
|
||||||
|
lineHeight: 18,
|
||||||
|
borderTopWidth: 2,
|
||||||
|
color: '#666',
|
||||||
|
padding: 14
|
||||||
|
},
|
||||||
|
container: {
|
||||||
|
flex: 1
|
||||||
|
},
|
||||||
|
separator: {
|
||||||
|
height: 1,
|
||||||
|
backgroundColor: '#eee'
|
||||||
|
},
|
||||||
|
headerStyle: {
|
||||||
|
backgroundColor: '#eee',
|
||||||
|
lineHeight: 24,
|
||||||
|
paddingLeft: 14,
|
||||||
|
color: '#888'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const zeroconf = new Zeroconf();
|
||||||
|
|
||||||
|
export default class ListServerView extends React.Component {
|
||||||
|
static propTypes = {
|
||||||
|
navigation: PropTypes.object.isRequired
|
||||||
|
}
|
||||||
|
|
||||||
|
static navigationOptions = ({navigation}) => ({
|
||||||
|
title: 'Servers',
|
||||||
|
headerRight: (
|
||||||
|
<Button
|
||||||
|
title = "Add"
|
||||||
|
onPress = {() => navigation.navigate('NewServer')}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
});
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
sections: []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
const getState = () => {
|
||||||
|
const sections = [{
|
||||||
|
title: 'My servers',
|
||||||
|
data: realm.objects('servers')
|
||||||
|
}];
|
||||||
|
|
||||||
|
if (this.state.nearBy) {
|
||||||
|
const nearBy = Object.keys(this.state.nearBy).filter(key => this.state.nearBy[key].addresses);
|
||||||
|
if (nearBy.length) {
|
||||||
|
sections.push({
|
||||||
|
title: 'Nearby',
|
||||||
|
data: nearBy.map((key) => {
|
||||||
|
const server = this.state.nearBy[key];
|
||||||
|
const address = `http://${ server.addresses[0] }:${ server.port }`
|
||||||
|
return {
|
||||||
|
id: address
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
...this.state,
|
||||||
|
sections
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const { navigation } = this.props;
|
||||||
|
|
||||||
|
if (navigation && navigation.state.params && navigation.state.params.newServer) {
|
||||||
|
return navigation.navigate('Login');
|
||||||
|
}
|
||||||
|
|
||||||
|
const currentServer = realm.objects('servers').filtered('current = true')[0];
|
||||||
|
if (currentServer) {
|
||||||
|
connect(() => {
|
||||||
|
navigation.navigate('Login')
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
zeroconf.on('update', () => {
|
||||||
|
this.state.nearBy = zeroconf.getServices();
|
||||||
|
this.setState(getState());
|
||||||
|
});
|
||||||
|
zeroconf.scan('http', 'tcp', 'local.');
|
||||||
|
|
||||||
|
realm.addListener('change', () => this.setState(getState()));
|
||||||
|
|
||||||
|
this.state = getState();
|
||||||
|
}
|
||||||
|
|
||||||
|
onPressItem(item) {
|
||||||
|
const { navigate } = this.props.navigation;
|
||||||
|
realm.write(() => {
|
||||||
|
realm.objects('servers').filtered('current = true').forEach(item => (item.current = false));
|
||||||
|
realm.create('servers', { id: item.id, current: true }, true);
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(() => {
|
||||||
|
navigate('Login');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
renderItem = ({ item }) => (
|
||||||
|
<Text
|
||||||
|
style={styles.listItem}
|
||||||
|
onPress={() => {this.onPressItem(item)}}
|
||||||
|
>
|
||||||
|
{item.id}
|
||||||
|
</Text>
|
||||||
|
);
|
||||||
|
|
||||||
|
renderSectionHeader = ({ section }) => (
|
||||||
|
<Text style={styles.headerStyle}>{section.title}</Text>
|
||||||
|
);
|
||||||
|
|
||||||
|
renderSeparator = () => (
|
||||||
|
<View style={styles.separator} />
|
||||||
|
);
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<View style={styles.view}>
|
||||||
|
<SectionList
|
||||||
|
style={styles.list}
|
||||||
|
sections={this.state.sections}
|
||||||
|
renderItem={this.renderItem}
|
||||||
|
renderSectionHeader={this.renderSectionHeader}
|
||||||
|
keyExtractor={(item) => item.id}
|
||||||
|
ItemSeparatorComponent={this.renderSeparator}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,37 +1,48 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { View, TextInput, StyleSheet } from 'react-native';
|
import Zeroconf from 'react-native-zeroconf';
|
||||||
import realm from './realm';
|
import { View, Text, TextInput, Button, StyleSheet, KeyboardAvoidingView } from 'react-native';
|
||||||
import { connect } from './meteor';
|
import { NavigationActions } from 'react-navigation'
|
||||||
|
|
||||||
|
import realm from '../realm';
|
||||||
|
import { connect } from '../meteor';
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
view: {
|
view: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
flexDirection: 'row',
|
flexDirection: 'column',
|
||||||
justifyContent: 'center',
|
justifyContent: 'center',
|
||||||
alignItems: 'center'
|
alignItems: 'stretch'
|
||||||
},
|
},
|
||||||
input: {
|
input: {
|
||||||
height: 40,
|
height: 40,
|
||||||
flex: 1,
|
|
||||||
borderColor: '#aaa',
|
borderColor: '#aaa',
|
||||||
margin: 20,
|
margin: 20,
|
||||||
padding: 5,
|
padding: 5,
|
||||||
borderWidth: 0,
|
borderWidth: 0,
|
||||||
backgroundColor: '#f8f8f8'
|
backgroundColor: '#f8f8f8'
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
textAlign: 'center',
|
||||||
|
color: '#888'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const defaultServer = 'http://localhost:3000';
|
const zeroconf = new Zeroconf();
|
||||||
|
|
||||||
export default class NewServerView extends React.Component {
|
export default class NewServerView extends React.Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
navigation: PropTypes.object.isRequired
|
navigation: PropTypes.object.isRequired
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static navigationOptions = ({navigation}) => ({
|
||||||
|
title: 'New Server Connection'
|
||||||
|
});
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
|
defaultServer: 'https://demo.rocket.chat',
|
||||||
text: ''
|
text: ''
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -40,10 +51,17 @@ export default class NewServerView extends React.Component {
|
||||||
this.submit = () => {
|
this.submit = () => {
|
||||||
let url = this.state.text.trim();
|
let url = this.state.text.trim();
|
||||||
if (!url) {
|
if (!url) {
|
||||||
url = defaultServer;
|
url = this.state.defaultServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: validate URL
|
// TODO: validate URL
|
||||||
|
if (url.indexOf('.') === -1) {
|
||||||
|
url = `https://${ url }.rocket.chat`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/^https?:\/\//.test(url) === false) {
|
||||||
|
url = `https://${ url }`;
|
||||||
|
}
|
||||||
|
|
||||||
realm.write(() => {
|
realm.write(() => {
|
||||||
realm.objects('servers').filtered('current = true').forEach(item => (item.current = false));
|
realm.objects('servers').filtered('current = true').forEach(item => (item.current = false));
|
||||||
|
@ -51,15 +69,14 @@ export default class NewServerView extends React.Component {
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(() => {
|
connect(() => {
|
||||||
console.log('Site_Name', realm.objectForPrimaryKey('settings', 'Site_Name'));
|
navigate('ListServer', {newServer: url});
|
||||||
navigate('Login');
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<View style={styles.view}>
|
<KeyboardAvoidingView style={styles.view} behavior='padding'>
|
||||||
<TextInput
|
<TextInput
|
||||||
style={styles.input}
|
style={styles.input}
|
||||||
onChangeText={text => this.setState({ text })}
|
onChangeText={text => this.setState({ text })}
|
||||||
|
@ -69,10 +86,9 @@ export default class NewServerView extends React.Component {
|
||||||
autoCapitalize='none'
|
autoCapitalize='none'
|
||||||
autoFocus
|
autoFocus
|
||||||
onSubmitEditing={this.submit}
|
onSubmitEditing={this.submit}
|
||||||
placeholder={defaultServer}
|
placeholder={this.state.defaultServer}
|
||||||
/>
|
/>
|
||||||
</View>
|
</KeyboardAvoidingView>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
|
@ -22,6 +22,19 @@
|
||||||
<string>1</string>
|
<string>1</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>NSAppTransportSecurity</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSExceptionDomains</key>
|
||||||
|
<dict>
|
||||||
|
<key>localhost</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSExceptionAllowsInsecureHTTPLoads</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>NSLocationWhenInUseUsageDescription</key>
|
||||||
|
<string></string>
|
||||||
<key>UILaunchStoryboardName</key>
|
<key>UILaunchStoryboardName</key>
|
||||||
<string>LaunchScreen</string>
|
<string>LaunchScreen</string>
|
||||||
<key>UIRequiredDeviceCapabilities</key>
|
<key>UIRequiredDeviceCapabilities</key>
|
||||||
|
@ -36,19 +49,5 @@
|
||||||
</array>
|
</array>
|
||||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>NSLocationWhenInUseUsageDescription</key>
|
|
||||||
<string></string>
|
|
||||||
<key>NSAppTransportSecurity</key>
|
|
||||||
<!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ -->
|
|
||||||
<dict>
|
|
||||||
<key>NSExceptionDomains</key>
|
|
||||||
<dict>
|
|
||||||
<key>localhost</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSExceptionAllowsInsecureHTTPLoads</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; };
|
2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; };
|
||||||
2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
|
2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
|
||||||
2DCD954D1E0B4F2C00145EB5 /* RocketChatRNTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* RocketChatRNTests.m */; };
|
2DCD954D1E0B4F2C00145EB5 /* RocketChatRNTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* RocketChatRNTests.m */; };
|
||||||
|
33647F7997A2493E9E1343B3 /* libRNZeroconf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BAAE4B947F5D44959F0A9D5A /* libRNZeroconf.a */; };
|
||||||
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
|
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
|
||||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
|
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
|
||||||
EF736EF520A64AE8820E684A /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DF26CC845883492D8AC8869B /* libRealmReact.a */; };
|
EF736EF520A64AE8820E684A /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DF26CC845883492D8AC8869B /* libRealmReact.a */; };
|
||||||
|
@ -217,6 +218,13 @@
|
||||||
remoteGlobalIDString = 2D2A28201D9B03D100D4039D;
|
remoteGlobalIDString = 2D2A28201D9B03D100D4039D;
|
||||||
remoteInfo = "RCTAnimation-tvOS";
|
remoteInfo = "RCTAnimation-tvOS";
|
||||||
};
|
};
|
||||||
|
607C68951F36522C0096975F /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = 0DE485BD1BDD49E400020698;
|
||||||
|
remoteInfo = RNZeroconf;
|
||||||
|
};
|
||||||
607D610C1F325B7E00F639C4 /* PBXContainerItemProxy */ = {
|
607D610C1F325B7E00F639C4 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||||
|
@ -291,11 +299,13 @@
|
||||||
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
|
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
|
||||||
2D02E47B1E0B4A5D006451C7 /* RocketChatRN-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RocketChatRN-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
2D02E47B1E0B4A5D006451C7 /* RocketChatRN-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RocketChatRN-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
2D02E4901E0B4A5D006451C7 /* RocketChatRN-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RocketChatRN-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
2D02E4901E0B4A5D006451C7 /* RocketChatRN-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RocketChatRN-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNZeroconf.xcodeproj; path = "../node_modules/react-native-zeroconf/ios/RNZeroconf.xcodeproj"; sourceTree = "<group>"; };
|
||||||
5A8684E7C27E426C9206E980 /* RealmReact.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RealmReact.xcodeproj; path = "../node_modules/realm/react-native/ios/RealmReact.xcodeproj"; sourceTree = "<group>"; };
|
5A8684E7C27E426C9206E980 /* RealmReact.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RealmReact.xcodeproj; path = "../node_modules/realm/react-native/ios/RealmReact.xcodeproj"; sourceTree = "<group>"; };
|
||||||
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
|
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
|
||||||
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
|
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
|
||||||
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
|
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
|
||||||
B37C79D9BD0742CE936B6982 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
B37C79D9BD0742CE936B6982 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
||||||
|
BAAE4B947F5D44959F0A9D5A /* libRNZeroconf.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNZeroconf.a; sourceTree = "<group>"; };
|
||||||
DF26CC845883492D8AC8869B /* libRealmReact.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRealmReact.a; sourceTree = "<group>"; };
|
DF26CC845883492D8AC8869B /* libRealmReact.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRealmReact.a; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
@ -326,6 +336,7 @@
|
||||||
EF736EF520A64AE8820E684A /* libRealmReact.a in Frameworks */,
|
EF736EF520A64AE8820E684A /* libRealmReact.a in Frameworks */,
|
||||||
0C6E2DE448364EA896869ADF /* libc++.tbd in Frameworks */,
|
0C6E2DE448364EA896869ADF /* libc++.tbd in Frameworks */,
|
||||||
24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */,
|
24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */,
|
||||||
|
33647F7997A2493E9E1343B3 /* libRNZeroconf.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -473,6 +484,14 @@
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
607C68741F36522C0096975F /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
607C68961F36522C0096975F /* libRNZeroconf.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
607D60ED1F325B7D00F639C4 /* Products */ = {
|
607D60ED1F325B7D00F639C4 /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
@ -505,6 +524,7 @@
|
||||||
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
|
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
|
||||||
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
|
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
|
||||||
5A8684E7C27E426C9206E980 /* RealmReact.xcodeproj */,
|
5A8684E7C27E426C9206E980 /* RealmReact.xcodeproj */,
|
||||||
|
41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */,
|
||||||
);
|
);
|
||||||
name = Libraries;
|
name = Libraries;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -637,14 +657,21 @@
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
00E356ED1AD99517003FC87E = {
|
00E356ED1AD99517003FC87E = {
|
||||||
CreatedOnToolsVersion = 6.2;
|
CreatedOnToolsVersion = 6.2;
|
||||||
|
DevelopmentTeam = S6UPZG7ZR3;
|
||||||
TestTargetID = 13B07F861A680F5B00A75B9A;
|
TestTargetID = 13B07F861A680F5B00A75B9A;
|
||||||
};
|
};
|
||||||
|
13B07F861A680F5B00A75B9A = {
|
||||||
|
DevelopmentTeam = S6UPZG7ZR3;
|
||||||
|
ProvisioningStyle = Automatic;
|
||||||
|
};
|
||||||
2D02E47A1E0B4A5D006451C7 = {
|
2D02E47A1E0B4A5D006451C7 = {
|
||||||
CreatedOnToolsVersion = 8.2.1;
|
CreatedOnToolsVersion = 8.2.1;
|
||||||
|
DevelopmentTeam = S6UPZG7ZR3;
|
||||||
ProvisioningStyle = Automatic;
|
ProvisioningStyle = Automatic;
|
||||||
};
|
};
|
||||||
2D02E48F1E0B4A5D006451C7 = {
|
2D02E48F1E0B4A5D006451C7 = {
|
||||||
CreatedOnToolsVersion = 8.2.1;
|
CreatedOnToolsVersion = 8.2.1;
|
||||||
|
DevelopmentTeam = S6UPZG7ZR3;
|
||||||
ProvisioningStyle = Automatic;
|
ProvisioningStyle = Automatic;
|
||||||
TestTargetID = 2D02E47A1E0B4A5D006451C7;
|
TestTargetID = 2D02E47A1E0B4A5D006451C7;
|
||||||
};
|
};
|
||||||
|
@ -710,6 +737,10 @@
|
||||||
ProductGroup = 607D60ED1F325B7D00F639C4 /* Products */;
|
ProductGroup = 607D60ED1F325B7D00F639C4 /* Products */;
|
||||||
ProjectRef = 5A8684E7C27E426C9206E980 /* RealmReact.xcodeproj */;
|
ProjectRef = 5A8684E7C27E426C9206E980 /* RealmReact.xcodeproj */;
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
ProductGroup = 607C68741F36522C0096975F /* Products */;
|
||||||
|
ProjectRef = 41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */;
|
||||||
|
},
|
||||||
);
|
);
|
||||||
projectRoot = "";
|
projectRoot = "";
|
||||||
targets = (
|
targets = (
|
||||||
|
@ -883,6 +914,13 @@
|
||||||
remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
|
remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
|
||||||
sourceTree = BUILT_PRODUCTS_DIR;
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
};
|
};
|
||||||
|
607C68961F36522C0096975F /* libRNZeroconf.a */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = archive.ar;
|
||||||
|
path = libRNZeroconf.a;
|
||||||
|
remoteRef = 607C68951F36522C0096975F /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
607D610D1F325B7E00F639C4 /* libthird-party.a */ = {
|
607D610D1F325B7E00F639C4 /* libthird-party.a */ = {
|
||||||
isa = PBXReferenceProxy;
|
isa = PBXReferenceProxy;
|
||||||
fileType = archive.ar;
|
fileType = archive.ar;
|
||||||
|
@ -1066,6 +1104,7 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
|
DEVELOPMENT_TEAM = S6UPZG7ZR3;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
"DEBUG=1",
|
"DEBUG=1",
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
|
@ -1073,6 +1112,7 @@
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
|
"$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = RocketChatRNTests/Info.plist;
|
INFOPLIST_FILE = RocketChatRNTests/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
@ -1080,6 +1120,7 @@
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
);
|
);
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
|
@ -1095,9 +1136,11 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEVELOPMENT_TEAM = S6UPZG7ZR3;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
|
"$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = RocketChatRNTests/Info.plist;
|
INFOPLIST_FILE = RocketChatRNTests/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
@ -1105,6 +1148,7 @@
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
);
|
);
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
|
@ -1119,11 +1163,14 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEAD_CODE_STRIPPING = NO;
|
DEAD_CODE_STRIPPING = NO;
|
||||||
|
DEVELOPMENT_TEAM = S6UPZG7ZR3;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
|
"$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = RocketChatRN/Info.plist;
|
INFOPLIST_FILE = RocketChatRN/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
|
@ -1132,7 +1179,10 @@
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
"-lc++",
|
"-lc++",
|
||||||
);
|
);
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.rn;
|
||||||
PRODUCT_NAME = RocketChatRN;
|
PRODUCT_NAME = RocketChatRN;
|
||||||
|
PROVISIONING_PROFILE = "";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
|
@ -1141,10 +1191,13 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEVELOPMENT_TEAM = S6UPZG7ZR3;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
|
"$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = RocketChatRN/Info.plist;
|
INFOPLIST_FILE = RocketChatRN/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
|
@ -1153,7 +1206,9 @@
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
"-lc++",
|
"-lc++",
|
||||||
);
|
);
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.rn;
|
||||||
PRODUCT_NAME = RocketChatRN;
|
PRODUCT_NAME = RocketChatRN;
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
@ -1168,23 +1223,26 @@
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DEVELOPMENT_TEAM = S6UPZG7ZR3;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
|
"$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "RocketChatRN-tvOS/Info.plist";
|
INFOPLIST_FILE = "RocketChatRN-tvOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
);
|
);
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
"-lc++",
|
"-lc++",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RocketChatRN-tvOS";
|
PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.rn-tvOS";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SDKROOT = appletvos;
|
SDKROOT = appletvos;
|
||||||
TARGETED_DEVICE_FAMILY = 3;
|
TARGETED_DEVICE_FAMILY = 3;
|
||||||
|
@ -1203,22 +1261,25 @@
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
DEVELOPMENT_TEAM = S6UPZG7ZR3;
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
|
"$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "RocketChatRN-tvOS/Info.plist";
|
INFOPLIST_FILE = "RocketChatRN-tvOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
);
|
);
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
"-lc++",
|
"-lc++",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RocketChatRN-tvOS";
|
PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.rn-tvOS";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SDKROOT = appletvos;
|
SDKROOT = appletvos;
|
||||||
TARGETED_DEVICE_FAMILY = 3;
|
TARGETED_DEVICE_FAMILY = 3;
|
||||||
|
@ -1235,6 +1296,7 @@
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DEVELOPMENT_TEAM = S6UPZG7ZR3;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
INFOPLIST_FILE = "RocketChatRN-tvOSTests/Info.plist";
|
INFOPLIST_FILE = "RocketChatRN-tvOSTests/Info.plist";
|
||||||
|
@ -1242,6 +1304,7 @@
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RocketChatRN-tvOSTests";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RocketChatRN-tvOSTests";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
@ -1261,12 +1324,14 @@
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
DEVELOPMENT_TEAM = S6UPZG7ZR3;
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
INFOPLIST_FILE = "RocketChatRN-tvOSTests/Info.plist";
|
INFOPLIST_FILE = "RocketChatRN-tvOSTests/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
|
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RocketChatRN-tvOSTests";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RocketChatRN-tvOSTests";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>RocketChatRN</string>
|
<string>Rocket.Chat.RN</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
|
@ -24,6 +24,19 @@
|
||||||
<string>1</string>
|
<string>1</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>NSAppTransportSecurity</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSExceptionDomains</key>
|
||||||
|
<dict>
|
||||||
|
<key>localhost</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSExceptionAllowsInsecureHTTPLoads</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>NSLocationWhenInUseUsageDescription</key>
|
||||||
|
<string></string>
|
||||||
<key>UILaunchStoryboardName</key>
|
<key>UILaunchStoryboardName</key>
|
||||||
<string>LaunchScreen</string>
|
<string>LaunchScreen</string>
|
||||||
<key>UIRequiredDeviceCapabilities</key>
|
<key>UIRequiredDeviceCapabilities</key>
|
||||||
|
@ -38,19 +51,5 @@
|
||||||
</array>
|
</array>
|
||||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>NSLocationWhenInUseUsageDescription</key>
|
|
||||||
<string></string>
|
|
||||||
<key>NSAppTransportSecurity</key>
|
|
||||||
<!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ -->
|
|
||||||
<dict>
|
|
||||||
<key>NSExceptionDomains</key>
|
|
||||||
<dict>
|
|
||||||
<key>localhost</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSExceptionAllowsInsecureHTTPLoads</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
"react": "16.0.0-alpha.12",
|
"react": "16.0.0-alpha.12",
|
||||||
"react-native": "0.46.1",
|
"react-native": "0.46.1",
|
||||||
"react-native-meteor": "^1.1.0",
|
"react-native-meteor": "^1.1.0",
|
||||||
|
"react-native-zeroconf": "^0.7.1",
|
||||||
"react-navigation": "^1.0.0-beta.11",
|
"react-navigation": "^1.0.0-beta.11",
|
||||||
"realm": "^1.10.1"
|
"realm": "^1.10.1"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue