diff --git a/MainBottomTabs.js b/MainBottomTabs.js index 88cef5c8a..4d369de15 100644 --- a/MainBottomTabs.js +++ b/MainBottomTabs.js @@ -2,6 +2,7 @@ import { createStackNavigator, createAppContainer } from 'react-navigation'; import Settings from './screen/settings/settings'; import About from './screen/settings/about'; +import Releasenotes from './screen/settings/releasenotes'; import Selftest from './screen/selftest'; import Language from './screen/settings/language'; import Currency from './screen/settings/currency'; @@ -86,6 +87,10 @@ const WalletsStackNavigator = createStackNavigator( screen: About, path: 'About', }, + Releasenotes: { + screen: Releasenotes, + path: 'Releasenotes', + }, Selftest: { screen: Selftest, }, diff --git a/package.json b/package.json index db6fa109b..e489d5fe0 100644 --- a/package.json +++ b/package.json @@ -19,10 +19,11 @@ "scripts": { "prepare": "./patches/fix_mangle.sh; git apply patches/minifier.js.patch; git apply patches/minify.js.patch; git apply patches/transaction_builder.js.patch; git apply ./patches/transaction.js.patch", "clean": "cd android/; ./gradlew clean; cd ..; rm -r -f /tmp/metro-cache/; rm -r -f node_modules/; npm cache clean --force; npm i; npm start -- --reset-cache", + "releasenotes2json": "./release-notes.sh > release-notes.txt; node -e 'console.log(JSON.stringify(require(\"fs\").readFileSync(\"release-notes.txt\", \"utf8\")));' > release-notes.json", "start": "node node_modules/react-native/local-cli/cli.js start", "android": "react-native run-android", "ios": "react-native run-ios", - "postinstall": "./node_modules/.bin/rn-nodeify --install buffer,events,process,stream,util,inherits,fs,path --hack", + "postinstall": "./node_modules/.bin/rn-nodeify --install buffer,events,process,stream,util,inherits,fs,path --hack; npm run releasenotes2json", "test": "npm run unit && npm run jest && npm run lint", "jest": "node node_modules/jest/bin/jest.js", "lint": "./node_modules/.bin/eslint *.js screen/**/*.js screen/ class/ models/ loc/ --fix", diff --git a/screen/settings/about.js b/screen/settings/about.js index 9c4fce27a..707f895d4 100644 --- a/screen/settings/about.js +++ b/screen/settings/about.js @@ -127,6 +127,14 @@ export default class About extends Component { * bignumber.js + { + this.props.navigation.navigate('Releasenotes'); + }} + title="Release notes" + /> + + { this.props.navigation.navigate('Selftest'); @@ -135,8 +143,9 @@ export default class About extends Component { /> - {DeviceInfo.getApplicationName()} ver {DeviceInfo.getVersion()} (build number {DeviceInfo.getBuildNumber()}) + {DeviceInfo.getApplicationName()} ver {DeviceInfo.getVersion()} (build {DeviceInfo.getBuildNumber()}) + {new Date(DeviceInfo.getBuildNumber() * 1000).toGMTString()} {DeviceInfo.getBundleId()} w, h = {width}, {height} diff --git a/screen/settings/releasenotes.js b/screen/settings/releasenotes.js new file mode 100644 index 000000000..4b51d2722 --- /dev/null +++ b/screen/settings/releasenotes.js @@ -0,0 +1,51 @@ +import React, { Component } from 'react'; +import { ScrollView } from 'react-native'; +import { BlueLoading, SafeBlueArea, BlueCard, BlueText, BlueNavigationStyle } from '../../BlueComponents'; +import PropTypes from 'prop-types'; +/** @type {AppStorage} */ +const notes = require('../../release-notes'); + +export default class Releasenotes extends Component { + static navigationOptions = () => ({ + ...BlueNavigationStyle(), + title: 'Release notes', + }); + + constructor(props) { + super(props); + this.state = { + isLoading: true, + }; + } + + async componentDidMount() { + console.log(notes); + this.setState({ + isLoading: false, + notes: notes, + }); + } + + render() { + if (this.state.isLoading) { + return ; + } + + return ( + + + + {this.state.notes} + + + + ); + } +} + +Releasenotes.propTypes = { + navigation: PropTypes.shape({ + navigate: PropTypes.func, + goBack: PropTypes.func, + }), +};