* Added scaffolding for unrevealed BoR post
* Displayed reveal UI
* Displayed expiry timer
* WIP
* Displayed own post indicator and blur text
* restored button
* Ungrouped BoR posts
* WIP
* WIP
* DIsplayed error message on revealing
* Added last run check on mobile app cleanup job
* Cleanup
* lint fix
* i18n-fix
* Added tests
* test: add test suite for revealBoRPost function
* test: add unrevealed burn on read post test file
* feat: add tests for UnrevealedBurnOnReadPost component
* test: update UnrevealedBurnOnReadPost test with PostModel type
* test: replace toBeTruthy with toBeVisible for component visibility assertions
* test: add initial test file for expiry timer component
* test: add comprehensive tests for ExpiryCountdown component
* refactor: clean up test formatting and remove redundant test case
* fix: adjust test timing for ExpiryCountdown onExpiry callback
* test: fix timer test by advancing timers in smaller increments
* Added tests
* Updated tests
* fixed accidental change
* restored package.resolved
* WIP review fixes
* Review fixes
* Review fixes
* Fixed tests
* restored package.resolved
* WIP
* test: add test for skipping BoR post cleanup within 15 minutes
* test: add comprehensive test cases for expiredBoRPostCleanup
* WIP
* WIP
* test: add bor.test.ts placeholder file
* test: add comprehensive tests for BoR utility functions
* test: add comprehensive tests for formatTime function
* WIP
* test: add comprehensive tests for getLastBoRPostCleanupRun function
* Added tests
* removed a commented code
* post list optimization
* test: add test case for updating unrevealed burn-on-read post
* fix: handle error logging in expiredBoRPostCleanup test
* test: add test case for updateLastBoRCleanupRun error handling
* review fixes
* lint fixes
* Added WS event handling (#9320)
* Added WS event handling
* test: add burn on read websocket action test
* test: add tests for handleBoRPostRevealedEvent in burn_on_read
* Added tests
* test: add comprehensive error handling test cases for burn on read
* Added tests and error handling
* BoR post - restricted actions (#9315)
* Restricted post actions for BoR post type
* Prevent opening thread fr nBoR post
* WIP
* fix: remove redundant observable wrapping in post options
* fixed a change
* removed broken
* restored package.resolved
* Added tests
* Awaiting for last run to be set
* Added tests for validating expiry timer behaviour (#9338)
* Added tests for validating expiry timer behaviour
* No need of use event setup
* Bor ux fixes (#9336)
* WIP
* UI and delete fixes
* lint fixes
* fixed tests
* Improved mocking
* Improved test
* 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>
* feat: enhance navigation overlay management
- Add overlay tracking to NavigationStore with exception handling
- Implement dismissAllOverlays with individual overlay dismissal
- Add overlay management methods (add, remove, filter exceptions)
- Preserve floating-banner-overlay when dismissing other overlays
- Add comprehensive tests for overlay stack management
- Update navigation command listeners for overlay events
This improves overlay management by tracking overlays in the store
and providing fine-grained control over which overlays to dismiss,
particularly preserving floating banners during navigation cleanup.
* make tests more meaningful in navigation
* ChatGPT review fix
* revert changes to dismissAllOverlays
* create a new function dismissAllOverlaysWithExceptions
* add new function removeAllOverlaysFromStack to clear the entire overlays
* added a mock to dismissAllOverlays
* update thread to call dismissAllOverlays with exceptions instead.
* remove unneeded removeAllOverlaysWithExceptions()
* silly ai
* use set instead of array.
* Fix tests leaks and other minor improvements
* Fix flaky test and remove unneeded flags
* Add comments
* test: create ci specific test commands (#9010)
* test: create ci specific test commands
* use test:ci as base for test:ci:coverage
---------
Co-authored-by: Rahim Rahman <rahim.rahman@mattermost.com>
* Fix GM/DM unread threads highlighting all teams as unreads
* Use options object instead of boolean flags
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* feat(MM-64410): batch write all posts for all channels on team-by-team basis
* skipAuthor=false, so the authors will be fetched after post fetching
* renaming a file
* revert unplanned changes
* missing end line
* fix broken test
* Review comment. Using 20 posts
* 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>
* refactor: started with draft, done until new tabs for draft
* refactor: change the query and added the screen for draft
* added condition for fetching draft for channel delete or not
* refactor: added draft screen
* linter fixes
* Added draft post component
* added avatar and header display name for the draft post list
* added channel info component
* channel info completed
* proper naming
* added image file markdown acknowledgement support
* draft actions
* Fix the draft receiver in drafts
* separated send message handler
* Done with send drafts
* done with delete drafts
* change save to send draft
* handle lengthy message with show more button
* done with persistent message edit, send and delete drafts
* added alert for sending message
* added update at time for the drafts
* en.json extract fix
* Updated dependencies for useCallback
* refactor: added drafts list to animated list
* added swipeable component and delete conformation for drafts
* done with rendering of images in markdown for drafts
* en.json issue fixed
* fix en.json issue
* refactor: en.json fix
* addressed review comments
* updated image metadata handling code
* linter fixes
* added the empty draft screen
* linter fix
* style fix
* back button an android takes to the channel list page
* en.json fix
* draft actions theme compatible
* CSS fix for draft channel_info and avatar component
* removed the badge icon and change font style drafts
* fix send alert sender name for GMs
* updated snapshot
* added testId to the drafts components
* updated send draft test id
* clicking on draft takes to the channel
* Added toptip for draft tours
* intl extract
* Rebase to main and reverted local testing changes
* Added tooltip for drafts
* addressed review comments
* reset navigation when click on a draft in draft tabs
* fix the theme issue and navigation issue
* reverted back the draft click navigation changes
* observing draft when hitting back button
* removed the unwanted animiation
* updated regex for parsing markdown
* removed unnecessary checks and change folder name
* removed react memo and merge unwanted observes function
* removed unnecessary comments
* changed the name for observing and querying draft function
* removed memo from component level
* Text to FormattedText component
* Text to formatted text, change image name
* added confirmation modal for deleting draft from bottomsheet
* using common send_handler for both draft and post
* removed magic number for tooltip and bottomsheet
* renamed channel_info to draft_post_header
* text to formattedText for Edit drafts
* removed unnecessary changes
* minor fixes
* mounting draft only when there is draft
* map to reduce
* renamed SwipeableDraft to DraftSwipeAction
* name fixes
* isValidUrl to isParsableUrl and added test
* added test and addressed minor review comments
* added inline component for the duplicate code
* inlt fixes
* clearDraft is not optional
* optimised categories_list.tsx component
* Swipeable to ReanimatedSwipeable, TouchableWithoutFeedback to Pressable and folder name changes
* Added comment and disabled eslint rule for showing warning
* fixed component file name
* minor'
* Removed deprecated Animated createAnimatedComponent flatlist
* added test for missing protocol check
* import change for SwipeableMethod
* active tab for tablet view
* Updated the drafts icons
* Updated compass-icon version to v0.1.48
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* MM-60705 DB migration: added update_at column to draft table for mobile
* refactor: updated docs
* refactor: reverted unwanted changes and updated default value for update_at columns
* refactor: changed the condition for excepting 0 value for update_at column
* Add tests for actions/local/draft/updateDraftFile
* Add tests for actions/local/draft/removeDraftFile
* Add tests for actions/local/draft/updateDraftMessage
* Add tests for actions/local/draft/addFilesToDraft
* Add tests for actions/local/draft/removeDraft
* Add tests for actions/local/draft/updateDraftPriority
* Fix updateDraftMessage test case
* Update app/actions/local/draft.test.ts
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* place common beforeeach/aftereach top of file (#8076)
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>