From 92cedf76c131df79bbcaebc61fa7ba356a4848be Mon Sep 17 00:00:00 2001
From: Diego Mello <diegolmello@gmail.com>
Date: Wed, 5 Sep 2018 15:15:03 -0300
Subject: [PATCH] [FIX] Missing current server (#427)

* server.current removed

* Increased area of touch on header

* Hide search when sort dropdown is tapped

* default server icon url

* 1.1.1
---
 android/app/build.gradle                     |  2 +-
 app/lib/realm.js                             |  3 +--
 app/sagas/selectServer.js                    |  2 +-
 app/views/RoomsListView/Header/Header.ios.js |  8 ++++++--
 app/views/RoomsListView/ServerDropdown.js    | 12 +++++++++++-
 app/views/RoomsListView/index.js             | 17 +++++++++++++++--
 ios/RocketChatRN/Info.plist                  |  2 +-
 7 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/android/app/build.gradle b/android/app/build.gradle
index 22cb0ac0c..c0cbdd07f 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -102,7 +102,7 @@ android {
         minSdkVersion 19
         targetSdkVersion 27
         versionCode VERSIONCODE as Integer
-        versionName "1.1"
+        versionName "1.1.1"
         ndk {
             abiFilters "armeabi-v7a", "x86"
         }
diff --git a/app/lib/realm.js b/app/lib/realm.js
index e4f68f40e..c97e58a99 100644
--- a/app/lib/realm.js
+++ b/app/lib/realm.js
@@ -10,8 +10,7 @@ const serversSchema = {
 	properties: {
 		id: 'string',
 		name: { type: 'string', optional: true },
-		iconURL: { type: 'string', optional: true },
-		current: 'bool'
+		iconURL: { type: 'string', optional: true }
 	}
 };
 
diff --git a/app/sagas/selectServer.js b/app/sagas/selectServer.js
index be132c445..9101d1b62 100644
--- a/app/sagas/selectServer.js
+++ b/app/sagas/selectServer.js
@@ -46,7 +46,7 @@ const handleServerRequest = function* handleServerRequest({ server }) {
 		yield call(validate, server);
 		yield call(NavigationActions.push, { screen: 'LoginSignupView', title: server, backButtonTitle: '' });
 		database.databases.serversDB.write(() => {
-			database.databases.serversDB.create('servers', { id: server, current: false }, true);
+			database.databases.serversDB.create('servers', { id: server }, true);
 		});
 		yield put(selectServerRequest(server));
 	} catch (e) {
diff --git a/app/views/RoomsListView/Header/Header.ios.js b/app/views/RoomsListView/Header/Header.ios.js
index c9594f0f9..4ae44bc11 100644
--- a/app/views/RoomsListView/Header/Header.ios.js
+++ b/app/views/RoomsListView/Header/Header.ios.js
@@ -33,8 +33,12 @@ const styles = StyleSheet.create({
 
 const Header = ({ onPress, serverName, showServerDropdown }) => (
 	<View style={styles.container}>
-		<Text style={styles.title}>{I18n.t('Messages')}</Text>
-		<TouchableOpacity onPress={onPress} testID='rooms-list-header-server-dropdown-button'>
+		<TouchableOpacity
+			onPress={onPress}
+			testID='rooms-list-header-server-dropdown-button'
+			style={styles.container}
+		>
+			<Text style={styles.title}>{I18n.t('Messages')}</Text>
 			<View style={styles.button}>
 				<Text style={styles.server}>{serverName}</Text>
 				<Image style={[styles.disclosure, showServerDropdown && styles.upsideDown]} source={{ uri: 'disclosure_indicator_server' }} />
diff --git a/app/views/RoomsListView/ServerDropdown.js b/app/views/RoomsListView/ServerDropdown.js
index 92508ceb2..21fcb1545 100644
--- a/app/views/RoomsListView/ServerDropdown.js
+++ b/app/views/RoomsListView/ServerDropdown.js
@@ -126,7 +126,17 @@ export default class ServerDropdown extends Component {
 	renderServer = ({ item }) => (
 		<Touch onPress={() => this.select(item.id)} style={styles.serverItem} testID={`rooms-list-header-server-${ item.id }`}>
 			<View style={styles.serverItemContainer}>
-				<Image source={{ uri: item.iconURL }} defaultSource={{ uri: 'logo' }} style={styles.serverIcon} />
+				{item.iconURL ?
+					<Image
+						source={{ uri: item.iconURL }}
+						defaultSource={{ uri: 'logo' }}
+						style={styles.serverIcon}
+					/> :
+					<Image
+						source={{ uri: 'logo' }}
+						style={styles.serverIcon}
+					/>
+				}
 				<View style={styles.serverTextContainer}>
 					<Text style={styles.serverName}>{item.name || item.id}</Text>
 					<Text style={styles.serverUrl}>{item.id}</Text>
diff --git a/app/views/RoomsListView/index.js b/app/views/RoomsListView/index.js
index 608e7d1ed..1df2dc90d 100644
--- a/app/views/RoomsListView/index.js
+++ b/app/views/RoomsListView/index.js
@@ -18,6 +18,7 @@ import Touch from '../../utils/touch';
 import { toggleSortDropdown } from '../../actions/rooms';
 
 const ROW_HEIGHT = 70;
+const SCROLL_OFFSET = 56;
 
 const isAndroid = () => Platform.OS === 'android';
 const getItemLayout = (data, index) => ({ length: ROW_HEIGHT, offset: ROW_HEIGHT * index, index });
@@ -62,6 +63,7 @@ export default class RoomsListView extends LoggedView {
 
 	static navigatorStyle = {
 		navBarCustomView: 'RoomsListHeaderView',
+		navBarComponentAlignment: 'fill',
 		navBarBackgroundColor: isAndroid() ? '#2F343D' : undefined,
 		navBarTextColor: isAndroid() ? '#FFF' : undefined,
 		navBarButtonColor: isAndroid() ? '#FFF' : undefined
@@ -272,6 +274,7 @@ export default class RoomsListView extends LoggedView {
 		navigator.setButtons({ leftButtons, rightButtons });
 		navigator.setStyle({
 			navBarCustomView: 'RoomsListHeaderView',
+			navBarComponentAlignment: 'fill',
 			navBarBackgroundColor: isAndroid() ? '#2F343D' : undefined,
 			navBarTextColor: isAndroid() ? '#FFF' : undefined,
 			navBarButtonColor: isAndroid() ? '#FFF' : undefined
@@ -355,7 +358,16 @@ export default class RoomsListView extends LoggedView {
 		}
 	}
 
-	toggleSort = () => this.props.toggleSortDropdown();
+	toggleSort = () => {
+		if (Platform.OS === 'ios') {
+			this.scroll.scrollTo({ x: 0, y: SCROLL_OFFSET, animated: true });
+		} else {
+			this.scroll.scrollTo({ x: 0, y: 0, animated: true });
+		}
+		setTimeout(() => {
+			this.props.toggleSortDropdown();
+		}, 100);
+	}
 
 	renderHeader = () => {
 		if (this.state.search.length > 0) {
@@ -471,7 +483,8 @@ export default class RoomsListView extends LoggedView {
 
 		return (
 			<ScrollView
-				contentOffset={Platform.OS === 'ios' ? { x: 0, y: 56 } : {}}
+				ref={ref => this.scroll = ref}
+				contentOffset={Platform.OS === 'ios' ? { x: 0, y: SCROLL_OFFSET } : {}}
 				keyboardShouldPersistTaps='always'
 				testID='rooms-list-view-list'
 			>
diff --git a/ios/RocketChatRN/Info.plist b/ios/RocketChatRN/Info.plist
index 910891acd..0fe91a1d2 100644
--- a/ios/RocketChatRN/Info.plist
+++ b/ios/RocketChatRN/Info.plist
@@ -17,7 +17,7 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.1</string>
+	<string>1.1.1</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleURLTypes</key>
-- 
GitLab