Commit Graph

97 Commits

Author SHA1 Message Date
Djorkaeff Alexandre 3c9017a62d
[NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model

* Install react-native-simple-crypto

* Install bytebuffer

* Add translations

* CreateChannel Encrypted toggle

* Request E2E_Enabled setting

* Add some E2E API methods

* POC E2E Encryption

* Garbage remove

* Remove keys cleaner

* Android cast JWK -> PKCS1

* Initialize E2E when Login Success

* Add some translations

* Add e2e property to Message model

* Send Encrypted messages

* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys

* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys

* Create an encrypted channel

* Fix app crashing on RoomsList

* Create room key

* Set Room E2E Key (Android)

* Edit room encrypted

* Show encrypted icon on messages

* logEvents

* Decrypt pending subscriptions & messages

* Handle user cancel e2e password entry

* E2ESavePasswordView

* Update Snapshot

* Add encrypted props to message on Send

* Thread messages encryption

* E2E -> Encryption

* Share Extension: Share encrypted text

* (POC) Search messages on Encrypted room

* Provide room key to new users

* Request roomKey on stream-notify-room-users

* Add e2eKeyId to Room Model

* (WIP) E2E Encryption Screens

* Remove encryption subscription file

* Move E2E_Enable to Server Model

* Encryption List Banner

* Move Encryption init to Sagas

* Show banner only when enabled

* Use RocketChat/react-native-simple-crypto

* Search on WM only when is an Encrypted channel

* (WIP) Encryption Banner

* Encryption banner

* Patch -> Fork

* Improve send encrypted message

* Update simple-crypto

* Not decrypt already decrypted messages

* Add comments

* Change eslint disable to inline

* Improve code

* Remove comment

* Some fixes

* (WIP) Encryption Screens

* Improve sub find

* Resend an encrypted message

* Fix comment

* Code improvements

* Hide e2e buttons on features if it is not enabled

* InApp notifications of a encrypted room

* Encryption stop logic

* Edit encrypted message

* DB batch on decryptPending

* Encryption ready client

* Comments

* Handle getRoomInstance errors

* Multiple messages decrypt

* Remove unnecessary try/catch

* Fix decrypt all messages history

* Just add a questionmark

* Fix some subscriptions missing decrypt

* Disable request key logic

* Fix unicode emojis

* Fix e2ekey request

* roomId -> subscription

* Decrypt subscription after merge

* E2ERoom -> EncryptionRoom

* Fix infinite loading

* Handle import key errors

* Handle request key errors

* Move e2eRequestRoomKey to Rocket.Chat

* WIP handshake when key should be requested

* Add search messages explanation

* Remove some TODO and update comments

* Improvements

* Dont show message hash to user

* Handle key request & prevent multiple calls

* Request E2EKey on decryptSubscription that doesn't exists on database yet

* Insert decrypted subscription

* Fix crash after login

* Decrypt sub when receive the key

* Decrypt pending messages of a room

* Encrypted as a switch

* Buffer to Base64 URI Safe

* Add a relevant comment

* Prevent import key without a privateKey

* Prevent create a new instance when client is not ready

* Update simple-crypto & remove replace trick

* More comments

* Remove useless comment

* Remove useless try/catch

* I18n all E2E screens

* E2ESavePassword -> E2ESaveYourPassword

* Prevent multiple views on message when is not encrypted

* Fix encryption toggle not working sometimes

* follow some suggestions

* dont rotate icons

* remove unnecessary condition

* remove unreachable event

* create channel comment

* disable no-bitwise rule for entire file

* loadKeys -> persistKeys

* getMasterKey -> generateMasterKey

* explicit difference between E2EKey & e2eKeyId

* roomId -> rid

* group columns

* Remove server selector

* missing log events

* remove comment

* use stored public key

* update simple-crypto & remove base64-js patch

* add some logs

* remove unreachable condition

* log errors

* handle errors on provide key directly on subscription

* Downgrade RocketChat/react-native-simple-crypto

* improve get room instance

* migration of older apps

* check encrypted status before send a message

* wait client ready

* use our own base64-js

* add more jest tests

* explain return

* remove unncessary stop

* thrown error to caller

* remove superfluous checks

* use Encryption property

* change ready state logic

* ready -> establishing

* encryption.room -> encryptionRoom

* EncryptionRoom -> Room

* add documentation

* wait establishing before provide a room key

* remove superfluous condition

* improve error handling logic

* fallback e2ekey set

* remove no longer necessary check

* remove e.g.

* improve getRoomInstance

* import from index

* use batch

* fix a comment

* decrypt tmsg

* dont show hash when message is encrypted

* Fix detox

* Apply suggestions from code review

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-09-11 11:31:38 -03:00
Diego Mello 34824e0765
[FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component

* Refactor RoomItem

* Fix wrong status

* Tests

* Wrapper
2020-07-31 14:06:22 -03:00
Diego Mello 54bddf035d
[IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors

* Increase letterSpacing for mentions

* Refactor

* UnreadBadge

* Add migration
2020-07-29 17:49:08 -03:00
Diego Mello 9dbe10bcf8
[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
2020-07-20 13:44:54 -03:00
Diego Mello 1cadfb3d27
[FIX] Here and all mentions shouldn't refer to users (#2137) 2020-05-20 09:53:40 -03:00
Djorkaeff Alexandre 8c5538b148
[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
2020-05-18 13:25:13 -03:00
Diego Mello ce51982bb0
Update all dependencies (#2008)
* Android RN 62

* First steps iOS

* Second step iOS

* iOS compiling

* "New" build system

* Finish iOS

* Flipper

* Update to RN 0.62.1

* expo libs

* Hermes working

* Fix lint

* Fix android build

* Patches

* Dev patches

* Patch WatermelonDB: https://github.com/Nozbe/WatermelonDB/pull/660

* Fix jitsi

* Update several minors

* Update dev minors and lint

* react-native-keyboard-input

* Few updates

* device info

* react-native-fast-image

* Navigation bar color

* react-native-picker-select

* webview

* reactotron-react-native

* Watermelondb

* RN 0.62.2

* Few updates

* Fix selection

* update gems

* remove lib

* finishing

* tests

* Use node 10

* Re-enable app bundle

* iOS build

* Update jitsi ios
2020-05-08 13:37:49 -03:00
Djorkaeff Alexandre e46ee13b38
[IMPROVEMENT] Message Touchable (#2082)
* [FIX] Avatar touchable

* [IMPROVEMENT] onLongPress on all Message Touchables

* [IMPROVEMENT] User & baseUrl on MessageContext

* [FIX] Context Access

* [FIX] BaseURL

* Fix User

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-04-30 17:05:59 -03:00
Djorkaeff Alexandre 2ea6d34fd1
[FIX] Recorded audio on Android doesn't play on iOS (#2073)
* react-native-video -> expo-av

* remove react-native-video

* Add audio mode

* update mocks

* [FIX] Loading bigger than play/pause

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-04-30 15:54:27 -03:00
Djorkaeff Alexandre ee0e7bb9d1
[FIX] Investigate app losing connection issues (#1890)
* [WIP] Reopen without timeOut & ping with 5 sec & Fix Unsubscribe

* [FIX] Remove duplicated close

* [FIX] Use no-dist lib

* [FIX] Try minor fix

* [FIX] Try reopen connection when app was put on foreground

* [FIX] Remove timeout

* [FIX] Build

* [FIX] Patch

* [FIX] Snapshot

* [IMPROVEMENT] Decrease time to reopen

* [FIX] Some fixes

* [FIX] Update sdk version

* [FIX] Subscribe Room Once

* [CHORE] Update sdk

* [FIX] Subscribe Room

* [FIX] Try to resend missed subs

* [FIX] Users never show status when start app without network

* [FIX] Subscribe to room

* [FIX] Multiple servers

* [CHORE] Update SDK

* [FIX] Don't duplicate streams on subscribeAll

* [FIX] Server version when start the app offline

* [FIX] Server version cached

* [CHORE] Remove unnecessary code

* [FIX] Offline server version

* [FIX] Subscribe before connect

* [FIX] Remove unncessary props

* [FIX] Update sdk

* [FIX] User status & Unsubscribe Typing

* [FIX] Typing at incorrect room

* [FIX] Multiple Servers

* [CHORE] Update SDK

* [REVERT] Undo some changes on SDK

* [CHORE] Update sdk to prevent incorrect subscribes

* [FIX] Prevent no reconnect

* [FIX] Remove close on open

* [FIX] Clear typing when disconnect/connect to SDK

* [CHORE] Update SDK

* [CHORE] Update SDK

* Update SDK

* fix merge develop

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-04-03 15:03:53 -03:00
Ezequiel de Oliveira 6a36abadbf
[FIX] Emojis transparent on android (#1881)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-03-17 17:42:02 -03:00
devyaniChoubey 3997538eb0
[FIX] Incorrect size params to avatar endpoint (#1875)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-03-17 16:55:32 -03:00
devyaniChoubey d11277e691
[IMPROVEMENT] Make username clickable on message (#1618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-03-17 13:14:54 -03:00
Diego Mello ab0736233d
[FIX] Storybook snapshots (#1831)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
2020-03-05 11:40:32 -03:00
Sarthak Pranesh 74cc75a928
[TESTS] Markdown added to Storybook (#1812)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-03-04 10:57:07 -03:00
Diego Mello 005e1ac46b
[FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
Diego Mello 39d9a00933
[IMPROVEMENT] Markdown perf (#1796) 2020-02-28 13:18:03 -03:00
Djorkaeff Alexandre a9e61c5d8b
[FIX] HTTP Basic Auth (#1753)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-02-20 09:58:13 -03:00
Sarthak Pranesh 91518a1bc4
[IMPROVEMENT] Hold URL to copy (#1684) 2020-02-14 10:39:42 -03:00
Diego Mello 400d33250d
[REGRESSION] Remove @ and # from mention (#1721) 2020-02-13 21:22:53 -03:00
Djorkaeff Alexandre b87472f10b
[NEW] UiKit Beta (#1497) 2020-02-11 11:01:35 -03:00
Djorkaeff Alexandre 66d21408b6 [NEW] Image Viewer (#1479) 2019-12-18 18:13:11 -03:00
Diego Mello cf98d794fd
[FIX] Few fixes on themes (#1477) 2019-12-17 11:08:06 -03:00
Diego Mello 7df6afdcd3
[FIX] Emoji parser not working on Hermes (#1445) 2019-12-11 16:00:38 -03:00
Diego Mello 7b51df377d
[NEW] Themes (#1298) 2019-12-04 13:39:53 -03:00
Diego Mello 4bb0bfa7eb
[IMPROVEMENT] Markdown performance when identifying emoji only content (#1422) 2019-11-27 17:53:14 -03:00
Djorkaeff Alexandre a0dc2bad4a [NEW] Tablet support (#1300) 2019-11-25 17:01:17 -03:00
Diego Mello b795a2fd59
[FIX] Audio player track and thumb not rendering on Android (#1273) 2019-10-04 10:38:35 -03:00
Djorkaeff Alexandre 67fb14fa9d [FIX] Messages preview issues (#1257) 2019-10-02 09:41:51 -03:00
Djorkaeff Alexandre fdc5114a30 [FIX] Jest (#1243) 2019-09-26 15:16:50 -03:00
Diego Mello 11249f962a
Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1

* Update patch to SSL Pinning

* Revert storybook
2019-09-26 11:59:27 -03:00
Djorkaeff Alexandre 8d4d522b63 [IMPROVEMENT] Use FastImage on custom emojis (#1195)
* Use fastImage to custom emojis

* Add Text component on Paragraph render
2019-09-17 10:18:36 -03:00
Djorkaeff Alexandre 32a681036e [CHORE] Use JoyPixels (#1164)
* react-emojione -> emoji-toolkit

* Change to toUnicode()

* Fix ascii emoji on joypixels

* Revert unnecessary modify

* Fix some emojis

* Fix custom emojis (Android)

* Update Snapshot
2019-09-16 17:50:51 -03:00
Djorkaeff Alexandre c78732729d [IMPROVEMENT] Markdown refactored (#1151) 2019-08-27 09:25:38 -03:00
pranavpandey1998official 857d23ee88 [IMPROVEMENT] Tap on avatar/username/channel to show info (#1097)
* added feature to tab on mentions and avtar

* fixed lint

* removed room param from roomActionView

* removed room param from roomActionView

* Update tests
2019-08-22 15:08:07 -03:00
Diego Mello ba232547f1
[CHORE] Update to react-native 0.60.4 (#1095)
* Update to 0.59.10

* stash

* stash

* patch RN

* Try to fix openURL

* Fix compile Share Extension

* Minor fixes

* build ios

* tracking view working and added postinstall

* SafeAreaView vertical never

* tracking view patch

* Android build working

* Android notifications working

* Lint and tests

* Fix android build

* Add tools:replace="android:appComponentFactory"

* Android build

* Update vector icons

* Update webview

* Remove jsc

* Update document picker

* Firebase

* jetify on postinstall

* Patch expo-haptics

* CI

* Migrate packages manually

* Disable ci cache

* Revert "Disable ci cache"

This reverts commit 4740d86102.

* CI

* audio

* adapter

* notifications

* Try RN directly

* Fix gradle

* Revert patches

* Restore cache

* update redux and lodash

* eslint-config-airbnb@17.1.1 eslint-plugin-jsx-a11y@6.2.3

* ejson@2.2.0 react-native-webview@6.7.0 semver@6.3.0 snyk@1.210.0

* codecov@3.5.0 eslint-plugin-react@7.14.3 eslint-plugin-react-native@3.7.0 react-dom@16.8.6

* Update react-redux and remove decorators

* Update redux-saga and reactotron libs

* Husky

* Storybook libs

* react-native-webview@6.8.0 markdown-it-flowdock@0.3.8 react-native-unimodules@0.5.3

* Removed regenerator-runtime

* react-native-picker-select

* react-navigation-header-buttons

* Remove comments

* react-native-notifications

* Fix rnn android build
2019-08-07 10:51:34 -03:00
Djorkaeff Alexandre dafeb68704 [IMPROVEMENT] Change "resend" icon position (#1048) 2019-07-17 11:06:39 -03:00
IlarionHalushka 33611103f6 [FIX] Decrease bigger emoji size to 30 (#1031) 2019-07-04 13:17:57 -03:00
IlarionHalushka 013c151c10 [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message

* issue-725/add storybook for Message/Emoji

* issue-725: update storybook/Message jest snapshot

* comment storybook import

* allow spaces and line breaks in emoji only message

* merge develop

* revert unnecessary spacing
2019-06-27 13:35:45 -03:00
Diego Mello d68eb01b82
[NEW] Read receipt (#975)
* switching to ubountu

* added read Recipt functionality to the app
fix: #542

* placed the check icon on the end of timestamp

* removed linting errors

* updating snapshots

* done requested changes

* removed width scrollView

* done required changes

* fixed linting errors

* added migrations

* resolved conflicts and done requested changes

* undone uneesasary changes

* adding migrations

* done requested changes

* Add stories and fix some issues
2019-06-10 15:36:31 -03:00
Diego Mello a1b1af01c9
Update RN to 0.59.8 (#896)
* update IOS react native to 0.59.8

* update Android react native to 0.59.8

* fix eslint errors

* Android debug working

* Android build

* Fix lint

* Making jest happy

* Update CircleCI android image

* Fix android build

* Use 32 bits

* Fix iOS build

* Update detox

* Use new Xcode build system

* Use old build system

* Update realm (64 bits support)
2019-05-22 17:15:35 -03:00
Diego Mello 944e4198bb
[FIX] Message grouping not re-rendering (#911) 2019-05-21 10:32:06 -03:00
Diego Mello 60418b75a4
Message render performance (#880)
- Refactored Message component to use React.memo and re-render only what's necessary
- Added a test mode to toggle markdown parse by long press drawer (it'll be removed in the next release)
2019-05-20 17:43:50 -03:00
Diego Mello a243b1ccd7
Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages

* Update tests

* Fix quote

* Prevent from deleting thread start message when positioned inside the thread

* Remove thread listener from RightButtons

* Fix error on thread start parse

* Stop parsing threads on render

* Check replied thread only if necessary

* Fix messages don't displaying

* Fix threads e2e

* RoomsListView.updateState slice

* Stop fetching hidden messages on threads

* Set initialNumToRender to 5
2019-05-03 10:33:38 -03:00
Diego Mello 2f920c63e5
Update dependencies (#863)
* Minor updates

* Update jsc-android

* Update react-native-modal

* Minor updates

* Update react-native-fast-image

* Minor dev updates

* Few major updates

* Update react-native-keyboard-aware-scroll-view

* Update pods

* Update android-support

* Update tests
2019-04-30 18:56:41 -03:00
Diego Mello ee99001010
[FIX] Smaller thread title (#846)
* [FIX] Smaller thread title

* Remove markdown notation from thread title

* On message press debounce

* Align vertical thread title
2019-04-25 14:18:49 -03:00
Diego Mello 5744114d7d
[FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
2019-04-24 15:36:29 -03:00
Diego Mello 0266cc2e01
Room item layout (#835) 2019-04-18 17:57:35 -03:00
Diego Mello 9cf81bbab9
[NEW] Threads (#798) 2019-04-17 14:01:03 -03:00
Diego Sampaio 1d9acdb700 [NEW] Discussions (#696) 2019-04-08 09:35:28 -03:00