AndroidManifest.xml

  1<?xml version="1.0" encoding="utf-8"?>
  2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3    xmlns:tools="http://schemas.android.com/tools">
  4
  5    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
  6    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  7    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  8    <uses-permission android:name="android.permission.READ_CONTACTS" />
  9    <uses-permission android:name="android.permission.READ_PROFILE" />
 10    <uses-permission
 11        android:name="android.permission.READ_PHONE_STATE"
 12        android:maxSdkVersion="22" />
 13    <uses-permission android:name="android.permission.INTERNET" />
 14    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 15    <uses-permission android:name="android.permission.WAKE_LOCK" />
 16    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 17    <uses-permission android:name="android.permission.VIBRATE" />
 18    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
 19    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 20    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 21    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 22    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
 23    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
 24
 25    <uses-feature
 26        android:name="android.hardware.location"
 27        android:required="false" />
 28    <uses-feature
 29        android:name="android.hardware.location.gps"
 30        android:required="false" />
 31    <uses-feature
 32        android:name="android.hardware.location.network"
 33        android:required="false" />
 34
 35    <uses-permission android:name="android.permission.CAMERA" />
 36    <uses-permission android:name="android.permission.RECORD_AUDIO" />
 37    <uses-permission android:name="android.permission.BLUETOOTH" />
 38    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
 39    <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
 40    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
 41
 42    <uses-feature
 43        android:name="android.hardware.camera"
 44        android:required="false" />
 45    <uses-feature
 46        android:name="android.hardware.camera.autofocus"
 47        android:required="false" />
 48
 49    <uses-feature
 50        android:name="android.hardware.microphone"
 51        android:required="false" />
 52
 53    <queries>
 54        <package android:name="org.sufficientlysecure.keychain" />
 55        <package android:name="org.torproject.android" />
 56
 57        <intent>
 58            <action android:name="eu.siacs.conversations.location.request" />
 59        </intent>
 60        <intent>
 61            <action android:name="eu.siacs.conversations.location.show" />
 62        </intent>
 63    </queries>
 64
 65
 66    <application
 67        android:allowBackup="true"
 68        android:appCategory="social"
 69        android:fullBackupContent="@xml/backup_content"
 70        android:hardwareAccelerated="true"
 71        android:icon="@mipmap/new_launcher"
 72        android:label="@string/app_name"
 73        android:largeHeap="true"
 74        android:networkSecurityConfig="@xml/network_security_configuration"
 75        android:preserveLegacyExternalStorage="true"
 76        android:requestLegacyExternalStorage="true"
 77        android:theme="@style/ConversationsTheme"
 78        tools:replace="android:label"
 79        tools:targetApi="q">
 80
 81        <meta-data
 82            android:name="com.google.android.gms.car.application"
 83            android:resource="@xml/automotive_app_desc" />
 84
 85        <service android:name=".services.XmppConnectionService" />
 86
 87        <receiver
 88            android:name=".services.EventReceiver"
 89            android:exported="true">
 90            <intent-filter>
 91                <action android:name="android.intent.action.BOOT_COMPLETED" />
 92                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
 93                <action android:name="android.intent.action.ACTION_SHUTDOWN" />
 94                <action android:name="android.media.RINGER_MODE_CHANGED" />
 95            </intent-filter>
 96        </receiver>
 97
 98        <activity
 99            android:name=".ui.ShareLocationActivity"
