-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathApp.js
executable file
·123 lines (104 loc) · 3.13 KB
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import './shim'
import React from 'react'
import { createStackNavigator, createBottomTabNavigator } from 'react-navigation'
import { YellowBox, AppRegistry, AppState, NetInfo } from 'react-native'
import store from 'react-native-simple-store'
import DeviceInfo from 'react-native-device-info'
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader', 'Class RCTCxxModule']);
import {
Header,
RestoreWalletScreen,
CreateWalletScreen,
ImportWalletScreen,
SetPasswordScreen,
MyWalletsScreen,
MyWalletDetailsScreen,
WalletReceiveScreen,
WalletSendScreen,
ScanScreen,
openPasswordWalletScreen,
WalletSettingsScreen,
ImportKeyScreen
} from './src/components/'
const RootStack = createStackNavigator({
RestoreWallet: RestoreWalletScreen,
CreateWallet: CreateWalletScreen,
ImportWallet: ImportWalletScreen,
SetPassword: SetPasswordScreen,
MyWallets: MyWalletsScreen,
MyWalletDetails: MyWalletDetailsScreen,
WalletReceive: WalletReceiveScreen,
WalletSend: WalletSendScreen,
Scan: ScanScreen,
openPasswordWallet: openPasswordWalletScreen,
WalletSettings: WalletSettingsScreen,
ImportKey: ImportKeyScreen
}, {
initialRouteName: 'MyWallets',
navigationOptions: {
headerTitle: <Header />,
}
})
const ElectrumCli = require('electrum-client')
export default class App extends React.Component {
constructor(props) {
super(props)
this.pingInterval = null;
this.state = {
appState: AppState.currentState
}
global.port = 7403;
global.ip = "52.53.141.12";
global.ecl = new ElectrumCli(global.port, global.ip, 'tcp');
global.version = DeviceInfo.getVersion();
global.build = DeviceInfo.getBuildNumber();
global.connectionStatus = false;
global.ecl.connect().then(() => this.ping)
}
ping() {
this.pingInterval = setInterval(function() {
if (global.ecl.status) {
global.ecl.server_version();
} else {
global.ecl.connect();
}
}, 4000);
}
handleAppStateChange = (nextAppState) => {
if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
global.ecl = new ElectrumCli(global.port, global.ip, 'tcp');
global.ecl.connect();
}
this.setState({appState: nextAppState});
}
componentDidMount() {
AppState.addEventListener('change', this.handleAppStateChange);
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
this.ping();
store.get("wallets").then((wallets) => {
if (wallets != null) {
for (var i = 0; i < wallets.length; i++) {
if (!("settings" in wallets[i])) {
wallets[i]['settings'] = {'historyCount': '20'}
}
}
store.save('wallets', wallets)
}
})
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
}
handleConnectivityChange = isConnected => {
if (isConnected) {
global.connectionStatus = isConnected;
} else {
global.connectionStatus = isConnected;
}
}
render() {
return(
<RootStack />
)
}
}