AndroidManifest.xml 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017
  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. android:installLocation="internalOnly"
  5. android:testOnly="false"
  6. tools:ignore="GoogleAppIndexingWarning">
  7. <supports-screens
  8. android:anyDensity="true"
  9. android:largeScreens="true"
  10. android:normalScreens="true"
  11. android:resizeable="true"
  12. android:smallScreens="true"
  13. android:xlargeScreens="true"/>
  14. <uses-feature
  15. android:glEsVersion="0x00020000"
  16. android:required="true"/>
  17. <!-- DANGEROUS PERMISSIONS -->
  18. <!-- android.permission-group.CONTACTS -->
  19. <uses-permission android:name="android.permission.READ_CONTACTS"/>
  20. <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
  21. <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
  22. <!-- android.permission-group.STORAGE -->
  23. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  24. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  25. <!-- android.permission-group.LOCATION -->
  26. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  27. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  28. <!-- android.permission-group.MICROPHONE -->
  29. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  30. <!-- android.permission-group.PHONE -->
  31. <!-- Required to detect and hangup incoming regular calls -->
  32. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  33. <uses-permission android:name="android.permission.CALL_PHONE"/>
  34. <uses-permission android:name="android.permission.ANSWER_PHONE_CALLS"/>
  35. <!-- android.permission-group.CAMERA -->
  36. <uses-permission android:name="android.permission.CAMERA" />
  37. <!-- PROTECTION_NORMAL - granted automatically -->
  38. <uses-permission android:name="android.permission.INTERNET"/>
  39. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  40. <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
  41. <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
  42. <uses-permission android:name="android.permission.VIBRATE"/>
  43. <uses-permission android:name="android.permission.WAKE_LOCK"/>
  44. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  45. <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
  46. <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
  47. <!-- Access to address book -->
  48. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
  49. <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
  50. <!-- Access to audio settings and bluetooth for voice calls -->
  51. <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
  52. <uses-permission
  53. android:name="android.permission.BLUETOOTH"
  54. android:maxSdkVersion="30" />
  55. <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
  56. <!-- Permissions for biometric unlocking -->
  57. <uses-permission android:name="android.permission.USE_BIOMETRIC"/>
  58. <uses-permission android:name="android.permission.USE_FINGERPRINT"/>
  59. <!-- Launcher shortcuts -->
  60. <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
  61. <!-- Huawei launcher badges -->
  62. <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
  63. <uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS"/>
  64. <uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>
  65. <!-- Sony launcher badges -->
  66. <uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"/>
  67. <!-- only for fastlane test -->
  68. <!-- TODO -->
  69. <!-- <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/> -->
  70. <uses-feature
  71. android:name="android.hardware.location"
  72. android:required="false"/>
  73. <uses-feature
  74. android:name="android.hardware.location.gps"
  75. android:required="false"/>
  76. <uses-feature
  77. android:name="android.hardware.location.network"
  78. android:required="false"/>
  79. <uses-feature
  80. android:name="android.hardware.touchscreen"
  81. android:required="false"/>
  82. <uses-feature
  83. android:name="android.hardware.telephony"
  84. android:required="false"/>
  85. <uses-feature
  86. android:name="android.hardware.microphone"
  87. android:required="false"/>
  88. <uses-feature
  89. android:name="android.hardware.screen.portrait"
  90. android:required="false"/>
  91. <uses-feature
  92. android:name="android.hardware.bluetooth"
  93. android:required="false"/>
  94. <uses-feature
  95. android:name="android.hardware.camera"
  96. android:required="false"/>
  97. <uses-feature
  98. android:name="android.hardware.camera.any"
  99. android:required="false"/>
  100. <queries>
  101. <!-- various power manager and autostart packages we may need to direct our users to -->
  102. <package android:name="com.samsung.android.lool" />
  103. <package android:name="com.huawei.systemmanager" />
  104. <package android:name="com.iqoo.secure" />
  105. <package android:name="com.vivo.permissionmanager" />
  106. <package android:name="com.htc.pitroad" />
  107. <package android:name="com.miui.securitycenter" />
  108. <package android:name="com.letv.android.letvsafe" />
  109. <package android:name="com.coloros.safecenter" />
  110. <package android:name="com.oppo.safe" />
  111. <package android:name="com.asus.mobilemanager" />
  112. <package android:name="com.transsion.phonemanager" />
  113. <!-- provider for xperia home icon badge counters -->
  114. <provider android:authorities="com.sonymobile.home.resourceprovider"
  115. android:exported="false" />
  116. <intent>
  117. <action android:name="miui.intent.action.POWER_HIDE_MODE_APP_LIST"/>
  118. <category android:name="android.intent.category.DEFAULT"/>
  119. </intent>
  120. <intent>
  121. <action android:name="miui.intent.action.OP_AUTO_START"/>
  122. <category android:name="android.intent.category.DEFAULT"/>
  123. </intent>
  124. <intent>
  125. <action android:name="android.intent.action.SEND" />
  126. <data android:mimeType="text/plain" />
  127. </intent>
  128. <intent>
  129. <action android:name="android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS" />
  130. </intent>
  131. <intent>
  132. <action android:name="android.settings.IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS" />
  133. </intent>
  134. </queries>
  135. <application
  136. android:name=".ThreemaApplication"
  137. android:allowBackup="false"
  138. android:extractNativeLibs="true"
  139. android:hardwareAccelerated="true"
  140. android:icon="@mipmap/ic_launcher"
  141. android:roundIcon="@mipmap/ic_launcher"
  142. android:label="@string/app_name"
  143. android:largeHeap="true"
  144. android:resizeableActivity="true"
  145. android:supportsRtl="false"
  146. android:theme="@style/AppBaseTheme"
  147. android:usesCleartextTraffic="false"
  148. android:networkSecurityConfig="@xml/network_security_config"
  149. android:manageSpaceActivity=".activities.StorageManagementActivity"
  150. android:allowAudioPlaybackCapture="false"
  151. android:appCategory="social"
  152. android:hasFragileUserData="true"
  153. tools:replace="android:supportsRtl,android:allowBackup"
  154. android:dataExtractionRules="@xml/data_extraction_rules">
  155. <!-- Note: The "replace" entry above should be kept to ensure that a library cannot accidentally
  156. override rtl or backup support. Unfortunately the linter warning cannot be silenced. -->
  157. <meta-data
  158. android:name="android.max_aspect"
  159. android:value="2.5"/>
  160. <meta-data
  161. android:name="android.provider.CONTACTS_STRUCTURE"
  162. android:resource="@xml/contacts"/>
  163. <activity
  164. android:name=".activities.MainActivity"
  165. android:label="@string/app_name"
  166. android:launchMode="singleTop"
  167. android:theme="@style/SplashTheme"
  168. android:configChanges="uiMode"
  169. android:exported="true">
  170. <intent-filter>
  171. <action android:name="android.intent.action.MAIN"/>
  172. <category android:name="android.intent.category.LAUNCHER"/>
  173. <!-- samsung multiwindow -->
  174. <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
  175. </intent-filter>
  176. <meta-data
  177. android:name="android.app.shortcuts"
  178. android:resource="@xml/app_shortcuts"/>
  179. </activity>
  180. <activity
  181. android:name=".activities.HomeActivity"
  182. android:launchMode="singleTask"
  183. android:theme="@style/Theme.Threema.WithToolbar"
  184. android:configChanges="uiMode">
  185. </activity>
  186. <activity
  187. android:name=".activities.ComposeMessageActivity"
  188. android:launchMode="singleTop"
  189. android:parentActivityName=".activities.HomeActivity"
  190. android:theme="@style/Theme.Threema.WithToolbar"
  191. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  192. android:windowSoftInputMode="stateUnchanged"
  193. android:exported="true">
  194. <intent-filter android:label="@string/threema_contact"
  195. tools:ignore="AppLinkUrlError">
  196. <action android:name="android.intent.action.VIEW"/>
  197. <category android:name="android.intent.category.DEFAULT"/>
  198. <data android:mimeType="@string/contacts_mime_type"/>
  199. </intent-filter>
  200. </activity>
  201. <activity
  202. android:name=".activities.RecipientListActivity"
  203. android:label="@string/app_name"
  204. android:excludeFromRecents="true"
  205. android:taskAffinity=""
  206. android:launchMode="singleTask"
  207. android:theme="@style/Theme.Threema.WithToolbar"
  208. android:configChanges="uiMode"
  209. android:exported="true">
  210. <intent-filter android:label="@string/share_with_app">
  211. <action android:name="android.intent.action.SEND"/>
  212. <category android:name="android.intent.category.DEFAULT"/>
  213. <data android:mimeType="text/plain"/>
  214. <data android:mimeType="image/*"/>
  215. <data android:mimeType="video/*"/>
  216. <data android:mimeType="audio/*"/>
  217. <data android:mimeType="application/*"/>
  218. <data android:mimeType="*/*"/>
  219. </intent-filter>
  220. <intent-filter android:label="@string/share_with_app">
  221. <action android:name="android.intent.action.SEND_MULTIPLE"/>
  222. <category android:name="android.intent.category.DEFAULT"/>
  223. <data android:mimeType="*/*"/>
  224. </intent-filter>
  225. <intent-filter android:label="@string/app_name">
  226. <action android:name="android.intent.action.VIEW"/>
  227. <action android:name="android.intent.action.SENDTO"/>
  228. <category android:name="android.intent.category.DEFAULT"/>
  229. <category android:name="android.intent.category.BROWSABLE"/>
  230. <data android:scheme="sms"/>
  231. <data android:scheme="smsto"/>
  232. <data
  233. android:host="compose"
  234. android:scheme="${uriScheme}"/>
  235. </intent-filter>
  236. <intent-filter android:label="@string/app_name">
  237. <action android:name="android.intent.action.VIEW"/>
  238. <action android:name="android.intent.action.SENDTO"/>
  239. <category android:name="android.intent.category.DEFAULT"/>
  240. <category android:name="android.intent.category.BROWSABLE"/>
  241. <data
  242. android:host="${actionUrl}"
  243. android:pathPrefix="/compose"
  244. android:scheme="https"/>
  245. </intent-filter>
  246. <meta-data
  247. android:name="android.service.chooser.chooser_target_service"
  248. android:value="androidx.sharetarget.ChooserTargetServiceCompat" />
  249. </activity>
  250. <activity
  251. android:name=".activities.RecipientListBaseActivity"
  252. android:launchMode="singleTop"
  253. android:parentActivityName=".activities.HomeActivity"
  254. android:configChanges="uiMode"
  255. android:theme="@style/Theme.Threema.WithToolbar">
  256. </activity>
  257. <activity
  258. android:name=".preference.SettingsActivity"
  259. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  260. android:theme="@style/Theme.Threema.Settings">
  261. </activity>
  262. <activity
  263. android:name=".preference.SettingsNotificationsDummyActivity"
  264. android:label="@string/app_name"
  265. android:exported="true">
  266. <intent-filter>
  267. <action android:name="android.intent.action.MAIN"/>
  268. <category android:name="android.intent.category.NOTIFICATION_PREFERENCES"/>
  269. </intent-filter>
  270. </activity>
  271. <activity
  272. android:name=".preference.SettingsMediaDummyActivity"
  273. android:exported="true">
  274. <intent-filter>
  275. <action android:name="android.intent.action.MANAGE_NETWORK_USAGE"/>
  276. <category android:name="android.intent.category.DEFAULT"/>
  277. </intent-filter>
  278. </activity>
  279. <activity
  280. android:name=".activities.ContactDetailActivity"
  281. android:theme="@style/Theme.Threema.TransparentStatusbar"
  282. android:configChanges="uiMode" />
  283. <activity
  284. android:name=".activities.AboutActivity"
  285. android:theme="@style/Theme.Threema.WithToolbar"
  286. android:configChanges="uiMode" />
  287. <activity
  288. android:name=".activities.AddContactActivity"
  289. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  290. android:launchMode="singleTask"
  291. android:theme="@style/Theme.Threema.Translucent"
  292. android:exported="true">
  293. <intent-filter android:label="@string/app_name">
  294. <action android:name="android.intent.action.VIEW"/>
  295. <category android:name="android.intent.category.DEFAULT"/>
  296. <category android:name="android.intent.category.BROWSABLE"/>
  297. <data
  298. android:host="add"
  299. android:scheme="${uriScheme}"/>
  300. </intent-filter>
  301. <intent-filter android:label="@string/app_name">
  302. <action android:name="android.intent.action.VIEW"/>
  303. <category android:name="android.intent.category.DEFAULT"/>
  304. <category android:name="android.intent.category.BROWSABLE"/>
  305. <data
  306. android:host="${actionUrl}"
  307. android:pathPrefix="/add"
  308. android:scheme="https"/>
  309. </intent-filter>
  310. </activity>
  311. <activity
  312. android:name=".activities.LicenseActivity"
  313. android:theme="@style/Theme.Threema.WithToolbar"
  314. android:configChanges="uiMode" />
  315. <activity
  316. android:name=".activities.TermsOfServiceActivity"
  317. android:theme="@style/Theme.Threema.WithToolbar"
  318. android:configChanges="uiMode" />
  319. <activity
  320. android:name=".activities.EulaActivity"
  321. android:theme="@style/Theme.Threema.WithToolbar"
  322. android:configChanges="uiMode" />
  323. <activity
  324. android:name=".activities.ExportIDResultActivity"
  325. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  326. android:launchMode="singleTop"
  327. android:parentActivityName=".activities.HomeActivity"
  328. android:theme="@style/Theme.Threema.WithToolbarAndCheck">
  329. </activity>
  330. <activity
  331. android:name=".activities.ExportIDActivity"
  332. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  333. android:launchMode="singleTop"
  334. android:theme="@style/Theme.Threema.Translucent"/>
  335. <activity
  336. android:name=".activities.EnterSerialActivity"
  337. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  338. android:excludeFromRecents="true"
  339. android:launchMode="singleTop"
  340. android:screenOrientation="sensorPortrait"
  341. android:theme="@style/Theme.Threema.Wizard"
  342. android:windowSoftInputMode="adjustPan"
  343. android:exported="true">
  344. <intent-filter android:priority="1000">
  345. <action android:name="android.intent.action.VIEW"/>
  346. <category android:name="android.intent.category.DEFAULT"/>
  347. <category android:name="android.intent.category.BROWSABLE"/>
  348. <data
  349. android:host="${actionUrl}"
  350. android:pathPrefix="/license"
  351. android:scheme="https"/>
  352. </intent-filter>
  353. <intent-filter>
  354. <action android:name="android.intent.action.VIEW"/>
  355. <category android:name="android.intent.category.DEFAULT"/>
  356. <category android:name="android.intent.category.BROWSABLE"/>
  357. <data
  358. android:host="license"
  359. android:scheme="${uriScheme}"/>
  360. </intent-filter>
  361. </activity>
  362. <activity
  363. android:name=".activities.UnlockMasterKeyActivity"
  364. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  365. android:excludeFromRecents="true"
  366. android:launchMode="singleTop"
  367. android:noHistory="true"
  368. android:theme="@style/Theme.Threema.WithToolbar"
  369. android:windowSoftInputMode="adjustNothing"/>
  370. <activity
  371. android:name=".activities.SupportActivity"
  372. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  373. android:theme="@style/Theme.Threema.WithToolbar"/>
  374. <activity
  375. android:name=".activities.PrivacyPolicyActivity"
  376. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  377. android:theme="@style/Theme.Threema.WithToolbar">
  378. </activity>
  379. <activity
  380. android:name=".activities.ServerMessageActivity"
  381. android:label="server_message"/>
  382. <activity
  383. android:name=".activities.SendMediaActivity"
  384. android:theme="@style/Theme.Threema.MediaViewer"
  385. android:windowSoftInputMode="stateHidden|adjustResize"/>
  386. <activity
  387. android:name=".activities.BackupAdminActivity"
  388. android:configChanges="uiMode"
  389. android:theme="@style/Theme.Threema.WithToolbar">
  390. </activity>
  391. <activity
  392. android:name=".activities.PinLockActivity"
  393. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  394. android:theme="@style/Theme.Threema.WithToolbar.NoAnim"
  395. android:noHistory="true"
  396. android:windowSoftInputMode="stateHidden|adjustResize"/>
  397. <activity
  398. android:name=".activities.GroupAddActivity"
  399. android:theme="@style/Theme.Threema.WithToolbar"
  400. android:configChanges="uiMode" />
  401. <activity
  402. android:name=".activities.GroupAdd2Activity"
  403. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  404. android:theme="@style/Theme.Threema.Translucent">
  405. </activity>
  406. <activity
  407. android:name=".activities.GroupDetailActivity"
  408. android:theme="@style/Theme.Threema.TransparentStatusbar"
  409. android:configChanges="uiMode"
  410. android:windowSoftInputMode="stateHidden" />
  411. <activity
  412. android:name=".qrscanner.activity.BaseQrScannerActivity"
  413. android:theme="@style/Theme.Threema.Translucent"/>
  414. <activity
  415. android:name=".grouplinks.AddGroupLinkBottomSheet"
  416. android:theme="@style/Theme.Threema.Translucent" />
  417. <activity
  418. android:name=".grouplinks.GroupLinkQrCodeActivity"
  419. android:theme="@style/Theme.Threema.WithToolbar"/>
  420. <activity
  421. android:name=".grouplinks.GroupLinkOverviewActivity"
  422. android:theme="@style/Theme.Threema.WithToolbar"/>
  423. <activity
  424. android:name=".grouplinks.OutgoingGroupRequestActivity"
  425. android:parentActivityName=".activities.HomeActivity"
  426. android:theme="@style/Theme.Threema.WithToolbar"/>
  427. <activity
  428. android:name=".grouplinks.IncomingGroupRequestActivity"
  429. android:parentActivityName=".activities.HomeActivity"
  430. android:theme="@style/Theme.Threema.WithToolbar"/>
  431. <activity
  432. android:name=".activities.DistributionListAddActivity"
  433. android:theme="@style/Theme.Threema.WithToolbar"
  434. android:configChanges="uiMode" />
  435. <activity
  436. android:name=".activities.ExcludedSyncIdentitiesActivity"
  437. android:theme="@style/Theme.Threema.WithToolbar"
  438. android:configChanges="uiMode" />
  439. <activity
  440. android:name=".activities.BlackListActivity"
  441. android:theme="@style/Theme.Threema.WithToolbar"
  442. android:configChanges="uiMode" />
  443. <activity
  444. android:name=".activities.ProfilePicRecipientsActivity"
  445. android:theme="@style/Theme.Threema.WithToolbar"
  446. android:configChanges="uiMode" />
  447. <activity
  448. android:name=".activities.AddAccountActivity"
  449. android:theme="@android:style/Theme.NoDisplay"/>
  450. <activity
  451. android:name=".activities.MediaViewerActivity"
  452. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  453. android:theme="@style/Theme.Threema.MediaViewer">
  454. </activity>
  455. <activity
  456. android:name=".activities.QRCodeZoomActivity"
  457. android:noHistory="true"
  458. android:theme="@style/Theme.Threema.Translucent"/>
  459. <activity
  460. android:name=".activities.MediaGalleryActivity"
  461. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  462. android:theme="@style/Theme.Threema.WithToolbar">
  463. </activity>
  464. <!-- https://code.google.com/p/android/issues/detail?id=53313 -->
  465. <activity
  466. android:name=".activities.DummyActivity"
  467. android:allowTaskReparenting="true"
  468. android:alwaysRetainTaskState="false"
  469. android:clearTaskOnLaunch="true"
  470. android:enabled="true"
  471. android:excludeFromRecents="true"
  472. android:finishOnTaskLaunch="true"
  473. android:noHistory="true"
  474. android:stateNotNeeded="true"
  475. android:theme="@android:style/Theme.NoDisplay"/>
  476. <activity
  477. android:name=".activities.ballot.BallotOverviewActivity"
  478. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  479. android:theme="@style/Theme.Threema.WithToolbar"/>
  480. <activity
  481. android:name=".activities.ballot.BallotMatrixActivity"
  482. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  483. android:theme="@style/Theme.Threema.WithToolbar"/>
  484. <activity
  485. android:name=".activities.ballot.BallotChooserActivity"
  486. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  487. android:theme="@style/Theme.Threema.WithToolbar">
  488. </activity>
  489. <activity
  490. android:name=".activities.CropImageActivity"
  491. android:theme="@style/Theme.Threema.WithToolbar"
  492. android:configChanges="uiMode" />
  493. <activity
  494. android:name=".activities.ballot.BallotWizardActivity"
  495. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  496. android:theme="@style/Theme.Threema.WithToolbar"/>
  497. <activity
  498. android:name=".filepicker.FilePickerActivity"
  499. android:theme="@style/Theme.Threema.WithToolbar"
  500. android:configChanges="uiMode" />
  501. <activity
  502. android:name=".activities.StorageManagementActivity"
  503. android:theme="@style/Theme.Threema.WithToolbar"
  504. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"/>
  505. <activity
  506. android:name=".activities.ContactNotificationsActivity"
  507. android:launchMode="singleTop"
  508. android:theme="@style/Theme.Threema.CircularReveal"/>
  509. <activity
  510. android:name=".activities.GroupNotificationsActivity"
  511. android:launchMode="singleTop"
  512. android:theme="@style/Theme.Threema.CircularReveal"/>
  513. <activity
  514. android:name=".activities.ImagePaintActivity"
  515. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  516. android:theme="@style/Theme.Threema.LowProfile"
  517. android:windowSoftInputMode="stateHidden|adjustResize"/>
  518. <!-- Webclient activities -->
  519. <activity
  520. android:name=".webclient.activities.SessionsActivity"
  521. android:launchMode="singleTop"
  522. android:parentActivityName=".activities.HomeActivity"
  523. android:theme="@style/Theme.Threema.WithToolbar"
  524. android:configChanges="uiMode">
  525. </activity>
  526. <activity
  527. android:name=".webclient.activities.SessionsIntroActivity"
  528. android:theme="@style/Theme.Threema.WithToolbar"
  529. android:configChanges="uiMode">
  530. </activity>
  531. <activity
  532. android:name=".webclient.activities.WebDiagnosticsActivity"
  533. android:parentActivityName=".activities.HomeActivity"
  534. android:screenOrientation="sensorPortrait"
  535. android:theme="@style/Theme.Threema.WithToolbar"
  536. android:configChanges="uiMode"
  537. tools:ignore="LockedOrientationActivity">
  538. </activity>
  539. <!-- VoIP activities -->
  540. <activity
  541. android:name=".voip.activities.CallActivity"
  542. android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|touchscreen|keyboard|keyboardHidden|uiMode"
  543. android:supportsPictureInPicture="true"
  544. android:launchMode="singleTask"
  545. android:taskAffinity=".voip.activities.CallActivity"
  546. android:excludeFromRecents="true"
  547. android:screenOrientation="sensorPortrait"
  548. android:theme="@style/Theme.Threema.TransparentStatusbar"
  549. tools:ignore="LockedOrientationActivity"
  550. android:exported="true">
  551. <intent-filter android:label="@string/threema_call">
  552. <action android:name="android.intent.action.VIEW"/>
  553. <category android:name="android.intent.category.DEFAULT"/>
  554. </intent-filter>
  555. </activity>
  556. <activity
  557. android:name=".voip.activities.GroupCallActivity"
  558. android:exported="false"
  559. android:launchMode="singleTask"
  560. android:taskAffinity=".voip.activities.GroupCallActivity"
  561. android:excludeFromRecents="true"
  562. android:theme="@style/Theme.Threema.TransparentStatusbar_Fullscreen" />
  563. <activity
  564. android:name=".voip.activities.CallActionIntentActivity"
  565. android:screenOrientation="sensorPortrait"
  566. tools:ignore="LockedOrientationActivity"
  567. android:exported="true">
  568. <intent-filter tools:ignore="AppLinkUrlError">
  569. <!-- Handle calls from phonebook -->
  570. <action android:name="android.intent.action.VIEW"/>
  571. <category android:name="android.intent.category.DEFAULT"/>
  572. <data android:mimeType="vnd.android.cursor.item/vnd.ch.threema.app.call"/>
  573. </intent-filter>
  574. </activity>
  575. <activity
  576. android:name=".voip.activities.WebRTCDebugActivity"
  577. android:parentActivityName=".activities.HomeActivity"
  578. android:screenOrientation="sensorPortrait"
  579. android:theme="@style/Theme.Threema.WithToolbar"
  580. tools:ignore="LockedOrientationActivity">
  581. </activity>
  582. <activity
  583. android:name=".activities.WhatsNewActivity"
  584. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  585. android:noHistory="true"
  586. android:theme="@style/Theme.Threema.WhatsNew"/>
  587. <activity
  588. android:name=".activities.WhatsNew2Activity"
  589. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  590. android:noHistory="true"
  591. android:theme="@style/Theme.Threema.WhatsNew"/>
  592. <!-- Wizard activities -->
  593. <activity
  594. android:name=".activities.wizard.WizardIntroActivity"
  595. android:screenOrientation="sensorPortrait"
  596. android:theme="@style/Theme.Threema.Wizard"/>
  597. <activity
  598. android:name=".activities.wizard.WizardStartActivity"
  599. android:screenOrientation="sensorPortrait"
  600. android:theme="@style/Theme.Threema.Wizard"/>
  601. <activity
  602. android:name=".activities.wizard.WizardBaseActivity"
  603. android:screenOrientation="sensorPortrait"
  604. android:theme="@style/Theme.Threema.Wizard"
  605. android:windowSoftInputMode="adjustResize"/>
  606. <activity
  607. android:name=".activities.wizard.WizardFingerPrintActivity"
  608. android:screenOrientation="sensorPortrait"
  609. android:theme="@style/Theme.Threema.Wizard"/>
  610. <activity
  611. android:name=".activities.wizard.WizardIDRestoreActivity"
  612. android:screenOrientation="sensorPortrait"
  613. android:theme="@style/Theme.Threema.Wizard"/>
  614. <activity
  615. android:name=".activities.wizard.WizardSafeRestoreActivity"
  616. android:screenOrientation="sensorPortrait"
  617. android:theme="@style/Theme.Threema.Wizard"
  618. android:windowSoftInputMode="stateAlwaysHidden"/>
  619. <activity
  620. android:name=".activities.wizard.WizardBackupRestoreActivity"
  621. android:screenOrientation="sensorPortrait"
  622. android:theme="@style/Theme.Threema.Wizard"
  623. android:windowSoftInputMode="stateAlwaysHidden"/>
  624. <activity
  625. android:name=".activities.SMSVerificationLinkActivity"
  626. android:theme="@android:style/Theme.NoDisplay"
  627. android:exported="true" >
  628. <intent-filter>
  629. <action android:name="android.intent.action.VIEW"/>
  630. <category android:name="android.intent.category.DEFAULT"/>
  631. <category android:name="android.intent.category.BROWSABLE"/>
  632. <data
  633. android:host="link_mobileno"
  634. android:scheme="${uriScheme}"/>
  635. </intent-filter>
  636. </activity>
  637. <activity
  638. android:name=".activities.VoiceActionActivity"
  639. android:exported="true">
  640. <intent-filter>
  641. <action android:name="com.google.android.voicesearch.SEND_MESSAGE_TO_CONTACTS"/>
  642. <category android:name="android.intent.category.DEFAULT"/>
  643. <data android:mimeType="text/plain"/>
  644. <data android:mimeType="audio/wav"/>
  645. </intent-filter>
  646. </activity>
  647. <activity
  648. android:name=".activities.DisableBatteryOptimizationsActivity"
  649. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  650. android:theme="@style/Theme.Threema.Translucent"/>
  651. <activity
  652. android:name=".activities.StickerSelectorActivity"
  653. android:theme="@style/Theme.Threema.Transparent.Background"/>
  654. <activity
  655. android:name=".activities.ImagePaintKeyboardActivity"
  656. android:theme="@style/Theme.Threema.Transparent.Background"
  657. android:windowSoftInputMode="adjustResize|stateAlwaysVisible"/>
  658. <activity
  659. android:name=".activities.DownloadApkActivity"
  660. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  661. android:theme="@style/Theme.Threema.Translucent"/>
  662. <activity
  663. android:name=".voicemessage.VoiceRecorderActivity"
  664. android:clearTaskOnLaunch="true"
  665. android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
  666. android:theme="@style/Theme.Threema.VoiceRecorder"
  667. android:windowSoftInputMode="stateAlwaysHidden"/>
  668. <activity
  669. android:name=".locationpicker.LocationPickerActivity"
  670. android:theme="@style/Theme.LocationPicker"
  671. android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
  672. />
  673. <activity
  674. android:name=".mediaattacher.MediaAttachActivity"
  675. android:theme="@style/Theme.MediaAttacher"
  676. android:resizeableActivity="true"
  677. android:windowSoftInputMode="adjustNothing"
  678. android:configChanges="uiMode" />
  679. <activity
  680. android:name=".mediaattacher.MediaSelectionActivity"
  681. android:theme="@style/Theme.MediaAttacher"
  682. android:resizeableActivity="true"
  683. android:windowSoftInputMode="adjustNothing"
  684. android:configChanges="uiMode" />
  685. <activity
  686. android:name=".activities.EditSendContactActivity"
  687. android:theme="@style/Theme.Threema.Translucent"
  688. android:resizeableActivity="true"
  689. android:windowSoftInputMode="adjustResize"
  690. android:configChanges="uiMode" />
  691. <activity
  692. android:name=".threemasafe.ThreemaSafeConfigureActivity"
  693. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  694. android:theme="@style/Theme.Threema.WithToolbar"
  695. android:windowSoftInputMode="stateHidden|adjustResize"/>
  696. <activity
  697. android:name=".activities.StopPassphraseServiceActivity"
  698. android:autoRemoveFromRecents="true"
  699. android:theme="@android:style/Theme.NoDisplay"/>
  700. <activity
  701. android:name="ch.threema.app.activities.DirectoryActivity"
  702. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  703. android:theme="@style/Theme.Threema.WithToolbar"
  704. android:windowSoftInputMode="adjustResize"/>
  705. <activity
  706. android:name=".activities.BiometricLockActivity"
  707. android:autoRemoveFromRecents="true"
  708. android:theme="@style/Theme.Threema.BiometricUnlock">
  709. </activity>
  710. <activity
  711. android:name=".activities.AppLinksActivity"
  712. android:autoRemoveFromRecents="true"
  713. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  714. android:theme="@style/Theme.Threema.Transparent.Background"
  715. android:exported="true">
  716. <intent-filter android:autoVerify="true">
  717. <action android:name="android.intent.action.VIEW"/>
  718. <category android:name="android.intent.category.DEFAULT"/>
  719. <category android:name="android.intent.category.BROWSABLE"/>
  720. <data
  721. android:scheme="https"
  722. android:host="${contactActionUrl}"
  723. android:pathPattern="/.*"/>
  724. <data
  725. android:scheme="https"
  726. android:host="${groupLinkActionUrl}"
  727. android:pathPattern="/join#\.*"/>
  728. </intent-filter>
  729. </activity>
  730. <activity
  731. android:name=".camera.CameraActivity"
  732. android:screenOrientation="fullSensor"
  733. android:autoRemoveFromRecents="true"
  734. android:clearTaskOnLaunch="true"
  735. android:theme="@style/Theme.Threema.Camera">
  736. <!-- Declare Huawei notch support -->
  737. <meta-data
  738. android:name="android.notch_support"
  739. android:value="true" />
  740. </activity>
  741. <activity
  742. android:name="ch.threema.app.globalsearch.GlobalSearchActivity"
  743. android:theme="@style/Theme.Threema.Translucent"
  744. android:windowSoftInputMode="adjustResize"/>
  745. <activity
  746. android:name=".locationpicker.LocationAutocompleteActivity"
  747. android:theme="@style/Theme.LocationPicker"
  748. android:windowSoftInputMode="adjustResize" />
  749. <activity
  750. android:name=".archive.ArchiveActivity"
  751. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  752. android:theme="@style/Theme.Threema.WithToolbar"
  753. android:windowSoftInputMode="adjustResize" />
  754. <activity
  755. android:name=".activities.MapActivity"
  756. android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
  757. android:theme="@style/Theme.LocationPicker"
  758. android:exported="true">
  759. <intent-filter>
  760. <action android:name="android.intent.action.VIEW" />
  761. <category android:name="android.intent.category.DEFAULT" />
  762. <category android:name="android.intent.category.BROWSABLE" />
  763. <data android:scheme="geo" />
  764. </intent-filter>
  765. </activity>
  766. <activity
  767. android:name=".activities.WorkExplainActivity"
  768. android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize|uiMode"
  769. android:theme="@style/Theme.Threema.WithToolbar" />
  770. <activity
  771. android:name=".activities.VerificationLevelActivity"
  772. android:theme="@style/Theme.Threema.WithToolbar"/>
  773. <activity
  774. android:name=".activities.TextChatBubbleActivity"
  775. android:theme="@style/Theme.Threema.WithToolbar"
  776. android:launchMode="singleTop"/>
  777. <activity
  778. android:name=".camera.QRScannerActivity"
  779. android:clearTaskOnLaunch="true"
  780. android:stateNotNeeded="true"
  781. android:configChanges="orientation|keyboardHidden"
  782. android:theme="@style/Theme.Threema.Camera"
  783. android:windowSoftInputMode="stateAlwaysHidden" />
  784. <activity
  785. android:name=".activities.ThreemaPushNotificationInfoActivity"
  786. android:launchMode="singleTask"
  787. android:taskAffinity=""
  788. android:excludeFromRecents="true" />
  789. <!-- services -->
  790. <service
  791. android:name=".AutostartService"
  792. android:permission="android.permission.BIND_JOB_SERVICE"
  793. android:enabled="true"
  794. android:exported="false"/>
  795. <service
  796. android:name=".services.AccountAuthenticatorService"
  797. android:exported="true">
  798. <intent-filter>
  799. <action android:name="android.accounts.AccountAuthenticator"/>
  800. </intent-filter>
  801. <meta-data
  802. android:name="android.accounts.AccountAuthenticator"
  803. android:resource="@xml/authenticator"/>
  804. </service>
  805. <service
  806. android:name=".services.ContactsSyncAdapterService"
  807. android:exported="true">
  808. <intent-filter>
  809. <action android:name="android.content.SyncAdapter"/>
  810. </intent-filter>
  811. <meta-data
  812. android:name="android.content.SyncAdapter"
  813. android:resource="@xml/sync_contacts"/>
  814. <meta-data
  815. android:name="android.provider.CONTACTS_STRUCTURE"
  816. android:resource="@xml/contacts"/>
  817. </service>
  818. <service
  819. android:name=".services.PassphraseService"
  820. android:enabled="true"
  821. android:exported="false"
  822. android:label="PassphraseService">
  823. </service>
  824. <service
  825. android:name=".services.WidgetService"
  826. android:permission="android.permission.BIND_REMOTEVIEWS"
  827. android:exported="false"/>
  828. <service
  829. android:name=".services.RestrictBackgroundChangedService"
  830. android:permission="android.permission.BIND_JOB_SERVICE"
  831. android:enabled="true"
  832. android:exported="false"/>
  833. <service
  834. android:name=".jobs.ReConnectJobService"
  835. android:permission="android.permission.BIND_JOB_SERVICE"/>
  836. <service android:name=".services.VoiceActionService"/>
  837. <service
  838. android:name=".backuprestore.csv.BackupService"
  839. android:exported="false"/>
  840. <service
  841. android:name=".backuprestore.csv.RestoreService"
  842. android:exported="false"/>
  843. <service
  844. android:name=".voip.services.VoipCallService"
  845. android:foregroundServiceType="phoneCall|camera|microphone"
  846. android:exported="false"/>
  847. <service
  848. android:name=".voip.services.CallRejectService"
  849. android:exported="false"/>
  850. <service
  851. android:name=".webclient.services.SessionAndroidService"
  852. android:exported="false"
  853. android:label="WebClientService"/>
  854. <service
  855. android:name=".webclient.services.StopSessionsAndroidService"
  856. android:enabled="true"
  857. android:exported="false"/>
  858. <service
  859. android:name=".services.NotificationActionService"
  860. android:enabled="true"
  861. android:exported="false"/>
  862. <service
  863. android:name=".services.ThreemaPushService"
  864. android:exported="false"
  865. android:label="ThreemaPushService"/>
  866. <service
  867. android:name=".voip.groupcall.service.GroupCallService"
  868. android:exported="false"
  869. android:foregroundServiceType="phoneCall" />
  870. <!-- Set the exported attribute for the sharetarget (needed for target api 31) -->
  871. <service
  872. android:name="androidx.sharetarget.ChooserTargetServiceCompat"
  873. android:exported="true"
  874. tools:node="merge">
  875. </service>
  876. <!-- broadcast receivers -->
  877. <receiver
  878. android:name=".receivers.AutoStartNotifyReceiver"
  879. android:enabled="true"
  880. android:exported="true"
  881. android:label="BootListener">
  882. <intent-filter>
  883. <action android:name="android.intent.action.BOOT_COMPLETED"/>
  884. </intent-filter>
  885. </receiver>
  886. <receiver android:name=".receivers.ConnectivityChangeReceiver">
  887. </receiver>
  888. <receiver android:name=".receivers.RestrictBackgroundChangedReceiver">
  889. </receiver>
  890. <receiver android:name=".receivers.AlarmManagerBroadcastReceiver">
  891. </receiver>
  892. <receiver android:name=".receivers.WidgetProvider"
  893. android:exported="true">
  894. <intent-filter>
  895. <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
  896. </intent-filter>
  897. <meta-data
  898. android:name="android.appwidget.provider"
  899. android:resource="@xml/appwidget_info"/>
  900. </receiver>
  901. <receiver android:name=".receivers.UpdateReceiver"
  902. android:exported="true">
  903. <intent-filter>
  904. <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
  905. </intent-filter>
  906. </receiver>
  907. <receiver
  908. android:name=".receivers.ReSendMessagesBroadcastReceiver"
  909. android:exported="false">
  910. </receiver>
  911. <receiver android:name=".receivers.FetchMessagesBroadcastReceiver"/>
  912. <receiver android:name=".voip.receivers.VoipMediaButtonReceiver"
  913. android:exported="true">
  914. <intent-filter>
  915. <action android:name="android.intent.action.MEDIA_BUTTON"/>
  916. </intent-filter>
  917. </receiver>
  918. <receiver android:name=".receivers.PowerSaveModeReceiver"
  919. android:exported="true">
  920. <intent-filter>
  921. <action android:name="android.os.action.POWER_SAVE_MODE_CHANGED"/>
  922. </intent-filter>
  923. </receiver>
  924. <receiver
  925. android:name=".receivers.SendTextToContactBroadcastReceiver"
  926. android:exported="false"/>
  927. <!-- content providers -->
  928. <provider
  929. android:name=".NamedFileProvider"
  930. android:authorities="${applicationId}.fileprovider"
  931. android:exported="false"
  932. android:grantUriPermissions="true">
  933. <meta-data
  934. android:name="android.support.FILE_PROVIDER_PATHS"
  935. android:resource="@xml/file_paths"/>
  936. </provider>
  937. <!-- disable emoji2 because we use our own emoji parsing -->
  938. <provider
  939. android:name="androidx.startup.InitializationProvider"
  940. android:authorities="${applicationId}.androidx-startup"
  941. android:exported="false"
  942. tools:node="merge">
  943. <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
  944. tools:node="remove" />
  945. </provider>
  946. <!-- samsung multiwindow -->
  947. <uses-library
  948. android:name="com.sec.android.app.multiwindow"
  949. android:required="false"/>
  950. <meta-data
  951. android:name="com.samsung.android.sdk.multiwindow.penwindow.enable"
  952. android:value="true"/>
  953. <meta-data
  954. android:name="com.sec.android.support.multiwindow"
  955. android:value="true"/>
  956. <meta-data
  957. android:name="com.samsung.android.keepalive.density"
  958. android:value="true"/>
  959. </application>
  960. </manifest>