100            android:label="@string/title_activity_share_location" />
101        <activity
102            android:name=".ui.SearchActivity"
103            android:label="@string/search_messages" />
104        <activity
105            android:name=".ui.RecordingActivity"
106            android:configChanges="orientation|screenSize"
107            android:theme="@style/ConversationsTheme.Dialog" />
108        <activity
109            android:name=".ui.ShowLocationActivity"
110            android:label="@string/title_activity_show_location" />
111        <activity
112            android:name=".ui.ConversationActivity"
113            android:exported="true"
114            android:theme="@style/SplashTheme">
115            <intent-filter>
116                <action android:name="android.intent.action.MAIN" />
117                <category android:name="android.intent.category.LAUNCHER" />
118            </intent-filter>
119        </activity>
120        <activity
121            android:name=".ui.ConversationsActivity"
122            android:label="@string/app_name"
123            android:launchMode="singleTask"
124            android:minWidth="300dp"
125            android:minHeight="300dp"
126            android:windowSoftInputMode="stateHidden" />
127        <activity
128            android:name=".ui.ScanActivity"
129            android:screenOrientation="portrait"
130            android:theme="@style/ConversationsTheme.FullScreen"
131            android:windowSoftInputMode="stateAlwaysHidden" />
132        <activity
133            android:name=".ui.UriHandlerActivity"
134            android:exported="true"
135            android:label="@string/app_name">
136            <intent-filter>
137                <action android:name="android.intent.action.VIEW" />
138
139                <category android:name="android.intent.category.DEFAULT" />
140                <category android:name="android.intent.category.BROWSABLE" />
141
142                <data android:scheme="xmpp" />
143            </intent-filter>
144            <intent-filter android:autoVerify="true">
145                <action android:name="android.intent.action.VIEW" />
146
147                <category android:name="android.intent.category.DEFAULT" />
148                <category android:name="android.intent.category.BROWSABLE" />
149
150                <data android:scheme="https" />
151                <data android:host="conversations.im" />
152                <data android:pathPrefix="/i/" />
153                <data android:pathPrefix="/j/" />
154            </intent-filter>
155            <intent-filter>
156                <action android:name="android.intent.action.SENDTO" />
157
158                <category android:name="android.intent.category.DEFAULT" />
159
160                <data android:scheme="imto" />
161                <data android:host="jabber" />
162            </intent-filter>
163            <intent-filter>
164                <action android:name="android.intent.action.SENDTO" />
165
166                <category android:name="android.intent.category.DEFAULT" />
167
168                <data android:scheme="imto" />
169                <data android:host="xmpp" />
170            </intent-filter>
171        </activity>
172        <activity
173            android:name=".ui.StartConversationActivity"
174            android:exported="true"
175            android:label="@string/title_activity_start_conversation"
176            android:launchMode="singleTop">
177            <intent-filter>
178                <action android:name="android.intent.action.VIEW" />
179            </intent-filter>
180        </activity>
181        <activity
182            android:name=".ui.SettingsActivity"
183            android:exported="true"
184            android:label="@string/title_activity_settings">
185            <intent-filter>
186                <action android:name="android.intent.action.MAIN" />
187                <category android:name="android.intent.category.NOTIFICATION_PREFERENCES" />
188            </intent-filter>
189        </activity>
190        <activity
191            android:name=".ui.ChooseContactActivity"
192            android:label="@string/title_activity_choose_contact" />
193        <activity
194            android:name=".ui.BlocklistActivity"
195            android:label="@string/title_activity_block_list" />
196        <activity
197            android:name=".ui.ChangePasswordActivity"
198            android:label="@string/change_password_on_server" />
199        <activity
200            android:name=".ui.ChooseAccountForProfilePictureActivity"
201            android:enabled="false"
202            android:exported="true"
203            android:label="@string/choose_account">
204            <intent-filter android:label="@string/set_profile_picture">
205                <action android:name="android.intent.action.ATTACH_DATA" />
206                <category android:name="android.intent.category.DEFAULT" />
207
208                <data android:mimeType="image/*" />
209            </intent-filter>
210        </activity>
211        <activity
212            android:name=".ui.ShareViaAccountActivity"
213            android:label="@string/title_activity_share_via_account"
214            android:launchMode="singleTop" />
215        <activity
216            android:name=".ui.EditAccountActivity"
217            android:exported="false"
218            android:launchMode="singleTop"
219            android:windowSoftInputMode="stateHidden|adjustResize" />
220        <activity
221            android:name=".ui.ConferenceDetailsActivity"
222            android:label="@string/action_muc_details"
223            android:windowSoftInputMode="stateHidden" />
224        <activity
225            android:name=".ui.ContactDetailsActivity"
226            android:windowSoftInputMode="stateHidden" />
227        <activity
228            android:name=".ui.PublishProfilePictureActivity"
229            android:label="@string/mgmt_account_publish_avatar"
230            android:windowSoftInputMode="stateHidden" />
231        <activity
232            android:name=".ui.PublishGroupChatProfilePictureActivity"
233            android:label="@string/group_chat_avatar" />
234        <activity
235            android:name=".ui.ShareWithActivity"
236            android:exported="true"
237            android:label="@string/app_name"
238            android:launchMode="singleTop">
239
240            <intent-filter>
241                <action android:name="android.intent.action.SEND" />
242                <action android:name="android.intent.action.SEND_MULTIPLE" />
243
244                <category android:name="android.intent.category.DEFAULT" />
245
246                <data android:mimeType="text/plain" />
247            </intent-filter>
248
249            <intent-filter>
250                <action android:name="android.intent.action.SEND" />
251                <action android:name="android.intent.action.SEND_MULTIPLE" />
252
253                <category android:name="android.intent.category.DEFAULT" />
254
255                <data android:mimeType="*/*" />
256            </intent-filter>
257
258            <!-- the value here needs to be the full class name; independent of the configured applicationId -->
259            <meta-data
260                android:name="android.service.chooser.chooser_target_service"
261                android:value="eu.siacs.conversations.services.ContactChooserTargetService" />
262        </activity>
263        <activity
264            android:name=".ui.TrustKeysActivity"
265            android:label="@string/trust_omemo_fingerprints"
266            android:windowSoftInputMode="stateAlwaysHidden" />
267        <activity
268            android:name=".ui.AboutActivity"
269            android:parentActivityName=".ui.SettingsActivity">
270            <meta-data
271                android:name="android.support.PARENT_ACTIVITY"
272                android:value="eu.siacs.conversations.ui.SettingsActivity" />
273        </activity>
274        <activity
275            android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
276            android:theme="@style/Base.Theme.AppCompat" />
277        <activity android:name=".ui.MemorizingActivity" />
278
279        <activity
280            android:name=".ui.MediaBrowserActivity"
281            android:label="@string/media_browser" />
282
283        <service android:name=".services.ExportBackupService" />
284        <service android:name=".services.ImportBackupService" />
285        <service
286            android:name=".services.ContactChooserTargetService"
287            android:exported="true"
288            android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
289            <intent-filter>
290                <action android:name="android.service.chooser.ChooserTargetService" />
291            </intent-filter>
292        </service>
293
294        <provider
295            android:name="androidx.core.content.FileProvider"
296            android:authorities="${applicationId}.files"
297            android:exported="false"
298            android:grantUriPermissions="true">
299            <meta-data
300                android:name="android.support.FILE_PROVIDER_PATHS"
301                android:resource="@xml/file_paths" />
302        </provider>
303        <provider
304            android:name=".services.BarcodeProvider"
305            android:authorities="${applicationId}.barcodes"
306            android:exported="false"
307            android:grantUriPermissions="true" />
308
309        <activity
310            android:name=".ui.ShortcutActivity"
311            android:exported="true"
312            android:label="@string/contact">
313            <intent-filter>
314                <action android:name="android.intent.action.CREATE_SHORTCUT" />
315            </intent-filter>
316        </activity>
317        <activity
318            android:name=".ui.MucUsersActivity"
319            android:label="@string/group_chat_members" />
320        <activity
321            android:name=".ui.ChannelDiscoveryActivity"
322            android:label="@string/discover_channels" />
323        <activity
324            android:name=".ui.RtpSessionActivity"
325            android:autoRemoveFromRecents="true"
326            android:launchMode="singleInstance"
327            android:supportsPictureInPicture="true" />
328    </application>
329
330</manifest>