mirror of
https://github.com/timepill/timepill-app.git
synced 2025-04-30 01:49:30 +08:00
首次提交,备份,android未测试
1. 登录页重构 2. prepare.js工具自动遍历page目录,生成page/_list.js,用于Navigation注册自动化
This commit is contained in:
parent
89487b4eaa
commit
df5a3cf98c
36 changed files with 14017 additions and 133 deletions
154
App.js
154
App.js
|
@ -1,49 +1,115 @@
|
|||
/**
|
||||
* Sample React Native App
|
||||
* https://github.com/facebook/react-native
|
||||
*
|
||||
* @format
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import React, {Component} from 'react';
|
||||
import {Platform, StyleSheet, Text, View} from 'react-native';
|
||||
import {
|
||||
StyleSheet,
|
||||
Text,
|
||||
View,
|
||||
Image,
|
||||
Platform,
|
||||
ActivityIndicator,
|
||||
TextInput,
|
||||
Modal,
|
||||
TouchableOpacity,
|
||||
Keyboard,
|
||||
Animated,
|
||||
LayoutAnimation,
|
||||
InteractionManager,
|
||||
Alert, StatusBar, DeviceEventEmitter, Linking
|
||||
} from 'react-native';
|
||||
import {Input} from "react-native-elements";
|
||||
import {Navigation} from 'react-native-navigation';
|
||||
|
||||
const instructions = Platform.select({
|
||||
ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
|
||||
android:
|
||||
'Double tap R on your keyboard to reload,\n' +
|
||||
'Shake or press menu button for dev menu',
|
||||
});
|
||||
import Color from './src/style/color'
|
||||
import Api from './src/util/api'
|
||||
|
||||
type Props = {};
|
||||
export default class App extends Component<Props> {
|
||||
render() {
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<Text style={styles.welcome}>Welcome to React Native!</Text>
|
||||
<Text style={styles.instructions}>To get started, edit App.js</Text>
|
||||
<Text style={styles.instructions}>{instructions}</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
import LoginForm from './src/component/loginForm'
|
||||
import RegisterForm from './src/component/registerForm'
|
||||
|
||||
|
||||
export default class App extends Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = ({
|
||||
isLoginPage: true,
|
||||
loading: false
|
||||
});
|
||||
}
|
||||
|
||||
setLoading(loading) {
|
||||
this.setState({loading});
|
||||
}
|
||||
|
||||
_toWeb() {
|
||||
Linking.openURL("https://timepill.net/home/forgot_password");
|
||||
}
|
||||
|
||||
_switchForm() {
|
||||
LayoutAnimation.easeInEaseOut();
|
||||
this.setState({
|
||||
isLoginPage: !this.state.isLoginPage
|
||||
});
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<View style={localStyle.wrap}>
|
||||
<Modal visible={this.state.loading}
|
||||
onRequestClose={() => {}}
|
||||
transparent={true}>
|
||||
<View style={localStyle.modal}>
|
||||
<ActivityIndicator animating={true} color={Color.primary} size={Platform.OS === 'android' ? 'large' : 'small'}/>
|
||||
</View>
|
||||
</Modal>
|
||||
<Animated.View style={localStyle.content}>
|
||||
{this.state.isLoginPage
|
||||
? (<LoginForm setLoading={this.setLoading.bind(this)}></LoginForm>)
|
||||
: (<RegisterForm setLoading={this.setLoading.bind(this)}></RegisterForm>)}
|
||||
|
||||
<View style={localStyle.bottom}>
|
||||
<TouchableOpacity onPress={this._switchForm.bind(this)}>
|
||||
<Text style={localStyle.bottomText}>
|
||||
{this.state.isLoginPage ? '没有账号?注册一个' : '已有账号?马上登录'}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity onPress={this._toWeb.bind(this)}>
|
||||
<Text style={localStyle.bottomText}>
|
||||
忘记密码?
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
</Animated.View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
backgroundColor: '#F5FCFF',
|
||||
},
|
||||
welcome: {
|
||||
fontSize: 20,
|
||||
textAlign: 'center',
|
||||
margin: 10,
|
||||
},
|
||||
instructions: {
|
||||
textAlign: 'center',
|
||||
color: '#333333',
|
||||
marginBottom: 5,
|
||||
},
|
||||
});
|
||||
const localStyle = StyleSheet.create({
|
||||
wrap: {
|
||||
flex: 1,
|
||||
backgroundColor: 'white'
|
||||
},
|
||||
content: {
|
||||
flex: 1,
|
||||
paddingTop: 100,
|
||||
paddingHorizontal: 15
|
||||
},
|
||||
bottom: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
paddingTop: 22,
|
||||
paddingHorizontal: 5
|
||||
},
|
||||
bottomText: {
|
||||
fontSize: 14,
|
||||
color: Color.primary,
|
||||
padding: 10
|
||||
},
|
||||
modal: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
backgroundColor: 'rgba(255, 255, 255, 0.8)'
|
||||
}
|
||||
});
|
|
@ -138,6 +138,9 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':react-native-device-info')
|
||||
implementation project(':react-native-vector-icons')
|
||||
implementation project(':@react-native-community_async-storage')
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
|
|
BIN
android/app/src/main/assets/fonts/AntDesign.ttf
Normal file
BIN
android/app/src/main/assets/fonts/AntDesign.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/Entypo.ttf
Normal file
BIN
android/app/src/main/assets/fonts/Entypo.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/EvilIcons.ttf
Normal file
BIN
android/app/src/main/assets/fonts/EvilIcons.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/Feather.ttf
Executable file
BIN
android/app/src/main/assets/fonts/Feather.ttf
Executable file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/FontAwesome.ttf
Normal file
BIN
android/app/src/main/assets/fonts/FontAwesome.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf
Normal file
BIN
android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf
Normal file
BIN
android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf
Normal file
BIN
android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/Foundation.ttf
Normal file
BIN
android/app/src/main/assets/fonts/Foundation.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/Ionicons.ttf
Normal file
BIN
android/app/src/main/assets/fonts/Ionicons.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf
Normal file
BIN
android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/MaterialIcons.ttf
Normal file
BIN
android/app/src/main/assets/fonts/MaterialIcons.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/Octicons.ttf
Normal file
BIN
android/app/src/main/assets/fonts/Octicons.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/SimpleLineIcons.ttf
Normal file
BIN
android/app/src/main/assets/fonts/SimpleLineIcons.ttf
Normal file
Binary file not shown.
BIN
android/app/src/main/assets/fonts/Zocial.ttf
Normal file
BIN
android/app/src/main/assets/fonts/Zocial.ttf
Normal file
Binary file not shown.
|
@ -3,6 +3,9 @@ package com.timepill;
|
|||
import android.app.Application;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.learnium.RNDeviceInfo.RNDeviceInfo;
|
||||
import com.oblador.vectoricons.VectorIconsPackage;
|
||||
import com.reactnativecommunity.asyncstorage.AsyncStoragePackage;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.shell.MainReactPackage;
|
||||
|
@ -22,7 +25,10 @@ public class MainApplication extends Application implements ReactApplication {
|
|||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
return Arrays.<ReactPackage>asList(
|
||||
new MainReactPackage()
|
||||
new MainReactPackage(),
|
||||
new RNDeviceInfo(),
|
||||
new VectorIconsPackage(),
|
||||
new AsyncStoragePackage()
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
rootProject.name = 'Timepill'
|
||||
include ':react-native-device-info'
|
||||
project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')
|
||||
include ':react-native-vector-icons'
|
||||
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
|
||||
include ':@react-native-community_async-storage'
|
||||
project(':@react-native-community_async-storage').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/async-storage/android')
|
||||
|
||||
include ':app'
|
||||
|
|
41
index.js
41
index.js
|
@ -1,9 +1,40 @@
|
|||
/**
|
||||
* @format
|
||||
* @entry
|
||||
*/
|
||||
|
||||
import {AppRegistry} from 'react-native';
|
||||
import App from './App';
|
||||
import {name as appName} from './app.json';
|
||||
import { Navigation } from 'react-native-navigation';
|
||||
|
||||
import App from './App';
|
||||
import PageList from './src/page/_list'
|
||||
import Token from './src/util/token'
|
||||
|
||||
|
||||
async function init() {
|
||||
let token = await Token.getUserToken();
|
||||
if (!token) {
|
||||
Navigation.startSingleScreenApp({
|
||||
screen: {
|
||||
screen: 'App',
|
||||
title: 'App Title'
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
Navigation.startSingleScreenApp({
|
||||
screen: {
|
||||
screen: 'Home',
|
||||
title: 'Home Title'
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Navigation.registerComponent('App', () => App);
|
||||
// regist screens automatically
|
||||
for (let pageName in PageList) {
|
||||
Navigation.registerComponent(pageName, () => PageList[pageName]);
|
||||
}
|
||||
|
||||
init();
|
||||
|
||||
AppRegistry.registerComponent(appName, () => App);
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
|
||||
146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
|
||||
1BB1EE3F5E2B43A3A160B05B /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 286848A695D94FA0AC6F8B7E /* Foundation.ttf */; };
|
||||
26B1B7CC05554DA5BEF76622 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4DC49BDD3EFD4FA997BEEF58 /* Zocial.ttf */; };
|
||||
2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
|
||||
2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||
2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
|
@ -36,10 +38,29 @@
|
|||
2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
|
||||
2DCD954D1E0B4F2C00145EB5 /* TimepillTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* TimepillTests.m */; };
|
||||
2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
|
||||
4117125F2280921A00018FD3 /* libReactNativeNavigation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4117125E2280920E00018FD3 /* libReactNativeNavigation.a */; };
|
||||
444B74B0B45F447FA6D25561 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A333F2A12D224289B26028D1 /* libRNVectorIcons.a */; };
|
||||
47AE5EA4A39F43CFA279144B /* libRNDeviceInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B6943EF54DC4C0E8C860C48 /* libRNDeviceInfo.a */; };
|
||||
65C05FE762B34063B6F7C56A /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9B75EADE871640EF8F7DB2E4 /* AntDesign.ttf */; };
|
||||
6CA03C7B6F034CF5B2ECC3E5 /* libRNVectorIcons-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FC4807EA1FA42A4A55BDAE5 /* libRNVectorIcons-tvOS.a */; };
|
||||
6CAEBF678D2F4D3A8D88B88A /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CC35BDC2C50846E0A4F98D35 /* EvilIcons.ttf */; };
|
||||
71E72460768C4C9EB73C5050 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0D4DF9EF3F764CD0BF997FD6 /* MaterialCommunityIcons.ttf */; };
|
||||
7CDD27C257FA4106B76D549E /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C558ABC6E5C94D939958E5F9 /* FontAwesome.ttf */; };
|
||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
|
||||
93CB73C935C04E44A8FA6B25 /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B067C379E8A3470390E07C13 /* FontAwesome5_Brands.ttf */; };
|
||||
9D7603B23A7F4822A211DDAE /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6D8788EB66CB42AAAE311EF6 /* Feather.ttf */; };
|
||||
9DF5D161F69E45E7B193AF29 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 126191B2E4AC47DC918127F9 /* Ionicons.ttf */; };
|
||||
9ED46B2FDF3A4DB9A9DE64DD /* libRNCAsyncStorage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 02F6E40D13C4416C92D5A67C /* libRNCAsyncStorage.a */; };
|
||||
A61FA51EAE72415DB62CBA81 /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = ADD4078A795846A0BD1A4B1B /* FontAwesome5_Regular.ttf */; };
|
||||
AAC17BBBD9A24A4391B1FBA1 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E259D54DE3C4445E8CCCEE25 /* SimpleLineIcons.ttf */; };
|
||||
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
|
||||
B45882E734E94D3393231370 /* libRNDeviceInfo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 784C7C58E2B04EECBD71EF5E /* libRNDeviceInfo-tvOS.a */; };
|
||||
C4A31F747A7249C4AB01212C /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = ADDB7A9FC7044DF48E9BA080 /* Octicons.ttf */; };
|
||||
D9511472069D4A7684F78795 /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 958BF3F4E40A4001BAF2E744 /* FontAwesome5_Solid.ttf */; };
|
||||
E039523D29354ECE80E38A03 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 39A6CC5AA01844FCA6BAD7CE /* MaterialIcons.ttf */; };
|
||||
ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; };
|
||||
ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; };
|
||||
F343A722A8DB46C79081F2A0 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 81F0243DD71F467A964CAD89 /* Entypo.ttf */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
|
@ -176,20 +197,6 @@
|
|||
remoteGlobalIDString = 3D383D621EBD27B9005632C8;
|
||||
remoteInfo = "double-conversion-tvOS";
|
||||
};
|
||||
2DF0FFEA2056DD460020B375 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 9936F3131F5F2E4B0010BF04;
|
||||
remoteInfo = privatedata;
|
||||
};
|
||||
2DF0FFEC2056DD460020B375 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04;
|
||||
remoteInfo = "privatedata-tvOS";
|
||||
};
|
||||
3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
|
||||
|
@ -267,19 +274,75 @@
|
|||
remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4;
|
||||
remoteInfo = "cxxreact-tvOS";
|
||||
};
|
||||
3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
4117125D2280920E00018FD3 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
containerPortal = 411712342280920E00018FD3 /* ReactNativeNavigation.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4;
|
||||
remoteInfo = jschelpers;
|
||||
remoteGlobalIDString = D8AFADBD1BEE6F3F00A4592D;
|
||||
remoteInfo = ReactNativeNavigation;
|
||||
};
|
||||
3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
41EC7C5622809E1800779391 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4;
|
||||
remoteInfo = "jschelpers-tvOS";
|
||||
remoteGlobalIDString = EDEBC6D6214B3E7000DD5AC8;
|
||||
remoteInfo = jsi;
|
||||
};
|
||||
41EC7C5822809E1800779391 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = EDEBC73B214B45A300DD5AC8;
|
||||
remoteInfo = jsiexecutor;
|
||||
};
|
||||
41EC7C5A22809E1800779391 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = ED296FB6214C9A0900B7C4FE;
|
||||
remoteInfo = "jsi-tvOS";
|
||||
};
|
||||
41EC7C5C22809E1800779391 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = ED296FEE214C9CF800B7C4FE;
|
||||
remoteInfo = "jsiexecutor-tvOS";
|
||||
};
|
||||
41EC7C6222809E1800779391 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = FE0D7FAFEDE44E168687B4B2 /* RNCAsyncStorage.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||
remoteInfo = RNCAsyncStorage;
|
||||
};
|
||||
41EC7D5122815DCA00779391 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 000EDE6A5D7D497FB251CC09 /* RNVectorIcons.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 5DBEB1501B18CEA900B34395;
|
||||
remoteInfo = RNVectorIcons;
|
||||
};
|
||||
41FCEABD22818DAE009A3DD7 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 000EDE6A5D7D497FB251CC09 /* RNVectorIcons.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = A39873CE1EA65EE60051E01A;
|
||||
remoteInfo = "RNVectorIcons-tvOS";
|
||||
};
|
||||
41FCEAC322818DAE009A3DD7 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D16AA0DE1A4348A8B86F08A1 /* RNDeviceInfo.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = DA5891D81BA9A9FC002B4DB2;
|
||||
remoteInfo = RNDeviceInfo;
|
||||
};
|
||||
41FCEAC522818DAE009A3DD7 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D16AA0DE1A4348A8B86F08A1 /* RNDeviceInfo.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = E72EC1401F7ABB5A0001BC90;
|
||||
remoteInfo = "RNDeviceInfo-tvOS";
|
||||
};
|
||||
5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
|
@ -319,6 +382,7 @@
|
|||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
000EDE6A5D7D497FB251CC09 /* 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>"; };
|
||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
|
||||
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = "<group>"; };
|
||||
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = "<group>"; };
|
||||
|
@ -328,6 +392,9 @@
|
|||
00E356EE1AD99517003FC87E /* TimepillTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TimepillTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
00E356F21AD99517003FC87E /* TimepillTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TimepillTests.m; sourceTree = "<group>"; };
|
||||
02F6E40D13C4416C92D5A67C /* libRNCAsyncStorage.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNCAsyncStorage.a; sourceTree = "<group>"; };
|
||||
0D4DF9EF3F764CD0BF997FD6 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
|
||||
126191B2E4AC47DC918127F9 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; 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 /* Timepill.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Timepill.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
|
@ -338,15 +405,35 @@
|
|||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Timepill/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Timepill/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>"; };
|
||||
286848A695D94FA0AC6F8B7E /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
|
||||
2D02E47B1E0B4A5D006451C7 /* Timepill-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Timepill-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D02E4901E0B4A5D006451C7 /* Timepill-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Timepill-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
39A6CC5AA01844FCA6BAD7CE /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; };
|
||||
411712342280920E00018FD3 /* ReactNativeNavigation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReactNativeNavigation.xcodeproj; path = "../node_modules/react-native-navigation/ios/ReactNativeNavigation.xcodeproj"; sourceTree = "<group>"; };
|
||||
4B6943EF54DC4C0E8C860C48 /* libRNDeviceInfo.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNDeviceInfo.a; sourceTree = "<group>"; };
|
||||
4DC49BDD3EFD4FA997BEEF58 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; 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>"; };
|
||||
6D8788EB66CB42AAAE311EF6 /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = "<group>"; };
|
||||
784C7C58E2B04EECBD71EF5E /* libRNDeviceInfo-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNDeviceInfo-tvOS.a"; 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>"; };
|
||||
7FC4807EA1FA42A4A55BDAE5 /* libRNVectorIcons-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNVectorIcons-tvOS.a"; sourceTree = "<group>"; };
|
||||
81F0243DD71F467A964CAD89 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; 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>"; };
|
||||
958BF3F4E40A4001BAF2E744 /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Solid.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = "<group>"; };
|
||||
9B75EADE871640EF8F7DB2E4 /* AntDesign.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = AntDesign.ttf; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = "<group>"; };
|
||||
A333F2A12D224289B26028D1 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.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>"; };
|
||||
ADD4078A795846A0BD1A4B1B /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = "<group>"; };
|
||||
ADDB7A9FC7044DF48E9BA080 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
|
||||
B067C379E8A3470390E07C13 /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Brands.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = "<group>"; };
|
||||
C558ABC6E5C94D939958E5F9 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
|
||||
CC35BDC2C50846E0A4F98D35 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
|
||||
D16AA0DE1A4348A8B86F08A1 /* RNDeviceInfo.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNDeviceInfo.xcodeproj; path = "../node_modules/react-native-device-info/ios/RNDeviceInfo.xcodeproj"; sourceTree = "<group>"; };
|
||||
E259D54DE3C4445E8CCCEE25 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; };
|
||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
|
||||
FE0D7FAFEDE44E168687B4B2 /* RNCAsyncStorage.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNCAsyncStorage.xcodeproj; path = "../node_modules/@react-native-community/async-storage/ios/RNCAsyncStorage.xcodeproj"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -362,6 +449,7 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4117125F2280921A00018FD3 /* libReactNativeNavigation.a in Frameworks */,
|
||||
ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */,
|
||||
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */,
|
||||
11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */,
|
||||
|
@ -375,6 +463,9 @@
|
|||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
|
||||
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
|
||||
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
|
||||
9ED46B2FDF3A4DB9A9DE64DD /* libRNCAsyncStorage.a in Frameworks */,
|
||||
444B74B0B45F447FA6D25561 /* libRNVectorIcons.a in Frameworks */,
|
||||
47AE5EA4A39F43CFA279144B /* libRNDeviceInfo.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -391,6 +482,8 @@
|
|||
2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */,
|
||||
2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */,
|
||||
2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */,
|
||||
6CA03C7B6F034CF5B2ECC3E5 /* libRNVectorIcons-tvOS.a in Frameworks */,
|
||||
B45882E734E94D3393231370 /* libRNDeviceInfo-tvOS.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -507,16 +600,16 @@
|
|||
3DAD3EA71DF850E9000B6D8A /* libyoga.a */,
|
||||
3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */,
|
||||
3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */,
|
||||
3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */,
|
||||
3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */,
|
||||
2DF0FFDF2056DD460020B375 /* libjsinspector.a */,
|
||||
2DF0FFE12056DD460020B375 /* libjsinspector-tvOS.a */,
|
||||
2DF0FFE32056DD460020B375 /* libthird-party.a */,
|
||||
2DF0FFE52056DD460020B375 /* libthird-party.a */,
|
||||
2DF0FFE72056DD460020B375 /* libdouble-conversion.a */,
|
||||
2DF0FFE92056DD460020B375 /* libdouble-conversion.a */,
|
||||
2DF0FFEB2056DD460020B375 /* libprivatedata.a */,
|
||||
2DF0FFED2056DD460020B375 /* libprivatedata-tvOS.a */,
|
||||
41EC7C5722809E1800779391 /* libjsi.a */,
|
||||
41EC7C5922809E1800779391 /* libjsiexecutor.a */,
|
||||
41EC7C5B22809E1800779391 /* libjsi-tvOS.a */,
|
||||
41EC7C5D22809E1800779391 /* libjsiexecutor-tvOS.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
|
@ -531,6 +624,52 @@
|
|||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
411712352280920E00018FD3 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4117125E2280920E00018FD3 /* libReactNativeNavigation.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
41EC7C2E22809E1600779391 /* Recovered References */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
02F6E40D13C4416C92D5A67C /* libRNCAsyncStorage.a */,
|
||||
A333F2A12D224289B26028D1 /* libRNVectorIcons.a */,
|
||||
7FC4807EA1FA42A4A55BDAE5 /* libRNVectorIcons-tvOS.a */,
|
||||
4B6943EF54DC4C0E8C860C48 /* libRNDeviceInfo.a */,
|
||||
784C7C58E2B04EECBD71EF5E /* libRNDeviceInfo-tvOS.a */,
|
||||
);
|
||||
name = "Recovered References";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
41EC7C5F22809E1800779391 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
41EC7C6322809E1800779391 /* libRNCAsyncStorage.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
41EC7D4D22815DCA00779391 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
41EC7D5222815DCA00779391 /* libRNVectorIcons.a */,
|
||||
41FCEABE22818DAE009A3DD7 /* libRNVectorIcons-tvOS.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
41FCEABF22818DAE009A3DD7 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
41FCEAC422818DAE009A3DD7 /* libRNDeviceInfo.a */,
|
||||
41FCEAC622818DAE009A3DD7 /* libRNDeviceInfo-tvOS.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5E91572E1DD0AC6500FF2AA8 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -552,6 +691,7 @@
|
|||
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
411712342280920E00018FD3 /* ReactNativeNavigation.xcodeproj */,
|
||||
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */,
|
||||
146833FF1AC3E56700842450 /* React.xcodeproj */,
|
||||
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
|
||||
|
@ -564,6 +704,9 @@
|
|||
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
|
||||
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
|
||||
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
|
||||
FE0D7FAFEDE44E168687B4B2 /* RNCAsyncStorage.xcodeproj */,
|
||||
000EDE6A5D7D497FB251CC09 /* RNVectorIcons.xcodeproj */,
|
||||
D16AA0DE1A4348A8B86F08A1 /* RNDeviceInfo.xcodeproj */,
|
||||
);
|
||||
name = Libraries;
|
||||
sourceTree = "<group>";
|
||||
|
@ -585,6 +728,8 @@
|
|||
00E356EF1AD99517003FC87E /* TimepillTests */,
|
||||
83CBBA001A601CBA00E9B192 /* Products */,
|
||||
2D16E6871FA4F8E400B85C8A /* Frameworks */,
|
||||
41EC7C2E22809E1600779391 /* Recovered References */,
|
||||
E53A65304C4E46A4856A4D78 /* Resources */,
|
||||
);
|
||||
indentWidth = 2;
|
||||
sourceTree = "<group>";
|
||||
|
@ -611,6 +756,28 @@
|
|||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E53A65304C4E46A4856A4D78 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9B75EADE871640EF8F7DB2E4 /* AntDesign.ttf */,
|
||||
81F0243DD71F467A964CAD89 /* Entypo.ttf */,
|
||||
CC35BDC2C50846E0A4F98D35 /* EvilIcons.ttf */,
|
||||
6D8788EB66CB42AAAE311EF6 /* Feather.ttf */,
|
||||
C558ABC6E5C94D939958E5F9 /* FontAwesome.ttf */,
|
||||
B067C379E8A3470390E07C13 /* FontAwesome5_Brands.ttf */,
|
||||
ADD4078A795846A0BD1A4B1B /* FontAwesome5_Regular.ttf */,
|
||||
958BF3F4E40A4001BAF2E744 /* FontAwesome5_Solid.ttf */,
|
||||
286848A695D94FA0AC6F8B7E /* Foundation.ttf */,
|
||||
126191B2E4AC47DC918127F9 /* Ionicons.ttf */,
|
||||
0D4DF9EF3F764CD0BF997FD6 /* MaterialCommunityIcons.ttf */,
|
||||
39A6CC5AA01844FCA6BAD7CE /* MaterialIcons.ttf */,
|
||||
ADDB7A9FC7044DF48E9BA080 /* Octicons.ttf */,
|
||||
E259D54DE3C4445E8CCCEE25 /* SimpleLineIcons.ttf */,
|
||||
4DC49BDD3EFD4FA997BEEF58 /* Zocial.ttf */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
|
@ -692,7 +859,7 @@
|
|||
83CBB9F71A601CBA00E9B192 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0940;
|
||||
LastUpgradeCheck = 940;
|
||||
ORGANIZATIONNAME = Facebook;
|
||||
TargetAttributes = {
|
||||
00E356ED1AD99517003FC87E = {
|
||||
|
@ -715,6 +882,7 @@
|
|||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
|
@ -770,6 +938,22 @@
|
|||
ProductGroup = 146834001AC3E56700842450 /* Products */;
|
||||
ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 411712352280920E00018FD3 /* Products */;
|
||||
ProjectRef = 411712342280920E00018FD3 /* ReactNativeNavigation.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 41EC7C5F22809E1800779391 /* Products */;
|
||||
ProjectRef = FE0D7FAFEDE44E168687B4B2 /* RNCAsyncStorage.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 41FCEABF22818DAE009A3DD7 /* Products */;
|
||||
ProjectRef = D16AA0DE1A4348A8B86F08A1 /* RNDeviceInfo.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 41EC7D4D22815DCA00779391 /* Products */;
|
||||
ProjectRef = 000EDE6A5D7D497FB251CC09 /* RNVectorIcons.xcodeproj */;
|
||||
},
|
||||
);
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
|
@ -901,20 +1085,6 @@
|
|||
remoteRef = 2DF0FFE82056DD460020B375 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
2DF0FFEB2056DD460020B375 /* libprivatedata.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libprivatedata.a;
|
||||
remoteRef = 2DF0FFEA2056DD460020B375 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
2DF0FFED2056DD460020B375 /* libprivatedata-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libprivatedata-tvOS.a";
|
||||
remoteRef = 2DF0FFEC2056DD460020B375 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
|
@ -992,18 +1162,74 @@
|
|||
remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = {
|
||||
4117125E2280920E00018FD3 /* libReactNativeNavigation.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libjschelpers.a;
|
||||
remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
path = libReactNativeNavigation.a;
|
||||
remoteRef = 4117125D2280920E00018FD3 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = {
|
||||
41EC7C5722809E1800779391 /* libjsi.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libjschelpers.a;
|
||||
remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
path = libjsi.a;
|
||||
remoteRef = 41EC7C5622809E1800779391 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
41EC7C5922809E1800779391 /* libjsiexecutor.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libjsiexecutor.a;
|
||||
remoteRef = 41EC7C5822809E1800779391 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
41EC7C5B22809E1800779391 /* libjsi-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libjsi-tvOS.a";
|
||||
remoteRef = 41EC7C5A22809E1800779391 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
41EC7C5D22809E1800779391 /* libjsiexecutor-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libjsiexecutor-tvOS.a";
|
||||
remoteRef = 41EC7C5C22809E1800779391 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
41EC7C6322809E1800779391 /* libRNCAsyncStorage.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRNCAsyncStorage.a;
|
||||
remoteRef = 41EC7C6222809E1800779391 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
41EC7D5222815DCA00779391 /* libRNVectorIcons.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRNVectorIcons.a;
|
||||
remoteRef = 41EC7D5122815DCA00779391 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
41FCEABE22818DAE009A3DD7 /* libRNVectorIcons-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libRNVectorIcons-tvOS.a";
|
||||
remoteRef = 41FCEABD22818DAE009A3DD7 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
41FCEAC422818DAE009A3DD7 /* libRNDeviceInfo.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRNDeviceInfo.a;
|
||||
remoteRef = 41FCEAC322818DAE009A3DD7 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
41FCEAC622818DAE009A3DD7 /* libRNDeviceInfo-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libRNDeviceInfo-tvOS.a";
|
||||
remoteRef = 41FCEAC522818DAE009A3DD7 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
|
||||
|
@ -1057,6 +1283,21 @@
|
|||
files = (
|
||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
|
||||
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
|
||||
65C05FE762B34063B6F7C56A /* AntDesign.ttf in Resources */,
|
||||
F343A722A8DB46C79081F2A0 /* Entypo.ttf in Resources */,
|
||||
6CAEBF678D2F4D3A8D88B88A /* EvilIcons.ttf in Resources */,
|
||||
9D7603B23A7F4822A211DDAE /* Feather.ttf in Resources */,
|
||||
7CDD27C257FA4106B76D549E /* FontAwesome.ttf in Resources */,
|
||||
93CB73C935C04E44A8FA6B25 /* FontAwesome5_Brands.ttf in Resources */,
|
||||
A61FA51EAE72415DB62CBA81 /* FontAwesome5_Regular.ttf in Resources */,
|
||||
D9511472069D4A7684F78795 /* FontAwesome5_Solid.ttf in Resources */,
|
||||
1BB1EE3F5E2B43A3A160B05B /* Foundation.ttf in Resources */,
|
||||
9DF5D161F69E45E7B193AF29 /* Ionicons.ttf in Resources */,
|
||||
71E72460768C4C9EB73C5050 /* MaterialCommunityIcons.ttf in Resources */,
|
||||
E039523D29354ECE80E38A03 /* MaterialIcons.ttf in Resources */,
|
||||
C4A31F747A7249C4AB01212C /* Octicons.ttf in Resources */,
|
||||
AAC17BBBD9A24A4391B1FBA1 /* SimpleLineIcons.ttf in Resources */,
|
||||
26B1B7CC05554DA5BEF76622 /* Zocial.ttf in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -1179,9 +1420,23 @@
|
|||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
|
||||
);
|
||||
INFOPLIST_FILE = TimepillTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -1197,9 +1452,23 @@
|
|||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
|
||||
);
|
||||
INFOPLIST_FILE = TimepillTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -1216,6 +1485,12 @@
|
|||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../node_modules/react-native-navigation/ios",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
|
||||
);
|
||||
INFOPLIST_FILE = Timepill/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_LDFLAGS = (
|
||||
|
@ -1234,6 +1509,12 @@
|
|||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../node_modules/react-native-navigation/ios",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
|
||||
);
|
||||
INFOPLIST_FILE = Timepill/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_LDFLAGS = (
|
||||
|
@ -1259,8 +1540,22 @@
|
|||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
|
||||
);
|
||||
INFOPLIST_FILE = "Timepill-tvOS/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -1285,8 +1580,22 @@
|
|||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
|
||||
);
|
||||
INFOPLIST_FILE = "Timepill-tvOS/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -1310,8 +1619,22 @@
|
|||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
|
||||
);
|
||||
INFOPLIST_FILE = "Timepill-tvOSTests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -1335,8 +1658,22 @@
|
|||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
|
||||
);
|
||||
INFOPLIST_FILE = "Timepill-tvOSTests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
|
|
@ -99,6 +99,13 @@
|
|||
ReferencedContainer = "container:Timepill.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<EnvironmentVariables>
|
||||
<EnvironmentVariable
|
||||
key = "OS_ACTIVITY_MODE"
|
||||
value = "disable"
|
||||
isEnabled = "YES">
|
||||
</EnvironmentVariable>
|
||||
</EnvironmentVariables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
|
|
|
@ -5,10 +5,9 @@
|
|||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <React/RCTBridgeDelegate.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate>
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property (nonatomic, strong) UIWindow *window;
|
||||
|
||||
|
|
|
@ -7,36 +7,35 @@
|
|||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
#import <React/RCTBridge.h>
|
||||
#import <React/RCTBundleURLProvider.h>
|
||||
// **********************************************
|
||||
// *** DON'T MISS: THE NEXT LINE IS IMPORTANT ***
|
||||
// **********************************************
|
||||
#import "RCCManager.h"
|
||||
|
||||
// IMPORTANT: if you're getting an Xcode error that RCCManager.h isn't found, you've probably ran "npm install"
|
||||
// with npm ver 2. You'll need to "npm install" with npm 3 (see https://github.com/wix/react-native-navigation/issues/1)
|
||||
|
||||
#import <React/RCTRootView.h>
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
|
||||
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
|
||||
moduleName:@"Timepill"
|
||||
initialProperties:nil];
|
||||
|
||||
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
|
||||
|
||||
NSURL *jsCodeLocation;
|
||||
|
||||
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
|
||||
|
||||
// **********************************************
|
||||
// *** DON'T MISS: THIS IS HOW WE BOOTSTRAP *****
|
||||
// **********************************************
|
||||
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
||||
UIViewController *rootViewController = [UIViewController new];
|
||||
rootViewController.view = rootView;
|
||||
self.window.rootViewController = rootViewController;
|
||||
[self.window makeKeyAndVisible];
|
||||
self.window.backgroundColor = [UIColor whiteColor];
|
||||
[[RCCManager sharedInstance] initBridgeWithBundleURL:jsCodeLocation launchOptions:launchOptions];
|
||||
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
|
||||
{
|
||||
#if DEBUG
|
||||
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
|
||||
#else
|
||||
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
|
||||
#endif
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string></string>
|
||||
<string/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
|
@ -40,13 +40,10 @@
|
|||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<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>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
<key>NSExceptionDomains</key>
|
||||
<dict>
|
||||
<key>localhost</key>
|
||||
|
@ -56,5 +53,7 @@
|
|||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>UIAppFonts</key>
|
||||
<array/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
12817
package-lock.json
generated
Normal file
12817
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -7,8 +7,14 @@
|
|||
"test": "jest"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-native-community/async-storage": "^1.3.4",
|
||||
"base-64": "^0.1.0",
|
||||
"react": "16.8.3",
|
||||
"react-native": "0.59.4"
|
||||
"react-native": "0.59.5",
|
||||
"react-native-device-info": "^1.6.1",
|
||||
"react-native-elements": "^1.1.0",
|
||||
"react-native-navigation": "^1.1.376",
|
||||
"react-native-vector-icons": "^6.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.4.3",
|
||||
|
|
16
prepare.js
Normal file
16
prepare.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
const fs = require("fs");
|
||||
const path = require('path')
|
||||
|
||||
|
||||
const pagePath = './src/page';
|
||||
const pageFiles = fs.readdirSync(pagePath)
|
||||
.filter(x => x.endsWith('Page.js'));
|
||||
|
||||
const content = pageFiles.map(x => {
|
||||
let key = x.substring(0, x.indexOf('Page.js'));
|
||||
let value = 'require("./' + x + '").default'
|
||||
|
||||
return key + ': ' + value;
|
||||
}).join(',\n');
|
||||
|
||||
fs.writeFileSync("./src/page/_list.js", 'export default {\n' + content + '\n}');
|
134
src/component/loginForm.js
Normal file
134
src/component/loginForm.js
Normal file
|
@ -0,0 +1,134 @@
|
|||
import React, {Component} from 'react';
|
||||
import {Platform, StyleSheet, Text, View, InteractionManager, Alert} from 'react-native';
|
||||
import {Input, Button} from "react-native-elements";
|
||||
import {Navigation} from 'react-native-navigation';
|
||||
|
||||
import Color from '../style/color'
|
||||
import Api from '../util/api'
|
||||
|
||||
|
||||
export default class LoginForm extends Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = ({
|
||||
username: '',
|
||||
password: ''
|
||||
});
|
||||
}
|
||||
|
||||
async login() {
|
||||
let isLoginSucc, errMsg = '账号或密码不正确';
|
||||
|
||||
this.props.setLoading(true);
|
||||
try {
|
||||
isLoginSucc = await Api.login(this.state.username, this.state.password);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
errMsg = err.message;
|
||||
}
|
||||
this.props.setLoading(false);
|
||||
|
||||
return {
|
||||
isLoginSucc,
|
||||
errMsg
|
||||
}
|
||||
}
|
||||
|
||||
_checkResult(result) {
|
||||
InteractionManager.runAfterInteractions(() => {
|
||||
if(result.isLoginSucc) {
|
||||
Navigation.startSingleScreenApp({
|
||||
screen: {
|
||||
screen: 'Home',
|
||||
title: 'Home Title',
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
Alert.alert(
|
||||
result.errMsg,
|
||||
'',
|
||||
[
|
||||
{text: '确定', onPress: () => {}},
|
||||
],
|
||||
{cancelable: false}
|
||||
);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
_clickLogin() {
|
||||
this.login().then(this._checkResult);
|
||||
}
|
||||
|
||||
_usernameSubmit() {
|
||||
this.refs.loginPw.focus();
|
||||
}
|
||||
|
||||
_passwordSubmit() {
|
||||
this._clickLogin();
|
||||
}
|
||||
|
||||
render() {return (
|
||||
<View>
|
||||
<Text style={localStyle.title}>{'欢迎来到胶囊日记'}</Text>
|
||||
|
||||
<View style={localStyle.form}>
|
||||
<Input ref="loginUsername"
|
||||
|
||||
selectionColor={Color.primary}
|
||||
underlineColorAndroid='transparent'
|
||||
keyboardType='email-address'
|
||||
value={this.state.username}
|
||||
|
||||
autoCorrect={false}
|
||||
autoFocus={false}
|
||||
autoCapitalize='none'
|
||||
|
||||
placeholderTextColor={Color.inactiveText}
|
||||
placeholder='账号邮箱'
|
||||
returnKeyType="next"
|
||||
|
||||
onChangeText={(text) => this.setState({username: text})}
|
||||
onSubmitEditing={this._usernameSubmit.bind(this)}
|
||||
/>
|
||||
|
||||
<Input ref="loginPw"
|
||||
|
||||
selectionColor={Color.primary}
|
||||
underlineColorAndroid='transparent'
|
||||
|
||||
value={this.state.password}
|
||||
secureTextEntry={true}
|
||||
selectTextOnFocus={true}
|
||||
autoCorrect={false}
|
||||
|
||||
placeholder='登录密码'
|
||||
placeholderTextColor={Color.inactiveText}
|
||||
returnKeyType='done'
|
||||
|
||||
onChangeText={(text) => this.setState({password: text})}
|
||||
onSubmitEditing={this._passwordSubmit.bind(this)}
|
||||
/>
|
||||
</View>
|
||||
|
||||
<Button borderRadius={999} title={'登录'} backgroundColor={Color.primary}
|
||||
onPress={this._clickLogin.bind(this)}
|
||||
/>
|
||||
</View>
|
||||
);}
|
||||
}
|
||||
|
||||
const localStyle = StyleSheet.create({
|
||||
title: {
|
||||
fontSize: 26,
|
||||
paddingBottom: 35,
|
||||
color: '#222',
|
||||
textAlign: 'center'
|
||||
},
|
||||
form: {
|
||||
paddingBottom: 20,
|
||||
}
|
||||
});
|
147
src/component/registerForm.js
Normal file
147
src/component/registerForm.js
Normal file
|
@ -0,0 +1,147 @@
|
|||
import React, {Component} from 'react';
|
||||
import {Platform, StyleSheet, Text, View, InteractionManager, Alert} from 'react-native';
|
||||
import {Input, Button} from "react-native-elements";
|
||||
import {Navigation} from 'react-native-navigation';
|
||||
|
||||
import Color from '../style/color'
|
||||
import Api from '../util/api'
|
||||
|
||||
|
||||
export default class RegisterForm extends Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = ({
|
||||
nickname: '',
|
||||
username: '',
|
||||
password: ''
|
||||
});
|
||||
}
|
||||
|
||||
async register() {
|
||||
let isRegisterSucc, errMsg = '注册失败';
|
||||
|
||||
this.props.setLoading(true);
|
||||
try {
|
||||
isRegisterSucc = await Api.register(this.state.nickname, this.state.username, this.state.password);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
errMsg = err.message;
|
||||
}
|
||||
this.props.setLoading(false);
|
||||
|
||||
return {
|
||||
isRegisterSucc,
|
||||
errMsg
|
||||
}
|
||||
}
|
||||
|
||||
_checkResult(result) {
|
||||
InteractionManager.runAfterInteractions(() => {
|
||||
if(result.isRegisterSucc) {
|
||||
Navigation.startSingleScreenApp({
|
||||
screen: {
|
||||
screen: 'Home',
|
||||
title: 'Home Title',
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
Alert.alert(
|
||||
result.errMsg,
|
||||
'',
|
||||
[
|
||||
{text: '确定', onPress: () => {}},
|
||||
],
|
||||
{cancelable: false}
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
_clickRegister() {
|
||||
this.register().then(this._checkResult);
|
||||
}
|
||||
|
||||
render() {return (
|
||||
<View>
|
||||
<Text style={localStyle.title}>{'注册胶囊日记账号'}</Text>
|
||||
|
||||
<View style={localStyle.form}>
|
||||
<Input
|
||||
|
||||
selectionColor={Color.primary}
|
||||
underlineColorAndroid='transparent'
|
||||
keyboardType='email-address'
|
||||
value={''}
|
||||
|
||||
autoCorrect={false}
|
||||
autoFocus={false}
|
||||
autoCapitalize='none'
|
||||
|
||||
placeholderTextColor={Color.inactiveText}
|
||||
placeholder='名字'
|
||||
returnKeyType='next'
|
||||
|
||||
onChangeText={() => {}}
|
||||
onSubmitEditing={() => {}}
|
||||
/>
|
||||
|
||||
<Input
|
||||
|
||||
selectionColor={Color.primary}
|
||||
underlineColorAndroid='transparent'
|
||||
keyboardType='email-address'
|
||||
value={''}
|
||||
|
||||
autoCorrect={false}
|
||||
autoFocus={false}
|
||||
autoCapitalize='none'
|
||||
|
||||
placeholderTextColor={Color.inactiveText}
|
||||
placeholder='账号邮箱'
|
||||
returnKeyType='next'
|
||||
|
||||
onChangeText={() => {}}
|
||||
onSubmitEditing={() => {}}
|
||||
/>
|
||||
|
||||
<Input
|
||||
|
||||
selectionColor={Color.primary}
|
||||
underlineColorAndroid='transparent'
|
||||
|
||||
value={''}
|
||||
secureTextEntry={true}
|
||||
selectTextOnFocus={true}
|
||||
autoCorrect={false}
|
||||
|
||||
placeholder='登录密码'
|
||||
placeholderTextColor={Color.inactiveText}
|
||||
returnKeyType='done'
|
||||
|
||||
onChangeText={() => {}}
|
||||
onSubmitEditing={() => {}}
|
||||
/>
|
||||
</View>
|
||||
|
||||
<Button borderRadius={999} title={'注册'}
|
||||
backgroundColor={Color.primary}
|
||||
onPress={this._clickRegister.bind(this)}
|
||||
/>
|
||||
</View>
|
||||
);}
|
||||
}
|
||||
|
||||
const localStyle = StyleSheet.create({
|
||||
title: {
|
||||
fontSize: 26,
|
||||
paddingBottom: 35,
|
||||
color: '#222',
|
||||
textAlign: 'center'
|
||||
},
|
||||
form: {
|
||||
paddingBottom: 20,
|
||||
}
|
||||
});
|
50
src/page/HomePage.js
Normal file
50
src/page/HomePage.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
import React, {Component} from 'react';
|
||||
import {Platform, StyleSheet, Text, View} from 'react-native';
|
||||
|
||||
|
||||
export default class HomePage extends Component {
|
||||
|
||||
|
||||
onPress() {
|
||||
/*
|
||||
this.props.navigator.push({
|
||||
screen: 'Home'
|
||||
});
|
||||
|
||||
Navigation.startSingleScreenApp({
|
||||
screen: {
|
||||
screen: 'Home',
|
||||
title: 'Home Title',
|
||||
}
|
||||
});
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<Text style={styles.welcome}>Home Page !</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
backgroundColor: '#F5FCFF',
|
||||
},
|
||||
welcome: {
|
||||
fontSize: 20,
|
||||
textAlign: 'center',
|
||||
margin: 10,
|
||||
},
|
||||
instructions: {
|
||||
textAlign: 'center',
|
||||
color: '#333333',
|
||||
marginBottom: 5,
|
||||
},
|
||||
});
|
3
src/page/_list.js
Normal file
3
src/page/_list.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
export default {
|
||||
Home: require("./HomePage.js").default
|
||||
}
|
20
src/style/color.js
Normal file
20
src/style/color.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
export default {
|
||||
primary: '#007AFF',
|
||||
light: '#007AFF',
|
||||
text: '#484848',
|
||||
warning: '#ffdd57',
|
||||
danger: '#ff3860',
|
||||
|
||||
inactiveText: '#9B9B9B',
|
||||
darkText: '#333333',
|
||||
lightText: '#7F91A7',
|
||||
|
||||
spaceBackground: '#f3f3ff',
|
||||
navBackground: '#F9F9F9',
|
||||
line: '#eee',
|
||||
textSelect: '#b6d8ff',
|
||||
|
||||
refreshColor: '#007AFF',
|
||||
|
||||
iconColor:'#386DB1'
|
||||
}
|
117
src/util/api.js
Normal file
117
src/util/api.js
Normal file
|
@ -0,0 +1,117 @@
|
|||
import TokenManager from './token'
|
||||
import DeviceInfo from 'react-native-device-info';
|
||||
|
||||
|
||||
const OS = DeviceInfo.getSystemName();
|
||||
const OS_VERSION = DeviceInfo.getSystemVersion();
|
||||
const DEVICE_ID = DeviceInfo.getUniqueID();
|
||||
const VERSION = DeviceInfo.getVersion();
|
||||
|
||||
const baseUrl = 'http://open.timepill.net/api';
|
||||
|
||||
|
||||
async function login(username, password) {
|
||||
const token = TokenManager.generateToken(username, password);
|
||||
await TokenManager.setUserToken(token);
|
||||
|
||||
try {
|
||||
const userInfo = await getSelfInfo();
|
||||
await TokenManager.setUserInfo(userInfo);
|
||||
await TokenManager.setLoginPassword('');
|
||||
|
||||
return userInfo;
|
||||
|
||||
} catch(err) {
|
||||
await TokenManager.setUserToken('');
|
||||
if (err.code && err.code === 401) {
|
||||
return false;
|
||||
}
|
||||
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
async function getSelfInfo() {
|
||||
return call('GET', '/users/my')
|
||||
}
|
||||
|
||||
async function call(method, api, body, _timeout = 10000) {
|
||||
let token = await TokenManager.getUserToken();
|
||||
|
||||
return timeout(fetch(baseUrl + api, {
|
||||
method: method,
|
||||
headers: {
|
||||
'Authorization': token,
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
'X-TP-OS': OS,
|
||||
'X-TP-OS-Version': OS_VERSION,
|
||||
'X-TP-Version': VERSION,
|
||||
'X-Device-ID': DEVICE_ID,
|
||||
},
|
||||
body: body ? JSON.stringify(body) : null
|
||||
})
|
||||
.then(checkStatus)
|
||||
.then(parseJSON)
|
||||
.catch(handleCatch)
|
||||
|
||||
, _timeout);
|
||||
}
|
||||
|
||||
function timeout(promise, time) {
|
||||
return Promise.race([
|
||||
promise,
|
||||
new Promise(function (resolve, reject) {
|
||||
setTimeout(() => reject(new Error('request timeout')), time)
|
||||
})
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
async function checkStatus(response) {
|
||||
if (response.status >= 200 && response.status < 300) {
|
||||
return response;
|
||||
|
||||
} else {
|
||||
console.log('http error: ' + response.status + ' ' + response.body);
|
||||
|
||||
let errInfo;
|
||||
try {
|
||||
errInfo = await response.json();
|
||||
console.log(errInfo);
|
||||
|
||||
} catch (err) {
|
||||
errInfo = {
|
||||
code: 0,
|
||||
message: '服务器开小差了 :('
|
||||
}
|
||||
}
|
||||
|
||||
let error = new Error(errInfo.message, errInfo.code ? errInfo.code : errInfo.status_code);
|
||||
error.code = errInfo.code ? errInfo.code : errInfo.status_code;
|
||||
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
function parseJSON(response) {
|
||||
if (response.headers.get('content-type') === 'application/json') {
|
||||
return response.json();
|
||||
|
||||
} else {
|
||||
return response.text();
|
||||
}
|
||||
}
|
||||
|
||||
function handleCatch(err) {
|
||||
if (err.message === 'Network request failed') {
|
||||
throw new Error('网络连接失败', err.id)
|
||||
} else {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export default {
|
||||
login
|
||||
}
|
104
src/util/token.js
Normal file
104
src/util/token.js
Normal file
|
@ -0,0 +1,104 @@
|
|||
import AsyncStorage from '@react-native-community/async-storage';
|
||||
var base64 = require('base-64');
|
||||
|
||||
|
||||
class TokenManager {
|
||||
|
||||
generateToken(username, password) {
|
||||
return 'Basic ' + base64.encode(username + ":" + password);
|
||||
}
|
||||
|
||||
|
||||
async set(key, value) {
|
||||
await AsyncStorage.setItem(key, value);
|
||||
}
|
||||
|
||||
async get(key) {
|
||||
return await AsyncStorage.getItem(key);
|
||||
}
|
||||
|
||||
|
||||
async setUserToken(token) {
|
||||
await this.set('user_token', token);
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
async getUserToken() {
|
||||
if (!this.token) {
|
||||
this.token = await this.get('user_token');
|
||||
}
|
||||
|
||||
return this.token;
|
||||
}
|
||||
|
||||
async setUserInfo(user) {
|
||||
await this.set('user_info', JSON.stringify(user));
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
async getUserInfo() {
|
||||
if (!this.user) {
|
||||
this.user = JSON.parse(await this.get('user_info'));
|
||||
}
|
||||
|
||||
return this.user;
|
||||
}
|
||||
|
||||
async setLoginPassword(password) {
|
||||
this.set('login_password', password);
|
||||
}
|
||||
|
||||
async getLoginPassword() {
|
||||
return await this.get('login_password');
|
||||
}
|
||||
|
||||
async setUpdateVersion(version) {
|
||||
this.set('update_version', JSON.stringify(version));
|
||||
}
|
||||
|
||||
async getUpdateVersion() {
|
||||
return JSON.parse(await this.get('update_version'));
|
||||
}
|
||||
|
||||
async setDraft(content) {
|
||||
this.set('draft', JSON.stringify(content));
|
||||
}
|
||||
|
||||
async getDraft() {
|
||||
return JSON.parse(await this.get('draft'));
|
||||
}
|
||||
|
||||
async setTempDraft(content) {
|
||||
this.set('temp_draft', JSON.stringify(content));
|
||||
}
|
||||
|
||||
async getTempDraft() {
|
||||
return JSON.parse(await this.get('temp_draft'));
|
||||
}
|
||||
|
||||
async setSetting(name, value) {
|
||||
let settings = await this.getSettings();
|
||||
settings[name] = value;
|
||||
|
||||
this.set('setting', JSON.stringify(settings));
|
||||
}
|
||||
|
||||
async getSetting(name) {
|
||||
const settings = await this.getSettings();
|
||||
return settings ? (settings[name]) : null;
|
||||
}
|
||||
|
||||
async getSettings() {
|
||||
let str = await this.get('setting');
|
||||
let setting = str && str.length > 0 ? JSON.parse(str) : {};
|
||||
|
||||
if (settings['pushMessage'] === undefined) {
|
||||
settings['pushMessage'] = true;
|
||||
}
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default new TokenManager()
|
31
yarn.lock
31
yarn.lock
|
@ -799,6 +799,11 @@
|
|||
"@types/istanbul-lib-coverage" "^2.0.0"
|
||||
"@types/yargs" "^12.0.9"
|
||||
|
||||
"@react-native-community/async-storage@^1.3.4":
|
||||
version "1.3.4"
|
||||
resolved "https://registry.npm.taobao.org/@react-native-community/async-storage/download/@react-native-community/async-storage-1.3.4.tgz#5a664484d485bcbab79648e1a0ce775b90843f29"
|
||||
integrity sha1-WmZEhNSFvLq3lkjhoM53W5CEPyk=
|
||||
|
||||
"@react-native-community/cli@^1.2.1":
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-1.8.0.tgz#92792e7949c963b1affedb272b3c3af87d1c73f0"
|
||||
|
@ -1267,6 +1272,11 @@ balanced-match@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||
|
||||
base-64@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.npm.taobao.org/base-64/download/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
|
||||
integrity sha1-eAqZyE59YAJgNhURxId2E78k9rs=
|
||||
|
||||
base64-js@^1.1.2, base64-js@^1.2.3:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
|
||||
|
@ -3643,10 +3653,10 @@ lodash.throttle@^4.1.1:
|
|||
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
|
||||
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
|
||||
|
||||
lodash@^4.17.11, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.6.1:
|
||||
lodash@4.x.x, lodash@^4.17.11, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.6.1:
|
||||
version "4.17.11"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
||||
integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
|
||||
resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
||||
integrity sha1-s56mIp72B+zYniyN8SU2iRysm40=
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
|
||||
version "1.4.0"
|
||||
|
@ -4903,10 +4913,17 @@ react-is@^16.8.1, react-is@^16.8.3, react-is@^16.8.4:
|
|||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
|
||||
integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
|
||||
|
||||
react-native@0.59.4:
|
||||
version "0.59.4"
|
||||
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.59.4.tgz#c0725e2e8efdea135533794ce95fea2289fe619a"
|
||||
integrity sha512-etnXQp9IZgC8Vj5gsxZEDP4xRjJVNIj5/BSE1WcNAONG6tu6+mDBntx1jxHInwh61WYNgoQJuQGsbN5Na59ZDw==
|
||||
react-native-navigation@^1.1.376:
|
||||
version "1.1.493"
|
||||
resolved "https://registry.npm.taobao.org/react-native-navigation/download/react-native-navigation-1.1.493.tgz#01d57dd9822ac603cd04d4529abacf193bbbcdac"
|
||||
integrity sha1-AdV92YIqxgPNBNRSmrrPGTu7zaw=
|
||||
dependencies:
|
||||
lodash "4.x.x"
|
||||
|
||||
react-native@0.59.5:
|
||||
version "0.59.5"
|
||||
resolved "https://registry.npm.taobao.org/react-native/download/react-native-0.59.5.tgz#79500d2885a3dc83216715e1fc6effa878ad6ea9"
|
||||
integrity sha1-eVANKIWj3IMhZxXh/G7/qHitbqk=
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.0.0"
|
||||
"@react-native-community/cli" "^1.2.1"
|
||||
|
|
Loading…
Reference in a new issue