Commit graph

71 commits

Author SHA1 Message Date
Daniel Espino García
cff12f7182
Enable exhaustive deps in the repo (#9508)
* Enable exhaustive deps in the repo

* Add tests for the new hooks

* Update claude.md

* Remove pre-commit overwrite
2026-02-18 11:56:16 +01:00
Daniel Espino García
0c4a42a06a
Remove tand prevent double tap (#9078)
* Remove the t function and all wrong uses of preventDoubleTap

* Fix existing typo

* Fix tests

* Address comments

* Fix test
2025-08-25 12:03:01 +02:00
Daniel Espino García
bb7ff622af
Add Playbooks read-only support for mobile devices (#8978)
* Add the channel options to get into playbooks (#8750)

* Add the channel options to get into playbooks

* Use playbook run id instead of playbook id

* i18n

* Fix issues and move playbooks to the products folder

* Address some tests

* Fix test

* Address design issues

* Add requested comment

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Playbooks database (#8802)

* Add lastPlaybookFetchAt to channel table (#8916)

* Add lastPlaybookFetchAt to channel table

* Add missing commit

* Use my_channel table instead

* Fix test

* Address feedback

* First implementation of playbooks API (#8897)

* First implementation of playbooks API

* Add version check

* Address feedback

* Fix test

* Add last fetch at usage and other improvements

* Simplify test

* Add sort_order, update_at and previousReminder columns (#8927)

* Add sort_order, update_at and previousReminder columns

* Remove order from the schema

* Fix tests

* Add tests

* Add websockets for playbooks (#8947)

* Add websocket events for playbooks

* Fix typo

* Add playbook run list (#8761)

* Add the channel options to get into playbooks

* Use playbook run id instead of playbook id

* i18n

* Fix issues and move playbooks to the products folder

* Address some tests

* Fix test

* Add playbook run list

* Add missing texts

* Add back button support and item size to flash list

* Address design issues

* Add requested comment

* Standardize tag and use it in the card

* Fix merge

* Add API related functionality

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Add playbooks run details (#8872)

* Add the channel options to get into playbooks

* Use playbook run id instead of playbook id

* i18n

* Fix issues and move playbooks to the products folder

* Address some tests

* Fix test

* Add playbook run list

* Add missing texts

* Add back button support and item size to flash list

* Address design issues

* Add requested comment

* Standardize tag and use it in the card

* Add playbooks run details

* Fix merge

* Add API related functionality

* Add API related changes

* Order fixes

* Several fixes

* Add error state on playbook run

* i18n-extract

* Fix tests

* Fix test

* Several fixes

* Fixes and add missing UI elements

* i18n-extract

* Fix tests

* Remove files from bad merge

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Add missing tests for playbooks (#8976)

* Add the channel options to get into playbooks

* Use playbook run id instead of playbook id

* i18n

* Fix issues and move playbooks to the products folder

* Address some tests

* Fix test

* Add playbook run list

* Add missing texts

* Add back button support and item size to flash list

* Address design issues

* Add requested comment

* Standardize tag and use it in the card

* Add playbooks run details

* Fix merge

* Add API related functionality

* Add API related changes

* Order fixes

* Several fixes

* Add error state on playbook run

* i18n-extract

* Fix tests

* Fix test

* Several fixes

* Fixes and add missing UI elements

* i18n-extract

* Fix tests

* Remove files from bad merge

* Add tests

* Fix typo

* Add missing strings

* Fix tests and skip some

* Fix test

* Fix typo

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Address feedback

* Address feedback and fix tests

* Address comments and fix tests

* Address feedback

* Address plugin changes and fix bugs

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2025-07-14 09:21:37 +02:00
Claudio Costa
0e67bc8944
[MM-63382] Calls: Fix rendering of long user/channel name in call bar (#8804)
* Calls: Fix rendering of long user/channel name in call bar

* Fix linting
2025-04-30 13:32:00 -06:00
Harshil Sharma
738c7e6b1d
Channel banner display (#8735)
* channel banner DB migration

* Display channel banner

* Updated database docs

* used premium sku

* misc fixes

* Handled channel banner with calls

* Updated tests

* Updated tests

* test: Add comprehensive tests for shouldShowChannelBanner function

* Added more tests

* lint fix

* minor refactoring

* lint fix

* reverted package.resolved changes

* made a param mandatory

* Added some comments
2025-04-08 11:15:18 +05:30
Elias Nahum
d1d3fda83a
Request metrics improvements (#8420)
* Network metrics

* update network-client ref

* fix unit tests

* missing catch error parsing

* Replace API's to fetch all teams and channels for a user
Update groupLabel to use a type definition
Include effective Latency and Average Speed in the metrics
Include parallel and sequential request counts

* update network library and fix tests

* feat(MM-61865): send network request telemetry data to the server (#8436)

* feat(MM-61865): send network info telemetry data

* unit testing

* fix latency vs effectiveLatency

* cleanup test

* fix failing tests

* fix spelling error

* fix failing test

* more cleanup

* fix: improve parallel requests calculation (#8439)

* fix: improve parallel requests calculation

* fix test issue

* multiple parallelGroups testing

* calculateAverageSpeedWithCategories test

* categorizedRequests in it's own describe

* clean up duplicate tests

* check for when groupLabel is non-existent

* a case when groupLabel is non-existent

* more testing with effective latency.

* resolveAndFlattenModels with a capital F

* add try..catch within resolveAndFlattenModels

* update groupLabel to fix failing lint

* fix linting issue due to unknown group label

* forgot to push changes

* fix the indentation problem again

* add env var option for COLLECT_NETWORK_METRICS

---------

Co-authored-by: Rahim Rahman <rahim.rahman@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-01-16 13:55:29 -07:00
Elias Nahum
2f3dfbbbfa
Update dependencies and upgrade to RN 0.76.5 (#8421)
* update dev deps

* partial update dependencies

* update watermelondb

* update rn to 0.76.5, expo to 52.0.18 and others

* upgrade android firebase

* upgrade detox deps

* fix package-lock.json

* update emm and paste-input

* update turbo-log

* update network library

* fix tests

* review feedback

* fix Keyboard blocking signIn button

* Fall back to iphone 14 iOS 17.2 simulator as app crashes on iOS 17.4

* changes in deleteCredentialsForServer is causing a crash

* withOptions x2 clearly is wrong

* re-add cli-platform-apple fix

* fix: RN 0.76.5 issue with bottom sheet disappearing (#8478)

* experiment, using view vs BottomSheetView

* revert previous & try disabling enableDynamicSizing

* revert an unintended removal

---------

Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Rahim Rahman <rahim.rahman@mattermost.com>
2025-01-16 07:11:32 -07:00
Elias Nahum
fb57c423c7
Network metrics (#8390)
* Network metrics

* update network-client ref

* fix unit tests

* missing catch error parsing

* add client tracking unit tests

* fix typos
2024-12-17 19:51:26 +08:00
Elias Nahum
7cb2ee75b3
Fix bottomSheet bottom insets (#8331)
* Fix bottomSheet bottom insets

* fix search team picker on android

* ux review

* fix footer padding for message priority modal on iPad
2024-11-29 12:50:09 +08:00
Daniel Espino García
732b17a75c
Add post props validation (#8323)
* Validate props

* Add calls changes and fix attachments

* Address feedback
2024-11-28 15:59:30 +01:00
Daniel Espino García
2649b4b63a
Remove app alias for imports (#8314) 2024-11-07 08:34:49 +08:00
Claudio Costa
751bb2dfb1
Ensure full validation of Calls post props (#8279) 2024-10-24 16:10:49 -06:00
Claudio Costa
13ca346155
[MM-60291] Fix rendering of live captions (#8185)
* Load jobs state from call state

* Fix rendering of live captions overlay
2024-08-28 07:28:12 -06:00
Claudio Costa
52d04ca252
[MM-57994] Hide Calls buttons/actions if plugin is not enabled (#8121)
* Limit group calls to DMs only on unlicensed servers

* Hide Calls buttons/actions if plugin is disabled

* Fix lint

* Address feedback
2024-08-19 09:33:20 -06:00
Elias Nahum
b330847d95
Channel Bookmarks (#7817) 2024-07-18 09:10:28 +08:00
Christopher Poile
92bdb2847b
[MM-57486] [MM-58008] Calls: Mobile ringing for incoming calls (#7984)
* notification ringing, settings screen, native code patch, ringing mp3s

* i18n

* play preview on first press

* prevent playing from background (only affects Android) to match iOS beh

* stop ringing/vibration on entering background

* ring when coming back from background and new incoming call is present

* no push notification sound when it's a call; improve ringing

* move sounds to asset folder; copy on postinstall for android bundling

* make Ringtone type a string enum

* make Android ring async + await ring and stop; changes from PR comments

* missing fields after merge

* release lock on an exception

* cancel sample ringing when turning notifications off

* copy sound files for android build

* typo

* update snapshots

* testing if the problem is copying the mp3 files

* fix android mp3 assets when building for non-release

* add sounds to .gitignore

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2024-07-03 10:22:46 -04:00
Christopher Poile
53b011068e
[MM-58561] Calls: Add stop recording confirmation; update call screen (#8007)
* add rec confirmation; update call screen

* add EnableTranscriptions to dep array

* remove unneeded asyncs

* properly center title; fix horizontal spacing for title buttons

* cleanup
2024-06-19 17:01:49 -04:00
Elias Nahum
b8c088cc70
Upgrade RN as well as update or replace other dependencies (#8011)
* start upgrade to RN 74

* migrate react-native-fs to expo-file-system

* exclude expo-asset module

* fix database manager remove directory

* fix: android network helper

* include expo on android

* temporarily disable android dep lock

* replace react-native-create-thumbnail with expo-video-thumnails

* update patches file version

* fix android build on 74

* create local library to replace MattermostManaged, Notifications and SplitView modules with new arch support

* migrate app to use new mattermost-rnutils library

* remove unused flipper class for android unsigned

* fix mattermost-rnutils android foldedObserver lifecycle

* use mattermost-rnutils on Android

* use mattermost-rnutils on iOS

* path react-native-navigation to not crash when activity is not NavigationActivity

* create local library for android share extension with new arch support

* Replace ShareModule with @mattermost/rnshare library

* remove ShareModule from android native code

* update react-intl

* update nodejs to 20.x.x npm to 10.x.x and dev deps

* update @gorhom/bottom-sheet

* use MattermostShare conditionally based on the platform

* update @react-native-camera-roll/camera-roll

* remove unused react-native-calendars

* fix metro config

* fix terminate session race condition

* remove unused analytics

* replace react-native-device-info with expo-application and expo-device

* update @react-native-clipboard/clipboard

* update @react-native-community/datetimepicker

* update @react-native-community/netinfo

* update @sentry/react-native

* update react-native-document-picker

* update react-native-gesture-handler

* update react-native-share

* update react-native-svg and react-native-svg-transformer

* update react-native-vector-icons

* update babel

* update react-native-shadow-2

* update semver

* remove react-native-svg-transformer and convert svg files to svg components

* fix @mattermost/rnshare new-arch build on android

* remove react-native-create-thumbnail resolution in build.gradle

* create @mattermost/hardware-keyboard library to replace hw-keyboard-events

* fix hardware-keyboard library

* fix rnutils library

* create @mattermost/keyboard-tracker library

* replace react-native-keyboard-tracking-view with @mattermost/keyboard-tracker

* fix: rnutils to not crash on lateinit context

* fix: rnutils delete database

* revert changes to session_manager

* Removed react-native-webview and added expo-web-browser instead

With expo-web-browser we no longer need the webview for SSO login
the SSO login is now done by using "custom Chrome tabs" on Android
and ASWebAuthenticationSession on iOS

* remove patch for react-native-keyboard-tracking-view

* replace react-native-linear-gradient with expo-linear-gradient

* replace react-native-in-app-review with expo-store-review

* fix: shared group database directory on ios

* replace react-native-fast-image with expo-image

* remove unusued type def for react-native-keyboard-tracking-view

* replace react-native-elements and react-native-button with @rneui

* node version

* update sizzling methods

* fix tests using jest-expo

* replace jail-monkey with expo-device

* update babel deps

* update typescript eslint

* update rn and expo

* react-native-document-picker @react-native-camera-roll/camera-roll @react-native-community/datetimepicker react-native-reanimated react-native-safe-area-context

* update patches

* update @sentry/react-native

* upgrade react-native-navigation

* update expo & expo-image

* upgrade to working version of @sentry/react-native

* update node, cocoapods, bundler, fastlane versions

* @testing-library/react-native and eslint-plugin-jest

* fix: FloatingTextInput causing a crash with reanimated

* update sentry, localize, @types/lodash and uuid

* fix floating text input label

* update react-native-video

* fix: cannot calculate shadow efficiently on some components

* fix: reduce motion warning for bottomSheet

* fix: shadow on YouTube component

* update react-native-webrtc expo and @typescript-eslint

* audit fix

* fix swizzling bad merge

* temp use of github dependency for @mattermost libraries

* feedback review

* feedback review

* npm audit fix

* update bundle deps

* update @mattermost/react-native-turbo-log

* update deps
2024-06-19 09:33:45 +08:00
Christopher Poile
1f2a71c499
[MM-58581] Calls: End call confirmations (#8004)
* end call confirmations

* i18n

* remove unneeded asyncs

* better alert for android
2024-06-18 10:02:24 -04:00
Christopher Poile
c93e16218a
[MM-57250] Calls: Provide feedback after user clicks Start call (#7967)
* make joinCall async; adding loading spinner to join/start button

* always close channelInfo

* i18n

* change how we compute active text

* use isPreferred for leave & join call button

* add joiningChannelId to calls state to track when joining a call
2024-06-06 15:39:15 -04:00
Christopher Poile
3f7fa8b1a1
[MM-57267] Calls: Update post UI (#7965)
* MM-58259 - allow current host to run /end call; fix deprecated test fns

* update call card UI

* update call ended icon

* make joinCall async; adding loading spinner to join/start button

* Revert "make joinCall async; adding loading spinner to join/start button"

This reverts commit bbb136690702c46ce2d4430a6b49aa96f143fb5e.

* shadowRadius 3 -> 1
2024-05-24 14:16:28 -04:00
Christopher Poile
4e68662899
[MM-57019] Calls: Live captions support for mobile (#7854)
* mobile support for live captions

* add the 'Live captions turned on' ephemeral notice

* PR comments

* message should be translatable

* run i18n-extract

* call_recording_state -> call_job_state; ccAvailable is now dynamic

* backwards compatibility with pre calls v0.26.0

* correct mobile version in deprecation comments

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2024-03-20 09:10:05 -04:00
Elias Nahum
3653df354d
Revert "Channel Bookmarks (#7750)" (#7816)
* Revert "Channel Bookmarks (#7750)"

This reverts commit 2c5c878829.
2024-02-07 07:52:55 +08:00
Elias Nahum
2c5c878829
Channel Bookmarks (#7750) 2024-02-05 17:07:01 +08:00
Christopher Poile
d6566b591a
MM-54866 - Calls: Transcription notifications (#7704) 2023-12-21 17:19:28 -05:00
Elias Nahum
de57c343f0
MM-55621 fix layout for tablets and foldables (#7697)
* MM-55621 fix layout for tablets and foldables

* feedback review
2023-12-05 11:08:43 +08:00
Elias Nahum
edef4ec4a3
Update libraries and dependencies (#7678)
* update js dependencies

* update react-native libraries

* update watermelonDB

* update RN to 0.72.7

* update fastlane

* fix remove_markdown/at_mention import

* update mattermost libraries

* update fastlane deps

* remove haptic-feedback patch

* update okhttp to 4.12.0 and patch netinfo to accurately identify VPN connections

* create ImaegStyles intersection type
2023-11-25 07:46:13 +08:00
Christopher Poile
6baa850d36
MM-54277 - Calls: Add incoming banners to channel_list screen (#7673) 2023-11-22 16:56:27 -05:00
Christopher Poile
c9fe72460b
MM-54865 - Calls: Multisession support (#7647)
* add multisession support for calls mobile

* ensure backwards compatibility

* remove extra line
2023-11-16 14:30:49 -05:00
Christopher Poile
f0334d8c0e
MM-54323 - Calls: Incoming call from different server (#7646)
* refactor; tried to clarify more_messages; new design

* adjust more_messages text spacing

* small fix for height with incoming call on current channel

* move calls-specific code in the calls product behind a hook

* show servername for notifications from other servers

* if >1 active servers, always show server name, otherwise don't

* add height of notification bar in measurements

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-11-14 17:03:55 -05:00
Christopher Poile
332aab134e
MM-55010 - Calls: more messages bar adjustments (#7620)
* refactor; tried to clarify more_messages; new design

* adjust more_messages text spacing

* small fix for height with incoming call on current channel

* move calls-specific code in the calls product behind a hook
2023-11-03 17:51:32 -04:00
Christopher Poile
a0b1367fd3
MM-54278 - Calls banners redesign (#7611)
* join call banner

* same style of voice-on indicator; avatar & emoji sizing spacing polish

* refactor all calls bars; new calls bars UI designs

* i18n changes

* fix for warning bar's close icon color

* refactor banners to normalize UI; new 'noone is talking' design

* fix for avatar in current call bar

* change design for incoming call on calls screen

* remove commented out code
2023-11-03 16:23:12 -04:00
Christopher Poile
0ec2b09fd5
MM-54117 - Calls: Support wiredHeadsets; generalize panel_item (#7545)
* generalize panel_item; support wiredHeadsets

* i18n
2023-09-25 08:45:14 -04:00
Christopher Poile
83f81985cd
MM-53486 - Incoming calls notification banner (#7477)
* upgrade calls-common

* incoming call notifications

* tests

* i18n

* PR comments

* PR comments

* PR comment
2023-08-30 13:58:54 -04:00
Daniel Espino García
5a610f1620
Fix post priority bottom sheet (#7350)
* Fix post priority bottom sheet

* Remove unneeded tablet handling
2023-05-16 19:13:06 +02:00
Daniel Espino García
162cdfb21d
Handle currentUser not available throught the app and refetch it (#7333)
* Handle currentUser not available throught the app and refetch it

* Address feedback
2023-05-05 15:40:59 -04:00
Christopher Poile
c90ace706c
MM-49970 - Calls: Call quality status banner (#7304)
* use mean opinion score detection; add call quality alert bar; tests

* rename MessageBar's file to message_bar

* i18n

* use mosThreshold from calls-common; upgrade calls-common

* use callsBg for text and icon
2023-05-04 15:28:15 -04:00
Christopher Poile
f8f6839945
MM-51228 - Calls: UX redesign & theming support (#7283)
* UX redesign

* fix call bar profile on Android

* update @mattermost/calls; use common color utils

* collapseIcon and time colour fixes (not correct yet on Onyx or Quartz)

* fix time and collapseIcon colors; fix unavailable wrapper

* center users, scroll when full; statusBar bg and styling

* better spacing; better screenshare; no reaction bar when no reactions

* remove margins from bottom; speaker/react buttonOn colour is now callsBg

* update calls-common; update raised hand button colors

* i18n

* cleaning up style sheets

* fix package-lock

* fix vertical alignment of phone icon

* add a noBorder prop to UserAvatarsStack

* typography, icon sizing, spacing changes

* add rounded header; UI improvements; refactor observables

* updating phone icon, join call margins

* join call text; color theming

* remove unneeded container

* phone-outline -> phone

* split CallsChannelState into boolean components

* use sidebar bg to generate calls bg

* fix hand icon, button texts
2023-05-04 14:17:17 -04:00
Christopher Poile
c1430757b8
MM-51776 - Calls: Audio device selections, & fix bluetooth (#7286)
* ask for bluetooth permissions on Android

* new "switch audio device button" for Android

* i18n strings

* split audio_device_button into platform-specific files; PR comments

* earpiece -> phone

* add comments to clarify speakerphone logic

* update snapshots

* add new compass-icons; use tablet and bluetooth icons; add tablet mode

* fix lint
2023-04-27 11:44:14 -04:00
Elias Nahum
784b05fe97
Upgrade Dependencies (#7299)
* upgrade reanimated

* update devDependencies

* upgrade react-intl

* update react-native and some dependencies

* update react-native-permissions

* update RN

* use Share sheet for Report a problem

* update Sentry

* remove step to downloadWebRTC

* update detox deps

* feedback review
2023-04-21 12:16:54 -04:00
Christopher Poile
77f8eedb0a
MM-51227 - Calls: Landscape mode optimizations for screensharing (#7226)
* allow landscape for ios; optimize screensharing view; fix reactions

* UX changes

* UX changes - top bar
2023-03-28 18:00:11 -03:00
Christopher Poile
c0cb14e927
MM-50010 - Share common calls code between web and mobile (#7211)
* use calls/common rtcpeer; @calls -> @mmcalls

* gitpkg -> standalone github calls-common package

* use new mattermost/calls-common repo; add types to WebSocketMessages

* mmcalls/common -> mattermost/calls; use a version tag
2023-03-21 09:18:45 -04:00
Christopher Poile
bdaba41df1
MM-51226 - Calls: Emojis not showing in reaction stream (#7198) 2023-03-10 14:07:34 -05:00
Christopher Poile
03fe46f229
MM-48605: Calls - Fix for start time in join call banner is incorrect (#7095)
* "fix" the wrong start time

* cleanup unused field
2023-02-08 09:25:41 -05:00
Claudio Costa
ab50164d34
[MM-49996] Add /call recording slash command (#7062)
* Add  slash command

* Fix alert

* Implement alert for recording errors

* Default locked
2023-02-06 21:14:22 -06:00
Elias Nahum
64a59aad55
Filter unused preferences (#7015)
* small preferences refactor

* filter unused preferences and fix removal of preferences in the db

* Feedback review
2023-01-30 21:00:19 +02:00
Elias Nahum
c1fbaffd3e
Support for Android Tablets & Foldable (#7025)
* Add Support for Android tablets & foldables

* add tablet and book posture

* Regenerate disposed observable on WindowInfoTracker
2023-01-26 20:31:18 +02:00
Elias Nahum
7aa5bd0611
Update Dependencies and bug fixes (#7000)
* update dependencies

* update dependencies

* feedback review

* update @mattermost/react-native-turbo-mailer
2023-01-24 09:14:23 +02:00
Christopher Poile
9a89259e96
MM-48836 - Calls: handle slash commands (#6980) 2023-01-23 20:08:33 +02:00
Christopher Poile
6c9c025d25
MM-49746 - Calls: Show call thread title in root calls post (#6992)
* add thread title to calls custom posts

* PR comments
2023-01-23 09:38:07 -05:00