* initial checkin * all text is added * add fonts * wip * get fonts from differnt site suggestion from matt * use actual apostrophe * add react-native-paper dependency * wip * add project info for metropolis fonts * correct the display name help text alignment with stretch use paper theme to color and make the the placeholder opaque remove placeholder prop because spec wants the box to be empty on focus * fix Metropolis font reference * Add more styling. Clean up code later * input box text theme color * separate padding for two textinput boxes share the input theme * Use ActivityIndicator from react-native-paper * wrap formatText components in a view so they scroll up inline with the text inputs and button * clean up styles section. no empty lines and no comments * Use Colors library instead of harcoding #FFFFFF * Move error message into helper directly under the server url input box * need to handle the error so it can be presented in the modal * set state for button is disabled or not reset errors before every connect attempt * when url is not valid show the error message and disable the connect button until some text in display or the url input changes * s/generic/default/ * group formatted messages together * Add icon to the error message fix clipped helper messages * when urlError is not '', make the input border red after connecting creates an error, typing in the input boxes will * enable the connect button * reset the error messages * change outline from red to blue * After connecting and the server url has an error, allow the user to click the display input and keep the url border red. The only time the red border and error reset is when the user types in that field again * remove duplicate button component. only get the prop values and construct after all values defined * use correct icon and add spacing between icon and text * fix styling for Android New styling from figma * initial add of background svg. RHS is off a bit * sync with gekidou changes * sync with gekidou * sync with gekidou * sync with gekidou * sync with gekidou * use new FloatingTextInput component * Added widgets/text_settings * wip * wip * Update index.tsx * work in progress * fix text settings component * fix text settings component * crash fix * code clean up * Update index.tsx * Fix testSettings * Wrap with View so the text moves with the text inputs when keyboard appears * update styling when user starts typing in server url after a failed connect, dismiss the error * use utils/buttonStyles * leave as it was to minimize irrelevant PR diffs * nit * Align all components Add vertical margin to styles Add subcontainer and container props to text_setting component Use FormattedText for choosing a display name text instead of text_setting helper text * revert midnight change * reset the connecing error when a user starts modifying the server url * formatting remove svg repalce <Text> with <FormattedText> * fix lint * remove svg file * Listening for appearance to set the theme for non connected screens * Pass the theme as a prop for TextSettings * Fix Server screen layout and pass the displayName for DB creation * Tablet layout * Persist keyboard on tap * Change position & opacity for app version * added background SVG * Fix non theme control screens status bar color * Split Server screen into smaller components * fixed svg background layout for tablet * Bring back form & header and remove some extra background color and styles * Remove duplicate font reference in Info.plist * Final UI tweaks * Fix error display on url field * margin bottom to app version * Add ClientError utility to extract error * update snapshot Co-authored-by: Elias Nahum <nahumhbl@gmail.com> Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com> Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
Mattermost Mobile v2
This is a work in progress branch for the next major version of the Mattermost mobile app. Once the work is completed and ready to share, this brach will be set as the default branch in this repository.
- Minimum Server versions: Current ESR version (5.25)
- 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.