Browse Source

website

B_march
henrydays 3 years ago
parent
commit
7ef0dd1868
  1. BIN
      App/android/app/src/main/assets/fonts/Ionicons.ttf
  2. 2
      App/android/build.gradle
  3. 2
      App/android/gradle.properties
  4. 83
      App/app/App.js
  5. 17
      App/app/Router.js
  6. 2
      App/app/assets/styles.js
  7. 92
      App/app/screens/Calendar.js
  8. 26
      App/app/screens/Home.js
  9. 183
      App/app/screens/calendarDetail.js
  10. 52
      App/app/screens/choosePath.js
  11. 50
      App/app/store/actions/api.js
  12. 24
      App/app/store/reducers/api.js
  13. 22
      App/app/store/store.js
  14. 18
      App/index.js
  15. 0
      App/ios/app-tvOS/Info.plist
  16. 0
      App/ios/app-tvOSTests/Info.plist
  17. 566
      App/ios/app.xcodeproj/project.pbxproj
  18. 36
      App/ios/app.xcodeproj/xcshareddata/xcschemes/app-tvOS.xcscheme
  19. 36
      App/ios/app.xcodeproj/xcshareddata/xcschemes/app.xcscheme
  20. 0
      App/ios/app/AppDelegate.h
  21. 0
      App/ios/app/AppDelegate.m
  22. 13
      App/ios/app/Base.lproj/LaunchScreen.xib
  23. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-1024.png
  24. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-20@2x.png
  25. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-20@3x.png
  26. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-29@2x-1.png
  27. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-29@3x-1.png
  28. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-40@2x.png
  29. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-40@3x.png
  30. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-60@2x.png
  31. BIN
      App/ios/app/Images.xcassets/AppIcon.appiconset/logo-60@3x.png
  32. 0
      App/ios/app/Images.xcassets/Contents.json
  33. 35
      App/ios/app/Info.plist
  34. 0
      App/ios/app/main.m
  35. 0
      App/ios/appTests/Info.plist
  36. 0
      App/ios/appTests/appTests.m
  37. 88
      App/package-lock.json
  38. 5
      App/package.json
  39. 7228
      App/yarn.lock
  40. BIN
      tickets.zip
  41. BIN
      website/.sass-cache/8986710c95fdbb78137adbe00a9597c2eb663328/main.scssc
  42. 756
      website/bootstrap-grid.css
  43. 80
      website/error-page.html
  44. BIN
      website/fonts/icomoon.eot
  45. 17
      website/fonts/icomoon.svg
  46. BIN
      website/fonts/icomoon.ttf
  47. BIN
      website/fonts/icomoon.woff
  48. 348
      website/group-ticket.html
  49. BIN
      website/imgs/app-image.png
  50. BIN
      website/imgs/coimbra-image.jpg
  51. BIN
      website/imgs/cubes-image.png
  52. BIN
      website/imgs/cubes2-image.png
  53. BIN
      website/imgs/iphone-image.png
  54. BIN
      website/imgs/logo-enei.png
  55. BIN
      website/imgs/logo-enei_old.png
  56. BIN
      website/imgs/nav-background.png
  57. BIN
      website/imgs/nav-background_old.png
  58. BIN
      website/imgs/share-image.jpg
  59. 129
      website/js/scripts.js
  60. 790
      website/main.css
  61. 7
      website/main.css.map
  62. 935
      website/main.scss
  63. BIN
      website/novoLogo.png
  64. 277
      website/safari-pinned-tab.svg
  65. 1
      website/selection.json
  66. 148
      website/single-ticket.html
  67. 19
      website/site.webmanifest

BIN
App/android/app/src/main/assets/fonts/Ionicons.ttf

Binary file not shown.

2
App/android/build.gradle

