Skip to content

Commit

Permalink
Merge 4.12.1 into master (#2649)
Browse files Browse the repository at this point in the history
* [FIX] Android build (#2094)

* [FIX] Blink header DM (#2093)

* [FIX] Blink header DM

* Remove query

* [FIX] Push RoomInfoView

* remove unnecessary try/catch

* [FIX] RoomInfo > Message (Tablet)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Default biometry enabled (#2095)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)

* Wait for login success to navigate

* Enable auth and room deep linking at the same time

* [FIX] NewMessageView Press Item should open DM (#2116)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Roles throwing error (#2110)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Wait attach activity before changeNavigationBarColor (#2111)

* [FIX] Wait attach activity before changeNavigationBarColor

* Remove timeout and add try/catch

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] UIKit crash when some app send a list (#2117)

* [FIX] StoryBook

* [FIX] UIKit crash when some app send a list

* [CHORE] Update snapshot

* [CHORE] Remove token & id

* [FIX] Change bar color while no activity attached (#2130)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Screen Lock options i18n (#2120)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [i18n] Added missing German translation strings (#2105)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Sometimes SDK is null when try to connect (#2131)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Autocomplete position on Android (#2106)

* [FIX] Autocomplete position on Android

* [FIX] Set selection to 0 when needed

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)

This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.

* [FIX] Here and all mentions shouldn't refer to users (#2137)

* [FIX] No send data to bugsnag if it's an aborted request (#2133)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [TESTS] Update and separate E2E tests (#2126)

* Tests passing until roomslist

* create room

* roominfo

* change server

* broadcast

* profile

* custom status

* forgot password

* working

* room and onboarding

* Tests separated

* config.yml refactor

* Revert "config.yml refactor"

This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.

* CI

* lint

* CI refactor

* Onboarding tests

* npx detox

* Add all tests

* Save brew cache

* mac-env executor

* detox-test command

* Update readme

* Remove folder

* [FIX] Screen Lock Time respect local value (#2141)

* [FIX] Screen Lock Time respect local value

* [FIX] Enable biometry at the first passcode change

* Bump version to 4.8.0 (#2147)

* [IMPROVEMENT] Refactor icon package (#2146)

* [IMPROVEMENT] Refactor Icon Package

* some size fixes

* [CHORE] Update WatermelonDB to 0.16.2 (#2166)

* [CHORE] Update WatermelonDB to 0.16.2

* Patch watermelon

* Markdown linting for e2e README (#2173)

* Markdown linting for e2e README

* Running a subset of tests

* [FIX] Load messages when hideSystemMessages is enabled (#2101)

* [WIP] Load messages when hideSystemMessages is enabled

* Improve method name

* Minor improvements

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Respect server HideSystemMessages (#2175)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Screen Lock (#2177)

* [FIX] Screen Lock

* improve variable name

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>

* [FIX] Load messages issue when trying to get ts from empty results (#2185)

* [FIX] Show registration form when add server by a invite link (#2187)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] 2FA email - send code again (#2188)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [CHORE] Update react-navigation to v5 (#2154)

* react-navigation v5 installed

* compiling

* Outside working

* InsideStack compiling

* Switch stack

* Starting room

* RoomView header

* SafeAreaView

* Slide from right stack animation

* stash

* Fix params

* Create channel

* inapp notification

* Custom status

* Add server working

* Refactor appStart

* Attachment

* in-app notification

* AuthLoadingView

* Remove compat

* Navigation

* Outside animations

* Fix new server icon

* block modal

* AttachmentView header

* Remove unnecessary code

* SelectedUsersView header

* StatusView

* CreateDiscussionView

* RoomInfoView

* RoomInfoEditView style

* RoomMembersView

* RoomsListView header

* RoomView header

* Share extension

* getParam

* Focus/blur

* Trying to fix inapp

* Lint

* Simpler app container

* Update libs

* Revert "Simpler app container"

This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.

* Load messages faster

* Fix safearea on ReactionsModal

* Update safe area to v3

* lint

* Fix transition

* stash - drawer replace working

* stash - modal nav

* RoomActionsView as tablet modal

* RoomStack

* Stop showing RoomView header when there's no room

* Custom Header and different navigation based on stack

* Refactor setHeader

* MasterDetailContext

* RoomView header

* Fix isMasterDetail rule

* KeyCommands kind of working

* Create channel on tablet

* RoomView sCU

* Remove withSplit

* Settings opening as modal

* Settings

* StatusView headerLeft

* Admin panel

* TwoFactor style

* DirectoryView

* ServerDropdown and SortDropdown animations

* ThreadMessagesView

* Navigate to empty RoomView on server switch when in master detail

* ProfileView header

* Fix navigation issues

* Nav to any room info on tablet

* Room info

* Refactoring

* Fix rooms search

* Roomslist commands

* SearchMessagesView close modal

* Key commands

* Fix undefined subscription

* Disallow navigate to focused room

* isFocused state on RoomsListView

* Blur text inputs when focus is lost

* Replace animation

* Default nav theme

* Refactoring

* Always open Attachment with close modal button

* ModalContainer backdrop following themes

* Screen tracking

* Refactor get active route for in-app notification

* Only mark room as focused when in master detail layout

* Lint

* Open modals as fade from bottom on Android

* typo

* Fixing tests

* Fix in-app update

* Fixing goRoom issues

* Refactor stack names

* Fix unreadsCount

* Fix stack

* Fix header animation

* Refactor ShareNavigation

* Refactor navigation theme

* Make sure title is set

* Fix create discussion navigation

* Remove unused variable

* Create discussions from actions fixed

* Layout animation

* Screen lock on share extension

* Unnecessary change

* Admin border

* Set header after state callback

* Fix key commands on outside stack

* Fix back button pressed

* Remove layout animations from Android

* Tweak animations on Android

* Disable swipe gesture to open drawer

* Fix current item on RoomsListView

* Fix add server

* Fix drawer

* Fix broadcast

* LayoutAnimation instead of Transitions

* Fix onboarding back press

* Fix assorted tests

* Create discussion fix

* RoomInfoView header

* Drawer active item

* [NEW] Action Sheet (#2114)

* [WIP] New Action Sheet

* [NEW] Header Indicator

* [IMPROVEMENT] Header Logic

* [NEW] Use EventEmitter to show ActionSheet for while

* [FIX] Animation

* [IMPROVEMENT] Use provider

* [FIX] Add callback

* [FIX] Message Actions

* [FIX] Add MessageActions icons

* [NEW] MessageErrorActions

* [IMPROVEMENT] OnClose

* [FIX] Adjust height

* [FIX] Close/Reopen

* [CHORE] Remove react-native-action-sheet

* [CHORE] Move ActionSheet

* [FIX] Reply Message

* [IMPROVEMENT] Hide ActionSheet logic

* [WIP] Custom MessageActions Header

* [IMPROVEMENT] MessageActions Header

* [IMPROVEMENT] Enable Scroll

* [FIX] Scroll on Android

* Move to react-native-scroll-bottom-sheet

* Stash

* Refactor actions

* Revert some changes

* Trying react-native-modalize

* Back to HOC

* ActionSheet style

* HOC Header

* Reaction actionSheet

* Fix messageBox actions

* Fix add reaction

* Change to flatListProps

* fix modalize android scroll

* Use react-native-scroll-bottom-sheet

* [NEW] BottomSheet dismissable & [FIX] Android not opening

* [NEW] Show emojis based on screen width

* [WIP] Adjust to content height

* [IMPROVEMENT] Responsible

* [IMPROVEMENT] Use alert instead actionSheet at NewServerView

* [FIX] Handle tablet cases

* [IMPROVEMENT] Remove actionSheet of RoomMembersView

* [IMPROVEMENT] Min snap distance when its portrait

* [CHORE] Remove unused Components

* [IMPROVEMENT] Remove duplicated add-reaction

* [IMPROVEMENT] Refactor Icon Package

* [IMPROVEMENT] Use new icons

* [FIX] Select message at MessageActions before getOptions

* [FIX] Custom header height

* [CHORE] Remove patch & [FIX] Tablet bottom sheet

* [FIX] Use ListItem height to BottomSheet Height

* Some fixes

* [FIX] Custom MessageActions header

* [FIX] Android height adjust

* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission

* [IMPROVEMENT] More than one snap point

* some size fixes

* improve code

* hide horizontal scroll indicator

* [FIX] Focus MessageBox on edit message

* [FIX] Ripple color

* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen

* [TEST] Change animation config

* [IMPROVEMENT] BackHandler should close the ActionSheet

* [CHORE] Add react-native-safe-area-context

* [FIX] Provide a bottom padding at notch devices

* [IMPROVEMENT] Improve backdrop input/output range

* [FIX] Weird Android Snap behavior

* [PATCH] React-native-scroll-bottom-sheet

* [CI] Re-run build

* [FIX] Landscape android

* [IMPROVEMENT] Cover 50% of the screen at the landscape mode

* [FIX] Adjust emoji content to width size

* [IMPROVEMENT] Use hooks library

* [IMPROVEMENT] Close the actionSheet when orientation change

* deactivate safe-area-context for while

* [REVERT] Re-add react-native-safe-area-context (3.0.2)

* [IMPROVEMENT] Use focused background

* [TESTS] E2E Tests updated to new BottomSheet

* [NEW] Add cancel button

* [FIX] Cancel button at android

* [IMPROVEMENT] Use cancelable bottom sheet at room members view

* [IMPROVEMENT] Use better function names

* [IMPROVEMENT] Use getItemLayout

* [FIX][TEMP] Animation

* Review

* Build

* Header keyExtractor

* Rename function

* Tweak animation

* Refactoring

* useTheme

* Refactoring

* TestIDs

* Refactor

* Remove old lib

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [NEW] Add fastlane to android module and configure CI (#2100)

* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [CHORE] Create DimensionsContext (#2098)

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Remove duplicated sCU condition (#2194)

* [FIX] The auto translate toggle don't save right state (#2142)

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [NEW] IFrame authentication (#2184)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [NEW] Send multiple attachments (#2162)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [NEW] Omnichannel Status Toggle (#2217)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [REGRESSION] Logout failing after #2217 (#2222)

* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)

* [WIP] Use rest instead methodCall

* [WIP] Some method calls using wrapper

* [WIP] Wrap all necessary methodCalls

* fix

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVEMENT] Mark thread as read on open (#2225)

* [IMPROVEMENT] Mark a thread as read

* Use methodCallWrapper

* Check server version

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Read receipt icon on action sheet (#2237)

* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Android crashing when restoring from background (#2238)

* [FIX] Send thread attachment (#2242)

* [FIX] Iframe auth Login Button (#2241)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [REGRESSION] Audio Recording (#2240)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVEMENT] Expo-av audio recorder (#2195)

* [NEW] MessageBox: Expo-av audio recorder

* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future

* RecordAudio: Introduce cancel and send buttons

* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView

* RecordAudio: Better audio quality 🎉, stop recording on unmount

* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob

* chore: flush out react-native-audio

* fix(MessageBox): bring back some missed styles during refactor

* refactor(RecordAudio): use class component

* refactor(RecordAudio): recorder busy to class property, styling changes

* recorder initialisation changes

* fix(RecordAudio): missing await in isRecordingPermissionGranted

* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVEMENT] Unified header UX (#2234)

* Change drawer icon

* Removed iOS variation

* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(

* Correctly position title

* Header subtitle

* Layout

* Alignment

* RoomView header

* Renamed RoomHeaderLeft to LeftButtons

* RoomView back button

* Search icon on RoomView

* Refactor

* Fix header on tablet

* Fix search messages close button on tablet

* Search key command

* Network status on RoomView header subtitle

* Update tests

* Scale content

* SearchBox cancel color

* Bump version to 4.9.0 (#2248)

* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)

* [FIX] Scroll to top crashing when ref is undefined (#2252)

* [FIX] Check if exists scroll ref

* Remove scrollTo

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] AttachmentView crashing during title decode (#2253)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Command previews crashing when API returns an error (#2254)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Register crashing when error data is undefined (#2256)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Get active route returning undefined (#2257)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] ImageViewer not recognising gestures after zoomed (#2261)

* [FIX] Zoomed in images must react to gestures

* AnimatedFastImage -> AnimatedImage

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Android stack animation throwing illegal node ID (#2260)

* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)

* [FIX] Action sheet cutting emojis on the header (#2263)

* [FIX] Action sheet cutting emojis on the header

* fix tablet case

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>

* [FIX] Mime type check crashing the app (#2264)

* [FIX] Notification preferences update crashing the app (#2262)

* [FIX] Create discussion not working from MessageActions (#2265)

* [FIX] getSettings not catching errors (#2271)

* [REGRESSION] Jitsi Call doesn't send message link (#2277)

* [FIX] Messages hidden behind MessageBox (#2281)

* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [i18n] Add missing german strings (#2278)

* cleaned mixed usage of "du" and "Sie"

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [CHORE] CircleCI Upgrades (#2269)

* Upgrade nvm

* Upgrade XCode

* Use nvm's default installed version of node (LTS)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [NEW] Sign in with Apple (#2282)

* Add expo-apple-authentication

* Button

* Create new provisioning profiles

* Login with Apple

* Change provisioning profile

* Button color based on theme

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>

* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)

* Wrap video preview with ScrollView so Messagebox is shown properly

* Fix border color

* [TESTS] Test in docker (#2290)

* Add docker env with orchestration

* Update detox, update mocha config format

* One simulator at a time - mocha won't run parallel

* Docker runner, with test changes to match RC data

* Better error trapping in infrastructure control script

* Swap user provisioning from Mongo to RC API to work against existing servers

* Add docker to e2e readme

* Stop using example.com for emails

* Default detox to the tests directory

* Add working configs for both run scenarios

* Add some optional forcing of data.js version for Docker

* [CHORE] Consistent Rocket.Chat Branding (#2293)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Bump version to 4.10.0 (#2305)

* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)

* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)

* [FIX] Show user info

* [FIX] Show message button only if it's possible

* [FIX] Create direct only when needed

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Read receipts on tablet (#2297)

* fixes not working read receipts on tablet (#2295)

* fixing last commit it to make it work on both tablet and phone

* fix missing close button on tablet's modal view

* Update app/views/ReadReceiptView/index.js

* remove unnecessary param

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVEMENT] Clear image cache when clear cache (#2300)

* [IMPROVEMENT] Clear image cache when clear cache

* use fork instead

* react-native-fast-image -> @rocket.chat/react-native-fast-image

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)

* [FIX] Markdown preview causes app stuck (#2303)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [CHORE] Update commonmark libs (#2306)

* [CHORE] Update commonmark fork and relateds

* [CHORE] Update commonmark.js

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Bump lodash from 4.17.16 to 4.17.19 (#2310)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [FIX] MessagesView duplicating content (#2307)

* Fix Pagination duplicacy

* Fix MessageView Duplicate Content

* [FIX] Return fetch func

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>

* Update dependencies (#2301)

* Update RN to 0.63.0-rc.1

* Updating

* Fix keyboard

* Fix native stuff on Messagebox

* Update to RN 0.63.1

* Update pods

* Update patches

* Update minors

* Majors

* Remove base-64 in favour of js-base64

* others

* Pods

* Flipper

* Yarn

* Fix setInput

* [IMPROVEMENT] Native sort and limit queries (#2249)

* Update WatermelonDB to 0.18.0

* Low onEndReachedThreshold

* Query experiment

* QUERY_SIZE

* Query or fetch data

* Reorder class functions

* Reset variables

* Hide system messages

* Change this.count behaviour

* Starting on RoomsListView

* unsubscribeQuery

* onEndReached

* Separate queries

* Reusable where clause

* Refactoring

* Refactor RoomItem to accept item as prop

* Comment RoomItem tests just so jest passes

* Fix alert and status

* onPress

* Unnecessary diff

* react-fast-compare

* Native limit on ShareListView

* Tweak item description

* Lint

* Fix on foreground crash

* Suggested changes

* [FIX] Style not being applied on RoomsListView header subtitle (#2319)

* [IMPROVEMENT] Improve our PR Template (#1893)

* [IMPROVEMENT] Improve our PR Template

* Few changes

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Revert "[CHORE] Update commonmark.js " (#2331)

* [TESTS] Idempotence for e2e tests (#2308)

* Idempotence for Assorted

* Idempotence for Onboarding

* Idempotence for Rooms

* Remove redundant expects

* Fixes and improvements

* Remove unneeded sleeps

* Make stable following merge

* Try solving early taps without long sleep

Try solving early taps without long sleep (cont)

Temporary CircleCI hack for quicker testing

Add screenshots to CircleCI for failed tests

Try solving early taps without long sleep (cont. 2)

Revert "Temporary CircleCI hack for quicker testing"

This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.

* Fix flaky test with a fluent wait on the tap

* Add some new sleeps to workaround #2324

* Add test artifacts to gitignore

* More longpress for dodgy taps, wait for pin response

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)

* Create method to track user event to isolate the logic to improve future refactoring

* Track Onboarding view

* Track NewServer view

* Refactor track method due to firebase already send the current screen

* Track default login and all the oAuth options

* Track default sign up in RegisterView

* Change trackUserEvent signature and update all the files

* Track the remaining login services

* Resolve requests to improve the importing logs and events

* Leave a bugsnag breadcrumb when logging an event

* Move all logEvent to the top of code block and log remaining fail events

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Keyboard not focusing on TwoFactor component (#2314)

* Improve 2fa visual hierarchy

* Show 2fa keyboard by scheduling focus method after all interactions

* Remove unrelated styling improvements

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVEMENT] TwoFactor component styling (#2328)

* Improve 2fa visual hierarchy

* Show 2fa keyboard by scheduling focus method after all interactions

* Remove unrelated styling improvements

* Improve 2fa component title hierarchy

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Admin panel not logging in automatically (#2330)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Bump codecov from 3.6.5 to 3.7.1 (#2323)

Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)

* [CHORE] Update react-native-firebase (#2336)

* Remove firebase

* Install firebase/app

* Install analytics

* Crashlytics

* Android

* Fix mocks

* Edit scheme to Debug build configuration

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>

* [REGRESSION] Invite links stopped working after #2154 (#2338)

* [REGRESSION] Invite links stopped working after #2154

* Clear invite links token when close NewServerView

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>

* [TESTS] Fix some simple text (#2332)

* Clearer infrastructure wait message

* Use a generic mailbox rather than spamming Diego

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] i18n being called outside render (#2334)

* Fix I18n usage in ThemeView

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

* Fix I18n usage in NotificationPreferencesView

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

* Fix some I18n wrong uses

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] MessagesView title not working (#2294)

* Set title in header of room actions view items

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

* Remove unneeded spaces

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

* Set header title on constructor

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

* Remove unused navigation options

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [TESTS] Stabilise Room Actions test (#2333)

* Stabilise Room Actions test

* Fix Create Room test

* Be more tolerant of slow starting apps in CI

* Be more tolerant of slow running apps in CI

* Switch visibility checks ti stabilise Room Create test in CI

* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose

* [CHORE] Update icon names (#2318)

* [CHORE] Move Detox to Github Actions (#2340)

* Initial workflow for iOS detox tests

* Increase timeout

* Parallelise tests and optimise when to build

* Refine GH Actions logic

* Improve Detox App caching

* Upload failed test artifacts

* Rate limiting aware data setup

* Remove detox tests from Circle CI

* Revert "Rate limiting aware data setup"

This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [NEW] Push notification data privacy (#2213)

* [WIP] Notification Service

* [WIP] Android push notification privacy

* [WIP] Retry request when it fails (iOS)

* [WIP] Override notification bundle

* [CHORE] Remove unnecessary import

* [WIP] Check notification Type (iOS)

* [WIP] Change to notification endpoint

* eof

* fix unwrap conditional value

* turn run request synchronous

* fix bundle info

* eof

* remove extra tab

* undo unnecessary change

* remove not working code for a while

* fix notification title

* change endpoint and received/sent data

* message-id-only working properly on android

* notification privacy working on ios

* invalidate circleCI yarn cache

* Fix provisioning profiles

* fix notification service version

* fix unwrap nil

* compatibility older servers android

* show received notification when cant fetch content from server

* undo some android changes

* prevent group & reply fallback notifications

* dont show more than one fallback notification by server

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVEMENT] Apply new mention colors (#2351)

* New mention colors

* Increase letterSpacing for mentions

* Refactor

* UnreadBadge

* Add migration

* [FIX] Missing icons (#2353)

* [FIX] Long press gestures not working properly on Android (#2354)

* [FIX] In-app notification showing while in a Jitsi call (#2345)

* Hide in app notification when focused on JitsiMeetView

* Hide notifications from different rooms

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)

* Only run Flipper in debug via MainApplication is debug

* ReactNativeFlipper package rename + gradle bump

* [CHORE] Update Flipper to 0.51.0 (#2356)

* Only run Flipper in debug via MainApplication is debug

* ReactNativeFlipper package rename + gradle bump

* Update Flipper to latest 0.51 for Android

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)

* Create method to track user event to isolate the logic to improve future refactoring

* Track Onboarding view

* Track NewServer view

* Refactor track method due to firebase already send the current screen

* Track default login and all the oAuth options

* Track default sign up in RegisterView

* Change trackUserEvent signature and update all the files

* Track the remaining login services

* track add server, change server and search

* Track SidebarView and refactor to use react-navigation

* Track profile events and handle exceptions

* Track create channel flux

* Track send message to user via NewMessageView

* Track create direct message flux

* Handle failure of create channel and group in the saga

* Track create discussion flux

* Track navigate to directory and its actions

* Track read, favorite and hide a channel, handling its errors

* Track all channels sorting and grouping

* Resolve requests to improve the importing logs and events

* Remove unused events file

* Leave a bugsnag breadcrumb when logging an event

* Move all logEvent to the top of code block and log remaining fail events

* Move all the non-logic-dependent logEvent to the top of code block

* Improve the logging of sidebar events

* Improve events from onboarding and newserver

* Improve events from login and register view, and log enter with apple

* Improve NewMessageView events

* Improve CreateChannel events

* Improve CreateDiscussion and SelectedUsers create group events

* Improve RoomsList events and log trivial events

* Improve ProfileView events

* Remove single line function body for the sidebarNavigate

* Navigate to Status and AdminPanel View using the defined sidebarNavigate method

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Add missing keys to push get payload (#2358)

* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)

* [WIP] Jitsi Deep Links

* [WIP] Add app links

* save uniqueID servers database

* add serverInfoKey of uniqueID

* search server by call url

* open jitsi deeplink poc

* improve jitsi url

* fix

* improve comment

* add missing android scheme

* handle host not found

* Allow app links to be matched on parseDeepLinking

* Fix push notification of a call

* Minor fix

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] App hanging on splash screen when deep link params are wrong (#2359)

* Add rule when there's no host on the deep link params

* Add fallbackNavigation()

* Fix insecure hosts

* [FIX] More missing icons (#2360)

* [NEW] Log events from Room, Settings and Edit status (#2206)

* Create method to track user event to isolate the logic to improve future refactoring

* Track Onboarding view

* Track NewServer view

* Refactor track method due to firebase already send the current screen

* Track default login and all the oAuth options

* Track default sign up in RegisterView

* Change trackUserEvent signature and update all the files

* Track the remaining login services

* track add server, change server and search

* Track SidebarView and refactor to use react-navigation

* Track profile events and handle exceptions

* Track create channel flux

* Track send message to user via NewMessageView

* Track create direct message flux

* Handle failure of create channel and group in the saga

* Track create discussion flux

* Track navigate to directory and its actions

* Track read, favorite and hide a channel, handling its errors

* Track all channels sorting and grouping

* Resolve requests to improve the importing logs and events

* Remove unused events file

* Remove unused events file

* log proposed Room events

* Log proposed Message actions events

* Log EditStatus proposed events

* Log Settings proposed events

* Leave a bugsnag breadcrumb when logging an event

* Move all logEvent to the top of code block and log remaining fail events

* Move all the non-logic-dependent logEvent to the top of code block

* Move all non-logic and non-data dependent logEvent to the top of code block

* Improve the logging of sidebar events

* Improve events from onboarding and newserver

* Improve events from login and register view, and log enter with apple

* Improve NewMessageView events

* Improve CreateChannel events

* Improve CreateDiscussion and SelectedUsers create group events

* Improve RoomsList events and log trivial events

* Improve ProfileView events

* Remove single line function body for the sidebarNavigate

* Improve SettingsView events

* Log more events from ScreenLockConfigView

* Navigate to Status and AdminPanel View using the defined sidebarNavigate method

* Improve StatusView events

* Improve RoomView events

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)

* Split RoomItem into container and component

* Refactor RoomItem

* Fix wrong status

* Tests

* Wrapper

* [NEW] Omnichannel inquiry queue (#2352)

* [WIP] Omnichannel queue

* Request inquiry when login

* Show take inquiry queued room

* Queue List as a Screen

* Poc using unread badge

* Prevent navigation to empty list

* Remove chat from queue when taked

* Fix header status on omnichannel preview room

* Fix room actions view to preview queued chat

* Use isOmnichannelPreview and dont show actions when is preview

* Filter queue chats taken by other people

* Fix room info to omnichannel preview room

* Handle show Queue

* Reset inquiry store when change server

* Improve queue logic

* Disable swipe on RoomItem when is a Queue Item

* Add unreadBadge style

* Move unread badge to presentation folder

* Cleanup inquiry reducers

* Move take saga to rocketchat function

* Remove comments

* Add relevant comments

* Subscribe to public stream if is livechat manager or doesnt have departments

* Add pt-br and improve queue empty message

* Fix take when dont have view-livechat-manager permission

* Add missing events

* Create selector for inquiry queue

* Minor fixes

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [CHORE] Wrap logEvent in a try/catch (#2361)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Minor i18n issues (#2335)

* Add new translations to ptBr

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

* Fix update language in headers

Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)

* [NEW] Log remaining events (#2368)

* Change NAVIGATE_TO for GO_TO to reduce event size

* Log RA JitsiMeet events and join / terminate

* Log more RoomView events

* Log slash commands and handle fail

* Log RoomActions events

* Change from GO_TO to just GO

* Log RoomInfoEdit events

* Log InviteUsers and InviteUsersEdit events

* Log AutoTranslate events

* Log NotificationPreferences events

* Log remaining routes from RoomActions

* Log RoomAction toggle block user

* Fix command event

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] WorkspaceView not looking for the correct image path (#2376)

Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>

* [FIX] Android targeting wrong SDK version (#2375)

* [FIX] Mentions crashing without username (#2374)

* [FIX] Missing delete icon on MessageErrorActions (#2373)

* [FIX] Quote not working on Group DM (#2372)

* [DOCS] Add Whitelabel (#2379)

* Update readme (#2381)

* Update README.md (#2378)

* Update README.md

* Update README.md

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [DOCS] Refactor Readme (#2382)

* Refactoring

* Detail docs

* Contributing

* Update CONTRIBUTING.md

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>

* Merge beta into master (#2388)

* Sync develop on master (#275)

* Create LICENSE

* Sync master (#721)

* Merge 1.13.0 into Master (#936)

* fix last messages (#239)

* fix last messages

* Room actions (#231)

* Layout


* Empty starred list


* Favorite room

* Pinned messages

* fix last messages

* fix date on pinned messages

* fix package

* [NEW] OAuth (#241)

* Layout

* tmp

* test iscordova

* Webview redirecting

* Open and Close login actions

* Login services saved on redux

* OAuth Github

* Server regex fix

* OAuth modal style

* - Twitter login
- Remove services from redux
- Open login saga fix

* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix

* Google login

* Email keyboard removed from messagebox

* - Login buttons refactored
- RoomList header

* Layout improvements

* Meteor login redirect_uri changed

* fix

* Random credentialToken state

* [NEW] Room actions: Mentioned messages and Room Members (#242)

* Mentioned messages

* Starred and pinned actions debounce

* Room members

* Open room on member touch

* [WIP] Improves (#245)

*  hotfix for ios

*  hotfix for ios

* Update config.yml

* Workaround for RN 0.54 on iOS (#246)

* Update iOS to RN 0.54 (#248)

* Update iOS to RN 0.54

* [WIP] Audio message functionality (#247)

* [NEW] Add module react-native-audio

* [WIP] Audio message basic UI

* [NEW] Record audio message

* Use cordova repository to get certificates

* Icon 1024

* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)

* - Block user
- Load room members async
- fixed reactive change of room's read only flag

* Snippet messages

* - Room files
- Dismiss Video component on back button press
- Improvements on Image component

* Improvement on Video component

* Leave room

* Missing message types

* lint

* Reactotron working (#249)

* [NEW] Room info and Room info edit (#254)

* - Block user
- Load room members async
- fixed reactive change of room's read only flag

* Snippet messages

* - Room files
- Dismiss Video component on back button press
- Improvements on Image component

* Improvement on Video component

* Leave room

* Missing message types

* lint

* - Room info (read only)
- Missing message types

* Room info scroll

* - Tap on room header opens room info
- Layout tweaks

* - Room info edit
- iOS Toast fixed

* - Style not implemented actions as disabled

* Edit room permission

* - Save all room settings in a single call
- Implemented roomType and readOnly

* - Allow reacting when room is read only

* Message type added: room_changed_privacy

* Erase room

* Created TextInput and SwitchContainer components for reuse and readability

* - hasPermission method

* - Archive/Unarchive room
- Set Join Code

* Twitter keyboard type on iOS

* Archived room

* reactWhenReadOnly permission on message

* Active users refactored

* User roles

* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)

* Lint

* code style

* password show/hide feature

* fix show/hide password

* password show/hide

* Crashlytics (#258)

* Fabric iOS

* Fabric configured on iOS and Android

* login tracked

* more logs

* fix reaction

* CI fix

* Bug fixes (#261)

* Layout fixes

* RoomsListView's SafeAreaView

* Unhandled promise rejection fix

* Prevent navigation from opening scenes twice

* Create channel fixes

* Create LICENSE

* Beta (#265)

* Fabric iOS

* Fabric configured on iOS and Android

* - react-native-fabric configured

- login tracked

* README updated

* Run scripts from README updated

* README scripts

* get rooms and messages by rest

* user status

* more improves

* more improves

* send pong on timeout

* fix some methods

* more tests

* rest messages

* Room actions (#266)

* Toggle notifications

* Search messages

* Invite users

* Mute/Unmute users in room

* rocket.cat messages

* Room topic layout fixed

* Starred messages loading onEndReached

* Room actions onEndReached

* Unnecessary login request

* Login loading

* Login services fixed

* User presence layout

* ïmproves on room actions view

* Removed unnecessary data from SelectedUsersView

* load few messages on open room, search message improve

* fix loading messages forever

* Removed state from search

* Custom message time format

* secureTextEntry layout

* Reduce android app size

* Roles subscription fix

* Public routes navigation

* fix reconnect

* - New login/register, login, register

* proguard

* Login flux

* App init/restore

* Android layout fixes

* Multiple meteor connection requests fixed

* Nested attachments

* Nested attachments

* fix check status

* New login layout (#269)

* Public routes navigation

* New login/register, login, register

* Multiple meteor connection requests fixed

* Nested attachments

* Button component

* TextInput android layout fixed

* Register fixed

* Thinner close modal button

* Requests /me after login only one time

* Static images moved

* fix reconnect

* fix ddp

* fix custom emoji

* New message layout (#273)

* Grouping messages

* Message layout

* Users typing animation

* Image  attachment layout

* Fabric and image fix (#284)

* Fixed images not showing

* Keyboard libs updated

* Fabric fix and location removed (#286)


* Proguard disabled

* message with list + links fixed (#288)

* Better image cache component (#292)

* react-native-img-cache removed

* Improve list render

* Support <http://link/Text> inside markdown

* Deep linking (#291)

* deep linking

* Basic deep link working

* Deep link routing

* Multiple servers working

* Send user to the room

* Avatar initials and room type icon (#298)

* Deep linking fix and more (#294)

* Fix - Any https link was deep linking to RocketChat

* Keyboard dismiss after add new server

* Room info bug fix

* Opacity animation

* Navigation when adding server fixed

* Throttle for unnecessary render on receiving several messages

* Search inputs without autocorrect and autocapitalize

* Search messages fixed

* Messagebox unnecessary render and spotlight fixed

* react-native-keyboard-input updated

* Lint

* Tests updated

* Update all dependencies (#299)

* Update react-navigation to the latest version 🚀 (#293)

* fix(package): update react-navigation to version 2.0.0

* Code updated to support breaking changes of react-navigation

* Detox tests E2E (#283)

* RoomsListView re-render (#304)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView

* [NEW] Broadcast channels (#301)

* Broadcast channels

* e2e tests

* New markdown (#306)

Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.

* Fixed audio recording issues (#310)

* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->

* I18n (#312)

* Unread and date separator layout improved (#319)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label

![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)



<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->

* [FIX] iOS Universal links (#318)

* [NEW] Drawer (#322)

* [FIX] invalid user muted value

* Ddp fixes (#324)

* [NEW] User Profile (#323)

* Drawer layout

* Drawer changes

* Profile

* Profile avatar

* Set language

* Tests

* Custom fields

* Readme updated

* fix invalid user muted value

* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"

* Settings/Permissions improvements (#325)

* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore

* Permissions

* Unnecessary action sheet render

* Update gradle and targetSdkVersion (#328)

* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore

* Permissions

* Unnecessary action sheet render

* Update gradle

* Switched testServer to use blob

* RoomsListHeader search fixed

* Runs loadMessagesForRoom only if room has at least 20 rows

* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android

* - Animations disabled
- CircleCI set

* Tests updated

* "eventType argument is required" fix

* Switch push notification lib (#346)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->

* Allow x-instance-id and X-Instance-ID header (#354)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.

* Image upload improvements (#368)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)

* [NEW] Room Loading(#372)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->

* [FIX] Empty room name for livechat (#375)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320 
Closes #209 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->

* [NEW] Reply preview (#374)

* Updated to React Native 0.56

* Reply Preview

* [FIX] Close websocket (#379)

* Fixed a bug when closing websocket

* removeListener fixed

* [I18N] Russian translation (#381)

[I18N] Russian translation file

* [NEW] Icon (#383)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)

* [FIX] Android 8 notifications (#382)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->

* Added CocoaPods to manage react-native-image-crop-picker (#373)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.

* Added single-server to readme (#390)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386 
Closes #295 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->

* Improve RoomsList render time (#384)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388

* [NEW] Empty room background (#412)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)

* Add roadmap (#406)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->

* [NEW] Onboarding (#407)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)

* [NEW] Updated Logo on Splash screen (#409)

<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399 

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)

* [FIX] Only single attachment rendered (#417)

* [NEW] Rooms list layout (#413)

* RoomsListView layout

* Rooms list layout

* Sort component

* Header icons

* Default header colors

* Add server dropdown

* Close sort dropdown if server dropdown will open

* UserItem

* Room type icon

* Search working

* Tests updated

* Android layout

* Using realm queries instead of array iterates

* Animation duration

* Fixed render bug

* [NEW] Create channel layout (#420)

* RoomsListView layout

* Rooms list layout

* Sort component

* Header icons

* Default header colors

* Add server dropdown

* Close sort dropdown if server dropdown will open

* UserItem

* Room type icon

* Search working

* Tests updated

* Android layout

* Using realm queries instead of array iterates

* Animation duration

* Fixed render bug

* - NewMessageView
- backButtonTitle always empty
- SearchBox created

* New create channel layout

* Search refactored

* loginSuccess dismiss modal

* Tests working

* [FIX] Open unsupported videos on browser (#422)

* 1.1

* Sort/group rooms local only (#425)

* Update android api from ci

* Sort local only

* [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

* [NEW] Experimental Icon (#430)

* [NEW] Message layout (#426)

* message container/component

* Separator component

* Reply

* Url

* tests updated

* Minor changes

* Audio component

* Broadcast button

* Minor touches

* Reply preview

* Edited

* Minor bug fixes

* - Update roadmap
- Bump version to 1.2

* Onboarding styles fix

* [FIX] Drawer navigation won't refresh chats (#432)

* Avoid errors on Audio/Image/Video (#443)

* Bump version to 1.2.1 (#444)

* Stop supporting Android 4.4 and lower (#447)

* Several fixes for 1.2.1 (#448)

* Fix user.roles

* Better onLongPress handle on messages

* Indicator position

* Fix role undefined in system messages

* Add baseUrl in case of file attachments

* Join room fixed

* RoomView params

* Broadcast fixes

* Add server layout changes

* Use native images

* Subscribe to not joined channels

* Fix alerts without i18n

* Tests updated

* Bump version to 1.2.2 (#449)

* [NEW] Use community JSC for Android (#450)

* [NEW] Use community JSC for Android

* Quick fix on unread chats

* [NEW] Show app version (#454)

* [NEW] Portuguese translation (#452)

* [NEW] Portuguese translation

* Remove servers from sidebar

* Update dependencies (#431)

* Update dependencies

* Lint and test

* Added react-native fork

* rn 57

* Lint and tests updated

* Update xcode on circleci

* Use legacy build system

* Update tests

* Use inline requires (#459)

* Update dependencies

* Lint and test

* Added react-native fork

* rn 57

* Lint and tests updated

* Update xcode on circleci

* Use legacy build system

* Update tests

* Inline requires

* Fix eslint and remove temp gradle

* Unnecessary renders

* Update isNotch and Readme

* Tests updated

* Bump version to 1.3.0 (#461)

* Better touch handling on rooms list (#462)

* Use react-native-gesture-handler at RoomItem

* Fixed info message author

* Edit message render improvement

* Fix ws to http replace

* Bump version to 1.3.1 (#463)

* Composer layout tweaked (#464)

* Composer layout tweaked

* Fix localization error

* Bump version to 1.3.2

* [FIX] Handle deleted messages (#466)

* [FIX] Handle deleted messages

* Fix rest error

* Fix some connection issues

* [FIX] Search rooms (#468)

* Bump version to 1.3.3 (#469)

* Connecting to DDP badge (#471)

* Display custom fields on user info (#476)

* Render custom fields on user info

* renderCustomFields fix

* Display custom fields in user info

* Fix lint error

* [FIX] DDP badge wasn't hiding on fast connections (#477)

* Use Rocket.Chat JS SDK (#481)

* JS SDK

* API working

* Multiple servers

* Bump version to 1.4.0 (#482)

* [FIX] 2FA and LDAP (#488)

* [FIX] Unread rooms group order (#487)

* Use grouping setting on temp messages (#486)

* [FIX] Delete room error (#485)

* Rename to Rocket.Chat Experimental (#483)

* Update dependencies (#484)

* Bump version to 1.4.0 (#482)

* test

* one more test

* Fix build

* Regression: Wait for unmount to delete database after logout (#489)

* Bump version to 1.4.1 (#490)

* Regression: Crash on Android search (#492)

* Bump version to 1.4.2 (#493)

* Update Rocket.Chat.js.SDK (#494)

* Bump version to v1.4.3 (#495)

* [FIX] OAuth (#496)

* Smaller header icons inside the room (#499)

* [FIX] Logout (#497)

* [FIX] Logout

* Removed realm instances on rooms list

* Bump version to 1.4.4 (#498)

* Update navigation library (#501)

* v2

* Working on Android 0.57.3

* Drawer working

* Removing v1 navigator

* - Splash screen
- Icons changed

* Deeplink

* Remove EventEmitter from CreateChannelView

* Android search

* Android notifications

* OAuth

* Fix search props

* Lint and tests fixed

* Fix android build

* Improvements on iPhone X* usage

* Fix detox

* Fix android build

* Room.f added to RoomView.shouldComponentUpdate

* Animations on RoomsListView and RoomView

* Fix topbar buttons on Android

* Bump version to 1.5.0 (#503)

* Check $FABRIC_KEY availability in CircleCI (#506)

* Check $FABRIC_KEY in CircleCI

* Remove config scripts

* Check $FABRIC_KEY availability in CircleCI for iOS (#507)

* [I18n] Add Simplified Chinese(zh-CN) locale (#505)

* [FIX] iOS pop gesture not working properly (#509)

* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)

* [FIX] Messages not being loaded properly (#513)

* Fetch avatar initials from server (#512)

* Fix iOS pop gesture and open sidemenu gesture (#511)

* Bump version to 1.5.1 (#516)

* [NEW] Room header layout (#521)

* Clear iOS notification on resume/open (#520)

* [FIX] Flashing avatars on Android after #512 (#519)

* [FIX] App connects to previous server instead of the recent added (#518)

* [FIX] Room view header crashes when destructuring reducer (#523)

* [FIX] Dismiss keyboard on room close (#530)

* [FIX] Composer composer's send icon slowness (#528)

* [WIP] New Authentication layout (#536)

New Authentication layout

* Regression: Resend messages with error (#532)

* DDP Connection badge animation changed (#533)

* [FIX] Upload buttons on Android (#541)

* Bump version to 1.6.0 (#543)

* I18n: Add missing translation of simplified Chinese (#539)

* Update dependencies (#544)

* AndroidManifest changes

* Regression: Deep linking stopped working after react-native-navigation update (#549)

* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)

* [FIX] Android stuck on splash screen after hardware button is pressed

* Fix empty user at asyncstorage

* Remove unused subscribe

* [FIX] x-instance-id header prop is case insensitive (#551)

* Bump version to 1.6.1 (#553)

* [FIX] x-instance-id header prop is case insensitive

* Use Rest API calls (#558)

* Chats: Don't show group header if none of the filters is selected (#560)

* [CHORE] Update Xcode image version on CircleCI (#561)

* Bump version to 1.7.0 (#562)

* [FIX] Load messages on notification tap (#564)

* Use Rest API pt 2 (#568)

* Room files

* Pinned messages

* Starred messages

* Mentioned messages

* Search messages

* Bug fixes

* Profile

* Livechat

* Block/unblock user

* Erase room

* Archive room

* Remove unused method

* Bug fix

* [CHORE] Add hold step on CircleCI before TestFlight (#572)

* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)

* Bump version to 1.7.1 (#574)

* Unnecessary re-renders removed (#570)

* shouldComponentUpdate

* Rooms list shouldcomponentupdate

* RoomView shouldComponentUpdate

* Messagebox and Message shouldComponentUpdate

* EmojiPicker shouldComponentUpdate

* RoomActions shouldComponentUpdate

* Room info shouldComponentUpdate

* Update RNN

* Use only one Flatlist if none group filter is selected

* Update fix

* shouldComponentUpdate

* Bug fixes

* ListView changes

* Bug fix

* render list bug fix

* Changes on public channels

* - RoomView saga leak removed
- Join room e2e tests added

* Rest versions

* Method call versions

* Min RocketChat version alert

* Update dependencies (#587)

* [FIX] Better message actions (#567)

* [FIX] Back button press on message actions (#592)

* Bump version to 1.8.0 (#595)

* [FIX] LDAP login (#596)

* Create class to manage navigation (#594)

* Add Navigation class

* Place Drawer.js logic inside of Navigation

* Load less views at startup

* [FIX] v1.8.0 (#599)

* Downgrade react-native-fast-image

* Update iOS permission usage descriptions

* [FIX] Delete upload item

* Update JS SDK version (#602)

* Add Icons class (#611)

Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517

* Updating room indicator (#609)

Shows "Updating..." when requesting rooms from Rest API.

* [FIX] L…
  • Loading branch information
Show file tree
Hide file tree
Showing 55 changed files with 2,230 additions and 2,572 deletions.
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -144,12 +144,13 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode VERSIONCODE as Integer
versionName "4.12.0"
versionName "4.12.1"
vectorDrawables.useSupportLibrary = true
if (isPlay) {
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60" // See note below!
}
resValue "string", "rn_config_reader_custom_package", "chat.rocket.reactnative"
}

signingConfigs {
Expand Down Expand Up @@ -198,7 +199,6 @@ android {
applicationId "chat.rocket.android"
dimension = "type"
buildConfigField "boolean", "FDROID_BUILD", "true"
resValue "string", "rn_config_reader_custom_package", "chat.rocket.reactnative"
}
play {
dimension = "type"
Expand Down
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ buildscript {
supportLibVersion = "28.0.0"
libre_build = !(isPlay.toBoolean())
jitsi_url = isPlay ? "https://github.com/RocketChat/jitsi-maven-repository/raw/master/releases" : "https://github.com/RocketChat/jitsi-maven-repository/raw/libre/releases"
jitsi_version = isPlay ? "+" : "2.10.0-libre"
jitsi_version = isPlay ? "2.10.2-rc" : "2.10.0-libre"
}

repositories {
Expand Down
5 changes: 2 additions & 3 deletions app/containers/message/Thread.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,10 @@ const Thread = React.memo(({
}

const {
getBadgeColor, toggleFollowThread, user, replies
threadBadgeColor, toggleFollowThread, user, replies
} = useContext(MessageContext);
const time = formatDateThreads(tlm);
const buttonText = formatMessageCount(tcount, THREAD);
const badgeColor = getBadgeColor?.(id);
const isFollowing = replies?.find(u => u === user.id);
return (
<View style={styles.buttonContainer}>
Expand All @@ -35,7 +34,7 @@ const Thread = React.memo(({
<Text style={[styles.buttonText, { color: themes[theme].buttonText }]}>{buttonText}</Text>
</View>
<Text style={[styles.time, { color: themes[theme].auxiliaryText }]}>{time}</Text>
{badgeColor ? <View style={[styles.threadBadge, { backgroundColor: badgeColor }]} /> : null}
{threadBadgeColor ? <View style={[styles.threadBadge, { backgroundColor: threadBadgeColor }]} /> : null}
<Touchable onPress={() => toggleFollowThread(isFollowing, id)}>
<CustomIcon
name={isFollowing ? 'notification' : 'notification-disabled'}
Expand Down
11 changes: 7 additions & 4 deletions app/containers/message/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class MessageContainer extends React.Component {
callJitsi: PropTypes.func,
blockAction: PropTypes.func,
theme: PropTypes.string,
getBadgeColor: PropTypes.func,
threadBadgeColor: PropTypes.string,
toggleFollowThread: PropTypes.func
}

Expand Down Expand Up @@ -84,10 +84,13 @@ class MessageContainer extends React.Component {
}

shouldComponentUpdate(nextProps) {
const { theme } = this.props;
const { theme, threadBadgeColor } = this.props;
if (nextProps.theme !== theme) {
return true;
}
if (nextProps.threadBadgeColor !== threadBadgeColor) {
return true;
}
return false;
}

Expand Down Expand Up @@ -244,7 +247,7 @@ class MessageContainer extends React.Component {

render() {
const {
item, user, style, archived, baseUrl, useRealName, broadcast, fetchThreadName, showAttachment, timeFormat, isReadReceiptEnabled, autoTranslateRoom, autoTranslateLanguage, navToRoomInfo, getCustomEmoji, isThreadRoom, callJitsi, blockAction, rid, theme, getBadgeColor, toggleFollowThread
item, user, style, archived, baseUrl, useRealName, broadcast, fetchThreadName, showAttachment, timeFormat, isReadReceiptEnabled, autoTranslateRoom, autoTranslateLanguage, navToRoomInfo, getCustomEmoji, isThreadRoom, callJitsi, blockAction, rid, theme, threadBadgeColor, toggleFollowThread
} = this.props;
const {
id, msg, ts, attachments, urls, reactions, t, avatar, emoji, u, alias, editedBy, role, drid, dcount, dlm, tmid, tcount, tlm, tmsg, mentions, channels, unread, blocks, autoTranslate: autoTranslateMessage, replies
Expand All @@ -271,7 +274,7 @@ class MessageContainer extends React.Component {
onEncryptedPress: this.onEncryptedPress,
onDiscussionPress: this.onDiscussionPress,
onReactionLongPress: this.onReactionLongPress,
getBadgeColor,
threadBadgeColor,
toggleFollowThread,
replies
}}
Expand Down
37 changes: 30 additions & 7 deletions app/i18n/locales/de.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ export default {
alerts: 'Benachrichtigungen',
All_users_in_the_channel_can_write_new_messages: 'Alle Benutzer im Kanal können neue Nachrichten schreiben',
A_meaningful_name_for_the_discussion_room: 'Ein aussagekräftiger Name für den Diskussionsraum',
All: 'Alles',
All: 'alle',
All_Messages: 'Alle Nachrichten',
Allow_Reactions: 'Reaktionen zulassen',
Alphabetical: 'Alphabetisch',
Expand Down Expand Up @@ -183,8 +183,8 @@ export default {
deleting_room: 'lösche Raum',
description: 'Beschreibung',
Description: 'Beschreibung',
DESKTOP_OPTIONS: 'DESKTOP-EINSTELLUNGEN',
DESKTOP_NOTIFICATIONS: 'DESKTOP-BENACHRICHTIGUNGEN',
Desktop_Options: 'Desktop-Einstellungen',
Desktop_Notifications: 'Desktop-Benachrichtigungen',
Directory: 'Verzeichnis',
Direct_Messages: 'Direkte Nachrichten',
Disable_notifications: 'Benachrichtigungen deaktiveren',
Expand All @@ -196,8 +196,9 @@ export default {
Do_you_have_an_account: 'Du hast schon ein Konto?',
Do_you_have_a_certificate: 'Hast du ein Zertifikat?',
Do_you_really_want_to_key_this_room_question_mark: 'Möchtest du diesen Raum wirklich {{key}}?',
E2E_Encryption: 'E2E-Verschlüsselung',
E2E_How_It_Works_info1: 'Du kannst nun verschlüsselte private Gruppen und Direktnachrichten versenden. Du kannst außerdem deine bestehenden privaten Gruppen und Direktnachrichten auf Verschlüsselung umstellen.',
E2E_How_It_Works_info2: 'Dies ist *Ende-zu-Ende-Verschlüsselung*, daher wird der Key um die Nachrichten zu ver-/entschlüsseln nicht auf dem Server gespeichert. Aus diesem Grund musst du dieses Passwort an einem sicheren Ort speichern, so dass du später bei Bedarf darauf zugreifen kannst.',
E2E_How_It_Works_info2: 'Dies ist *Ende-zu-Ende-Verschlüsselung*, daher wird der Schlüssel um die Nachrichten zu ver-/entschlüsseln nicht auf dem Server gespeichert. Aus diesem Grund musst du dieses Passwort an einem sicheren Ort speichern, so dass du später bei Bedarf darauf zugreifen kannst.',
E2E_How_It_Works_info3: 'Wenn du fortfährst, wird automatisch ein ein E2E-Passwort erzeugt.',
E2E_How_It_Works_info4: 'Du kannst außerdem jederzeit, in jedem Browser, in dem du das bestehende Passwort eingegeben hast, ein neues Passwort setzen.',
edit: 'bearbeiten',
Expand Down Expand Up @@ -395,7 +396,7 @@ export default {
Profile: 'Profil',
Public_Channel: 'Öffentlicher Kanal',
Public: 'Öffentlich',
PUSH_NOTIFICATIONS: 'PUSH-BENACHRICHTIGUNGEN',
Push_Notifications: 'Push-Benachrichtigungen',
Push_Notifications_Alert_Info: 'Diese Benachrichtigungen werden dir zugestellt, wenn die App nicht geöffnet ist.',
Desktop_Alert_info: 'Diese Benachrichtigungen werden auf dem Desktop angezeigt',
Quote: 'Zitat',
Expand Down Expand Up @@ -435,6 +436,7 @@ export default {
Roles: 'Rollen',
Room_actions: 'Raumaktionen',
Room_changed_announcement: 'Raumansage geändert in: {{announcement}} von {{userBy}}',
Room_changed_avatar: 'Raum-Avatar durch Nutzer {{userBy}} gändert',
Room_changed_description: 'Raumbeschreibung geändert in: {{description}} von {{userBy}}',
Room_changed_privacy: 'Raumtyp geändert in: {{type}} von {{userBy}}',
Room_changed_topic: 'Raumthema geändert in: {{topic}} von {{userBy}}',
Expand All @@ -461,6 +463,7 @@ export default {
Search_global_users: 'Suche nach globalen Benutzern',
Search_global_users_description: 'Wenn aktiviert, kannst du nach Benutzern von anderen Unternehmen oder Servern suchen.',
Seconds: '{{second}} Sekunden',
Security_and_privacy: 'Sicherheit und Datenschutz',
Select_Avatar: 'Wähle einen Avatar aus',
Select_Server: 'Server auswählen',
Select_Users: 'Benutzer auswählen',
Expand Down Expand Up @@ -539,7 +542,7 @@ export default {
unmuted: 'Stummschaltung aufgehoben',
Unpin: 'Nachricht nicht mehr anheften',
unread_messages: 'ungelesene',
Unread: 'Ungelesen',
Unread: 'ungelesene',
Unread_on_top: 'Ungelesene oben',
Unstar: 'von Favoriten entfernen',
Updating: 'Aktualisierung …',
Expand Down Expand Up @@ -657,5 +660,25 @@ export default {
You_will_be_logged_out_from_other_locations: 'Du wirst auf anderen Geräten abgemeldet.',
Logged_out_of_other_clients_successfully: 'Erfolgreich von anderen Geräten abgemeldet.',
Logout_failed: 'Abmeldung fehlgeschlagen!',
Log_analytics_events: 'Analyse-Ereignisse loggen'
Log_analytics_events: 'Analyse-Ereignisse loggen',
E2E_encryption_change_password_title: 'Verschlüsselungs-Passwort ändern',
E2E_encryption_change_password_description: 'Du kannst nun verschlüsselte private Gruppen und Direktnachrichten versenden. Du kannst außerdem deine bestehenden privaten Gruppen und Direktnachrichten auf Verschlüsselung umstellen. \nDies ist Ende-zu-Ende-Verschlüsselung, daher wird der Schlüssel um die Nachrichten zu ver-/entschlüsseln nicht auf dem Server gespeichert. Aus diesem Grund musst du dieses Passwort an einem sicheren Ort speichern, du wirst es auf anderen Geräten benötigen auf denen du E2E-Verschlüsselung nutzen möchtest.',
E2E_encryption_change_password_error: 'Fehler beim Ändern des E2E-Passworts!',
E2E_encryption_change_password_success: 'E2E-Passwort erfolgreich geändert!',
E2E_encryption_change_password_message: 'Stelle sicher, dass du es noch an einer anderen Stelle gesichert hasst.',
E2E_encryption_change_password_confirmation: 'Ja, ändern',
E2E_encryption_reset_title: 'E2E-Schlüssel zurücksetzen',
E2E_encryption_reset_description: 'Diese Option wird deinen aktuellen E2E-Schlüssel entfernen und dich abmelden. \nWenn du dich wieder anmeldest, wird Rocket.Chat einen neuen Schlüssel erzeugen und deinen Zugang zu allen Kanälen mit einer oder mehreren anwesenden Personen wieder herstellen. \nAufgrund der Funktionsweise von E2E-Verschlüsselung, kann Rocket.Chat nicht deinen Zugang zu Kanälen wieder herstellen, in denen keine andere Person anwesend ist.',
E2E_encryption_reset_button: 'E2E-Schlüssel zurücksetzen',
E2E_encryption_reset_error: 'Fehler beim Zurücksetzen des E2E-Schlüssels!',
E2E_encryption_reset_message: 'Du wirst abgemeldet.',
E2E_encryption_reset_confirmation: 'Ja, zurücksetzen',
Following: 'verfolgte',
Threads_displaying_all: 'zeige alle',
Threads_displaying_following: 'zeige gefolgte',
Threads_displaying_unread: 'zeige ungelesene',
No_threads: 'Es gibt keine Threads',
No_threads_following: 'Du folgst keinen Threads',
No_threads_unread: 'Es gibt keine ungelesenen Threads',
Messagebox_Send_to_channel: 'an Kanal senden'
};
4 changes: 0 additions & 4 deletions app/lib/database/model/User.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,5 @@ export default class User extends Model {

@field('avatar_etag') avatarETag;

@field('login_email_password') loginEmailPassword;

@field('show_message_in_main_thread') showMessageInMainThread;

@json('roles', sanitizer) roles;
}
4 changes: 4 additions & 0 deletions app/lib/database/model/servers/User.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,8 @@ export default class User extends Model {
@json('roles', sanitizer) roles;

@field('avatar_etag') avatarETag;

@field('login_email_password') loginEmailPassword;

@field('show_message_in_main_thread') showMessageInMainThread;
}
2 changes: 1 addition & 1 deletion app/lib/methods/subscriptions/rooms.js
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ export default function subscribeRooms() {
notification.avatar = RocketChat.getRoomAvatar(room);

// If it's from a encrypted room
if (message.t === E2E_MESSAGE_TYPE) {
if (message?.t === E2E_MESSAGE_TYPE) {
// Decrypt this message content
const { msg } = await Encryption.decryptMessage({ ...message, rid });
// If it's a direct the content is the message decrypted
Expand Down
3 changes: 3 additions & 0 deletions app/views/NewServerView/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,9 @@ class NewServerView extends React.Component {

handleNewServerEvent = (event) => {
let { server } = event;
if (!server) {
return;
}
const { connectServer } = this.props;
this.setState({ text: server });
server = this.completeUrl(server);
Expand Down
6 changes: 5 additions & 1 deletion app/views/RoomView/Header/Header.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ import Icon from './Icon';
import { themes } from '../../../constants/colors';
import Markdown from '../../../containers/markdown';

const HIT_SLOP = {
top: 5, right: 5, bottom: 5, left: 5
};
const TITLE_SIZE = 16;
const styles = StyleSheet.create({
container: {
Expand Down Expand Up @@ -140,7 +143,7 @@ const Header = React.memo(({
roomUserId={roomUserId}
theme={theme}
/>
<Text style={[styles.subtitle, { color: themes[theme].auxiliaryText }]}>{parentTitle}</Text>
<Text style={[styles.subtitle, { color: themes[theme].auxiliaryText }]} numberOfLines={1}>{parentTitle}</Text>
</View>
);
}
Expand All @@ -152,6 +155,7 @@ const Header = React.memo(({
onPress={onPress}
style={styles.container}
disabled={tmid}
hitSlop={HIT_SLOP}
>
<View style={styles.titleContainer}>
{tmid ? null : <Icon type={prid ? 'discussion' : type} status={status} roomUserId={roomUserId} theme={theme} />}
Expand Down
6 changes: 5 additions & 1 deletion app/views/RoomView/List.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class List extends React.Component {
loading: PropTypes.bool,
listRef: PropTypes.func,
hideSystemMessages: PropTypes.array,
tunread: PropTypes.array,
navigation: PropTypes.object,
showMessageInMainThread: PropTypes.bool
};
Expand Down Expand Up @@ -76,7 +77,7 @@ class List extends React.Component {

shouldComponentUpdate(nextProps, nextState) {
const { loading, end, refreshing } = this.state;
const { hideSystemMessages, theme } = this.props;
const { hideSystemMessages, theme, tunread } = this.props;
if (theme !== nextProps.theme) {
return true;
}
Expand All @@ -92,6 +93,9 @@ class List extends React.Component {
if (!isEqual(hideSystemMessages, nextProps.hideSystemMessages)) {
return true;
}
if (!isEqual(tunread, nextProps.tunread)) {
return true;
}
return false;
}

Expand Down
8 changes: 4 additions & 4 deletions app/views/RoomView/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ const stateAttrsUpdate = [
'readOnly',
'member'
];
const roomAttrsUpdate = ['f', 'ro', 'blocked', 'blocker', 'archived', 'muted', 'jitsiTimeout', 'announcement', 'sysMes', 'topic', 'name', 'fname', 'roles', 'bannerClosed', 'visitor'];
const roomAttrsUpdate = ['f', 'ro', 'blocked', 'blocker', 'archived', 'muted', 'tunread', 'jitsiTimeout', 'announcement', 'sysMes', 'topic', 'name', 'fname', 'roles', 'bannerClosed', 'visitor'];

class RoomView extends React.Component {
static propTypes = {
Expand Down Expand Up @@ -318,7 +318,7 @@ class RoomView extends React.Component {
if (!room?.rid) {
return;
}
const headerTitlePosition = getHeaderTitlePosition({ insets, numIconsRight: 2 });
const headerTitlePosition = getHeaderTitlePosition({ insets, numIconsRight: tmid ? 1 : 2 });
navigation.setOptions({
headerShown: true,
headerTitleAlign: 'left',
Expand Down Expand Up @@ -909,7 +909,7 @@ class RoomView extends React.Component {
getCustomEmoji={this.getCustomEmoji}
callJitsi={this.callJitsi}
blockAction={this.blockAction}
getBadgeColor={this.getBadgeColor}
threadBadgeColor={this.getBadgeColor(item?.id)}
toggleFollowThread={this.toggleFollowThread}
/>
);
Expand Down Expand Up @@ -1053,7 +1053,7 @@ class RoomView extends React.Component {
t={t}
tmid={this.tmid}
theme={theme}
room={room}
tunread={room?.tunread}
renderRow={this.renderItem}
loading={loading}
navigation={navigation}
Expand Down
29 changes: 19 additions & 10 deletions app/views/RoomsListView/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ class RoomsListView extends React.Component {
searching: false,
search: [],
loading: true,
chatsOrder: [],
chatsUpdate: [],
chats: [],
item: {}
};
Expand Down Expand Up @@ -224,15 +224,15 @@ class RoomsListView extends React.Component {
}

shouldComponentUpdate(nextProps, nextState) {
const { chatsOrder, searching, item } = this.state;
const { chatsUpdate, searching, item } = this.state;
// eslint-disable-next-line react/destructuring-assignment
const propsUpdated = shouldUpdateProps.some(key => nextProps[key] !== this.props[key]);
if (propsUpdated) {
return true;
}

// Compare changes only once
const chatsNotEqual = !isEqual(nextState.chatsOrder, chatsOrder);
const chatsNotEqual = !isEqual(nextState.chatsUpdate, chatsUpdate);

// If they aren't equal, set to update if focused
if (chatsNotEqual) {
Expand Down Expand Up @@ -437,7 +437,7 @@ class RoomsListView extends React.Component {
observable = await db.collections
.get('subscriptions')
.query(...defaultWhereClause)
.observe();
.observeWithColumns(['alert']);

// When we're NOT grouping
} else {
Expand All @@ -456,11 +456,20 @@ class RoomsListView extends React.Component {
let tempChats = [];
let chats = data;

/**
* We trigger re-render only when chats order changes
* RoomItem handles its own re-render
*/
const chatsOrder = data.map(item => item.rid);
let chatsUpdate = [];
if (showUnread) {
/**
* If unread on top, we trigger re-render based on order changes and sub.alert
* RoomItem handles its own re-render
*/
chatsUpdate = data.map(item => ({ rid: item.rid, alert: item.alert }));
} else {
/**
* Otherwise, we trigger re-render only when chats order changes
* RoomItem handles its own re-render
*/
chatsUpdate = data.map(item => item.rid);
}

const isOmnichannelAgent = user?.roles?.includes('livechat-agent');
if (isOmnichannelAgent) {
Expand Down Expand Up @@ -501,7 +510,7 @@ class RoomsListView extends React.Component {

this.internalSetState({
chats: tempChats,
chatsOrder,
chatsUpdate,
loading: false
});
});
Expand Down
2 changes: 1 addition & 1 deletion app/views/UserPreferencesView/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class UserPreferencesView extends React.Component {
<List.Section>
<List.Separator />
<List.Item
title={I18n.t('Notifications')}
title='Notifications'
onPress={() => this.navigateToScreen('UserNotificationPrefView')}
showActionIndicator
testID='preferences-view-notifications'
Expand Down
Loading

0 comments on commit 5cc0856

Please sign in to comment.