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