Commit Graph

99 Commits

Author SHA1 Message Date
Djorkaeff Alexandre e2f17a5a23
[NEW] Encrypt user credentials and preferences (#2247)
* 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>
2020-08-19 14:14:22 -03:00
Diego Mello ea287980d9
Bump version to 4.11.0 (#2392) 2020-08-11 09:26:05 -03:00
Djorkaeff Alexandre fa6897f339
Bump version to 4.10.0 (#2305) 2020-07-16 17:06:37 -03:00
Diego Mello 7c52e6eada
Bump version to 4.9.0 (#2248) 2020-07-06 17:58:40 -03:00
Djorkaeff Alexandre 594e598167
Bump version to 4.8.0 (#2147) 2020-05-26 17:22:56 -03:00
Diego Mello 61afa86c0e
[NEW] Passcode and biometric unlock (#2059)
* Update expo libs

* Configure expo-local-authentication

* ScreenLockedView

* Authenticate server change

* Auth on app resume

* localAuthentication util

* Add servers.lastLocalAuthenticatedSession column

* Save last session date on background

* Use our own version of app state redux

* Fix libs

* Remove inactive

* ScreenLockConfigView

* Apply on saved data

* Auto lock option label

* Starting passcode

* Basic passcode flow working

* Change passcode

* Check if biometry is enrolled

* Use fork

* Migration

* Patch expo-local-authentication

* Use async storage

* Styling

* Timer

* Refactor

* Lock orientation portrait when not on tablet

* share extension

* Deep linking

* Share extension

* Refactoring passcode

* use state

* Stash

* Refactor

* Change passcode

* Animate dots on error

* Matching passcodes

* Shake

* Remove lib

* Delete button

* Fade animation on modal

* Refactoring

* ItemInfo

* I18n

* I18n

* Remove unnecessary prop

* Save biometry column

* Raise time to lock to 30 seconds

* Vibrate on wrong confirmation passcode

* Reset attempts and save last authentication on local passcode confirmation

* Remove inline style

* Save last auth

* Fix header blink

* Change function name

* Fix android modal

* Fix vibration permission

* PasscodeEnter calls biometry

* Passcode on the state

* Biometry button on PasscodeEnter

* Show whole passcode

* Secure passcode

* Save passcode with promise to prevent empty passcodes and immediately lock

* Patch expo-local-authentication

* I18n

* Fix biometry being called every time

* Blur screen on app inactive

* Revert "Blur screen on app inactive"

This reverts commit a4ce812934.

* Remove immediately because of how Activities work on Android

* Pods

* New layout

* stash

* Layout refactored

* Fix icons

* Force set passcode from server

* Lint

* Improve permission message

* Forced passcode subtitle

* Disable based on admin's choice

* Require local authentication on login success

* Refactor

* Update tests

* Update react-native-device-info to fix notch

* Lint

* Fix modal

* Fix icons

* Fix min auto lock time

* Review

* keep enabled on mobile

* fix forced by admin when enable unlock with passcode

* use DEFAULT_AUTO_LOCK when manual enable screenLock

* fix check has passcode

* request biometry on first password

* reset auto time lock when disabled on server

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
2020-05-08 14:04:37 -03:00
Djorkaeff Alexandre 5698701a14
Bump version to 4.7.0 (#2035) 2020-04-14 19:04:46 -03:00
Djorkaeff Alexandre a7641c19e2
Bump version to 4.6.4 (#2029)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-04-13 10:26:59 -03:00
Diego Mello 46660572c3
Bump version to 4.6.1 (#2001) 2020-04-06 18:52:06 -03:00
Diego Mello 87724ae6d4
Bump version to 4.6.0 (#1911) 2020-03-20 11:15:29 -03:00
Djorkaeff Alexandre 1a3551169f
[IMPROVEMENT] Create App Group property on Info.plist (#1858)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-03-11 16:06:55 -03:00
Diego Mello cb9cf527b7
Bump version to 4.5.1 (#1853) 2020-03-10 08:52:17 -03:00
Djorkaeff Alexandre 06cca9c615
[NEW] Default browser (#1752)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-02-19 17:52:05 -03:00
Diego Mello e383271998
Bump version to 4.5.0 (#1761) 2020-02-19 16:57:52 -03:00
Diego Mello 78d142cd09
Bump version to 4.4.0 (#1643) 2020-01-30 16:26:32 -03:00
Diego Mello 7f9a2970a3
Bump version to 4.3.1 (#1641) 2020-01-30 11:20:27 -03:00
Diego Mello 8d8b9145f7
Bump version to 4.3.0 (#1630) 2020-01-28 10:17:33 -03:00
Djorkaeff Alexandre dab453a14c Bump version to 4.2.4 2020-01-18 13:41:07 -03:00
Djorkaeff Alexandre 5fa82e7a81 Bump version to 4.2.3 2020-01-17 13:58:48 -03:00
Diego Mello c07a3db508
Bump version to 4.2.2 (#1571) 2020-01-13 09:24:41 -03:00
Diego Mello 1096d50f76
Bump version to 4.2.1 (#1530) 2020-01-07 18:08:29 -03:00
Djorkaeff Alexandre 5f0389c7de [NEW] Reply notification (#1448) 2019-12-17 13:27:13 -03:00
Diego Mello f19392346a
[CHORE] Sync Experimental and Official app versions (#1458) 2019-12-11 16:41:46 -03:00
Djorkaeff Alexandre 44b4249564 Bump version to 1.26.0 (#1450) 2019-12-10 17:25:59 -03:00
Diego Mello cbd812cf21
Bump version to 1.25.0 (#1424) 2019-11-27 17:54:09 -03:00
Djorkaeff Alexandre a0dc2bad4a [NEW] Tablet support (#1300) 2019-11-25 17:01:17 -03:00
Diego Mello 265c3e7385
Bump version to 1.24.0 (#1404) 2019-11-19 16:57:57 -03:00
Djorkaeff Alexandre 40c3978938 Bump version to 1.23.0 (#1394) 2019-11-18 19:11:05 -03:00
Diego Mello b7ebd3bc07
Bump app to 1.22.0 (#1387) 2019-11-14 14:32:29 -03:00
Diego Mello 40ae78c83f
Bump version to 1.21.0 (#1376) 2019-11-08 14:04:33 -03:00
Diego Mello ea057ffbf3
Bump version to 1.20.3 (#1366) 2019-11-05 15:23:08 -03:00
Diego Mello 66222a3f9a
Bump version to 1.20.2 (#1340) 2019-10-29 15:15:05 -03:00
Diego Mello 241205005a
Bump version to 1.20.1 (#1285) 2019-10-08 10:22:01 -03:00
Djorkaeff Alexandre 99aea22579 [NEW] Jitsi integration (#1196)
* Stash

* Rooms list listing :)

* Animated set state

* Search working

* Fix load rooms on login

* stash db class

* set active db with path

* Remove db on logout

* stash

* Created updateMessages

* Inserting/updating threads

* Persisting thread messages

* Removed unused list

* Loading messages from watermelon

* Debounce updates and rerender message

* optional fields

* Fix realm conflict issues

* Fix some render issues

* stash

* List mount

* stash

* fix message id

* Fix tmsg

* - Save subscription.rid as id on watermelon and _id as _id
- Send room as param to room view

* Throttle room updates

* stash

* comment removeClippedSubviews

* Fetch thread name

* try/catch updateMessages

* Show loading while RoomView.init is still running

* stash

* Fix updateMessages

* Threads

* Delete message

* Permalink

* Pin

* Star

* Report

* MessageActions refactor

* Edit message

* Reply message

* Add reaction

* Auto translate

* Fix connection issues

* Mark message as error if something happened on the call

* Error actions

* get custom emoji

* Always run console.log when __DEV__

* Try to create serversDB

* Don't call updateMessages. Execute that entire logic for one message id instead.

* Refactor update messages

* ServersDB User [Realm -> Watermelon]

* Fix models

* Custom emojis

* Custom emojis on emoji picker

* Frequently used emojis

* Fix add reaction on message

* stash

* Fix

* Read messages

* Fix thread

* Fetch thread header

* Follow/unfollow thread

* Fix thread

* Upload file

* Thread tweak

* Realm -> Watermelon [Share Extension]

* Add RoomsUpdatedAt to Servers Table

* Settings

* Settings

* Fix logout

* SendFileMessage ServersDB

* ServersDB on serverDropdown

* Remove serversDB from Realm

* Load thread messages

* Delete message

* Improve getSettings

* Improve

* Remove subscription

* Remove update

* Update room via socket

* Small refactor

* Fix logout and improve migration

* Refactor updateMessages

* Improve migration

* Remove unnecessary update

* Revert remove runAfterInteractions

* Fix serverDropdown

* Fix merge

* Init room actions Watermelon

* Room actions Watermelon

* Remove realm on room members

* Room swipe -> Watermelon

* Fix hideChannel

* Get roles watermelon

* Get permissions watermelon

* Users typing + memory db

* Auto translate watermelon

* New Message View

* Selected Users View

* try/catch

* Get Slash Commands watermelon

* Slash Commands message box

* Custom emojis message box

* Get rooms message box

* Room info view

* Room info edit

* Save active users

* Small refactor

* Message Actions

* hasPermission await

* last hasPermission fix

* Active users on redux

* Add user roles

* Users typing on redux and remove memory db

* Fix saga delay

* Fix few issues

* Fix slash commands preview

* Draft message

* Add muted

* Unread count watermelon

* Remove realm

* Fiz RoomItem rerenders

* Remove realm config

* Rerender status update on RoomItem

* Refactor RoomsListView

* Fix load missed messages

* Fix room update

* Message refactor

* Fixing lint

* Jitsi config (iOS)

* removeClippedSubviews on iOS only

* Added few interaction managers

* Create jitsiBaseURL

* Call buttons

* Fix few rerenders

* Fix RoomItem status typo

* Fix RoomView.SCU

* Fix broadcast

* Fix user status on RoomActionsView

* Jitsi config (Android)

* Fix RocketChat.hasPermission

* Fix database inconsistencies

* Fix few update issues

* Add rxjs and remove with observables

* Fix tests

* Remove subscriptions

* Fix RoomsListView SCU

* Change database structure and set all schemas to 1

* Fix RoomsListView search

* Call Jitsi method

* Create onlyAudio option (iOS)

* Create onlyAudio option (Android)

* Fixed errors, removed rerenders and added animation

* Fixed a few errors

* Fix lint

* Fix issues caught by LGTM

* fix ios build

* Revert patch

* jitsiTimeout

* Self-builded Android SDK

* Fix load unjoined channel messages

* Log on database path on startup

* Fix join channel

* Remove react-native-realm-path

* Set user status on login.user reducer

* Fix status not rendering on RoomsListView

* Fix few reducers

* Fix users going offline

* Never use "watermelon" term directly. Replaced by "database"

* Fix jitsiTimeout

* Fix custom emoji

* Fix duplicated call messsage

* Creating room from app must update roomUpdatedAt

* Log subscribeRoom start

* Fix room subscribe right after creating a DM

* Fix jest

* Move self-builded sdk to node_modules

* Refactor is read only on messages actions

* Fix typo

* Fix typo

* Review

* Fix schema

* Fix muted & freq emoji & unpin & unstar

* Remove throttleTime to room info & fix reset on edit room

* Fix openServerDropdown spec & Fix unarchive

* Fix MessageAction

* Refactor RoomInfoEditView

* Remove unnecessary condition

* Remove unnecessary condition

* Remove unnecessary condition

* Remove get database

* Rename Command.js to SlashCommand.js

* Create sanitizer util

* Fix indentation

* Create subscription.t index

* Refactor queries on RoomsListView

* Create subscription.name index

* Fix getPermissions

* Fix indentation

* Add missing await

* Fix rocketchat.hasPermission

* Unnecessary change

* Star, pin e delete message refactored

* Refactor customEmojis reducer

* Remove code

* Remove logs

* Remove throttle

* Call this.init on foreground focus on RoomView

* Bump servers schema migration

* Always mark message as sent after a success

* Fetch only messages needed on updateMessages

* Just leave a comment for now

* Fetch only subscriptions returned by fetch

* Fix send message

* Create migration - jitsi_timeout

* Fixes & Update e2e tests

* Add translations pt-br

* Bind callJitsi on RocketChat

* Remove unnecessary mocks

* Remove listeners when call finished

* Use gradlew instead self-builded sdk

* Fix lastmessage call username

* Add react-native-background-timer

* Fix background interval

* Remove unnecessary timeout

* Clear timeout in case there's one active

* Add catch to method call
2019-09-18 14:32:12 -03:00
Diego Mello 2d8b1c5ac2
Bump version to 1.20.0 (#1184) 2019-09-10 16:53:21 -03:00
IlarionHalushka 59a71ffaef [CHORE] Bugsnag logging setup (#1145)
* initial bugsnag setup

* upload sourcemaps to bugsnag during ios-build job

* fix: spacing in config.yml

* add yarn global add react-native

* add separate step: Upload sourcemaps to Bugsnag

* add brew install watchman

* install react-native-cli, remove install watchman

* upload source maps for android build

* add yarn add global react-native react-native-cli for android-build ci job

* add working_directory to android-build

* install npm i -g react-native react-native-cli

* add Install Node step to android-build job

* export path to node to bash_profile

* add step Install React Native CLI to android build job

* use yarn generate-source-maps in ci; exchange firebase log -> bugsnag log

* implement send(toggle) crash reports button

* move BUGSNAG_API_KEY to config file; remove generated source maps files

* unlink bugsnag

* add ios/Pods files connected to Bugsnag; fix ci android build job

* export firebase analytics also from /utils/log

* use `log(e)` instead of `log(error)`

* API Key changes

* pod install

* Fix iOS build

* Simulate error

* lint

* Add navigation

* Use projectRoot

* Revert project root

* - Don't run on forks
- Upload dSYMs

* Remove error sim

* Remove automatic dSYMs upload

* Remove fastlane-plugin-bugsnag
2019-08-23 10:18:47 -03:00
Diego Mello f58f744ee5
Bump version to 1.19.0 (#1146) 2019-08-22 17:54:10 -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
Diego Mello 2127950f8d
Bump version to 1.18.0 (#1106) 2019-08-06 16:03:17 -03:00
Diego Mello c083d430fc
Bump version to 1.17.0 (#1057) 2019-07-17 09:53:28 -03:00
Diego Mello a0a109ec54
Bump version to 1.16.1 (#1045) 2019-07-11 18:41:16 -03:00
Diego Mello 315d19d37a
Bump version to 1.16.0 (#1014) 2019-06-26 11:30:49 -03:00
Diego Mello b12c14fb78
[IMPROVEMENT] Use expo-web-browser (#992)
* Add unimodules

* Working on iOS

* Working on android

* Remove react-native-safari-view

* Remove previous android link lib

* Show webpage title on Android

* Fix iOS build
2019-06-21 13:39:20 -03:00
Diego Mello b9c9c3e501
Bump version to 1.15.1 (#998) 2019-06-19 18:49:56 -03:00
Diego Mello 637ea54958
[CHORE] Bump version to 1.15.0 (#962) 2019-06-05 10:36:12 -03:00
Diego Mello 9e4a4d2454
[CHORE] Use react-native-firebase (#928)
We need to migrate from deprecated react-native-fabric to react-native-firebase.
This PR enables following Firebase features:
* Analytics
* Crashlytics
* Performance

It also tracks screen view without the necessity of HOC.

Future work:
I won't do it in this PR because it's large enough, but we need to log more app events, like 'sent_message', 'open_admin', 'media_upload', etc.
2019-05-28 10:03:08 -03:00
Diego Mello 48b53e852a
Bump version to 1.14.0 (#889) 2019-05-10 17:48:36 -03:00
Diego Mello d1b21a304f
Bump version to 1.13 (#857) 2019-04-28 16:24:16 -03:00
Diego Mello 5aec0ec186
Bump version to 1.12.0 (#804) 2019-04-10 14:18:31 -03:00
Diego Mello f416746050
[FIX] iOS requiring location permission (#768) 2019-03-28 13:55:54 -03:00