* 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>
* refactor to improve requests on login
* include in team sidebar order by display name teams not present in the order preference
* Fix iOS reload while developing
* fix code causing tests to fail
* feedback review
* update network-client
* Fix several issues around team join
* Open in modal and fix channel list
* Add joining states and fix issues
* i18n-extract
* add specific message for group related failures on joining teams
* Address feedback
* Address feedback
* Use error from server response
* initial check in
* add search value to memoized dependencies in modifier component
* ignore the back press
* UI adjustments from PR feedback
* initial commit
* recent search are getting rendered from WDB
* search terms from the search bar are getting added
* can delete recent searches from WDB from recent searches Options
* will now add new ters to the table and recreate existing terms with new
timestamp
* push for scrollview
* use flatlist instead of scrolview
* s/deleteRecentTeamSearchById/removeSearchFromTeamSearchHistory/
* s/addRecentTeamSearch/addSearchToTeamSearchHistory/
* Fix search to use a flatlist and remove douplicate reference
* fix eslint
* Fix android autoscroll search field to the top
* limit the number of saved searches to 20 for a team.
return the results a team Search History sorted by createdAt
* set display to term for now
* clean up
* clean up
* initial commit
* - From the search screen, you cna now set the team for the search
- Recent searches are saved for the specified team
* fix styling fo icon in modifiers
* - move team picker to its own component and call from modifiers
- will use for results header also
* - show team image if available
- pass optional size to TeamPickerIcon
- add TeamPickerIcon to Resuls Header
- styling fixes
* add team name to recent searches title
* parameter renaming
* fix lint
* fix callback bug that was calling itself
* when changing a team while showing search results:
- update the search results with new selected team and current search
term.
- save the recent search the new selected team TeamSearchHistory for
that team
* move to bottom for reduction of PR review lines and comparison to
changes in theh component logic
* - add dependencies
- rename function
* fix PR feedback
* - created helper function for bottom sheet with TeamList
BottomSheetContent
- share the bottomScreen calls from AddTeam and TeamPickerIcon
* Add title back to renderContent of bottomSheet call. This is needed for
tablets
* remove unnecessary check of selectTeamId. it will be undefined and fail
the equality check
* - now all team_icons are all radius of 8. Includes the following icons:
- team picker icon in in search screen
- each team icon in the search screen bottom sheet team list
- team picker icon in in search results screen
- each team icon in the home screen team side bar list
- each team icon in the join new team bottom sheet team list (from home screen)
* use padding in the width of the header so the margins are extended full
width, and dateline separator of post list does not creep into the
header region
* add smallText prop to team_icon.
- allows using 200 instead of default 400 value.
- 200 is used for the TeamPickerIcon used in the searcha nd results
headers
* - add dependency back to handle renderItem and allow selecting files or
messages view
- when handling the search, save the term to the correct team
* adjust styling so the rounded edges appear for the header. Use the
header container height to set the height of the header to 40 and then
set top and bottom margins for the rounded top edge and the bottom
margin to the divider
* use typography
* add title dependency
* update dependencies
* use bottomSheetSnapPoint to get the height of the total items
* rename variable
* Always use Metropolis-SemiBold for the team icon fallback
* use a fragment because there is not styling
* move title inside onPress function and can remove the title as a
dependency
* just use strings for testID
* calculate the observable inside the return object
* - remove const and use string
- correct the name of the testID
* - use more specific dependency value team.id
- add onPress dependency
* move to a constant
* move to a constant
* replace with logical AND
* add all logic for the style to textStyle
* remove the separate divider view and just use the outside container with
bottomBorder with and color
* extend the image vertically in the results
* Fix size of bottom sheet
* Refactor unneeded change
* Minor tweaks
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* Fix navigation stack tracking
* Fix hardwareBackPress handlers
* Use user locale for formattedTime
* Show in-app notifications when in a thread but hide when in the same thread
* Fix post draft archived & read only safe area
* Do not show reply post option in thread screen
* Open permalink as full screen modal
* Fix crash when using chinese locale
* Fix team list and call handle team change
* Improvements on channel switch performance
* Revert removal from channel observables
* Fix team switch dependancies
* Fix lint
* Use events to signal channel switch
* Add check for hasMembership
* Address feedback
* add useTeamSwitch hook
* Fix team switch perceived performance on tablets
* align custom status in channel list
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Exclude muted channels from unread badges
* Gekidou unreads mention fix (#6221)
* Removes muted channels without mentions from grouped unreads
* show channel if unread and have no mentions when unread up top
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Co-authored-by: Shaz MJ <shaz.amjad@mattermost.com>
* Display local results
* Fix queryPreferencesByCategoryAndName to observeWithColumns value
* Find channels (remote)
* ux feedback review
* dev review
* dev review 2
* Fetch deleted channels from other teams
* Sets values on my_channel according to CRT
* Team counts with regard to CRT
* Fixes myChannel.is_unread with regard to CRT
* Include DM/GMs for thread counts on demand
* Incorporate thread mention counts in server/channel
* Channel updates in regard to CRT
* Extract common observers to queries
* Separate also queries and more agressive refactoring
* Use query to avoid throws from findAndObserve
* Fix minor error
* Address feedback
* Address feedback
* Address feedback
* Fix model types
* Address feedback
* Make message_count become has_unreads
* Fix lint
* Re-add the message count
* rename has_unreads to is_unread and address feedback
* fix query with is_unread
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Renames header
* Adds Server Display Name Context
* Adds server and team name to header
* Snapshot fail fixed
* rename serverUrl context to server and include displayName
* Add server display name and use only team display name in channel list header
* Improve channel_list test
* Fix channel list on tablets when team sidebar is present
* Fix Server icon color
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>