* Add more messages button * Update existing tests * Various fixes: * Use viewAreaCoveragePercentThreshold over itemVisiblePercentThreshold * Remove currentUserId check when adding New Message line to postIds and instead update the channel last viewed time when an own post is received * Update snapshots * Add showMoreMessagesButton prop and default to false * Android fixes * Add tests * Localize more messages text * Use FormattedText * i18 extract * Style fixes * Account for network indicator * Fix for failing tests * Various fixes: * Set the unreadMessageCount when POST_UNREAD_SUCCESS is dispatched with a positive deltaMsgs * Hide the more messages button when the unread count decreases or when the new message line is removed shortly after loading the channel * No need for POST_UNREAD_SUCCESS if we manually call onViewableItemsChanged * Reset unread count if current channel on channel mount * Animate text opacity * Compare indeces to determine when scrolling has ended * Fix opacity animation trigger * try with scrolling to the last rendered item * Add onScrollEndIndex * Improve animations * Don't track moreCount in state * Use moreText over prevNewMessageLineIndex to determine firstPage * Update intl message format and call cancel in componentDidUpdate when needed * Fix intl format * Remove opacity animation and countText * Fix pressed not being reset * No need to separate intl func * Return after resetting * Fix accidental removal of setState call * Reset pressed when newLineMessageIndex changes * Use default windowSize and lower POST_CHUNK_SIZE and delays * Queue a cancel timer that gets cleared only when the newMessageLineIndex changes * Define uncancel func * Increase cancelTimer delay * Subtract read posts from unread count and account for retry indicator * Add retry bar indicator tests * Use props.unreadCount * Fix handling of newMessageLineIndex change * Fix handling of newMessageLineIndex change take 2 * Fix handling of newMessageLineIndex change take 3 * Use 'native' TouchableWithFeedback with dark overlay * Fix handling of manually unread * Update chunk and window sizes * Fix hsl * Update text only when newMessageLineIndex/endIndex is reached * Don't delay cancel if when no more unreads * Fixes for when opening the app * No need to process viewableItems when unreadCount is 0 * Remove line * Don't show if unreadCount is 0 Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Mattermost Mobile
- Minimum Server versions: Current ESR version (5.19)
- Supported iOS versions: 11+
- Supported Android versions: 7.0+
Mattermost is an open source Slack-alternative used by thousands of companies around the world in 14 languages. Learn more at https://about.mattermost.com.
You can download our apps from the App Store or Google Play Store, or build them yourself.
We plan on releasing monthly updates with new features - check the changelog for what features are currently supported!
Important: If you self-compile the Mattermost Mobile apps you also need to deploy your own Mattermost Push Notification Service.
How to Contribute
Testing
To help with testing app updates before they're released, you can:
- Sign up to be a beta tester
- Install the
Mattermost Betaapp. New updates in the Beta app are released periodically. You will receive a notification when the new updates are available. - File any bugs you find by filing a GitHub issue with:
- Device information
- Repro steps
- Observed behavior (including screenshot / video when possible)
- Expected behavior
- (Optional) Sign up for our team site
- Join the Native Mobile Apps channel to see what's new and discuss feedback with other contributors and the core team
You can leave the Beta testing program at any time:
- On Android, click this link while logged in with your Google Play email address used to opt-in for the Beta program, then click Leave the program.
- On iOS, access the
Mattermost Betaapp page in TestFlight and click Stop Testing.
Contribute Code
- Look in GitHub issues for issues marked as [Help Wanted]
- Comment to let people know you’re working on it
- Follow these instructions to set up your developer environment
- Join the Native Mobile Apps channel on our team site to ask questions
Frequently Asked Questions
How is data handled on mobile devices after a user account is deactivated?
App data is wiped from the device when a user logs out of the app. If the user is logged in when the account is deactivated, then within one minute the system logs the user out, and as a result all app data is wiped from the device.
Can I connect to multiple Mattermost servers using the mobile apps?
At the moment, we only support connecting to one server at a time. If you need to connect to multiple servers, please upvote the feature request so we can track demand for it.
As a work around, you can install both the released "Mattermost" app and sign up to be a tester for the "Mattermost Beta" app so you can connect to two servers at once.
Will there be second generation apps available for tablets?
We plan to add support for tablets in the future, but the timeline depends on how many people have a need for it. If you're looking for a tablet version, please help us out by upvoting the feature request!
Troubleshooting
I keep getting a message "Cannot connect to the server. Please check your server URL and internet connection."
This sometimes appears when there is an issue with the SSL certitificate configuration.
To check that your SSL certificate is set up correctly, test the SSL certificate by visiting a site such as https://www.ssllabs.com/ssltest/index.html. If there’s an error about the missing chain or certificate path, there is likely an intermediate certificate missing that needs to be included.
Please note that the apps cannot connect to servers with self-signed certificates, consider using Let's Encrypt instead.
I see a “Connecting…” bar that does not go away
If your app is working properly, you should see a grey “Connecting…” bar that clears or says “Connected” after the app reconnects.
If you are seeing this message all the time, and your internet connection seems fine:
Ask your server administrator if the server uses NGINX or another webserver as a reverse proxy. If so, they should check that it is configured correctly for supporting the websocket connection for APIv4 endpoints.