2018-10-03 18:56:33 +03:00
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android= "http://schemas.android.com/apk/res/android"
2019-03-28 19:51:54 +03:00
xmlns:tools="http://schemas.android.com/tools"
2020-08-03 19:23:05 +03:00
package="im.vector.app">
2018-10-03 18:56:33 +03:00
2020-06-18 18:46:50 +03:00
<!-- Needed for VOIP call to detect and switch to headset -->
<uses-permission android:name= "android.permission.BLUETOOTH" />
2018-10-03 18:56:33 +03:00
<uses-permission android:name= "android.permission.INTERNET" />
2019-10-11 17:41:04 +03:00
<uses-permission android:name= "android.permission.READ_CONTACTS" />
2019-12-20 19:54:02 +03:00
<uses-permission android:name= "android.permission.FOREGROUND_SERVICE" />
2020-01-02 20:12:44 +03:00
<uses-permission android:name= "android.permission.VIBRATE" />
2020-01-22 16:19:04 +03:00
<uses-permission android:name= "android.permission.CAMERA" />
2020-05-05 12:46:21 +03:00
<uses-permission android:name= "android.permission.RECORD_AUDIO" />
2020-03-20 12:12:59 +03:00
<uses-permission android:name= "android.permission.READ_EXTERNAL_STORAGE" />
2018-10-03 18:56:33 +03:00
2020-05-05 12:46:21 +03:00
<!-- Call feature -->
2020-05-20 11:08:53 +03:00
<uses-permission android:name= "android.permission.MANAGE_OWN_CALLS" />
2020-06-27 00:48:41 +03:00
<!-- Commented because Google PlayStore does not like we add permission if we are not requiring it. And it was added for future use -->
<!-- uses - permission android:name="android.permission.READ_CALL_LOG" / -->
2020-06-12 20:10:20 +03:00
<!-- Needed for voice call to toggle speaker on or off -->
<uses-permission android:name= "android.permission.MODIFY_AUDIO_SETTINGS" />
2020-05-05 12:46:21 +03:00
<!-- READ_PHONE_STATE is needed only if your calling app reads numbers from the `PHONE_STATE`
intent action. -->
2020-06-17 16:03:51 +03:00
<!-- Needed to show incoming calls activity in lock screen -->
2020-05-20 11:08:53 +03:00
<uses-permission android:name= "android.permission.USE_FULL_SCREEN_INTENT" />
2020-05-25 11:27:46 +03:00
<uses-permission android:name= "android.permission.WAKE_LOCK" />
2020-06-11 12:33:02 +03:00
<!-- Needed for incoming calls -->
2020-05-25 11:27:46 +03:00
<uses-permission android:name= "android.permission.SYSTEM_ALERT_WINDOW" />
2020-05-05 12:46:21 +03:00
2021-04-28 16:55:21 +03:00
<!-- To be able to install APK from the application -->
<uses-permission android:name= "android.permission.REQUEST_INSTALL_PACKAGES" />
2020-08-14 16:40:02 +03:00
<!-- Jitsi libs adds CALENDAR permissions, but we can remove them safely according to https://github.com/jitsi/jitsi - meet/issues/4068#issuecomment - 480482481 -->
<uses-permission
android:name="android.permission.READ_CALENDAR"
tools:node="remove" />
<uses-permission
android:name="android.permission.WRITE_CALENDAR"
tools:node="remove" />
2021-02-10 14:15:32 +03:00
<!-- Jitsi SDK is now API23+ -->
2021-02-23 12:31:00 +03:00
<uses-sdk tools:overrideLibrary= "org.jitsi.meet.sdk,com.oney.WebRTCModule,com.learnium.RNDeviceInfo,com.reactnativecommunity.asyncstorage,com.ocetnik.timer,com.calendarevents,com.reactnativecommunity.netinfo,com.kevinresol.react_native_default_preference,com.rnimmersive,com.corbt.keepawake,com.BV.LinearGradient,com.horcrux.svg" />
2021-02-10 14:15:32 +03:00
2020-02-27 17:41:35 +03:00
<!-- Adding CAMERA permission prevents Chromebooks to see the application on the PlayStore -->
<!-- Tell that the Camera is not mandatory to install the application -->
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
2021-04-28 15:04:27 +03:00
<!-- Since Android 11, see https://developer.android.com/training/package - visibility -->
<queries >
<!-- To open URL in CustomTab (prefetch, etc.). It makes CustomTabsClient.getPackageName() work
see https://developer.android.com/training/package-visibility/use-cases#open-urls-custom-tabs -->
<intent >
<action android:name= "android.support.customtabs.action.CustomTabsService" />
</intent>
<!-- The app can open attachments of any mime type
see https://developer.android.com/training/package-visibility/use-cases#open-a-file -->
<intent >
<action android:name= "android.intent.action.VIEW" />
<data android:mimeType= "*/*" />
</intent>
</queries>
2018-10-03 18:56:33 +03:00
<application
2020-08-18 19:15:48 +03:00
android:name=".VectorApplication"
2019-03-28 19:51:54 +03:00
android:allowBackup="false"
2018-10-03 18:56:33 +03:00
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
2019-04-08 16:15:11 +03:00
android:networkSecurityConfig="@xml/network_security_config"
2018-10-03 18:56:33 +03:00
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
2019-03-28 19:51:54 +03:00
android:theme="@style/AppTheme.Light"
tools:replace="android:allowBackup">
2018-12-17 20:55:15 +03:00
2020-06-18 16:07:57 +03:00
<!-- No limit for screen ratio: avoid black strips -->
<meta-data
android:name="android.max_aspect"
android:value="9.9" />
2018-12-17 20:55:15 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.MainActivity"
2019-06-26 13:14:10 +03:00
android:theme="@style/AppTheme.Launcher" />
<!-- Activity alias for the launcher Activity (must be declared after the Activity it targets) -->
<activity-alias
android:name=".features.Alias"
2020-08-18 19:15:48 +03:00
android:targetActivity=".features.MainActivity">
2018-10-03 18:56:33 +03:00
<intent-filter >
<action android:name= "android.intent.action.MAIN" />
<category android:name= "android.intent.category.LAUNCHER" />
</intent-filter>
2020-10-11 22:09:36 +03:00
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
2019-06-26 13:14:10 +03:00
</activity-alias>
2021-02-23 12:31:00 +03:00
<activity android:name= ".features.home.HomeActivity" />
2019-11-14 17:25:43 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.login.LoginActivity"
2020-06-05 02:06:52 +03:00
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize">
<!-- Add intent filter to handle redirection URL after SSO login in external browser -->
<intent-filter >
<action android:name= "android.intent.action.VIEW" />
<category android:name= "android.intent.category.DEFAULT" />
<category android:name= "android.intent.category.BROWSABLE" />
2020-12-17 13:15:19 +03:00
<data
android:host="connect"
android:scheme="element" />
2020-06-05 02:06:52 +03:00
</intent-filter>
</activity>
2020-07-05 22:47:38 +03:00
2020-10-12 15:12:44 +03:00
<!-- Add tools:ignore="Instantiatable" for the error reported only by Buildkite :/ -->
2020-07-05 22:47:38 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.media.VectorAttachmentViewerActivity"
2020-10-12 15:12:44 +03:00
android:theme="@style/AppTheme.Transparent"
tools:ignore="Instantiatable" />
2020-07-05 22:47:38 +03:00
2020-08-18 19:15:48 +03:00
<activity android:name= ".features.media.BigImageViewerActivity" />
2019-03-28 19:51:54 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.rageshake.BugReportActivity"
2019-03-28 19:51:54 +03:00
android:label="@string/title_activity_bug_report" />
2019-04-02 19:08:43 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.settings.VectorSettingsActivity"
2019-04-02 19:08:43 +03:00
android:label="@string/title_activity_settings"
android:windowSoftInputMode="adjustResize" />
2019-05-16 11:23:57 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.crypto.keysbackup.restore.KeysBackupRestoreActivity"
2019-05-16 11:23:57 +03:00
android:label="@string/title_activity_keys_backup_setup" />
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.crypto.keysbackup.setup.KeysBackupSetupActivity"
2019-05-16 11:23:57 +03:00
android:label="@string/title_activity_keys_backup_restore" />
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.crypto.keysbackup.settings.KeysBackupManageActivity"
2019-05-16 11:23:57 +03:00
android:label="@string/encryption_message_recovery" />
2019-04-02 19:08:43 +03:00
2019-05-09 19:26:32 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.reactions.EmojiReactionPickerActivity"
2019-05-09 19:26:32 +03:00
android:label="@string/title_activity_emoji_reaction_picker" />
2020-08-18 19:15:48 +03:00
<activity android:name= ".features.roomdirectory.createroom.CreateRoomActivity" />
<activity android:name= ".features.roomdirectory.RoomDirectoryActivity" />
<activity android:name= ".features.roomdirectory.roompreview.RoomPreviewActivity" />
<activity android:name= ".features.home.room.filtered.FilteredRoomsActivity" />
2019-11-21 21:15:58 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.home.room.detail.RoomDetailActivity"
android:parentActivityName=".features.home.HomeActivity">
2019-11-21 21:15:58 +03:00
<meta-data
android:name="android.support.PARENT_ACTIVITY"
2020-08-18 19:15:48 +03:00
android:value=".features.home.HomeActivity" />
2019-11-21 21:15:58 +03:00
</activity>
2020-08-18 19:15:48 +03:00
<activity android:name= ".features.debug.DebugMenuActivity" />
<activity android:name= ".features.createdirect.CreateDirectRoomActivity" />
<activity android:name= ".features.invite.InviteUsersToRoomActivity" />
<activity android:name= ".features.webview.VectorWebViewActivity" />
<activity android:name= ".features.link.LinkHandlerActivity" >
2019-09-16 11:58:51 +03:00
<intent-filter >
<action android:name= "android.intent.action.VIEW" />
<category android:name= "android.intent.category.DEFAULT" />
<category android:name= "android.intent.category.BROWSABLE" />
<data android:scheme= "https" />
<data android:host= "riot.im" />
2020-09-02 18:26:08 +03:00
<data android:host= "app.element.io" />
2020-09-07 12:19:34 +03:00
<data android:host= "mobile.element.io" />
2020-09-07 17:17:58 +03:00
<data android:host= "develop.element.io" />
<data android:host= "staging.element.io" />
2019-09-16 11:58:51 +03:00
</intent-filter>
</activity>
2019-05-24 12:35:46 +03:00
2020-02-05 19:54:40 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.share.IncomingShareActivity"
android:parentActivityName=".features.home.HomeActivity">
2020-02-05 19:54:40 +03:00
<meta-data
android:name="android.support.PARENT_ACTIVITY"
2020-08-18 19:15:48 +03:00
android:value=".features.home.HomeActivity" />
2020-02-05 19:54:40 +03:00
2019-10-09 21:05:37 +03:00
<intent-filter >
2019-10-21 19:08:42 +03:00
<action android:name= "android.intent.action.SEND" />
<data android:mimeType= "*/*" />
2019-10-09 21:05:37 +03:00
<category android:name= "android.intent.category.DEFAULT" />
<category android:name= "android.intent.category.OPENABLE" />
</intent-filter>
<intent-filter >
2019-10-21 19:08:42 +03:00
<action android:name= "android.intent.action.SEND_MULTIPLE" />
<data android:mimeType= "*/*" />
2019-10-09 21:05:37 +03:00
<category android:name= "android.intent.category.DEFAULT" />
<category android:name= "android.intent.category.OPENABLE" />
</intent-filter>
2020-10-11 23:09:19 +03:00
<meta-data
android:name="android.service.chooser.chooser_target_service"
android:value="androidx.sharetarget.ChooserTargetServiceCompat" />
2019-10-09 21:05:37 +03:00
</activity>
2019-12-20 18:43:16 +03:00
2020-08-18 19:15:48 +03:00
<activity android:name= ".features.roomprofile.RoomProfileActivity" />
2019-12-20 18:43:16 +03:00
2020-08-18 19:15:48 +03:00
<activity android:name= ".features.signout.hard.SignedOutActivity" />
2019-12-11 20:33:16 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.signout.soft.SoftLogoutActivity"
2019-12-11 20:33:16 +03:00
android:windowSoftInputMode="adjustResize" />
2020-12-11 18:35:04 +03:00
<activity
android:name=".features.permalink.PermalinkHandlerActivity"
android:launchMode="singleTask">
2019-11-21 21:15:58 +03:00
<intent-filter >
<action android:name= "android.intent.action.VIEW" />
2020-12-11 18:35:04 +03:00
2019-11-21 21:15:58 +03:00
<category android:name= "android.intent.category.DEFAULT" />
<category android:name= "android.intent.category.BROWSABLE" />
<data android:scheme= "http" />
<data android:scheme= "https" />
<data android:host= "matrix.to" />
2020-12-11 18:35:04 +03:00
<data
android:host="user"
android:scheme="element" />
<data
android:host="room"
android:scheme="element" />
2020-12-11 17:06:22 +03:00
2019-11-21 21:15:58 +03:00
</intent-filter>
</activity>
2020-01-15 16:57:21 +03:00
2020-01-22 16:19:04 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.roommemberprofile.RoomMemberProfileActivity"
android:parentActivityName=".features.home.HomeActivity">
2020-01-15 16:57:21 +03:00
<meta-data
android:name="android.support.PARENT_ACTIVITY"
2020-08-18 19:15:48 +03:00
android:value=".features.home.HomeActivity" />
2020-01-15 16:57:21 +03:00
</activity>
2019-12-20 18:43:16 +03:00
2020-08-18 19:15:48 +03:00
<activity android:name= ".features.qrcode.QrCodeScannerActivity" />
2020-01-22 16:19:04 +03:00
2020-08-18 19:15:48 +03:00
<activity android:name= ".features.crypto.quads.SharedSecureStorageActivity" />
2020-02-04 18:35:04 +03:00
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait" />
2020-02-06 20:42:18 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.attachments.preview.AttachmentsPreviewActivity"
2020-02-06 20:42:18 +03:00
android:theme="@style/AppTheme.AttachmentsPreview" />
2021-02-23 12:31:00 +03:00
<activity
android:name=".features.call.VectorCallActivity"
android:excludeFromRecents="true" />
2021-02-23 13:27:04 +03:00
<!-- PIP Support https://developer.android.com/guide/topics/ui/picture - in - picture -->
2020-08-12 15:02:00 +03:00
<activity
2020-08-18 19:15:48 +03:00
android:name=".features.call.conference.VectorJitsiActivity"
2021-02-23 12:31:00 +03:00
android:configChanges="orientation|smallestScreenSize|screenLayout|screenSize"
2021-02-23 13:27:04 +03:00
android:launchMode="singleTask"
2021-02-23 12:31:00 +03:00
android:supportsPictureInPicture="true" />
2020-02-04 18:35:04 +03:00
2020-08-18 19:15:48 +03:00
<activity android:name= ".features.terms.ReviewTermsActivity" />
<activity android:name= ".features.widgets.WidgetActivity" />
<activity android:name= ".features.pin.PinActivity" />
2020-09-21 15:40:46 +03:00
<activity android:name= ".features.home.room.detail.search.SearchActivity" />
2020-11-19 15:11:41 +03:00
<activity android:name= ".features.usercode.UserCodeActivity" />
2020-12-22 18:16:46 +03:00
<activity android:name= ".features.call.transfer.CallTransferActivity" />
2020-05-07 18:37:27 +03:00
2021-01-27 11:52:18 +03:00
<!-- Single instance is very important for the custom scheme callback -->
2021-02-23 12:31:00 +03:00
<activity
android:name=".features.auth.ReAuthActivity"
android:exported="false"
android:launchMode="singleInstance">
2021-01-27 11:52:18 +03:00
<!-- XXX: UIA SSO has only web fallback, i.e no url redirect, so for now we comment this out
2021-02-02 11:32:04 +03:00
hopefully, we would use it when finally available
2021-01-27 11:52:18 +03:00
-->
<!-- Add intent filter to handle redirection URL after SSO login in external browser -->
2021-02-23 12:31:00 +03:00
<!-- <intent - filter> -->
<!-- <action android:name="android.intent.action.VIEW" /> -->
2021-01-27 11:52:18 +03:00
2021-02-23 12:31:00 +03:00
<!-- <category android:name="android.intent.category.DEFAULT" /> -->
<!-- <category android:name="android.intent.category.BROWSABLE" /> -->
2021-01-27 11:52:18 +03:00
2021-02-23 12:31:00 +03:00
<!-- <data -->
<!-- android:host="reauth" -->
<!-- android:scheme="element" /> -->
<!-- </intent - filter> -->
2021-01-27 11:52:18 +03:00
</activity>
2021-02-23 12:31:00 +03:00
<activity android:name= ".features.devtools.RoomDevToolActivity" />
2019-06-25 16:39:51 +03:00
<!-- Services -->
2019-04-02 19:08:43 +03:00
<service
2020-08-18 19:15:48 +03:00
android:name=".core.services.CallService"
2020-06-25 10:33:21 +03:00
android:exported="false">
2020-06-18 15:30:08 +03:00
<!-- in order to get headset button events -->
<intent-filter >
<action android:name= "android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</service>
2019-04-02 19:08:43 +03:00
2020-10-08 14:04:55 +03:00
<!-- Add tools:ignore="Instantiatable" for the error reported only by Buildkite and for lintGplayRelease check :/ -->
2019-12-10 21:52:12 +03:00
<service
2020-08-18 19:15:48 +03:00
android:name=".core.services.VectorSyncService"
2020-10-08 14:04:55 +03:00
android:exported="false"
tools:ignore="Instantiatable" />
2019-12-10 21:52:12 +03:00
2020-05-20 11:08:53 +03:00
<service
2020-08-18 19:15:48 +03:00
android:name=".features.call.telecom.VectorConnectionService"
2020-05-05 12:46:21 +03:00
android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
<intent-filter >
<action android:name= "android.telecom.ConnectionService" />
</intent-filter>
</service>
2019-06-25 16:39:51 +03:00
<!-- Receivers -->
2020-05-20 11:08:53 +03:00
<receiver
2020-08-18 19:15:48 +03:00
android:name=".features.call.service.CallHeadsUpActionReceiver"
2020-05-20 11:08:53 +03:00
android:exported="false" />
2020-10-08 18:46:21 +03:00
<receiver
android:name=".features.settings.troubleshoot.TestNotificationReceiver"
android:exported="false" />
2019-06-25 16:39:51 +03:00
<!-- Exported false, should only be accessible from this app!! -->
<receiver
2020-08-18 19:15:48 +03:00
android:name=".features.notifications.NotificationBroadcastReceiver"
2019-06-25 16:39:51 +03:00
android:enabled="true"
android:exported="false" />
2020-06-18 15:30:08 +03:00
<!--
A media button receiver receives and helps translate hardware media playback buttons,
such as those found on wired and wireless headsets, into the appropriate callbacks in your app.
-->
2020-06-25 10:33:21 +03:00
<receiver android:name= "androidx.media.session.MediaButtonReceiver" >
2020-06-18 15:30:08 +03:00
<intent-filter >
<action android:name= "android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
2019-06-25 16:39:51 +03:00
<!-- Providers -->
2020-07-02 13:21:23 +03:00
<!-- Remove WorkManagerInitializer Provider because we are using on - demand initialization of WorkManager -->
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
tools:node="remove" />
2019-05-07 15:02:15 +03:00
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
2020-06-25 10:33:21 +03:00
android:resource="@xml/sdk_provider_paths" />
2019-05-07 15:02:15 +03:00
</provider>
2018-10-03 18:56:33 +03:00
</application>
</manifest>