summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authoranderklander <anderklander@gmail.com>2018-01-24 13:36:04 +0100
committerErik Larkö <erik@mullvad.net>2018-01-25 14:12:44 +0100
commitd83a9a969fa2489d1c78ab35d90110cfd7d1cfd4 (patch)
treecd572ae109f83c6502368267a3b9a9aeb21c240e
parentf06ac4054bf5d3de0427319e69568d220027fb1a (diff)
downloadmullvadvpn-d83a9a969fa2489d1c78ab35d90110cfd7d1cfd4.tar.xz
mullvadvpn-d83a9a969fa2489d1c78ab35d90110cfd7d1cfd4.zip
Android specific app.js
-rw-r--r--app/app.android.js68
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>
+ );
+ }
+}