@ -3,7 +3,7 @@
buildscript {
ext {
buildToolsVersion = "27.0.3"
minSdkVersion = 16
minSdkVersion = 21
compileSdkVersion = 27
targetSdkVersion = 26
supportLibVersion = "27.1.1"

2
App/android/gradle.properties

@ -22,4 +22,4 @@ android.enableAapt2=false
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=aspire98H
MYAPP_RELEASE_KEY_PASSWORD=encontroINFORMATICA2019
MYAPP_RELEASE_KEY_PASSWORD=aspire98H

83
App/app/App.js

@ -15,7 +15,8 @@ import {
LinearGradient,
TouchableOpacity,
TextInput,
NetInfo,
Animated
} from 'react-native';
@ -25,7 +26,7 @@ import {connect} from 'react-redux';
import QRCodeScanner from 'react-native-qrcode-scanner';
import {UtilStyles} from './assets/styles'
import * as Actions from './store/actions'; //Import your actions
import * as Actions from './store/actions';
import {RkButton, RkTheme, RkText, RkTextInput} from 'react-native-ui-kitten';
@ -40,7 +41,9 @@ const SCREEN_WIDTH = Dimensions.get("window").width;
import Swiper from 'react-native-swiper';
function handleConnectivityChange() {
console.log("asdasd");
}
class App extends Component {
_activate=()=>{
@ -93,7 +96,15 @@ class App extends Component {
checkValue=(e)=>{
console.log("check"+e)
}
_handleConnectionChange = (isConnected) => {
this.props.connectionState(true);
};
componentDidMount() {
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
this.setState({isModalVisible: false})
//verifica se o utilizador tem token guardado
this.props.checkUser();
@ -102,6 +113,10 @@ class App extends Component {
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
}
_keyboardDidShow () {
//alert('Keyboard Shown');
// this.setState({push:0})
@ -120,7 +135,7 @@ class App extends Component {
this.props.closeLoginQRScan();
this.setState({username:e.data})
console.log("tentativa de login");
console.log("QR code lido");
@ -128,24 +143,25 @@ class App extends Component {
render() {
if (this.props.onHold && !this.props.logged) {
if (!this.props.logged) {
return (
<View style={UtilStyles.containerLoading}>
<Text>CARREGANDO {this.props.onHold}</Text>
<ActivityIndicator size="large" color="#0000ff"/>
<ActivityIndicator size="large" color="red"/>
</View>
)
}
else
{
//console.log('token... '+ this.props.logged)
// console.log('token... '+ this.props.logged)
//se existir token
if (this.props.logged) {
if (this.props.logged ) {
return (
@ -153,41 +169,8 @@ class App extends Component {
)
}
return (
<Swiper style={styles.wrapper}
showsButtons={false}
//paginationStyle={{backgroundColor: 'white'}}
dot={<View style={{backgroundColor:'rgba(0,0,0,.2)', width: 15, height: 15,borderRadius: 8, marginLeft: 6, marginRight: 6, marginTop: 6, marginBottom: 6,}} />}
activeDot={<View style={{backgroundColor: 'red', width: 15, height: 15, borderRadius: 8, marginLeft: 6, marginRight: 6, marginTop: 6, marginBottom: 6,}} />}
>
<View style={styles.slide1}>
<View style={styles.logoContainer}>
<Image style={styles.logo2} source={require('./assets/img/logo2.png')}/>
</View>
<ImageBackground
opacity={0.5}
source={require('./assets/img/bg_coimbra.png')}
style={{
width: '100%',
height: '100%',
// marginTop:150,
backgroundColor: 'rgba(255,255,255,0.4)' ,
}
}
>
<Text></Text>
</ImageBackground>
</View>
<View style={styles.slide2}>
<Modal isVisible={this.props.UI_loginScannerActive}>
@ -239,8 +222,7 @@ class App extends Component {
</View>
</TouchableOpacity>
</View>
</View>
<TextInput style={styles.passwordInput}
onFocus={this._print}
@ -293,11 +275,8 @@ class App extends Component {
</View>
</View>
</View>
<View style={styles.slide3}>
<Text>Manual de utilização</Text>
</View>
</Swiper>
);
}
@ -349,7 +328,7 @@ const styles = {
},
scanQR:{
fontFamily: 'Open Sans',
//flexDirection: 'row',
paddingTop:5,
backgroundColor:10,
@ -383,7 +362,7 @@ const styles = {
input: {
fontFamily: 'Open Sans',
flex: 1,
paddingRight: 10,

17
App/app/Router.js

@ -32,6 +32,7 @@ import IconFA from "react-native-vector-icons/FontAwesome5"
import Profile from "./screens/Profile";
import editCalendar from './screens/editCalendar';
import choosePath from './screens/choosePath';
import calendarDetail from './screens/calendarDetail';
const AppStack = createBottomTabNavigator(
@ -63,7 +64,7 @@ const AppStack = createBottomTabNavigator(
navigationOptions: {
tabBarIcon: ({tintColor}) => (
<Icon name="ios-qr-scanner" color={tintColor} size={45}/>
<Icon name="ios-qr-scanner" color={tintColor} size={30}/>
),
},
},
@ -85,7 +86,7 @@ const AppStack = createBottomTabNavigator(
navigationOptions: {
tabBarIcon: ({tintColor}) => (
<Icon name="md-home" color={tintColor} size={30}/>
<Icon name="ios-person" color={tintColor} size={30}/>
)
},
},
@ -97,8 +98,8 @@ const AppStack = createBottomTabNavigator(
initialRouteName: 'Home',
tabBarOptions: {
showLabel: false, // hide labels
activeTintColor: '#858683', // active icon color
showLabel: true, // hide labels
activeTintColor: '#CC1A17', // active icon color
inactiveTintColor: '#d8d6c9', // inactive icon color
style: {
backgroundColor: '#fff' // TabBar background
@ -117,8 +118,11 @@ const Stack = createStackNavigator({
return {
headerTitle: `${navigation.state.routes[index].routeName}`,
headerRight: (
<TouchableOpacity style={{marginRight: 20}} onPress={() => navigation.navigate('Profile')}>
<TouchableOpacity style={{marginRight: 20, flex:1, flexDirection:'row'}} onPress={() => navigation.navigate('Profile')}>
<Text>editar</Text>
<IconFA name="user-edit" size={22}/>
</TouchableOpacity>
)
}
@ -157,6 +161,9 @@ const Stack = createStackNavigator({
},
choosePath:{
screen: choosePath
},
calendarDetail:{
screen:calendarDetail
}

2
App/app/assets/styles.js

@ -14,7 +14,7 @@ export const UtilStyles = StyleSheet.create({
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
backgroundColor: 'white',
},
titleText: {
fontSize: 20,

92
App/app/screens/Calendar.js

@ -39,7 +39,7 @@ const FourthRoute = () => (
class Calendar extends React.Component {
state = {
index: 0,
routes: [
@ -58,11 +58,16 @@ class Calendar extends React.Component {
console.log(this.props.events);
}
_openDetails=()=>{
console.log("los");
}
renderDetail = ({item, index}) => {
const {navigate} = this.props.navigation;
// <Image source={{ uri:item.imageUrl, width:'100%' , height:100 }} style={{borderRadius:0}}/>
return (
<TouchableOpacity onPress={() => navigate('calendarDetail', { info: item })} >
<View style={styles.event}>
<View style={styles.titleContainer}>
@ -82,6 +87,7 @@ class Calendar extends React.Component {
</View>
</View>
</TouchableOpacity>
);
}
@ -133,7 +139,6 @@ class Calendar extends React.Component {
super()
const archeryImgSource = require('../assets/img/archery.png');
const badmintonImgSource = require('../assets/img/badminton.png');
const lunchImgSource = require('../assets/img/lunch.png');
@ -158,11 +163,8 @@ class Calendar extends React.Component {
const FirstRoute = () => (
<ScrollView contentContainerStyle={styles.contentContainer}>
<Timeline
data={this.props.events}
@ -208,46 +210,46 @@ class Calendar extends React.Component {
</ScrollView>
)
const SecondRoute = () => (
<ScrollView contentContainerStyle={styles.contentContainer}>
<Timeline
data={this.props.events}
timeContainerStyle={{minWidth: 52, marginTop: 0}}
timeContainerStyle={{ marginTop: 0}}
timeStyle={{
textAlign: 'center',
backgroundColor: '#ff9797',
color: 'white',
// backgroundColor: 'red',
height:100,
color:"#CC1A17",
padding: 5,
borderRadius: 13
//marginTop:10,
// fontWeight:'bold',
fontSize:23,
//borderRadius: 13
}}
// descriptionStyle={{color: 'gray'}}
lineWidth={0}
descriptionStyle={{color: 'red'}}
renderDetail={this.renderDetail}
lineColor={'red'}
lineColor='rgba(0,0,0,0)'
lineWidth={1}
separator={false}
flatListProps={{
style: {
// margin: 15
margin: 15
}
}}
keyExtractor={(item, index) => index.toString()}
@ -257,8 +259,22 @@ class Calendar extends React.Component {
</ScrollView>
)
return (
<View style={{flex:1}}>
<View>
<Text style={{
backgroundColor:"#CC1A17",
color:'white',
fontWeight:'bold',
fontSize:15,
textAlign:'center',
}}>
WEB DEVELOPMENT
</Text>
</View>
<TabView
navigationState={this.state}
renderScene={SceneMap({
@ -274,6 +290,7 @@ class Calendar extends React.Component {
style={{backgroundColor:"#F2F2F2"}}
indicatorStyle={{ backgroundColor: 'pink' }}
/>
</View>
);
}
}
@ -282,13 +299,24 @@ const styles = StyleSheet.create({
tabBar: {
flexDirection: 'row',
paddingTop:0,
marginTop:0,
backgroundColor:'white',
borderWidth: 1,
borderRadius: 2,
borderColor: '#ddd',
borderBottomWidth: 0,
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.8,
shadowRadius: 2,
elevation: 2,
backgroundColor:'white'
},
tabItem: {
flex: 1,
alignItems: 'center',
padding: 16,
padding: 10,
},
details: {
backgroundColor: "#FFFFFF",
@ -316,8 +344,14 @@ const styles = StyleSheet.create({
event: {
borderRadius: 5,
backgroundColor: "#FFFFFF",
marginLeft:-25
marginLeft:-25,
shadowColor: "#000",
shadowOffset: { width: 0, height: 2,},
shadowOpacity: 0.25,
shadowRadius: 1,
elevation: 2,
marginRight:2
},

26
App/app/screens/Home.js

@ -10,7 +10,8 @@ import {
Dimensions,
StyleSheet,
Image,
ImageBackground
ImageBackground,
NetInfo
} from 'react-native';
import {Shadow} from 'react-native-shadow'
@ -38,17 +39,6 @@ import {Card, Divider} from 'react-native-elements'
import RNMaterialShadows from 'react-native-material-shadows';
const shadowOpt = {
width:100,
height:100,
color:"#000",
border:2,
radius:3,
opacity:0.2,
x:0,
y:3,
style:{marginVertical:5}
}
class Home extends Component {
@ -73,9 +63,11 @@ class Home extends Component {
user: {Name: ''}
};
}
handleConnectivityChange = () => {
console.log("asdasdasdasdasd");
}
componentDidMount() {
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
this.props.hold();
//this.props.logoutUser();
@ -92,6 +84,9 @@ class Home extends Component {
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
}
bClick() {
@ -142,9 +137,6 @@ _update=()=>{
// marginTop:150,
backgroundColor: 'rgba(255,255,255,1)' ,
shadowOffset:{ width: 10, height: 10, },
shadowColor: 'black',
shadowOpacity: 1.0
}
}>

183
App/app/screens/calendarDetail.js

@ -0,0 +1,183 @@
import * as React from 'react';
import {
View,
StyleSheet,
Dimensions,
Image,
ScrollView,
Text,
Button,
TouchableOpacity
} from 'react-native';
import {TabView, TabBar, SceneMap} from 'react-native-tab-view';
import {
RkButton, RkCard, RkText,
RkTheme
} from 'react-native-ui-kitten';
import Timeline from 'react-native-timeline-feed'
import * as Progress from 'react-native-progress';
import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
import * as Actions from '../store/actions'; //Import your actionss
import Swiper from 'react-native-swiper';
const SCREEN_HEIGHT = Dimensions.get("window").height;
const SCREEN_WIDTH = Dimensions.get("window").width;
import FitImage from 'react-native-fit-image';
const formatObj = (obj) => {
let a = {};
a.push({})
return a
};
class calendarDetail extends React.Component {
state = {
};
componentDidMount() {
this.props.getEvents(this.props.user);
console.log('didMount');
console.log(this.props.events);
}
_update = () => {
this.setState({user: this.props.user});
console.log(this.props.events);
}
constructor(props) {
super(props)
this.data = [
]
}
render() {
const { navigation } = this.props;
const info = navigation.getParam('info', 'error');
console.log(info);
return (
<View>
<Text>{info.name}, {info.description}</Text>
</View>
)
}
}
const styles = StyleSheet.create({
carreerPathContainer:{
backgroundColor:'#CC1A17',
height:50,
flex:1,
alignItems:'center',
justifyContent:'center',
paddingTop:15,
},
carreerPathText:{
height:50,
color:'white',
fontWeight:'bold',
fontSize:20,
},
companyHeader:{
backgroundColor:'#dddddd',
// height:150,
borderRadius:5,
margin:10,
padding:10
},
companyTitle:{
paddingBottom:5,
fontWeight:'bold',
color:'#777777',
fontSize:17,
// padding:20
},
companyLogo: {
borderRadius: 20,
},
wrapper: {
},
company:{
flex:1,
flexDirection:'row',
// backgroundColor:'red',
color:'black'
},
companyLogoContainer:{
flex:1,
justifyContent: 'center',
width:'60%',
// backgroundColor:'white',
margin:20,
},
aboutCompany:{
width:SCREEN_WIDTH,
flex:1,
justifyContent: 'center',
alignItems: 'center',
}
});
function mapStateToProps(state, props) {
return {
token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged,
events: state.apiReducer.events
}
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(Actions, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(calendarDetail);

52
App/app/screens/choosePath.js

@ -31,6 +31,8 @@ const SCREEN_HEIGHT = Dimensions.get("window").height;
const SCREEN_WIDTH = Dimensions.get("window").width;
import FitImage from 'react-native-fit-image';
import { Dropdown } from 'react-native-material-dropdown';
const formatObj = (obj) => {
@ -79,41 +81,25 @@ class choosePath extends React.Component {
}
render() {
let data = [{
value: 'Desenvolvimento Web',
}, {
value: 'Inteligencia artificial',
}, {
value: 'Redes e segurança',
}];
return (
<Swiper style={styles.wrapper} showsButtons={false}>
<View style={styles.company}>
<ScrollView>
<View style={styles.carreerPathContainer}>
<Text style={styles.carreerPathText}>Web development</Text>
</View>
<View style={styles.aboutCompany}>
<View style={styles.companyLogoContainer}>
<FitImage source={{uri:'http://trabalhotemporario.pt/wp-content/uploads/2014/03/blip.jpg'}} style={styles.companyLogo}/>
</View>
</View>
<View style={styles.companyHeader}>
<Text style={styles.companyTitle}>Blip: Game On</Text>
<Text>Based in Porto, Blip is a software engineering company with a difference. Founded in 2009, we already have 300 Blippers. And were still growing.</Text>
<Text>Were in the API Billionaires Club alongside Twitter, Facebook and Google. The code we write is used by over five million people across the world. The websites, mobile apps and retail systems we create keep us three steps ahead of the competition, from Europe to Australia.</Text>
</View>
</ScrollView>
</View>
<View>
<Text>asd</Text>
</View>
</Swiper>
<View style={{width:SCREEN_WIDTH*0.7}}>
<Dropdown
label='Career Path'
data={data}
/>
</View>
)
}
);
}
}

50
App/app/store/actions/api.js

@ -1,9 +1,20 @@
import { AsyncStorage } from 'react-native';
const axios = require('axios');
import { NetInfo } from 'react-native';
import { DATA_AVAILABLE, API_LOGIN, CHECK_USER, LOGOUT_USER, USER_INFO, HOLD, GET_EVENTS } from "./actionTypes" //Import the actions types constant we defined in our actions
import moment from 'moment'
export const connectionState = (status) => {
console.log(status);
return { type: 'CHANGE_CONNECTION_STATUS', isConnected: status };
};
export function getEvents(user){
return (dispatch)=>{
let events = [];
@ -68,6 +79,7 @@ const saveToken = async token => {
obj.expirationDateToken = await AsyncStorage.getItem('expirationDateToken') || 'none';
obj.refreshToken = await AsyncStorage.getItem('refreshToken') || 'none';
} catch (error) {
// Error retrieving data
@ -160,7 +172,7 @@ export function login(user, pass){
}
var obj={
access_token:parsed.access_token,
expirationDateToken:Math.round(new Date().getTime()/1000) + parsed.expires_in,
expirationDateToken:Math.round(new Date().getTime()/1000) + 3598,
refreshToken:parsed.refresh_token,
valid:true
};
@ -240,13 +252,15 @@ export function getUserInfo(token){
.then(function(res) {
console.log(res);
let obj = JSON.parse(res._bodyText);
dispatch({ type: USER_INFO, user: obj,onHold:false, logged:true });
}).catch(function(res){
dispatch({ type: USER_INFO, user: '',onHold:false, logged:true });
console.log("erro")
// dispatch({ type: USER_INFO,onHold:false});
})
@ -288,7 +302,7 @@ export function checkUser(){
a.valid=false;
console.log('check user deu falso')
console.log('token não existe em memória')
dispatch({type: CHECK_USER,token:a,logged:false, onHold:false});
@ -297,25 +311,23 @@ export function checkUser(){
a.valid=true;
console.log('Existe Token em memória' )
console.log('Existe Token em memória :'+ a.refreshToken )
//se expirar
if(Math.round(new Date().getTime()/1000) >= a.expirationDateToken){
refresh=a.refreshToken
// a.valid=false;
//chamar funçao para renovar
console.log("expirou")
var details = {
'grant_type': 'refresh_token',
'refresh_token':refresh
};
var formBody = [];
for (var property in details) {
@ -330,8 +342,6 @@ export function checkUser(){
formBody = formBody.join("&");
fetch('http://enei2019.uingress.com/internal/api/token', {
method: 'POST',
@ -345,16 +355,18 @@ export function checkUser(){
}).then(res=>res.json()).then(parsed=>{
console.log(parsed);
if(parsed.error=='invalid_grant'){
console.log(formBody);
dispatch({type: CHECK_USER, token:'', logged:false, onHold:false});
dispatch({type: CHECK_USER, token:'', logged:false, onHold:false});
}else{
var obj={
access_token:parsed.access_token,
expirationDateToken:Math.round(new Date().getTime()/1000) + parsed.expires_in,
expirationDateToken:Math.round(new Date().getTime()/1000) + 3598,
refreshToken:parsed.refresh_token,
valid:true
@ -363,7 +375,7 @@ export function checkUser(){
// deleteToken();
saveToken(obj).then(a=>{
console.log("saved" )
console.log("Token guardado" )
console.log(obj)
dispatch({type: CHECK_USER, token:obj, logged:true, onHold:false});
@ -372,7 +384,7 @@ export function checkUser(){
}).catch(a=>{
console.log("Putasss")
console.log("erro na api")
dispatch({type: CHECK_USER, token:'', logged:false, onHold:false});
})
@ -384,7 +396,7 @@ export function checkUser(){
//fazer validação da data e renovar o token
dispatch({type: CHECK_USER, token:a, logged:true, onHold:false});
dispatch({type: CHECK_USER, token:a, logged:true, onHold:false, user:{Name:'Henrique'}});
}
}
@ -392,8 +404,8 @@ export function checkUser(){
}).catch(a=>{
console.log('erros');
dispatch({type: CHECK_USER,token:false, logged:false});
console.log('erro a ler o token'+ a);
dispatch({type: CHECK_USER,token:false, logged:false, user:''});
})

24
App/app/store/reducers/api.js

@ -1,11 +1,24 @@
import { DATA_AVAILABLE, API_LOGIN, CHECK_USER, LOGOUT_USER, USER_INFO, HOLD, GET_EVENTS } from "../actions/actionTypes" //Import the actions types constant we defined in our actions
import { REHYDRATE } from 'redux-persist';
let apiState= { token:{valid:false}, tokenData:'error', logged:false, onHold:true, user:{}, events:[], failedAttempt:false}
let apiState= { isConnected:false, token:{valid:false}, tokenData:'error', logged:false, onHold:true,user:{}, events:[], failedAttempt:false}
const apiReducer = (state = apiState, action) => {
switch(action.type){
case REHYDRATE:
console.log( action.payload)
return {
// ...state,
// logged:false,
//onHold:true,
user: action.payload.apiReducer.user
};
case 'CHANGE_CONNECTION_STATUS':
return Object.assign({}, state, {
isConnected: action.isConnected,
});
case HOLD:
@ -14,13 +27,13 @@ const apiReducer = (state = apiState, action) => {
case API_LOGIN:
state=Object.assign({},state, { logged:action.logged, token:action.token, failedAttempt: action.failedAttempt});
state=Object.assign({},state, { logged:action.logged, token:action.token, failedAttempt: action.failedAttempt, user:user});
return state;
case CHECK_USER:
state=Object.assign({},state, { token:action.token, logged:action.logged, onHold:action.onHold});
state=Object.assign({},state, { token:action.token,logged:action.logged, onHold:action.onHold});
return state;
@ -41,7 +54,8 @@ const apiReducer = (state = apiState, action) => {
state=Object.assign({},state, { events: action.events});
return state;
default:
return state;

22
App/app/store/store.js

@ -1,7 +1,25 @@
import { createStore, applyMiddleware } from 'redux';
import { createStore, applyMiddleware , compose} from 'redux';
import thunk from 'redux-thunk';
import reducers from './reducers/index'; //Import the reducer
import {persistStore, persistReducer} from 'redux-persist'
import {AsyncStorage} from 'react-native'
const persistConfig={
key:'root' ,
storage: AsyncStorage,
}
const persistedReduzer= persistReducer(persistConfig, reducers);
// Connect our store to the reducers
export default createStore(reducers, applyMiddleware(thunk));
export const store = createStore(persistedReduzer, applyMiddleware(thunk));
export const persistor=persistStore(store);

18
App/index.js

@ -1,18 +1,30 @@
/** @format */
import React from 'react';
import {AppRegistry} from 'react-native';
import {AppRegistry, View,Text} from 'react-native';
import {Provider} from 'react-redux';
import {name as appName} from './app.json';
import store from './app/store/store'; //Import the store
import {PersistGate} from 'redux-persist/integration/react'
import App from './app/App' //Import the component file
import {store, persistor} from "./app/store/store";
rendeLoading=()=>{
<View>
<Text>loading........</Text>
</View>
}
const RNRedux = () => (
<Provider store={store}>
<App />
<PersistGate persistor={persistor} loading={this.rendeLoading()}>
<App />
</PersistGate>
</Provider>
);

0
App/ios/app-tvOS/Info.plist

0
App/ios/app-tvOSTests/Info.plist

566
App/ios/enei2019.xcodeproj/project.pbxproj → App/ios/app.xcodeproj/project.pbxproj

@ -5,6 +5,7 @@
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
@ -35,28 +36,29 @@
2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
2DCD954D1E0B4F2C00145EB5 /* appTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* appTests.m */; };
2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
43A080C42246430685BC7859 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A55A26724384416FAF74A98D /* Ionicons.ttf */; };
514DB1DF2E3B452F9EF272E3 /* libRNVectorIcons-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 95B0A42B6CD8441E904E6EB9 /* libRNVectorIcons-tvOS.a */; };
69E1B84AE0DF486CB1B1D226 /* libBVLinearGradient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C00CE8A4E3B747F9816B91CF /* libBVLinearGradient.a */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
BE2BDF992200F95B0001B8A8 /* libRNCamera.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE2BDF982200F9490001B8A8 /* libRNCamera.a */; };
BE2BDF9A2200F96A0001B8A8 /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE2BDF922200F93B0001B8A8 /* libRNGestureHandler.a */; };
BE2BDFA12200F9880001B8A8 /* libReactNativePermissions.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE2BDFA02200F9830001B8A8 /* libReactNativePermissions.a */; };
BE2BDFE2220101420001B8A8 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE2BDFDF2201012E0001B8A8 /* libRNVectorIcons.a */; };
BEA7C1C022034BC800B47CD7 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1B122034BC800B47CD7 /* MaterialIcons.ttf */; };
BEA7C1C122034BC800B47CD7 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1B222034BC800B47CD7 /* FontAwesome.ttf */; };
BEA7C1C322034BC800B47CD7 /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1B422034BC800B47CD7 /* FontAwesome5_Brands.ttf */; };
BEA7C1C422034BC800B47CD7 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1B522034BC800B47CD7 /* SimpleLineIcons.ttf */; };
BEA7C1C522034BC800B47CD7 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1B622034BC800B47CD7 /* Entypo.ttf */; };
BEA7C1C622034BC800B47CD7 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1B722034BC800B47CD7 /* MaterialCommunityIcons.ttf */; };
BEA7C1C722034BC800B47CD7 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1B822034BC800B47CD7 /* Zocial.ttf */; };
BEA7C1C822034BC800B47CD7 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1B922034BC800B47CD7 /* Feather.ttf */; };
BEA7C1C922034BC800B47CD7 /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1BA22034BC800B47CD7 /* FontAwesome5_Regular.ttf */; };
BEA7C1CA22034BC800B47CD7 /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1BB22034BC800B47CD7 /* FontAwesome5_Solid.ttf */; };
BEA7C1CB22034BC800B47CD7 /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1BC22034BC800B47CD7 /* AntDesign.ttf */; };
BEA7C1CC22034BC800B47CD7 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1BD22034BC800B47CD7 /* Foundation.ttf */; };
BEA7C1CD22034BC800B47CD7 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1BE22034BC800B47CD7 /* EvilIcons.ttf */; };
BEA7C1CE22034BC800B47CD7 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BEA7C1BF22034BC800B47CD7 /* Octicons.ttf */; };
7BB898A137474B3ABEF9425B /* libBVLinearGradient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A757D24430CF4419B7ABDE21 /* libBVLinearGradient.a */; };
BE104176D74E47E9A369B15A /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EB0A5A258CBE4EEFAD3C358E /* libRNVectorIcons.a */; };
BE302B6D221B7875005626CF /* libRNCamera.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE302B6C221B7860005626CF /* libRNCamera.a */; };
BE302B74221B7ACE005626CF /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE302B73221B7AC8005626CF /* libRNGestureHandler.a */; };
BE5EAB78221B7D5400E92E5B /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB69221B7D5300E92E5B /* MaterialIcons.ttf */; };
BE5EAB79221B7D5400E92E5B /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB6A221B7D5300E92E5B /* Entypo.ttf */; };
BE5EAB7A221B7D5400E92E5B /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB6B221B7D5300E92E5B /* FontAwesome.ttf */; };
BE5EAB7B221B7D5400E92E5B /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB6C221B7D5300E92E5B /* SimpleLineIcons.ttf */; };
BE5EAB7C221B7D5400E92E5B /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB6D221B7D5300E92E5B /* EvilIcons.ttf */; };
BE5EAB7D221B7D5400E92E5B /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB6E221B7D5300E92E5B /* FontAwesome5_Regular.ttf */; };
BE5EAB7E221B7D5400E92E5B /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB6F221B7D5300E92E5B /* Foundation.ttf */; };
BE5EAB7F221B7D5400E92E5B /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB70221B7D5300E92E5B /* Feather.ttf */; };
BE5EAB80221B7D5400E92E5B /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB71221B7D5400E92E5B /* FontAwesome5_Solid.ttf */; };
BE5EAB81221B7D5400E92E5B /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB72221B7D5400E92E5B /* AntDesign.ttf */; };
BE5EAB82221B7D5400E92E5B /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB73221B7D5400E92E5B /* MaterialCommunityIcons.ttf */; };
BE5EAB84221B7D5400E92E5B /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB75221B7D5400E92E5B /* FontAwesome5_Brands.ttf */; };
BE5EAB85221B7D5400E92E5B /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB76221B7D5400E92E5B /* Octicons.ttf */; };
BE5EAB86221B7D5400E92E5B /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB77221B7D5400E92E5B /* Zocial.ttf */; };
BE5EAC3A221B83CF00E92E5B /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE302B75221B7C3B005626CF /* Ionicons.ttf */; };
BE5EAC41221B889900E92E5B /* libReactNativePermissions.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE5EAC40221B888C00E92E5B /* libReactNativePermissions.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -333,41 +335,55 @@
remoteGlobalIDString = 358F4ED71D1E81A9004DF814;
remoteInfo = RCTBlob;
};
BE2BDF912200F93B0001B8A8 /* PBXContainerItemProxy */ = {
BE302B6B221B7860005626CF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BE2BDF682200F93B0001B8A8 /* RNGestureHandler.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RNGestureHandler;
};
BE2BDF972200F9490001B8A8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BE2BDF932200F9490001B8A8 /* RNCamera.xcodeproj */;
containerPortal = BE302B67221B7860005626CF /* RNCamera.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4107012F1ACB723B00C6AA39;
remoteInfo = RNCamera;
};
BE2BDF9F2200F9830001B8A8 /* PBXContainerItemProxy */ = {
BE302B72221B7AC8005626CF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BE2BDF9B2200F9830001B8A8 /* ReactNativePermissions.xcodeproj */;
containerPortal = BE302B6E221B7AC7005626CF /* RNGestureHandler.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 9D23B34F1C767B80008B4819;
remoteInfo = ReactNativePermissions;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RNGestureHandler;
};
BE2BDFDE2201012E0001B8A8 /* PBXContainerItemProxy */ = {
BE5EABF6221B834400E92E5B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BE2BDFD92201012E0001B8A8 /* RNVectorIcons.xcodeproj */;
containerPortal = 664970B9D10A41A18B44727F /* RNVectorIcons.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 5DBEB1501B18CEA900B34395;
remoteInfo = RNVectorIcons;
};
BE2BDFE02201012E0001B8A8 /* PBXContainerItemProxy */ = {
BE5EABF8221B834400E92E5B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BE2BDFD92201012E0001B8A8 /* RNVectorIcons.xcodeproj */;
containerPortal = 664970B9D10A41A18B44727F /* RNVectorIcons.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = A39873CE1EA65EE60051E01A;
remoteInfo = "RNVectorIcons-tvOS";
};
BE5EAC36221B835A00E92E5B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1908F5E093844AC5A143E888 /* BVLinearGradient.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = BVLinearGradient;
};
BE5EAC38221B835A00E92E5B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1908F5E093844AC5A143E888 /* BVLinearGradient.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 64AA15081EF7F30100718508;
remoteInfo = "BVLinearGradient-tvOS";
};
BE5EAC3F221B888C00E92E5B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BE5EAC3B221B888C00E92E5B /* ReactNativePermissions.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 9D23B34F1C767B80008B4819;
remoteInfo = ReactNativePermissions;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
@ -377,12 +393,12 @@
00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = "<group>"; };
00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = "<group>"; };
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = "<group>"; };
00E356EE1AD99517003FC87E /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356EE1AD99517003FC87E /* appTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = appTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
00E356F21AD99517003FC87E /* appTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = appTests.m; sourceTree = "<group>"; };
139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
13B07F961A680F5B00A75B9A /* enei2019.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = enei2019.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07F961A680F5B00A75B9A /* app.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = app.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = app/AppDelegate.h; sourceTree = "<group>"; };
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = app/AppDelegate.m; sourceTree = "<group>"; };
13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
@ -390,35 +406,36 @@
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = app/Info.plist; sourceTree = "<group>"; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = app/main.m; 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 /* enei2019-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "enei2019-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
2D02E4901E0B4A5D006451C7 /* enei2019-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "enei2019-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
1908F5E093844AC5A143E888 /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = BVLinearGradient.xcodeproj; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = "<group>"; };
2D02E47B1E0B4A5D006451C7 /* app-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "app-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
2D02E4901E0B4A5D006451C7 /* app-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "app-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
664970B9D10A41A18B44727F /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.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>"; };
A55A26724384416FAF74A98D /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-ionicons/fonts/Ionicons.ttf"; sourceTree = "<group>"; };
95B0A42B6CD8441E904E6EB9 /* libRNVectorIcons-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNVectorIcons-tvOS.a"; sourceTree = "<group>"; };
ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
BE2BDF682200F93B0001B8A8 /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNGestureHandler.xcodeproj; path = "../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = "<group>"; };
BE2BDF932200F9490001B8A8 /* RNCamera.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNCamera.xcodeproj; path = "../node_modules/react-native-camera/ios/RNCamera.xcodeproj"; sourceTree = "<group>"; };
BE2BDF9B2200F9830001B8A8 /* ReactNativePermissions.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReactNativePermissions.xcodeproj; path = "../node_modules/react-native-permissions/ios/ReactNativePermissions.xcodeproj"; sourceTree = "<group>"; };
BE2BDFD92201012E0001B8A8 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = "<group>"; };
BEA7C1B122034BC800B47CD7 /* MaterialIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; };
BEA7C1B222034BC800B47CD7 /* FontAwesome.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
BEA7C1B322034BC800B47CD7 /* Ionicons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
BEA7C1B422034BC800B47CD7 /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome5_Brands.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = "<group>"; };
BEA7C1B522034BC800B47CD7 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; };
BEA7C1B622034BC800B47CD7 /* Entypo.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
BEA7C1B722034BC800B47CD7 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
BEA7C1B822034BC800B47CD7 /* Zocial.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
BEA7C1B922034BC800B47CD7 /* Feather.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = "<group>"; };
BEA7C1BA22034BC800B47CD7 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = "<group>"; };
BEA7C1BB22034BC800B47CD7 /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome5_Solid.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = "<group>"; };
BEA7C1BC22034BC800B47CD7 /* AntDesign.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = AntDesign.ttf; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = "<group>"; };
BEA7C1BD22034BC800B47CD7 /* Foundation.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
BEA7C1BE22034BC800B47CD7 /* EvilIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
BEA7C1BF22034BC800B47CD7 /* Octicons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
B5DCFEB358F745A89DBBDC7B /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; name = "BVLinearGradient.xcodeproj"; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
A757D24430CF4419B7ABDE21 /* libBVLinearGradient.a */ = {isa = PBXFileReference; name = "libBVLinearGradient.a"; path = "libBVLinearGradient.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
BE302B67221B7860005626CF /* RNCamera.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNCamera.xcodeproj; path = "../node_modules/react-native-camera/ios/RNCamera.xcodeproj"; sourceTree = "<group>"; };
BE302B6E221B7AC7005626CF /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNGestureHandler.xcodeproj; path = "../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = "<group>"; };
BE302B75221B7C3B005626CF /* Ionicons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Ionicons.ttf; path = "../node_modules/react-native-ionicons/fonts/Ionicons.ttf"; sourceTree = "<group>"; };
BE5EAB69221B7D5300E92E5B /* MaterialIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; };
BE5EAB6A221B7D5300E92E5B /* Entypo.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
BE5EAB6B221B7D5300E92E5B /* FontAwesome.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
BE5EAB6C221B7D5300E92E5B /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; };
BE5EAB6D221B7D5300E92E5B /* EvilIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
BE5EAB6E221B7D5300E92E5B /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = "<group>"; };
BE5EAB6F221B7D5300E92E5B /* Foundation.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
BE5EAB70221B7D5300E92E5B /* Feather.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = "<group>"; };
BE5EAB71221B7D5400E92E5B /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome5_Solid.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = "<group>"; };
BE5EAB72221B7D5400E92E5B /* AntDesign.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = AntDesign.ttf; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = "<group>"; };
BE5EAB73221B7D5400E92E5B /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
BE5EAB75221B7D5400E92E5B /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome5_Brands.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = "<group>"; };
BE5EAB76221B7D5400E92E5B /* Octicons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
BE5EAB77221B7D5400E92E5B /* Zocial.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
BE5EAC3B221B888C00E92E5B /* ReactNativePermissions.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReactNativePermissions.xcodeproj; path = "../node_modules/react-native-permissions/ios/ReactNativePermissions.xcodeproj"; sourceTree = "<group>"; };
C00CE8A4E3B747F9816B91CF /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = "<group>"; };
EB0A5A258CBE4EEFAD3C358E /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -434,10 +451,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
BE2BDFE2220101420001B8A8 /* libRNVectorIcons.a in Frameworks */,
BE2BDFA12200F9880001B8A8 /* libReactNativePermissions.a in Frameworks */,
BE2BDF9A2200F96A0001B8A8 /* libRNGestureHandler.a in Frameworks */,
BE2BDF992200F95B0001B8A8 /* libRNCamera.a in Frameworks */,
BE302B74221B7ACE005626CF /* libRNGestureHandler.a in Frameworks */,
BE302B6D221B7875005626CF /* libRNCamera.a in Frameworks */,
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */,
11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */,
146834051AC3E58100842450 /* libReact.a in Frameworks */,
@ -447,10 +462,12 @@
133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */,
00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */,
139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */,
BE5EAC41221B889900E92E5B /* libReactNativePermissions.a in Frameworks */,
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
7BB898A137474B3ABEF9425B /* libBVLinearGradient.a in Frameworks */,
BE104176D74E47E9A369B15A /* libRNVectorIcons.a in Frameworks */,
69E1B84AE0DF486CB1B1D226 /* libBVLinearGradient.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -466,6 +483,7 @@
2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */,
2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */,
2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */,
514DB1DF2E3B452F9EF272E3 /* libRNVectorIcons-tvOS.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -613,29 +631,6 @@
name = Products;
sourceTree = "<group>";
};
624432DF59944E72B6023C91 /* Resources */ = {
isa = PBXGroup;
children = (
BEA7C1BC22034BC800B47CD7 /* AntDesign.ttf */,
BEA7C1B622034BC800B47CD7 /* Entypo.ttf */,
BEA7C1BE22034BC800B47CD7 /* EvilIcons.ttf */,
BEA7C1B922034BC800B47CD7 /* Feather.ttf */,
BEA7C1B222034BC800B47CD7 /* FontAwesome.ttf */,
BEA7C1B422034BC800B47CD7 /* FontAwesome5_Brands.ttf */,
BEA7C1BA22034BC800B47CD7 /* FontAwesome5_Regular.ttf */,
BEA7C1BB22034BC800B47CD7 /* FontAwesome5_Solid.ttf */,
BEA7C1BD22034BC800B47CD7 /* Foundation.ttf */,
BEA7C1B322034BC800B47CD7 /* Ionicons.ttf */,
BEA7C1B722034BC800B47CD7 /* MaterialCommunityIcons.ttf */,
BEA7C1B122034BC800B47CD7 /* MaterialIcons.ttf */,
BEA7C1BF22034BC800B47CD7 /* Octicons.ttf */,
BEA7C1B522034BC800B47CD7 /* SimpleLineIcons.ttf */,
BEA7C1B822034BC800B47CD7 /* Zocial.ttf */,
A55A26724384416FAF74A98D /* Ionicons.ttf */,
);
name = Resources;
sourceTree = "<group>";
};
78C398B11ACF4ADC00677621 /* Products */ = {
isa = PBXGroup;
children = (
@ -648,10 +643,9 @@
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
isa = PBXGroup;
children = (
BE2BDFD92201012E0001B8A8 /* RNVectorIcons.xcodeproj */,
BE2BDF9B2200F9830001B8A8 /* ReactNativePermissions.xcodeproj */,
BE2BDF932200F9490001B8A8 /* RNCamera.xcodeproj */,
BE2BDF682200F93B0001B8A8 /* RNGestureHandler.xcodeproj */,
BE5EAC3B221B888C00E92E5B /* ReactNativePermissions.xcodeproj */,
BE302B6E221B7AC7005626CF /* RNGestureHandler.xcodeproj */,
BE302B67221B7860005626CF /* RNCamera.xcodeproj */,
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */,
146833FF1AC3E56700842450 /* React.xcodeproj */,
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
@ -664,7 +658,8 @@
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
B5DCFEB358F745A89DBBDC7B /* BVLinearGradient.xcodeproj */,
664970B9D10A41A18B44727F /* RNVectorIcons.xcodeproj */,
1908F5E093844AC5A143E888 /* BVLinearGradient.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
@ -681,12 +676,13 @@
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
BE5EAB41221B7D2A00E92E5B /* Resources */,
13B07FAE1A68108700A75B9A /* app */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
00E356EF1AD99517003FC87E /* appTests */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
624432DF59944E72B6023C91 /* Resources */,
BE5EABCA221B834300E92E5B /* Recovered References */,
);
indentWidth = 2;
sourceTree = "<group>";
@ -696,10 +692,10 @@
83CBBA001A601CBA00E9B192 /* Products */ = {
isa = PBXGroup;
children = (
13B07F961A680F5B00A75B9A /* enei2019.app */,
00E356EE1AD99517003FC87E /* Tests.xctest */,
2D02E47B1E0B4A5D006451C7 /* enei2019-tvOS.app */,
2D02E4901E0B4A5D006451C7 /* enei2019-tvOSTests.xctest */,
13B07F961A680F5B00A75B9A /* app.app */,
00E356EE1AD99517003FC87E /* appTests.xctest */,
2D02E47B1E0B4A5D006451C7 /* app-tvOS.app */,
2D02E4901E0B4A5D006451C7 /* app-tvOSTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@ -713,35 +709,76 @@
name = Products;
sourceTree = "<group>";
};
BE2BDF692200F93B0001B8A8 /* Products */ = {
BE302B68221B7860005626CF /* Products */ = {
isa = PBXGroup;
children = (
BE302B6C221B7860005626CF /* libRNCamera.a */,
);
name = Products;
sourceTree = "<group>";
};
BE302B6F221B7AC7005626CF /* Products */ = {
isa = PBXGroup;
children = (
BE2BDF922200F93B0001B8A8 /* libRNGestureHandler.a */,
BE302B73221B7AC8005626CF /* libRNGestureHandler.a */,
);
name = Products;
sourceTree = "<group>";
};
BE2BDF942200F9490001B8A8 /* Products */ = {
BE5EAB41221B7D2A00E92E5B /* Resources */ = {
isa = PBXGroup;
children = (
BE5EAB72221B7D5400E92E5B /* AntDesign.ttf */,
BE5EAB6A221B7D5300E92E5B /* Entypo.ttf */,
BE5EAB6D221B7D5300E92E5B /* EvilIcons.ttf */,
BE5EAB70221B7D5300E92E5B /* Feather.ttf */,
BE5EAB6B221B7D5300E92E5B /* FontAwesome.ttf */,
BE5EAB75221B7D5400E92E5B /* FontAwesome5_Brands.ttf */,
BE5EAB6E221B7D5300E92E5B /* FontAwesome5_Regular.ttf */,
BE5EAB71221B7D5400E92E5B /* FontAwesome5_Solid.ttf */,
BE5EAB6F221B7D5300E92E5B /* Foundation.ttf */,
BE5EAB73221B7D5400E92E5B /* MaterialCommunityIcons.ttf */,
BE5EAB69221B7D5300E92E5B /* MaterialIcons.ttf */,
BE5EAB76221B7D5400E92E5B /* Octicons.ttf */,