mattermost-mobile/fastlane
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
..
actions Fix mattermost incoming webhook action for fastlane (#7262) 2023-04-04 10:26:21 -04:00
metadata Update supported ESR version (#8835) 2025-05-16 09:28:47 +03:00
screenshots Barebones code for v2 2020-11-17 14:20:58 -03:00
.env.android.beta Update environment variable COLLECT_NETWORK_METRICS (#8505) 2025-01-22 07:55:00 -07:00
.env.android.pr feat(MM-65145): Network connectivity/performance observer (#9173) 2025-10-12 10:10:05 -06:00
.env.android.release Update environment variable COLLECT_NETWORK_METRICS (#8505) 2025-01-22 07:55:00 -07:00
.env.default feat: Migrate to Github Actions (#7394) 2023-06-08 16:02:59 +03:00
.env.ios.beta Playbooks update (#9039) 2025-07-29 21:55:41 +08:00
.env.ios.pr feat(MM-65145): Network connectivity/performance observer (#9173) 2025-10-12 10:10:05 -06:00
.env.ios.release attempt to fix base timeout error on fastlane for release build (#9037) 2025-07-29 00:16:06 +08:00
.env.ios.simulator Playbooks update (#9039) 2025-07-29 21:55:41 +08:00
env_vars_example Added support for self-hosted Sentry (#7230) 2023-04-19 14:58:59 -04:00
Fastfile feat(MM-65145): Network connectivity/performance observer (#9173) 2025-10-12 10:10:05 -06:00
Gemfile Bump nokogiri from 1.18.7 to 1.18.9 in /fastlane (#9017) 2025-07-22 15:23:20 +08:00
Gemfile.lock Bump nokogiri from 1.18.7 to 1.18.9 in /fastlane (#9017) 2025-07-22 15:23:20 +08:00
Matchfile Barebones code for v2 2020-11-17 14:20:58 -03:00
plist.erb Barebones code for v2 2020-11-17 14:20:58 -03:00
Pluginfile Fix build script failure (#7740) 2024-01-08 15:06:06 +01:00
README.md Update fastlane 2021-10-05 15:09:46 -03:00

fastlane documentation

Installation

sudo gem install fastlane

Available Actions

iOS

ios dev

fastlane ios dev

Build Release file

This will also make sure the profile is up to date

ios beta

fastlane ios beta

Submit a new Beta Build to Apple TestFlight

This will also make sure the profile is up to date

ios release

fastlane ios release

Deploy a new version to the App Store

ios build

fastlane ios build

Android

android dev

fastlane android dev

android beta

fastlane android beta

android release

fastlane android release

This README.md is auto-generated and will be re-generated every time fastlane is run. More information about fastlane can be found on https://fastlane.tools. The documentation of fastlane can be found on GitHub.