432 lines
19 KiB
XML
432 lines
19 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
~ Copyright (c) 2022 Proton AG
|
|
~
|
|
~ This file is part of Proton Mail.
|
|
~
|
|
~ Proton Mail is free software: you can redistribute it and/or modify
|
|
~ it under the terms of the GNU General Public License as published by
|
|
~ the Free Software Foundation, either version 3 of the License, or
|
|
~ (at your option) any later version.
|
|
~
|
|
~ Proton Mail is distributed in the hope that it will be useful,
|
|
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
~ GNU General Public License for more details.
|
|
~
|
|
~ You should have received a copy of the GNU General Public License
|
|
~ along with Proton Mail. If not, see https://www.gnu.org/licenses/.
|
|
-->
|
|
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
package="ch.protonmail.android">
|
|
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
|
<uses-permission android:name="android.permission.VIBRATE" />
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
|
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
|
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
|
|
tools:ignore="QueryAllPackagesPermission" />
|
|
|
|
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
|
|
|
|
<uses-feature
|
|
android:name="android.hardware.camera"
|
|
android:required="false" />
|
|
<uses-feature android:name="android.hardware.telephony"
|
|
android:required="false" />
|
|
|
|
|
|
<queries>
|
|
<!-- WebView -->
|
|
<intent>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
<data android:scheme="http" />
|
|
</intent>
|
|
|
|
<!-- Camera -->
|
|
<intent>
|
|
<action android:name="android.media.action.IMAGE_CAPTURE" />
|
|
</intent>
|
|
|
|
<!-- Telephony -->
|
|
<intent>
|
|
<action android:name="android.intent.action.DIAL" />
|
|
</intent>
|
|
</queries>
|
|
|
|
<application
|
|
android:name=".core.ProtonMailApplication"
|
|
android:allowBackup="false"
|
|
android:supportsRtl="true"
|
|
android:usesCleartextTraffic="true"
|
|
android:networkSecurityConfig="@xml/network_security_config"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:roundIcon="@mipmap/ic_launcher_round"
|
|
android:label="@string/app_name"
|
|
android:largeHeap="true"
|
|
android:theme="@style/ProtonTheme.Mail"
|
|
android:taskAffinity=""
|
|
tools:replace="android:theme">
|
|
<!-- Disable Core SentryInitProvider. Replaced by SentryInitializer -->
|
|
<provider
|
|
android:name="io.sentry.android.core.SentryInitProvider"
|
|
android:authorities="io.sentry.android.core"
|
|
tools:node="remove" />
|
|
<provider
|
|
android:name="androidx.startup.InitializationProvider"
|
|
android:authorities="${applicationId}.androidx-startup"
|
|
android:exported="false"
|
|
tools:node="merge">
|
|
|
|
<!-- Disable default WorkManagerInitializer for use Hilt injection -->
|
|
<meta-data
|
|
android:name="androidx.work.WorkManagerInitializer"
|
|
android:value="androidx.startup"
|
|
tools:node="remove" />
|
|
|
|
<meta-data
|
|
android:name="ch.protonmail.android.feature.account.AccountStateHandlerInitializer"
|
|
android:value="androidx.startup"
|
|
tools:node="remove"/>
|
|
|
|
<meta-data
|
|
android:name="me.proton.core.crypto.validator.presentation.init.CryptoValidatorInitializer"
|
|
android:value="androidx.startup"
|
|
tools:node="remove"/>
|
|
|
|
<meta-data
|
|
android:name="ch.protonmail.android.security.presentation.SecurityManagerInitializer"
|
|
android:value="androidx.startup"
|
|
tools:node="remove" />
|
|
|
|
<meta-data
|
|
android:name="ch.protonmail.android.core.SentryInitializer"
|
|
android:value="androidx.startup"
|
|
tools:node="remove" />
|
|
|
|
<meta-data
|
|
android:name="ch.protonmail.android.onboarding.base.presentation.StartOnboardingObserverInitializer"
|
|
android:value="androidx.startup"
|
|
tools:node="remove" />
|
|
</provider>
|
|
<provider
|
|
android:name="androidx.core.content.FileProvider"
|
|
android:authorities="${applicationId}.provider"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/provider_paths" />
|
|
</provider>
|
|
|
|
<receiver
|
|
android:name=".receivers.LocaleChangeReceiver"
|
|
android:enabled="true"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.LOCALE_CHANGED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<service
|
|
android:name="ch.protonmail.android.notifications.data.remote.fcm.PMFirebaseMessagingService"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
|
</intent-filter>
|
|
</service>
|
|
<receiver
|
|
android:name=".receivers.OnBootReceiver"
|
|
android:enabled="false"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver android:name=".api.segments.event.AlarmReceiver" />
|
|
<receiver android:name=".receivers.NotificationReceiver"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="protonmail_notif_action_archive" />
|
|
<action android:name="protonmail_notif_action_delete" />
|
|
<action android:name="protonmail_notif_action_trash" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver android:name=".receivers.TimeChangedReceiver"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.TIME_SET" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
|
|
<activity android:name=".ViewTestActivity"/>
|
|
<activity android:name=".util.HiltViewTestActivity"/>
|
|
|
|
<!-- Begin - Root Activities -->
|
|
<activity-alias
|
|
android:name=".activities.SplashActivity"
|
|
android:targetActivity=".mailbox.presentation.ui.MailboxActivity"/>
|
|
<activity
|
|
android:name=".mailbox.presentation.ui.MailboxActivity"
|
|
android:configChanges="orientation|screenSize"
|
|
android:exported="true"
|
|
android:launchMode="standard"
|
|
android:maxRecents="1"
|
|
android:theme="@style/ProtonTheme.Splash.Mail.Light">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
<meta-data
|
|
android:name="android.app.shortcuts"
|
|
android:resource="@xml/shortcuts" />
|
|
</activity>
|
|
<!-- End - Root Activities -->
|
|
<activity
|
|
android:name=".settings.presentation.AttachmentStorageActivity"
|
|
android:exported="false"
|
|
android:label="@string/local_storage"
|
|
android:screenOrientation="portrait" />
|
|
<activity android:name=".details.presentation.ui.SwitchUserAndOpenMessageDetailsActivity" />
|
|
<activity
|
|
android:name=".details.presentation.ui.MessageDetailsActivity"
|
|
android:exported="false"
|
|
android:configChanges="orientation|screenSize"
|
|
android:parentActivityName=".mailbox.presentation.ui.MailboxActivity">
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".mailbox.presentation.ui.MailboxActivity" />
|
|
</activity>
|
|
<activity
|
|
android:name=".activities.messageDetails.MessageViewHeadersActivity"
|
|
android:configChanges="orientation|screenSize"
|
|
android:exported="false"
|
|
android:parentActivityName=".details.presentation.ui.MessageDetailsActivity">
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".details.presentation.ui.MessageDetailsActivity" />
|
|
</activity>
|
|
<activity
|
|
android:name=".activities.composeMessage.ComposeMessageActivity"
|
|
android:configChanges="orientation|screenSize"
|
|
android:parentActivityName=".mailbox.presentation.ui.MailboxActivity"
|
|
android:windowSoftInputMode="adjustResize|stateAlwaysVisible"
|
|
android:exported="true">
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".mailbox.presentation.ui.MailboxActivity" />
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="*/*" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND_MULTIPLE" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="*/*" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="text/plain" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<action android:name="android.intent.action.SENDTO" />
|
|
|
|
<data android:scheme="mailto" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity android:name=".compose.presentation.ui.SetMessageExpirationActivity"/>
|
|
<activity android:name=".compose.presentation.ui.SetMessagePasswordActivity"/>
|
|
<activity
|
|
android:name=".activities.AddAttachmentsActivity"
|
|
android:exported="false"
|
|
android:configChanges="orientation|screenSize"
|
|
android:screenOrientation="portrait" />
|
|
<activity
|
|
android:name=".activities.SearchActivity"
|
|
android:exported="false"
|
|
android:configChanges="orientation|screenSize"
|
|
android:windowSoftInputMode="stateVisible" />
|
|
<activity
|
|
android:name=".contacts.ContactsActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name=".activities.SettingsActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:label="@string/settings"/>
|
|
<activity
|
|
android:name=".settings.presentation.AccountSettingsActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:label="@string/account_settings"/>
|
|
<activity
|
|
android:name=".activities.EditSettingsItemActivity"
|
|
android:exported="false"
|
|
android:parentActivityName=".activities.SettingsActivity"
|
|
android:screenOrientation="portrait">
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".activities.SettingsActivity" />
|
|
</activity>
|
|
<activity
|
|
android:name=".settings.pin.CreatePinActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" />
|
|
<activity
|
|
android:name=".settings.pin.ChangePinActivity"
|
|
android:exported="false"
|
|
android:label="@string/settings_confirm_pin_code_title"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" />
|
|
<activity
|
|
android:name=".settings.pin.ValidatePinActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" />
|
|
<activity
|
|
android:name=".contacts.details.presentation.ContactDetailsActivity"
|
|
android:exported="false"
|
|
android:label="@string/contact_details"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="adjustPan" />
|
|
<activity
|
|
android:name=".contacts.details.edit.EditContactDetailsActivity"
|
|
android:exported="false"
|
|
android:label="@string/contact_details"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="adjustResize|stateHidden" />
|
|
<activity
|
|
android:name=".activities.DefaultAddressActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:label="@string/default_mail_address"
|
|
android:windowSoftInputMode="adjustResize|stateHidden" />
|
|
<activity
|
|
android:name=".settings.presentation.SwipeChooserActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:label="@string/swipe_action_chooser_title"
|
|
android:windowSoftInputMode="adjustResize|stateHidden" />
|
|
<activity
|
|
android:name=".settings.pin.PinSettingsActivity"
|
|
android:exported="false"
|
|
android:label="@string/auto_lock"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="adjustResize|stateHidden" />
|
|
<activity
|
|
android:name=".labels.presentation.ui.LabelsManagerActivity"
|
|
android:exported="false"
|
|
android:label="@string/labels_and_folders"
|
|
android:windowSoftInputMode="adjustResize|stateHidden" />
|
|
<activity
|
|
android:name=".activities.settings.NotificationSettingsActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:label="@string/notification_settings"
|
|
android:windowSoftInputMode="adjustResize|stateHidden" />
|
|
<activity
|
|
android:name=".settings.presentation.SnoozeNotificationsActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:label="@string/notifications_snooze"
|
|
android:windowSoftInputMode="adjustResize|stateHidden" />
|
|
<activity
|
|
android:name=".contacts.groups.details.ContactGroupDetailsActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"
|
|
android:label="@string/title_activity_contact_group_details"/>
|
|
<activity
|
|
android:name=".contacts.groups.edit.ContactGroupEditCreateActivity"
|
|
android:exported="false"
|
|
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"
|
|
android:screenOrientation="portrait"
|
|
android:label="@string/title_activity_contact_group_details"/>
|
|
<activity
|
|
android:name=".contacts.groups.edit.chooser.AddressChooserActivity"
|
|
android:exported="false"
|
|
android:screenOrientation="portrait"
|
|
android:label="@string/title_activity_address_chooser"/>
|
|
<activity
|
|
android:name=".labels.presentation.ui.ParentFolderPickerActivity"
|
|
android:exported="true"/>
|
|
<activity
|
|
android:name=".settings.presentation.ui.ThemeChooserActivity"
|
|
android:exported="false"/>
|
|
|
|
<service
|
|
android:name=".api.services.MessagesService"
|
|
android:exported="false"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
<service
|
|
android:name=".api.segments.event.EventUpdaterService"
|
|
android:exported="false"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
<service
|
|
android:name=".storage.AttachmentClearingService"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
<service
|
|
android:name=".storage.MessageBodyClearingService"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
<service
|
|
android:name=".api.services.ConnectivityService"
|
|
android:exported="true"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
|
|
<!-- Core -->
|
|
<activity
|
|
android:name="me.proton.core.auth.presentation.ui.AuthHelpActivity"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name="me.proton.core.auth.presentation.ui.ChooseAddressActivity"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name="me.proton.core.auth.presentation.ui.CreateAddressActivity"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name="me.proton.core.auth.presentation.ui.AddAccountActivity"
|
|
android:screenOrientation="portrait"
|
|
android:theme="@style/ProtonTheme.Mail.AddAccount"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name="me.proton.core.auth.presentation.ui.LoginActivity"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name="me.proton.core.auth.presentation.ui.signup.SignupActivity"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name="me.proton.core.auth.presentation.ui.TwoPassModeActivity"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name="me.proton.core.auth.presentation.ui.SecondFactorActivity"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name="me.proton.core.crypto.validator.presentation.ui.CryptoValidatorErrorDialogActivity"
|
|
android:theme="@style/ProtonTheme.Transparent" />
|
|
<activity android:name=".onboarding.newuser.presentation.NewUserOnboardingActivity" />
|
|
<activity android:name=".onboarding.existinguser.presentation.ExistingUserOnboardingActivity" />
|
|
</application>
|
|
|
|
</manifest>
|