Commit graph

46 commits

Author SHA1 Message Date
Nuno Simões
1cea8c6f0c
e2e: don't upload artifacts to s3 in e2e pipeline (#9546) 2026-02-25 14:48:31 -05:00
Nuno Simões
83e5b6026e
workflow, fastlane: upload release artifacts new bucket (#9410)
* workflow, fastlane: upload release artifacts new bucket

Update release workflows and fastlane to support uploading release
artifacts to both buckets (current and new) at the same time. It'll
happen during a specific period for validaation / testing phase.

* workflows: adjust permissions to use oidc

* fastfile: only upload to new bucket in release

* workflow, fastlane: add new upload_s3 lane for fastlane
2026-02-03 09:26:34 +01:00
yasser khan
fdc559d70d
chore(e2e): Change iOS simulator to 26.1 from 17.2 (#9370) 2026-01-30 08:40:22 +05:30
Rahim Rahman
4324846736
fix(MM-67224): MM Mobile v2.36.0 crash on iOS 16 and below (#9421)
* fix(MM-67224): iOS app hanging for at least 2000 ms.

* downgrade intune iOS SDK to 20.9.0

* update to version 20.9.2 (latest)

* reverse changes to .env files

* set INTUNE_IOS_SDK_VERSION to 20.9.2

* revert change

* Intune update

* remove echo
2026-01-19 16:45:56 -07:00
Elias Nahum
44eb76bed7
feat(iOS): Add Microsoft Intune MAM integration with multi-server support (#9312)
* refactor: implement custom ExpoImage wrapper for cache control

Add ExpoImage component with automatic cacheKey/cachePath management and replace all expo-image imports across the app

* refactor(ios): convert Gekidou to CocoaPods

Migrate from Swift Package Manager to CocoaPods, add Keychain write operations, refactor notification handler to remove react-native-notifications headers, and upgrade Swift to 5.0

* npm audit

* update fastlane

* feat(ci): integrate Intune MAM for enterprise builds with strict OSS protection

Add Intune submodule, CI actions, Fastlane configuration, developer scripts, pre-commit hooks, and validation workflows to enable internal MAM builds while protecting OSS repository

* fix tests by mocking @mattermost/intune

* feat: implement Intune MAM integration with comprehensive security enforcement

Add IntuneManager, refactor SecurityManager/SessionManager for MAM policies, implement native OIDC auth flow, add biometric enforcement, conditional launch blocking, and file protection controls

* fix alerts when no server database is present

* Unify cache strategy

* fix emit config changed after it was stored in the db

* Handle Mid-Session Enrollment Detection

* fix ADALLogOverrideDisabled missing in Fastfile

* fix flow for initial enrollment

* fix and add unit tests

* enable Intune configuration for PR and beta builds, CLIENT_ID should be changed before actual release

* Update intune submodule with addressed feedback

* fix validate-intune-clean workflow

* feat(intune): add comprehensive error handling and SAML+Entra support

Add production-ready error handling for native Entra authentication with
user-friendly i18n messages, comprehensive test coverage, and support for
Entra login when server requires SAML.

* update i18n

* update intune submodule

* update build-pr token

* fix race condition between server auth and intune enrollment

* fix CI workflow to build with intune

* use deploy key for intune submodule

* set the config directly in the submodule .git

* debug injection

* try setting GIT_SSH_COMMAND

* remove action debug

* fix server url input

* match pod cache with intune hash

* Fastfile and envs

* have workflows check for intune/.git

* have ci cache intune frameworks as well

* update Fastlane to set no-cache to artifacts uploaded

* fix s3 upload

* fix pblist template

* Attempt to remove the cache control for PR uploads to s3

* use hash from commit for S3 path

* Implement crash-resilient selective wipe with automatic retry and add removeInternetPassword to Gekidou Keychain

* Fix surface errors from intune login

* fix postinstall scripts

* use cacheKey for draft md images

* remove unnecessary double await during test

* Have isMinimumLicenseTier accept valid license sku tier as target

* Add missing Auth error messages

* remove the last period for intune errors in i18n

* do not call unenroll with wipe on manual logout

* Fix tests and Intune error messages

* do not filter any SSO type regardless of which is used for Intune

* fix 412 to not retry

* fix tests, app logs sharing and share_extension avatar cache

* apply setScreenCapturePolicy on license change

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* re-apply screen capture on enrollment

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* use userData from intunr login and prevent getMe

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* Check for Biometrics and Jailbreak as we used to

---------

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
2025-12-10 13:07:28 +02:00
Rahim Rahman
72b97f60f5
revert: floating banner & low connectivity (#9254)
* Revert "feat(MM-65625): low connectivity feature toggle in advance settings (#9191)"

This reverts commit c872e2e2b1.

* Revert "feat(MM-65145): Network connectivity/performance observer (#9173)"

This reverts commit 597e03d7d8.

* Revert "feat(MM-65625): floating banner (#9162)"

This reverts commit 5887c3ab46.

* Revert "feat(MM-65625): enhance navigation overlay management (#9165)"

This reverts commit f1554f0341.

* revert advanced.test.tsx changes
2025-11-04 07:15:51 -07:00
Rahim Rahman
597e03d7d8
feat(MM-65145): Network connectivity/performance observer (#9173)
* feat: implement floating banner system

- Add FloatingBanner component with gesture support and keyboard awareness
- Implement BannerManager singleton for banner lifecycle management
- Create floating banner screen with SafeAreaProvider integration
- Add comprehensive banner configuration types and positioning
- Update Banner component to use modern gesture handling
- Enhance BannerItem with improved typography and spacing (40px height)
- Add ConnectionBanner improvements with better sizing
- Remove ConnectionBanner from channel list (moved to floating system)
- Update screens constants (remove FLOATING_BANNER - handled as overlay)
- Add i18n support for limited network connection message

The system provides:
- Auto-hide functionality with customizable duration
- Position-aware rendering (top/bottom with keyboard adjustment)
- Tablet-specific offset handling
- Swipe-to-dismiss with configurable thresholds
- Custom component support alongside default banner items
- Comprehensive test coverage with device-specific scenarios

* docs: add floating banner system documentation and cleanup

- Add comprehensive floating-banner.md with architecture diagrams
- Remove incompatible connection_banner/index.ts file
- Update device.ts hooks for better keyboard handling
- Simplify screens/index.tsx floating banner registration
- Update test/setup.ts to remove deprecated keyboard mocks
- Clean up keyboard height logic and ESLint issues

The documentation covers:
- System architecture and component relationships
- API reference and usage patterns
- Performance considerations and best practices
- Integration points and troubleshooting guide
- Comprehensive testing strategy

All tests now pass with the updated setup.

* fix issue with translation file

* some self cleanup.

* renamed index.tsx => Banner.tsx

* creaete meaningful tests for Banner component and all the hooks.

* fix tests

* cleanup based on initial review by AI

* dismissible was set to true, changing to what was configured.

* making title and message optional

* feat(MM-65145): Network connectivity/performance observer

* add MONITOR_NETWORK_PERFORMANCE

* i18n stuff

* remove unused props

* Undo some AI changes that caught by another AI

* network connectivity observation md

* addressed some comments in PR

* more fixes based on PR review.

* added future enhancement

* dismissOverlay will be awaited
* delay dismissing overlay so we don't have to show a new one all the time

* make the banner stackable

* Fix issue with last banner dismissal delayed by 2s

* update floating-banner test

* put back an extra space

* add a todo to use namespace
* add comment on priority order for connectivity performance
* use static const vs magic number

* add a guard against adding performanceSubject when server has been removed
* fix failing tests

* clean-up based on review by @enahum

* fix failing test

* fix failiing tests

* rename confusing var

* update changes to types

* fixed issue with swipe not working on android

* performance and connectivity use the same id so that 2 banners won't appear

* fix issue w/ android not registering touch events behind the overlay

* fix failing test

* hideBanner now needs id.

* Connection status unknown added in en.json

* update the doc

* animate the banner moving up when bottom banner first appear.

* removed unused functions and update tests

* add useMemo and useCallback

* update jsdoc to say dismissable is default true

* fix failing test
2025-10-12 10:10:05 -06:00
Elias Nahum
11118c43c5
Explicitly build the universal apk (#8790)
* Explicitly build the universal apk

* remove universal APK link from github release
2025-04-22 13:16:15 +03:00
Rahim Rahman
0a0e2a7898
Update environment variable COLLECT_NETWORK_METRICS (#8505) 2025-01-22 07:55:00 -07:00
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
8c7c02d298
Add support for Auth Scheme customization (#8261) 2024-10-23 08:44:12 +08:00
Elias Nahum
01a60803fd
fix ios and android build (#8114) 2024-07-26 19:34:50 +08:00
Elias Nahum
de6ccaef01
SSL Pinned Certificate (#8055) 2024-07-23 18:26:20 +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
Mario Vitale
013335acb9
Fix the Universal Android build download URL for releases (#8045) 2024-06-27 13:13:57 +02:00
Saturnino Abril
275f40f8d9
CLD-5901 Fix: iOS simulator download link (#7427)
* fix: iOS simulator download link

* use the S3 bucket name
2023-06-27 07:15:42 -04:00
Dmitry Lyzlov
cc2728aaa8
Added localization into iOS share extension (#7351) 2023-06-21 12:42:31 +02:00
Antonis Stamatiou
8d475d8a36
feat: Migrate to Github Actions (#7394) 2023-06-08 16:02:59 +03:00
Elias Nahum
a10e6d0d4d
Remove Fastlane message attachment icon (#7341) 2023-05-12 09:26:50 -04:00
Elias Nahum
1a4bc4217c
Added localization for iOS plist files (#7303)
* Added localization for iOS plist files

* update strings

* Update app/constants/permissions.ts

* Update assets/base/i18n/en.json

* Update ios/Mattermost/Info.plist

* Update ios/Mattermost/Info.plist

Co-authored-by: Christopher Poile <cpoile@gmail.com>

* Update app/constants/permissions.ts

Co-authored-by: Christopher Poile <cpoile@gmail.com>

* Update assets/base/i18n/en.json

Co-authored-by: Christopher Poile <cpoile@gmail.com>

* add suggestions

---------

Co-authored-by: Dmitry Lyzlov <dlyzlov@stsoft.ru>
Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>
Co-authored-by: Christopher Poile <cpoile@gmail.com>
2023-04-21 13:57:38 -04:00
Dmitry Lyzlov
d3a9b35d42
Added support for self-hosted Sentry (#7230) 2023-04-19 14:58:59 -04:00
Elias Nahum
dee100f1d9
Fix mattermost incoming webhook action for fastlane (#7262)
* Fix mattermost incoming webhook action for fastlane

* feedback review

* fix fastlane bundler version
2023-04-04 10:26:21 -04:00
Elias Nahum
d61fbd3180
Various fixes (#7161)
* Save message draft when post input is unmounted

* Fix switch CRT on/off

* Handle iPad on Stage Manager

* iOS Share Extension to use LRU cache instead of file cache

* Support building android as aab

* use handleReconnect instead of appEntry on handleCRTToggled

* show skin tone selector tutorial after running all interactions

* Update app/actions/remote/preference.ts

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* fix lint

---------

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2023-02-24 13:02:05 +02:00
Elias Nahum
f37a9fbabb
Replace package and imports for Kotlin files (#7090) 2023-02-07 11:34:49 +02:00
Elias Nahum
c83f53abd9
Add set_app_version_build to Fastlane (#7089) 2023-02-07 10:59:03 +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
Elias Nahum
c8d9758f18
CI fixes (#6936)
* CI fixes

* Fix fastlane script
2023-01-06 21:41:03 +02:00
Avinash Lingaloo
92ca1e3704
Sentry fixes (#6830) 2022-12-21 19:34:44 +02:00
Saturnino Abril
ec7066ad06
Combine fastlane for iOS unsigned and simulator and enable build of iOS simulator both in release and PR (#6854)
* combine fastlane for ios unsigned and simulator and enable build of ios simulator both in release and pr

* revert changes to circleci
2022-12-13 05:58:11 +08:00
Stuart Doherty
178eff3c96
Updated build path for unsigned builds (#6843) 2022-12-08 17:28:54 +02:00
Joseph Baylon
2105d93473
Fix fastlane simulator lane (#6832) 2022-12-05 12:43:12 -08:00
Elisabeth Kulzer
bbd9affaf6
Required changes to the CI automation for e2e-testing (#6629)
* Migrate steps to gekidou

* Port changes for gekidou

* run tests again

* bump cache to check

* Change image to make sure

* try npm i

* Run NODE_ENV=development npm update

* Try stuff

* try

* Try

* Try

* use a bashrc file

* use a bashrc file

* use a bashrc file

* use a bashrc file

* use a bashrc file

* revert

* Tests run now again

* Comment test step again

* Migrate steps to gekidou

* Port changes for gekidou

* run tests again

* Change image to make sure

* try npm i

* Run NODE_ENV=development npm update

* Try stuff

* try

* Try

* Try

* use a bashrc file

* use a bashrc file

* use a bashrc file

* use a bashrc file

* use a bashrc file

* revert

* Tests run now again

* Comment test step again

* Change derived data path

* Fix commata

* Add headless

* Remove headless, because it is not supported

* Fix no job

* Try other system image

* Fix calling

* Remove unnecessary changes.

* Focus on important changes for ios to succeed.
2022-12-01 10:11:04 -08:00
Elias Nahum
6eadc527bb
Gekidou Android share extension (#6803)
* Refactor app database queries to not require the app database as argument

* Android Share Extension and fix notifications prompt

* feedback review
2022-11-30 23:18:56 +02:00
Pablo Velez Vidal
688537ff9c Merge branch 'main' into MM-35065-add-onboarding-screens 2022-11-25 17:47:39 +01:00
Daniel Espino García
5fae120826
Add support for review app (#6772)
* Add app review

* Use overlay instead of modal

* Add fixes for ios

* i18n-extract

* Add to milliseconds function

* Address review feedback

* Add try to queryGlobalValue

* added app review illustration

* add feedback illustration

* Add animations and feedback bot message

* Restrict reviews to build environment variable

* Fix bug with "dont ask anymore"

* Add check for only supported servers

* Add missing change

* Use for await

Co-authored-by: Daniel Espino <danielespino@MacBook-Pro-de-Daniel.local>
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
2022-11-24 18:52:15 +01:00
Pablo Velez Vidal
f1f43880a7 Add logic to guard behind the showOnboarding config value the Onboarding feature 2022-11-15 13:50:19 +01:00
Elias Nahum
68da0cc8a5
Gekidou fix unsigned builds (#6614) 2022-09-02 10:46:44 -04:00
Elias Nahum
3a3123674a
[Gekidou] iOS Share extension (#6432)
* iOS Share extension

* Add Fastlane steps for iOS Share Extension

* new multi file layout

* Add recent label

* Refactor code & identation

* ux feedback

* downsample images

* remove options horizontal padding
2022-07-27 10:31:45 -04:00
Elias Nahum
ecd877b5e4
Fix unsigned build 2022-06-09 14:38:18 -04:00
Elias Nahum
0c1e9a4812
Remove Share Extensions (#6238) 2022-05-06 08:32:04 -04:00
Elias Nahum
b530dbeb09
[Gekidou] upgrade to RN 68 (old arch) (#6138)
* upgrade to RN 68 (old arch)

* remove test setup unused & commented mock

* Android target set to 30

* Fix theme when opening app from push notification

* upgrade common mark
2022-04-08 12:40:44 -04:00
Elias Nahum
880cfbb7ac
Upgrade unimodules with expo to use expo-file-system 2021-11-06 18:08:22 -03:00
Elias Nahum
96f3970ddb
Rename match lane to certs, fixes iOS build process (#5745) 2021-10-12 12:42:12 -03:00
Elias Nahum
1c041072db
Update fastlane 2021-10-05 15:09:46 -03:00
Elias Nahum
b5c5949b7d
[Gekidou] Update Splash Screen / App icons and Android snooze Push Notifications (#5658)
* Android push notification snooze

* Android splash & icons

* iOS splash & icons

* Update project assets

* Replace iOS assets using Fastlane

* Remove configure_telemetry_android from Fastlane script

* Update Fastlane with master branch

* Fix Android fastlane build

* replace reference for com.mattermost.rnbeta.* imports

* Set iOS ENTRY_FILE as index.ts
2021-08-31 14:58:09 -04:00
Elias Nahum
22e82dfc2a
Barebones code for v2 2020-11-17 14:20:58 -03:00