diff --git a/.travis.yml b/.travis.yml index 92e12c41..3bc67fc7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,6 @@ install: - git clone https://github.com/akinwale/buildozer.git - cd app - npm install --silent --save react@16.2.0 react-native@0.52.0 - - npm install - cd .. - cd buildozer - sudo python setup.py install diff --git a/app/src/component/AppNavigator.js b/app/src/component/AppNavigator.js index 249060bf..278aa1c5 100644 --- a/app/src/component/AppNavigator.js +++ b/app/src/component/AppNavigator.js @@ -5,7 +5,7 @@ import SplashScreen from '../page/splash'; import { addNavigationHelpers, DrawerNavigator, StackNavigator } from 'react-navigation'; import { connect } from 'react-redux'; import { addListener } from '../utils/redux'; -import { StyleSheet } from 'react-native'; +import { BackHandler } from 'react-native'; import Feather from 'react-native-vector-icons/Feather'; import discoverStyle from '../styles/discover'; @@ -17,7 +17,12 @@ const discoverStack = StackNavigator({ headerLeft: <Feather name="menu" size={24} style={discoverStyle.drawerHamburger} onPress={() => navigation.navigate('DrawerOpen')} /> }) }, - File: { screen: FilePage } + File: { + screen: FilePage, + navigationOptions: { + header: null + } + } }, { headerMode: 'screen', }); @@ -41,6 +46,23 @@ export const AppNavigator = new StackNavigator({ }); class AppWithNavigationState extends React.Component { + componentWillMount() { + BackHandler.addEventListener('hardwareBackPress', function() { + const { dispatch, navigation, nav } = this.props; + if (nav.routes.length === 2 && nav.routes[1].routeName === 'Main') { + if (nav.routes[1].routes[0].routes[0].index > 0) { + dispatch({ type: 'Navigation/BACK' }); + return true; + } + } + return false; + }.bind(this)); + } + + componentWillUnmount() { + BackHandler.removeEventListener('hardwareBackPress'); + } + render() { const { dispatch, nav } = this.props; return ( diff --git a/app/src/page/file/view.js b/app/src/page/file/view.js index 00a71eca..bad1700e 100644 --- a/app/src/page/file/view.js +++ b/app/src/page/file/view.js @@ -63,7 +63,7 @@ class FilePage extends React.PureComponent { return ( <View style={filePageStyle.pageContainer}> - <View> + <View style={filePageStyle.mediaContainer}> <FileItemMedia style={filePageStyle.thumbnail} title={title} thumbnail={metadata.thumbnail} /> </View> <ScrollView style={filePageStyle.scrollContainer}> diff --git a/app/src/styles/filePage.js b/app/src/styles/filePage.js index 231e7d58..c46d0f09 100644 --- a/app/src/styles/filePage.js +++ b/app/src/styles/filePage.js @@ -11,6 +11,10 @@ const filePageStyle = StyleSheet.create({ pageContainer: { flex: 1 }, + mediaContainer: { + backgroundColor: '#000000', + paddingTop: 24 + }, emptyClaimText: { textAlign: 'center', fontSize: 20, diff --git a/src/main/assets/index.android.bundle b/src/main/assets/index.android.bundle index 7f4b0917..f25dab46 100644 --- a/src/main/assets/index.android.bundle +++ b/src/main/assets/index.android.bundle @@ -74549,7 +74549,10 @@ __d(function (global, require, module, exports, _dependencyMap) { } }, File: { - screen: _file2.default + screen: _file2.default, + navigationOptions: { + header: null + } } }, { headerMode: 'screen' @@ -74582,11 +74585,37 @@ __d(function (global, require, module, exports, _dependencyMap) { } babelHelpers.createClass(AppWithNavigationState, [{ + key: "componentWillMount", + value: function componentWillMount() { + _reactNative.BackHandler.addEventListener('hardwareBackPress', function () { + var _props = this.props, + dispatch = _props.dispatch, + navigation = _props.navigation, + nav = _props.nav; + + if (nav.routes.length === 2 && nav.routes[1].routeName === 'Main') { + if (nav.routes[1].routes[0].routes[0].index > 0) { + dispatch({ + type: 'Navigation/BACK' + }); + return true; + } + } + + return false; + }.bind(this)); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + _reactNative.BackHandler.removeEventListener('hardwareBackPress'); + } + }, { key: "render", value: function render() { - var _props = this.props, - dispatch = _props.dispatch, - nav = _props.nav; + var _props2 = this.props, + dispatch = _props2.dispatch, + nav = _props2.nav; return _react2.default.createElement(AppNavigator, { navigation: (0, _reactNavigation.addNavigationHelpers)({ dispatch: dispatch, @@ -74595,7 +74624,7 @@ __d(function (global, require, module, exports, _dependencyMap) { }), __source: { fileName: _jsxFileName, - lineNumber: 47 + lineNumber: 69 } }); } @@ -74759,6 +74788,7 @@ __d(function (global, require, module, exports, _dependencyMap) { _react2.default.createElement( _reactNative.View, { + style: _filePage2.default.mediaContainer, __source: { fileName: _jsxFileName, lineNumber: 66 @@ -74847,6 +74877,10 @@ __d(function (global, require, module, exports, _dependencyMap) { pageContainer: { flex: 1 }, + mediaContainer: { + backgroundColor: '#000000', + paddingTop: 24 + }, emptyClaimText: { textAlign: 'center', fontSize: 20, diff --git a/src/main/assets/index.android.bundle.meta b/src/main/assets/index.android.bundle.meta index a76f27cd..6af806ac 100644 Binary files a/src/main/assets/index.android.bundle.meta and b/src/main/assets/index.android.bundle.meta differ