From 2692f5222d692376a8fc764722eb396a2587e312 Mon Sep 17 00:00:00 2001
From: Diego Mello <diegolmello@gmail.com>
Date: Mon, 19 Nov 2018 16:18:15 -0200
Subject: [PATCH] [FIX] Upload buttons on Android (#541)

---
 .../main/res/drawable-hdpi/mention_header.png | Bin 0 -> 1386 bytes
 .../main/res/drawable-mdpi/mention_header.png | Bin 0 -> 792 bytes
 .../res/drawable-xhdpi/mention_header.png     | Bin 0 -> 1835 bytes
 .../res/drawable-xxhdpi/mention_header.png    | Bin 0 -> 3005 bytes
 .../res/drawable-xxxhdpi/mention_header.png   | Bin 0 -> 3848 bytes
 app/containers/Button/index.js                |  12 +--
 app/containers/MessageBox/UploadModal.js      |  95 +++++++++++++-----
 app/containers/MessageBox/index.js            |   2 +-
 app/i18n/locales/en.js                        |   1 +
 app/i18n/locales/pt-BR.js                     |   1 +
 app/views/RoomView/Header/index.js            |  29 +++---
 .../mention_header.imageset/Contents.json     |  23 +++++
 .../mention_header.png                        | Bin 0 -> 792 bytes
 .../mention_header@2x.png                     | Bin 0 -> 1835 bytes
 .../mention_header@3x.png                     | Bin 0 -> 3005 bytes
 15 files changed, 114 insertions(+), 49 deletions(-)
 create mode 100644 android/app/src/main/res/drawable-hdpi/mention_header.png
 create mode 100644 android/app/src/main/res/drawable-mdpi/mention_header.png
 create mode 100644 android/app/src/main/res/drawable-xhdpi/mention_header.png
 create mode 100644 android/app/src/main/res/drawable-xxhdpi/mention_header.png
 create mode 100644 android/app/src/main/res/drawable-xxxhdpi/mention_header.png
 create mode 100644 ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/Contents.json
 create mode 100644 ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header.png
 create mode 100644 ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header@2x.png
 create mode 100644 ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header@3x.png

diff --git a/android/app/src/main/res/drawable-hdpi/mention_header.png b/android/app/src/main/res/drawable-hdpi/mention_header.png
new file mode 100644
index 0000000000000000000000000000000000000000..01cc741aba1fe42dac06d65393003562cf1dc885
GIT binary patch
literal 1386
zcmV-w1(o`VP)<h;3K|Lk000e1NJLTq0015U0015c1^@s6J20-I00004XF*Lt006O%
z3;baP000FcNkl<ZNDZ}DTWnNC7@nDPT5B(~&`@ndgj$m#F(^r`m&BNc2OqSlmavel
zz4_>iJRrtssuk*`_~4U|TY4j5fkIPWd@zkM0n`x12NaT~C7RZ>656!I%ARw^@0;Co
za`tq4BXN?m^Upv3eE-Zp|7BK+O|*f5WNk|7=Y=P#l+;yR>S;M8l$grX@@h*<?B+({
z<a&br{lgWWN*(dEXck)6t|>3&O(n&!^76iFZEc=eOLkSoqobpRcjo^&>S_Hh6c+m+
zQp#zq#iW#CiagL&0IAkOKkCZ}DHoNLC(BD8{<5*L@m|0W5jhnP4V~Zlujh;a_35;%
zoQ0yVg_0LL;;~;s>jScPDESQR{yH}DHny|fOh|eCA!Rqk;|FdBf*E3k;=Z9|z31ss
zt#t)tQcB4$ww4t1G&MCXL>K28kBp3z++A2c28{PGp9c%g0Hd)j9{VvYpQYHG)OCJJ
z@0h1l2Rd2~eji@2QMz~F>`PjE=ZQt-`O2;jpIrGsyi;RdV<tJP^7CJKP^HA=T4D$x
zXK6iRQ-`lFP)tY4+-Zs@Z9n|RxG$8e?;9R2=NFwD8ymCvkxvX_flLwG=*TQEre?@E
zGBu9LVwmN4N6Vqk%zReYclz93&vlP!Azp)QshN~=9w3*LW%WE(S$<>U&zaxIuijDd
zWJ5!PL;BR<nd7+g59#f;&Z}XlnG-Wksg!2fwx!@Cg`@4%VDbakaeju`;(<~MVFToG
z?)KE*pJDt2zsbMmcK8@{PGW;!Y;<8Ft(eIHjUkiEd#Tj(yc3j%MJAMx?^w2aksoRD
zI0tJSB~G*v(}W`?Od>*W_ntntTRToVBOy+si)db)<`eQ^(zBK>>u7C#Who?gC7Dbn
zmX>t_S8y=I&nAiO>W^^hTIy8VbDyIGc0HXdIe3o4cr+)q#MY=%10IXT7K;khTafz0
zFmn75n>si}or($H43GxdN1K-NRq~`3$iG=9%@U<@$Rx6ukpWY!VX?^gRmRV~VObL{
z8Sj<0L}FRHDcimtNLZpQpfiN8gF1sajtc!x<3-|XAxo60ryQWlM3uEQH{ZeK&l_P!
zKO3Eoj^PiPqJkM$%thznoR5&lUa^RqffT#gM;nALk*B3N(%=70QFPuP!?TNVl6HTr
zw7bQp{T}hYi!`vdDXFX<%s}f(Q`$HPHD)9XQI>VJEAIB@Qck5y%U%NRx)b+^sKNr*
zHMzluqQ78ctaz}lO5i|3BnHm>&iI16cOhMVOkTK!5(vX?f*$TWo5mH;8r&GyAUA)D
zs<a=31MqIvaHVCX>$%;S-Uo@<0=saJQH)&rDRSxiWR{l})U1)cm`GN0NKYx%`PA;m
zdw#t!{vFPR%Cw@P0Ld5*chP|Gjf5S-<MehG@fG4=w7(hawrqPJ77jtyIGmAVkpPc#
zl&Pz$OYPlL^D=l{IMrktOXB$>$E2m|sgyi(ViGWCC-QL@NbJhmzg{i&OQP|70<6+{
zFI*@qN~IQ%VBD}spqNE^cJAI~+%-ZX{Sa8MCWnDGO9%JG*B~EeFwqQ6?%ltCh0mAG
z0&Y}3II+Kgk3HAbh+Xqi-1KA5$62pmp_mIE^m&UgGX<qEUwj_D)96NWDyGmzAM~(H
zC48b9ag09Ql%?w0<FRZ0I9I=_VqbVOe_;T23!yfMusQ)>F&WIqiT3L%4lgjT6+Rq7
sf7*}+r;&W8RK9(=?Qrw0u>4x|e`c;}cnN_a8UO$Q07*qoM6N<$f*4z-S^xk5

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/drawable-mdpi/mention_header.png b/android/app/src/main/res/drawable-mdpi/mention_header.png
new file mode 100644
index 0000000000000000000000000000000000000000..f278d456bd888125a7a26a3dd2dbd887f50a3d78
GIT binary patch
literal 792
zcmV+z1LypSP)<h;3K|Lk000e1NJLTq000yK000yS1^@s6jfou%00004XF*Lt006O%
z3;baP0008dNkl<ZI1!~(&ubG=5T1FPG?bc34~AAKh*(8SEgqyGC>}g2mNq7(ZC28P
z(t`)_ALxG|=)r@uDM>3f{ehqef;T}d;z5fiy%id)f=K+4Hr*ZPTX)MQL<ss|Gw*%x
zn=fzP%si&QjAF5P;Kz<!5|IHCI_S}uHko;?t%V<_QmN04T)7@B6jr*bRGntxNfonH
zU`sh0KCfG`gkp}6%tR?VoyiQB!WuP#a|?^-Tvt{|IIbJ_$nb1-JhdKn$juk~$dw5p
znj)4mlQophTzL_2_5^c<rL#otb0vOcV-04<k{<$6Bb!@T?h)5{qyk5X%!NSI6ZFG;
zN5otEVthvL=UXF@dQ9(m|MzWqNhApk|0KeXfP_2q!n7<EOYVuy&p&P7b<2}3(`oRG
z(Cdha&s3?L##;aQzMgbY9A~}CszG#}y=-nvNi%sjYo~95h>_1P4>;r$iK&}J{)Erm
zqr45hmM=;vPuS`6;O6p+x0QFJEyi8OFAWO`z$OMx=82J1A|$7>_Q)}Om}__y{Z1&&
z^2qp6UsMFN4C)M}5zZ#U#K|H|sZ3_%ZQzJGFy+S->kM%CLIYYxLqO36b>?xrJJT@3
zVu3R-5&EU;_5kzk2DH4S)NTCZk}G=34x^!MszP^I1=%D`K%wxkKa67zjG0>X9)H&C
ziF;JnhmESPp`E-A@EIr#WOG-j7#77Gm}Xr&ggWOQEce32w{gW+IiFumI9%OSfu_r*
z#iDCFF6C69LnC>wwpZ;}Et`I0+e2F_HmkKYg?91}Nw%F_i<)>J3*8dtH~26IHa3=i
z24^vRN24pjVvQH*zgjQ&^RP8opa+fNVKh2=Gknr8xtY0l!hqQ9^Ti^^ua2jdG@*J^
zwWCH5TTMN%M3q>i_0Z_(<xjP8`d-xo!P?8dsa`}op#y;HD_$Z)uPitE#7kyC4%y$(
Wo@pz}Zmrb-0000<MNUMnLSTZp@NHB8

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/drawable-xhdpi/mention_header.png b/android/app/src/main/res/drawable-xhdpi/mention_header.png
new file mode 100644
index 0000000000000000000000000000000000000000..83f29f79c851c2ba5795986387e325c9639a4666
GIT binary patch
literal 1835
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
Z{6FTPV!dbZOSJ$1002ovPDHLkV1f=>e2xGB

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/drawable-xxhdpi/mention_header.png b/android/app/src/main/res/drawable-xxhdpi/mention_header.png
new file mode 100644
index 0000000000000000000000000000000000000000..f20b27aea50b911f2490f635995ed1a014534212
GIT binary patch
literal 3005
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

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/drawable-xxxhdpi/mention_header.png b/android/app/src/main/res/drawable-xxxhdpi/mention_header.png
new file mode 100644
index 0000000000000000000000000000000000000000..930fe78f953e8cba3508ecc728c26b0f23159a76
GIT binary patch
literal 3848
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
KMNUMnLSTYF{dGS8

literal 0
HcmV?d00001

diff --git a/app/containers/Button/index.js b/app/containers/Button/index.js
index b632abc58..f7d610aa2 100644
--- a/app/containers/Button/index.js
+++ b/app/containers/Button/index.js
@@ -25,8 +25,7 @@ const styles = StyleSheet.create({
 	},
 	text: {
 		fontSize: 18,
-		textAlign: 'center',
-		fontWeight: '500'
+		textAlign: 'center'
 	},
 	background_primary: {
 		backgroundColor: colors.background_primary
@@ -54,7 +53,8 @@ export default class Button extends React.PureComponent {
 		onPress: PropTypes.func,
 		disabled: PropTypes.bool,
 		backgroundColor: PropTypes.string,
-		loading: PropTypes.bool
+		loading: PropTypes.bool,
+		style: PropTypes.any
 	}
 
 	static defaultProps = {
@@ -67,7 +67,7 @@ export default class Button extends React.PureComponent {
 
 	render() {
 		const {
-			title, type, onPress, disabled, backgroundColor, loading, ...otherProps
+			title, type, onPress, disabled, backgroundColor, loading, style, ...otherProps
 		} = this.props;
 		return (
 			<RectButton
@@ -75,9 +75,9 @@ export default class Button extends React.PureComponent {
 				enabled={!(disabled || loading)}
 				style={[
 					styles.container,
-					styles.border,
 					backgroundColor ? { backgroundColor } : styles[`background_${ type }`],
-					disabled && styles.disabled
+					disabled && styles.disabled,
+					style
 				]}
 				{...otherProps}
 			>
diff --git a/app/containers/MessageBox/UploadModal.js b/app/containers/MessageBox/UploadModal.js
index c33eb6b07..aa4ec42e0 100644
--- a/app/containers/MessageBox/UploadModal.js
+++ b/app/containers/MessageBox/UploadModal.js
@@ -1,6 +1,6 @@
 import React, { Component } from 'react';
 import {
-	View, Text, StyleSheet, Image, ScrollView, Platform
+	View, Text, StyleSheet, Image, ScrollView, Platform, TouchableHighlight
 } from 'react-native';
 import PropTypes from 'prop-types';
 import Modal from 'react-native-modal';
@@ -10,20 +10,24 @@ import equal from 'deep-equal';
 import TextInput from '../TextInput';
 import Button from '../Button';
 import I18n from '../../i18n';
+import sharedStyles from '../../views/Styles';
 
 const cancelButtonColor = '#f7f8fa';
 
 const styles = StyleSheet.create({
+	modal: {
+		alignItems: 'center'
+	},
 	titleContainer: {
 		flexDirection: 'row',
 		paddingHorizontal: 16,
 		paddingTop: 16
 	},
 	title: {
-		fontWeight: 'bold'
+		...sharedStyles.textBold
 	},
 	container: {
-		height: Platform.OS === 'ios' ? 404 : 430,
+		height: 430,
 		backgroundColor: '#ffffff',
 		flexDirection: 'column'
 	},
@@ -43,9 +47,20 @@ const styles = StyleSheet.create({
 		padding: 16,
 		backgroundColor: '#f7f8fa'
 	},
-	buttonMargin: {
-		margin: 0
+	button: {
+		marginBottom: 0
+	},
+	androidButton: {
+		paddingHorizontal: 15,
+		justifyContent: 'center',
+		height: 48,
+		borderRadius: 2
+	},
+	androidButtonText: {
+		fontSize: 18,
+		textAlign: 'center'
 	}
+
 });
 
 @responsive
@@ -75,21 +90,65 @@ export default class UploadModal extends Component {
 		return null;
 	}
 
-	_submit = () => {
+	submit = () => {
 		const { file, submit } = this.props;
 		const { name, description } = this.state;
 		submit({ ...file, name, description });
 	}
 
+	renderButtons = () => {
+		const { close } = this.props;
+		if (Platform.OS === 'ios') {
+			return (
+				<View style={styles.buttonContainer}>
+					<Button
+						title={I18n.t('Cancel')}
+						type='secondary'
+						backgroundColor={cancelButtonColor}
+						style={styles.button}
+						onPress={close}
+					/>
+					<Button
+						title={I18n.t('Send')}
+						type='primary'
+						style={styles.button}
+						onPress={this.submit}
+					/>
+				</View>
+			);
+		}
+		// FIXME: RNGH don't work well on Android modals: https://github.com/kmagiera/react-native-gesture-handler/issues/139
+		return (
+			<View style={styles.buttonContainer}>
+				<TouchableHighlight
+					onPress={close}
+					style={[styles.androidButton, { backgroundColor: cancelButtonColor }]}
+					underlayColor={cancelButtonColor}
+					activeOpacity={0.5}
+				>
+					<Text style={[styles.androidButtonText, { ...sharedStyles.textBold, color: '#1d74f5' }]}>{I18n.t('Cancel')}</Text>
+				</TouchableHighlight>
+				<TouchableHighlight
+					onPress={this.submit}
+					style={[styles.androidButton, { backgroundColor: '#1d74f5' }]}
+					underlayColor='#1d74f5'
+					activeOpacity={0.5}
+				>
+					<Text style={[styles.androidButtonText, { ...sharedStyles.textMedium, color: '#fff' }]}>{I18n.t('Send')}</Text>
+				</TouchableHighlight>
+			</View>
+		);
+	}
+
 	render() {
 		const { window: { width }, isVisible, close } = this.props;
 		const { name, description, file } = this.state;
 		return (
 			<Modal
 				isVisible={isVisible}
-				style={{ alignItems: 'center' }}
-				onBackdropPress={() => close()}
-				onBackButtonPress={() => close()}
+				style={styles.modal}
+				onBackdropPress={close}
+				onBackButtonPress={close}
 				animationIn='fadeIn'
 				animationOut='fadeOut'
 				useNativeDriver
@@ -97,7 +156,7 @@ export default class UploadModal extends Component {
 			>
 				<View style={[styles.container, { width: width - 32 }]}>
 					<View style={styles.titleContainer}>
-						<Text style={styles.title}>Upload file?</Text>
+						<Text style={styles.title}>{I18n.t('Upload_file_question_mark')}</Text>
 					</View>
 
 					<ScrollView style={styles.scrollView}>
@@ -113,21 +172,7 @@ export default class UploadModal extends Component {
 							onChangeText={value => this.setState({ description: value })}
 						/>
 					</ScrollView>
-					<View style={styles.buttonContainer}>
-						<Button
-							title={I18n.t('Cancel')}
-							type='secondary'
-							backgroundColor={cancelButtonColor}
-							margin={styles.buttonMargin}
-							onPress={close}
-						/>
-						<Button
-							title={I18n.t('Send')}
-							type='primary'
-							margin={styles.buttonMargin}
-							onPress={this._submit}
-						/>
-					</View>
+					{this.renderButtons()}
 				</View>
 			</Modal>
 		);
diff --git a/app/containers/MessageBox/index.js b/app/containers/MessageBox/index.js
index 74377bd4b..b92c68acd 100644
--- a/app/containers/MessageBox/index.js
+++ b/app/containers/MessageBox/index.js
@@ -40,7 +40,7 @@ const onlyUnique = function onlyUnique(value, index, self) {
 const imagePickerConfig = {
 	cropping: true,
 	compressImageQuality: 0.8,
-	cropperAvoidEmptySpaceAroundImage: false,
+	avoidEmptySpaceAroundImage: false,
 	cropperChooseText: I18n.t('Choose'),
 	cropperCancelText: I18n.t('Cancel')
 };
diff --git a/app/i18n/locales/en.js b/app/i18n/locales/en.js
index 74563eed6..415821633 100644
--- a/app/i18n/locales/en.js
+++ b/app/i18n/locales/en.js
@@ -326,6 +326,7 @@ export default {
 	Unread_on_top: 'Unread on top',
 	Unstar: 'Unstar',
 	Uploading: 'Uploading',
+	Upload_file_question_mark: 'Upload file?',
 	User_added_by: 'User {{userAdded}} added by {{userBy}}',
 	User_has_been_key: 'User has been {{key}}!',
 	User_is_no_longer_role_by_: '{{user}} is no longer {{role}} by {{userBy}}',
diff --git a/app/i18n/locales/pt-BR.js b/app/i18n/locales/pt-BR.js
index 3232282b2..3f627b561 100644
--- a/app/i18n/locales/pt-BR.js
+++ b/app/i18n/locales/pt-BR.js
@@ -325,6 +325,7 @@ export default {
 	Unread_on_top: 'Não lidas no topo',
 	Unstar: 'Remover favorito',
 	Uploading: 'Subindo arquivo',
+	Upload_file_question_mark: 'Enviar arquivo?',
 	User_added_by: 'Usuário {{userAdded}} adicionado por {{userBy}}',
 	User_has_been_key: 'Usuário foi {{key}}!',
 	User_is_no_longer_role_by_: '{{user}} não pertence mais à {{role}} por {{userBy}}',
diff --git a/app/views/RoomView/Header/index.js b/app/views/RoomView/Header/index.js
index 025b1540c..813c145bc 100644
--- a/app/views/RoomView/Header/index.js
+++ b/app/views/RoomView/Header/index.js
@@ -9,44 +9,40 @@ import equal from 'deep-equal';
 
 import I18n from '../../../i18n';
 import { STATUS_COLORS } from '../../../constants/colors';
+import sharedStyles from '../../Styles';
 
 const isIOS = () => Platform.OS === 'ios';
 const TITLE_SIZE = 18;
-const ICON_SIZE = 20;
+const ICON_SIZE = 18;
 const styles = StyleSheet.create({
 	container: {
 		flex: 1,
 		justifyContent: 'center',
-		backgroundColor: isIOS() ? 'transparent' : '#2F343D',
-		height: 44
+		backgroundColor: isIOS() ? 'transparent' : '#2F343D'
 	},
 	titleContainer: {
 		flexDirection: 'row',
 		alignItems: 'center'
 	},
 	title: {
+		...sharedStyles.textSemibold,
 		color: isIOS() ? '#0C0D0F' : '#fff',
-		fontSize: TITLE_SIZE,
-		fontWeight: '500'
+		fontSize: TITLE_SIZE
 	},
 	type: {
 		width: ICON_SIZE,
 		height: ICON_SIZE,
-		marginRight: 5,
+		marginRight: 8,
 		tintColor: isIOS() ? '#9EA2A8' : '#fff'
 	},
 	typing: {
+		...sharedStyles.textRegular,
 		color: isIOS() ? '#9EA2A8' : '#fff',
 		fontSize: 12
 	},
 	typingUsers: {
+		...sharedStyles.textSemibold,
 		fontWeight: '600'
-	},
-	alignItemsFlexStart: {
-		alignItems: 'flex-start'
-	},
-	alignItemsCenter: {
-		alignItems: 'center'
 	}
 });
 
@@ -114,7 +110,7 @@ export default class RoomHeaderView extends PureComponent {
 		return (
 			<Text style={styles.typing} numberOfLines={1}>
 				<Text style={styles.typingUsers}>{usersText} </Text>
-				{ usersTyping.length > 1 ? I18n.t('are_typing') : I18n.t('is_typing') }
+				{ usersTyping.length > 1 ? I18n.t('are_typing') : I18n.t('is_typing') }...
 			</Text>
 		);
 	}
@@ -124,11 +120,11 @@ export default class RoomHeaderView extends PureComponent {
 			window, title, type, status, usersTyping
 		} = this.props;
 		const icon = {
-			d: 'mention',
+			d: 'mention_header',
 			c: 'hashtag'
 		}[type] || 'lock';
 		const portrait = window.height > window.width;
-		let height = 44;
+		let height = isIOS ? 44 : 60;
 		let scale = 1;
 
 		if (!portrait) {
@@ -144,8 +140,7 @@ export default class RoomHeaderView extends PureComponent {
 			<View
 				style={[
 					styles.container,
-					portrait ? styles.alignItemsFlexStart : styles.alignItemsCenter,
-					{ maxWidth: window.width - 150, height }
+					{ width: window.width - 150, height }
 				]}
 			>
 				<View style={styles.titleContainer}>
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/Contents.json
new file mode 100644
index 000000000..7a846eb54
--- /dev/null
+++ b/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "mention_header.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "mention_header@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "mention_header@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header.png b/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header.png
new file mode 100644
index 0000000000000000000000000000000000000000..f278d456bd888125a7a26a3dd2dbd887f50a3d78
GIT binary patch
literal 792
zcmV+z1LypSP)<h;3K|Lk000e1NJLTq000yK000yS1^@s6jfou%00004XF*Lt006O%
z3;baP0008dNkl<ZI1!~(&ubG=5T1FPG?bc34~AAKh*(8SEgqyGC>}g2mNq7(ZC28P
z(t`)_ALxG|=)r@uDM>3f{ehqef;T}d;z5fiy%id)f=K+4Hr*ZPTX)MQL<ss|Gw*%x
zn=fzP%si&QjAF5P;Kz<!5|IHCI_S}uHko;?t%V<_QmN04T)7@B6jr*bRGntxNfonH
zU`sh0KCfG`gkp}6%tR?VoyiQB!WuP#a|?^-Tvt{|IIbJ_$nb1-JhdKn$juk~$dw5p
znj)4mlQophTzL_2_5^c<rL#otb0vOcV-04<k{<$6Bb!@T?h)5{qyk5X%!NSI6ZFG;
zN5otEVthvL=UXF@dQ9(m|MzWqNhApk|0KeXfP_2q!n7<EOYVuy&p&P7b<2}3(`oRG
z(Cdha&s3?L##;aQzMgbY9A~}CszG#}y=-nvNi%sjYo~95h>_1P4>;r$iK&}J{)Erm
zqr45hmM=;vPuS`6;O6p+x0QFJEyi8OFAWO`z$OMx=82J1A|$7>_Q)}Om}__y{Z1&&
z^2qp6UsMFN4C)M}5zZ#U#K|H|sZ3_%ZQzJGFy+S->kM%CLIYYxLqO36b>?xrJJT@3
zVu3R-5&EU;_5kzk2DH4S)NTCZk}G=34x^!MszP^I1=%D`K%wxkKa67zjG0>X9)H&C
ziF;JnhmESPp`E-A@EIr#WOG-j7#77Gm}Xr&ggWOQEce32w{gW+IiFumI9%OSfu_r*
z#iDCFF6C69LnC>wwpZ;}Et`I0+e2F_HmkKYg?91}Nw%F_i<)>J3*8dtH~26IHa3=i
z24^vRN24pjVvQH*zgjQ&^RP8opa+fNVKh2=Gknr8xtY0l!hqQ9^Ti^^ua2jdG@*J^
zwWCH5TTMN%M3q>i_0Z_(<xjP8`d-xo!P?8dsa`}op#y;HD_$Z)uPitE#7kyC4%y$(
Wo@pz}Zmrb-0000<MNUMnLSTZp@NHB8

literal 0
HcmV?d00001

diff --git a/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header@2x.png b/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..83f29f79c851c2ba5795986387e325c9639a4666
GIT binary patch
literal 1835
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
Z{6FTPV!dbZOSJ$1002ovPDHLkV1f=>e2xGB

literal 0
HcmV?d00001

diff --git a/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header@3x.png b/ios/RocketChatRN/Images.xcassets/Icons/mention_header.imageset/mention_header@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f20b27aea50b911f2490f635995ed1a014534212
GIT binary patch
literal 3005
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

literal 0
HcmV?d00001

-- 
GitLab