Skip to content
Merged
28 changes: 26 additions & 2 deletions app/views/SettingsView/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import {
View, Linking, ScrollView, AsyncStorage, SafeAreaView, Switch, Text, Share
View, Linking, ScrollView, AsyncStorage, SafeAreaView, Switch, Text, Share, Clipboard
} from 'react-native';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
Expand Down Expand Up @@ -31,6 +31,8 @@ import { themedHeader } from '../../utils/navigation';
import SidebarView from '../SidebarView';
import { withSplit } from '../../split';
import Navigation from '../../lib/Navigation';
import { LISTENER } from '../../containers/Toast';
import EventEmitter from '../../utils/events';

const SectionSeparator = React.memo(({ theme }) => (
<View
Expand Down Expand Up @@ -131,6 +133,20 @@ class SettingsView extends React.Component {
Share.share({ message: isAndroid ? PLAY_MARKET_LINK : APP_STORE_LINK });
}

copyServerVersion = () => {
const { server } = this.props;
this.saveToClipboard(server.version);
}

copyAppVersion = () => {
this.saveToClipboard(getReadableVersion);
}

saveToClipboard = async(content) => {
await Clipboard.setString(content);
EventEmitter.emit(LISTENER, { message: I18n.t('Copied_to_clipboard') });
}

changeTheme = () => {
const { navigation } = this.props;
navigation.navigate('ThemeView');
Expand Down Expand Up @@ -267,11 +283,19 @@ class SettingsView extends React.Component {
right={this.renderDisclosure}
theme={theme}
/>

<Separator theme={theme} />
<ListItem title={I18n.t('Version_no', { version: getReadableVersion })} testID='settings-view-version' theme={theme} />
<ListItem
title={I18n.t('Version_no', { version: getReadableVersion })}
onPress={this.copyAppVersion}
testID='settings-view-version'
theme={theme}
/>
<Separator theme={theme} />

<ListItem
title={I18n.t('Server_version', { version: server.version })}
onPress={this.copyServerVersion}
subtitle={`${ server.server.split('//')[1] }`}
testID='settings-view-server-version'
theme={theme}
Expand Down