From 94aa1be43531092c7346cb5489a9eff150ba6bd4 Mon Sep 17 00:00:00 2001 From: Mattermost Build Date: Tue, 13 Aug 2019 16:34:07 +0200 Subject: [PATCH] Automated cherry pick of #3108 (#3113) * MM-17693 Android fix close settings screen * Fix unit tests * fix snapshot --- app/actions/navigation.js | 14 ++++++++++---- .../advanced_settings/advanced_settings.js | 5 +++++ app/screens/settings/advanced_settings/index.js | 2 ++ app/screens/settings/general/settings.js | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/actions/navigation.js b/app/actions/navigation.js index 5d6828dcb..219bb26a7 100644 --- a/app/actions/navigation.js +++ b/app/actions/navigation.js @@ -363,15 +363,21 @@ export function dismissOverlay(componentId) { }; } -export function applyTheme(componentId) { +export function applyTheme(componentId, skipBackButtonStyle = false) { return (dispatch, getState) => { const theme = getTheme(getState()); + let backButton = { + color: theme.sidebarHeaderTextColor, + }; + + if (skipBackButtonStyle && Platform.OS === 'android') { + backButton = null; + } + Navigation.mergeOptions(componentId, { topBar: { - backButton: { - color: theme.sidebarHeaderTextColor, - }, + backButton, background: { color: theme.sidebarHeaderBg, }, diff --git a/app/screens/settings/advanced_settings/advanced_settings.js b/app/screens/settings/advanced_settings/advanced_settings.js index b53839b64..cdf29b34a 100644 --- a/app/screens/settings/advanced_settings/advanced_settings.js +++ b/app/screens/settings/advanced_settings/advanced_settings.js @@ -28,6 +28,7 @@ import Config from 'assets/config'; class AdvancedSettings extends PureComponent { static propTypes = { actions: PropTypes.shape({ + dismissAllModals: PropTypes.func.isRequired, purgeOfflineStore: PropTypes.func.isRequired, }).isRequired, intl: intlShape.isRequired, @@ -73,6 +74,10 @@ class AdvancedSettings extends PureComponent { await deleteFileCache(); this.setState({cacheSize: 0, cacheSizedFetched: true}); actions.purgeOfflineStore(); + + if (Platform.OS === 'android') { + actions.dismissAllModals(); + } }); renderCacheFileSize = () => { diff --git a/app/screens/settings/advanced_settings/index.js b/app/screens/settings/advanced_settings/index.js index d02580632..ae3fc8535 100644 --- a/app/screens/settings/advanced_settings/index.js +++ b/app/screens/settings/advanced_settings/index.js @@ -4,6 +4,7 @@ import {bindActionCreators} from 'redux'; import {connect} from 'react-redux'; +import {dismissAllModals} from 'app/actions/navigation'; import {purgeOfflineStore} from 'app/actions/views/root'; import {getTheme} from 'mattermost-redux/selectors/entities/preferences'; @@ -18,6 +19,7 @@ function mapStateToProps(state) { function mapDispatchToProps(dispatch) { return { actions: bindActionCreators({ + dismissAllModals, purgeOfflineStore, }, dispatch), }; diff --git a/app/screens/settings/general/settings.js b/app/screens/settings/general/settings.js index 65f18e67b..fe7ed1637 100644 --- a/app/screens/settings/general/settings.js +++ b/app/screens/settings/general/settings.js @@ -53,7 +53,7 @@ class Settings extends PureComponent { componentDidAppear() { const {actions, componentId} = this.props; - actions.applyTheme(componentId); + actions.applyTheme(componentId, true); } navigationButtonPressed({buttonId}) {