* chore: updating mmkv library
* feat: updating android ejson to use the getSecureKey new version
* feat: updating IOS files to use the getSecureKey new version
* feat: changing all mmkv methods to use sync calls
* feat: changing mmkv methods from Screen lock
* feat: changing all mmkv methods from login, ssl certificate and change/add server
* feat: changing all mmkv methods from login, ssl certificate and change/add server
* feat: changing all mmkv methods from logout
* feat: changing all mmkv methods from e2e
* fix: small fix at encryption and server drop down
* feat: changing all mmkv methods from set theme
* feat: changing all mmkv methods from openLink
* fix: setting up mmkv to works property on Android
* fix: fix an error to set the theme when open the app
* refactor: change the react-native branch (temporary)
* refactor: removing all `Async` from mmkv functions name
* refactor: removing await from unnecessary functions, removing console.log and update cocoapods
* refactor: removing unnecessary undefined from methods
* feat: creating a custom hook for mmkv
* refactor: changing the fetchPasscode to use the useUserPreferences hook
* refactor: changing setTheme from app/index
* refactor: small fix on setTheme
* chore: update mmkv to 0.6.11
* chore: update mmkv to 0.6.11
* chore: minor tweak
* chore: update mmkv to 0.6.12
* chore: mock NativeModules
* chore: fix test mmkv
* chore: removing custom MMKV JSI module, since is no more necessary after 0.6.11 version
* feat: removing some async calls from mmkv after update from develop
* feat: creating a function to get the initialTheme
* feat: removing unnecessary try/catch
* fix: fixing the blink white when open the app
* feat: changing useMMKVStorage to create from mmkv lib
* test: creating a mock for mmkv create function
* chore: fix errors on tablet
* minor tweak
* chore: migrate activeUsers reducer and action to TS
* chore: init types folder and set redux and BaseScreen interface
* chore: remove mapDispatchToProps to use dispatch prop and clear some types
* chore: type selectedUsers action and reducer and improvement in the code of other files
* chore: move IUser to base types
* chore: move state props to ISelectedUsersViewProps
* chore: create mocketStore
* chore: remove applyAppStateMiddleware
* test: create activeUser and selectedUser tests
* test: add more selectedUsers tests
* chore: fix action type
* chore: move types to definition folder and fix imports
* chore: remove unused const
* chore: migrate redux tests to reducer folder and add eslint jest plugin
* chore: exprot initial state and then import on tests
* chore: move interfaces to reducer and import on screen
* chore: set eslint-plugin-jest version to 24.7.0
* chore: fix IUser import
* chore: update interfaces and types names
* chore: update definitions
* chore: update IBaseScreen definitions
* chore: init reducer/app migration to ts
* chore: add tests and migrate RootEnum
* wip: migrate fixed consts to RootEnum
* chore: remove redux action inferences
* fix types
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Subscribe to Roles
* subscribe to roles-change
* add subscribe for stream-roles
* fixed subscribe roles
* Add componentDidUpdate to RoomMembersView and propType
* Update componentDidUpdate in RoomMembersView, roles reducer, getRoles method and actionType
* Minor tweaks
* Remove componentDidUpdate
* Fix add role
* Fix initialState and remove role
* Minor try/catch fix
* Fix lint
* Fix offline first
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Gerzon Z <gerzonc@icloud.com>
Co-authored-by: Gerzon Z <gerzonzcanario@gmail.com>
* [FIX] Add permissions to Redux store
* add only permissions being used in the app
* add clear permissions reducer
* call RocketChat.hasPermission from reducer
* add server version comparison on getPermissions
* refactor hasPermission function
* refactor hasPermission function
* remove uncomment code
* use Q.experimentalSortBy()
* add coerce function
* Change Rocketchat.hasPermission
* Apply on isReadOnly
* Apply to RoomInfoEditView
* Apply to RoomInfoView and RoomInfoEditView
* canAutoTranslate
* Unnecessary clear permissions
* Revert getUpdatedSince
* Naming fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Remove unnecessary class prop
* Stop rendering servers when there's only one
* Map and alloc only necessary columns from query
* Fetch servers count instead of all servers records
* Fetch only needed servers
* Separators
* Remove renderContent
* Minor fix
* Refactor query
* Smaller avatars in memory
* Fix getItemLayout
* Add topic
* Load less pods
* tests
* Import only used functions from lodash
* Fix pods
* Import only used functions from semver
* Fix media sharing
* Update pods
* Disables preview and thumb on iOS
* Update expo-video-thumbnail
* Unnecessary change
* wip: Android SSL Pinning
* Use own SSLPinningModule
* wip: Use Rocket.Chat own react-native
* wip: Fresco Images using custom OkHttpClient
* wip: react-native-webview onReceivedClientCertRequest
* feat: Save Images of a SSL Pinning protected server
* chore: SSLPinning package as a interface to iOS & Android implementations
* chore: update glide
* feat: load images under a client ssl certificate protected server
* chore: remove patch
* feat: Audio & Video under a SSL Client protected server
* fix: Unpin certificate when change server
* feat: Fast Image as a patch
* chore: update fast-image
* Fix merge
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [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>
* [IMPROVEMENT] Change server while connecting
* [FIX] Not login/reconnect to previous server
* [FIX] Abort all fetch while connecting
* [FIX] Abort sdk fetch
* [FIX] Patch-package
* Add comments
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Split get settings into two requests
* [FIX] Clear settings only when change server
* [IMPROVEMENT] Move the way to clear settings
* [REVERT] Revert some changes
* [FIX] Server Icon
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Fork selectServer and loginSuccess
* Fork tasks on login
* Refactor
* Remove room sub and requests on logout
* Comment room header disabled rule
* Check server on rooms stream
* Uncomment disabled props
* Fix updating state
* Comment last fetch user presence date
- 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)