## Configuration for App Grid
### Context
- Team Mail is a service inside Twake Workspace which include other services
- User need to access other services from Team Mail
### How to config
1. Add services to configuration file
- Each service have the information:
```
{
"appName": "Contacts",
"icon": "ic_contacts_app.svg",
"appLink": "https://openpaas.linagora.com/contacts/",
"androidPackageId": "xxx",
"iosUrlScheme": "xxx",
"iosAppStoreLink": "xxx",
"publicIconUri": "xxx"
}
```
- All services must be added to the configuration file [configurations\app_dashboard.json](https://github.com/linagora/tmail-flutter/blob/master/configurations/app_dashboard.json)
For example:
```
{
"apps": [
{
"appName": "Twake",
"icon": "ic_twake_app.svg",
"appLink": "http://twake.linagora.com/",
"androidPackageId": "xxx",
"iosUrlScheme": "xxx",
"iosAppStoreLink": "xxx"
},
{
"appName": "App 1",
"icon": "ic_twake_app.svg",
"appLink": "http://twake.linagora.com/",
"androidPackageId": "xxx",
"iosUrlScheme": "xxx",
"iosAppStoreLink": "xxx"
},
{
"appName": "App 2",
"appLink": "http://twake.linagora.com/",
"androidPackageId": "xxx",
"iosUrlScheme": "xxx",
"iosAppStoreLink": "xxx",
"publicIconUri": "xxx"
},
...
]
}
```
- `appName`: The name will be showed in App Grid
- `icon`: Name of icon was added in `configurations\icons` folder. If not, `publicIconUri` must be provided.
- `appLink`: Service URL
- `androidPackageId`: ApplicationId of android app
- `iosUrlScheme`: UrlScheme name of the ios app.
- `iosAppStoreLink`: iTunes link of the ios app.
Allow navigate to store (appStore) if app is not found in the device. Example:
`itms-apps://itunes.apple.com/us/app/linshare/id1534003175` or `https://itunes.apple.com/us/app/linshare/id1534003175`
- `publicIconUri`: Public link for the icon, used when `icon` is null or empty.
2. Enable it in [env.file](https://github.com/linagora/tmail-flutter/blob/master/env.file)
```
APP_GRID_AVAILABLE=supported
```
If you want to disable it, please change the value to `unsupported` or remove this from `env.file`
3. Enable open app on mobile(Android/iOS)
- In `Android 11+` to open another app already installed, you have to add the package with name `ApplicationId`' in [AndroidManifest](https://github.com/linagora/tmail-flutter/blob/master/android/app/src/main/AndroidManifest.xml) inside `queries` tag. Example:
```
```
- - In `iOS 9+` to open another app already installed, you have to add the `UrlScheme`' in [Info.plist](https://github.com/GeekyAnts/external_app_launcher/blob/master/example/ios/Runner/Info.plist) under the `LSApplicationQueriesSchemes` key. Example:
```
LSApplicationQueriesSchemes
linshare.mobile
```