diff options
| author | anderklander <anderklander@gmail.com> | 2018-01-24 13:36:04 +0100 |
|---|---|---|
| committer | Erik Larkö <erik@mullvad.net> | 2018-01-25 14:12:44 +0100 |
| commit | d83a9a969fa2489d1c78ab35d90110cfd7d1cfd4 (patch) | |
| tree | cd572ae109f83c6502368267a3b9a9aeb21c240e | |
| parent | f06ac4054bf5d3de0427319e69568d220027fb1a (diff) | |
| download | mullvadvpn-d83a9a969fa2489d1c78ab35d90110cfd7d1cfd4.tar.xz mullvadvpn-d83a9a969fa2489d1c78ab35d90110cfd7d1cfd4.zip | |
Android specific app.js
| -rw-r--r-- | app/app.android.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/app/app.android.js b/app/app.android.js new file mode 100644 index 0000000000..bf84ee67ad --- /dev/null +++ b/app/app.android.js @@ -0,0 +1,68 @@ +// @flow + +import React from 'react'; +import RX, { Component } from 'reactxp'; +import { Provider } from 'react-redux'; +import { Router } from 'react-router-redux'; +import { createMemoryHistory } from 'history'; +import makeRoutes from './routes'; +import configureStore from './redux/store'; +import { Backend } from './lib/backend'; +import { DeviceEventEmitter } from 'react-native'; +import { MobileAppBridge } from 'NativeModules'; +import { Dimensions } from 'react-native'; + +const initialState = null; +const memoryHistory = createMemoryHistory(); +const store = configureStore(initialState, memoryHistory); + +////////////////////////////////////////////////////////////////////////// +// Backend +////////////////////////////////////////////////////////////////////////// +const backend = new Backend(store); + +DeviceEventEmitter.addListener('com.mullvad.backend-info', function(e: Event) { + console.warn(e); + backend.init(); + backend.sync(); + backend.autologin(); +}); + +MobileAppBridge.startBackend().then(_response => {}).catch(e => { + console.warn('Failed starting backend:', e); +}); + +const _isPortrait = () => { + const dim = RX.UserInterface.measureWindow(); + return dim.height >= dim.width; +}; + +export default class App extends Component{ + constructor() { + super(); + + this.state = { + orientation: _isPortrait() ? 'portrait' : 'landscape', + }; + + Dimensions.addEventListener('change', () => { + this.setState({ + orientation: _isPortrait() ? 'portrait' : 'landscape' + }); + }); + } + + componentWillMount() { + + } + + render() { + return ( + <Provider store={ store }> + <Router history={ memoryHistory }> + { makeRoutes(store.getState, { backend }) } + </Router> + </Provider> + ); + } +} |
