Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
AndroidManifest.xml 19.8 KiB
Newer Older
<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.fsck.k9">
cketti's avatar
cketti committed

    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false"/>

cketti's avatar
cketti committed
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
cketti's avatar
cketti committed
        android:smallScreens="true"/>

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
Daniel Applebaum's avatar
Daniel Applebaum committed
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>

    <!-- Needed to mark a contact as contacted -->
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
cketti's avatar
cketti committed
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
cketti's avatar
cketti committed
    <permission
        android:name="${applicationId}.permission.REMOTE_CONTROL"
cketti's avatar
cketti committed
        android:description="@string/remote_control_desc"
        android:label="@string/remote_control_label"
        android:permissionGroup="android.permission-group.MESSAGES"
        android:protectionLevel="dangerous"/>
    <uses-permission android:name="${applicationId}.permission.REMOTE_CONTROL"/>
cketti's avatar
cketti committed

    <permission
        android:name="${applicationId}.permission.READ_MESSAGES"
cketti's avatar
cketti committed
        android:description="@string/read_messages_desc"
        android:label="@string/read_messages_label"
        android:permissionGroup="android.permission-group.MESSAGES"
        android:protectionLevel="dangerous"/>
    <uses-permission android:name="${applicationId}.permission.READ_MESSAGES"/>
cketti's avatar
cketti committed

    <permission
        android:name="${applicationId}.permission.DELETE_MESSAGES"
cketti's avatar
cketti committed
        android:description="@string/delete_messages_desc"
        android:label="@string/delete_messages_label"
        android:permissionGroup="android.permission-group.MESSAGES"
        android:protectionLevel="dangerous"/>
    <uses-permission android:name="${applicationId}.permission.DELETE_MESSAGES"/>
        android:name="com.fsck.k9.App"
cketti's avatar
cketti committed
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/Theme.K9.Startup"
        android:resizeableActivity="true"
        android:allowBackup="false">
cketti's avatar
cketti committed

        <meta-data
            android:name="android.app.default_searchable"
            android:value="com.fsck.k9.activity.Search"/>
        <!-- TODO: Remove once minSdkVersion has been changed to 24+ -->
        <meta-data
            android:name="com.lge.support.SPLIT_WINDOW"
            android:value="true"/>
        <uses-library
            android:name="com.sec.android.app.multiwindow"
            android:required="false"/>
        <meta-data
            android:name="com.sec.android.support.multiwindow"
            android:value="true"/>
        <meta-data
            android:name="com.samsung.android.sdk.multiwindow.penwindow.enable"
            android:value="true"/>

            android:name=".activity.Accounts"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/app_name"
            android:launchMode="singleTop"
cketti's avatar
cketti committed
            android:uiOptions="splitActionBarWhenNarrow">
cketti's avatar
cketti committed
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.LAUNCHER"/>

                <!-- TODO: Remove once minSdkVersion has been changed to 24+ -->
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
                <category android:name="android.intent.category.PENWINDOW_LAUNCHER"/>
            android:name=".activity.setup.WelcomeMessage"
cketti's avatar
cketti committed
            android:label="@string/welcome_message_title"/>

            android:name=".ui.settings.account.OpenPgpAppSelectDialog"
            android:configChanges="locale"
            android:theme="@style/Theme.K9.Transparent"
            />

            android:name=".activity.setup.FontSizeSettings"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/font_size_settings_title"/>

            android:name=".activity.setup.AccountSetupBasics"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/account_setup_basics_title"/>

            android:name=".activity.setup.AccountSetupAccountType"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/account_setup_account_type_title"/>

            android:name=".activity.setup.AccountSetupIncoming"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/account_setup_incoming_title"/>

            android:name=".activity.setup.AccountSetupComposition"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/account_settings_composition_title"/>

            android:name=".activity.setup.AccountSetupOutgoing"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/account_setup_outgoing_title"/>

            android:name=".activity.setup.AccountSetupOptions"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/account_setup_options_title"/>

            android:name=".activity.setup.AccountSetupNames"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/account_setup_names_title"/>

        <activity
            android:name=".activity.ChooseAccount"
            android:configChanges="locale"
            android:label="@string/choose_account_title"
            android:noHistory="true"
            android:theme="@style/Theme.K9Dialog"/>

            android:name=".activity.ChooseFolder"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/choose_folder_title"
            android:noHistory="true"
cketti's avatar
cketti committed
            android:theme="@style/Theme.K9Dialog"/>

Daniel Applebaum's avatar
Daniel Applebaum committed
        <activity
            android:name=".activity.ChooseIdentity"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/choose_identity_title"
            android:theme="@style/Theme.K9Dialog"/>

Daniel Applebaum's avatar
Daniel Applebaum committed
        <activity
            android:name=".activity.ManageIdentities"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/manage_identities_title"/>

Daniel Applebaum's avatar
Daniel Applebaum committed
        <activity
            android:name=".activity.EditIdentity"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/edit_identity_title"/>

        <activity
            android:name=".activity.NotificationDeleteConfirmation"
cketti's avatar
cketti committed
            android:excludeFromRecents="true"
            android:launchMode="singleTop"
            android:taskAffinity=""
cketti's avatar
cketti committed
            android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

        <!-- XXX Note: this activity is hacked to ignore config changes,
             since it doesn't currently handle them correctly in code. -->
        <activity
            android:name=".activity.setup.AccountSetupCheckSettings"
            android:configChanges="keyboardHidden|orientation|locale"
cketti's avatar
cketti committed
            android:label="@string/account_setup_check_settings_title"/>

            android:name=".activity.setup.FolderSettings"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/folder_settings_title"
            android:theme="@android:style/Theme.Dialog"/>

        <activity
            android:name=".ui.endtoend.AutocryptKeyTransferActivity"
            android:configChanges="locale"
            android:label="@string/ac_transfer_title"
            />

            android:name=".activity.FolderList"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:uiOptions="splitActionBarWhenNarrow">
                <!-- This action is only to allow an entry point for launcher shortcuts -->
cketti's avatar
cketti committed
                <action android:name="android.intent.action.MAIN"/>
Jesse Vincent's avatar
 
Jesse Vincent committed
        <activity
            android:name=".activity.MessageList"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:launchMode="singleTop"
cketti's avatar
cketti committed
            android:uiOptions="splitActionBarWhenNarrow">
            <intent-filter>
                <!-- This action is only to allow an entry point for launcher shortcuts -->
cketti's avatar
cketti committed
                <action android:name="android.intent.action.MAIN"/>
Bao-Long Nguyen-Trong's avatar
Bao-Long Nguyen-Trong committed
            <intent-filter>
cketti's avatar
cketti committed
                <action android:name="android.intent.action.VIEW"/>
Bao-Long Nguyen-Trong's avatar
Bao-Long Nguyen-Trong committed
                <data
                    android:host="messages"
cketti's avatar
cketti committed
                    android:scheme="email"/>
                <category android:name="android.intent.category.DEFAULT"/>
Bao-Long Nguyen-Trong's avatar
Bao-Long Nguyen-Trong committed
            </intent-filter>
            android:name=".activity.MessageCompose"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:enabled="false"
            android:label="@string/app_name">
cketti's avatar
cketti committed
                <action android:name="android.intent.action.SENDTO"/>
                <data android:scheme="mailto"/>
                <category android:name="android.intent.category.DEFAULT"/>
cketti's avatar
cketti committed
                <action android:name="android.intent.action.SEND"/>
                <data android:mimeType="*/*"/>
                <category android:name="android.intent.category.DEFAULT"/>
cketti's avatar
cketti committed
                <action android:name="android.intent.action.SEND_MULTIPLE"/>
                <data android:mimeType="*/*"/>
                <category android:name="android.intent.category.DEFAULT"/>
cketti's avatar
cketti committed
                <action android:name="android.intent.action.VIEW"/>
                <data android:scheme="mailto"/>

                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
            <intent-filter>
                <action android:name="org.autocrypt.PEER_ACTION"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
mynimu's avatar
mynimu committed

            <meta-data
                android:name="android.service.chooser.chooser_target_service"
                android:value="com.fsck.k9.service.K9ChooserTargetService" />
        <!-- Search Activity - searchable -->
cketti's avatar
cketti committed
        <activity
            android:name=".activity.Search"
            android:configChanges="locale"
            android:label="@string/search_action"
            android:uiOptions="splitActionBarWhenNarrow">
cketti's avatar
cketti committed
                <action android:name="android.intent.action.SEARCH"/>
                <category android:name="android.intent.category.DEFAULT"/>
cketti's avatar
cketti committed
            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable"/>
            android:name=".activity.LauncherShortcuts"
            android:configChanges="locale"
cketti's avatar
cketti committed
            android:label="@string/shortcuts_title">
cketti's avatar
cketti committed
                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
cketti's avatar
cketti committed

        <activity
            android:name=".activity.EmailAddressList"
            android:configChanges="locale"/>

        <activity android:name=".widget.unread.UnreadWidgetConfigurationActivity">
cketti's avatar
cketti committed
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
            </intent-filter>
cketti's avatar
cketti committed

        <activity
            android:name=".activity.UpgradeDatabases"
            android:label="@string/upgrade_databases_title"/>

cketti's avatar
cketti committed
        <activity
            android:name=".ui.settings.SettingsActivity"
            android:label="@string/prefs_title" />

        <activity
            android:name=".ui.settings.AboutActivity"
            android:label="@string/about_action" />

        <activity
            android:name=".ui.settings.general.GeneralSettingsActivity"
            android:label="@string/general_settings_title" />

        <activity
            android:name=".ui.settings.account.AccountSettingsActivity"
            android:label="@string/account_settings_title_fmt" />

cketti's avatar
cketti committed
        <receiver
            android:name=".service.BootReceiver"
            android:enabled="true">
cketti's avatar
cketti committed
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
cketti's avatar
cketti committed
                <action android:name="android.intent.action.DEVICE_STORAGE_LOW"/>
cketti's avatar
cketti committed
                <action android:name="android.intent.action.DEVICE_STORAGE_OK"/>
cketti's avatar
cketti committed
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
Daniel Applebaum's avatar
Daniel Applebaum committed
            <intent-filter>
cketti's avatar
cketti committed
                <action android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED"/>
Daniel Applebaum's avatar
Daniel Applebaum committed
            </intent-filter>
            <intent-filter>
cketti's avatar
cketti committed
                <action android:name="com.android.sync.SYNC_CONN_STATUS_CHANGED"/>
Daniel Applebaum's avatar
Daniel Applebaum committed
            </intent-filter>
cketti's avatar
cketti committed

        <receiver
            android:name=".external.remotecontrol.RemoteControlReceiver"
cketti's avatar
cketti committed
            android:enabled="true"
            android:permission="${applicationId}.permission.REMOTE_CONTROL">
cketti's avatar
cketti committed
            <intent-filter>
                <action android:name="${applicationId}.K9RemoteControl.set"/>
cketti's avatar
cketti committed
            </intent-filter>
            <intent-filter>
                <action android:name="${applicationId}.K9RemoteControl.requestAccounts"/>
cketti's avatar
cketti committed
            </intent-filter>
        </receiver>
cketti's avatar
cketti committed
        <receiver
            android:name=".service.CoreReceiver"
cketti's avatar
cketti committed
            android:exported="false"/>
cketti's avatar
cketti committed

        <receiver
            android:name=".service.StorageReceiver"
            android:enabled="true">
Jesse Vincent's avatar
Jesse Vincent committed
            <intent-filter>
cketti's avatar
cketti committed
                <!--
                android.intent.action.MEDIA_MOUNTED
cketti's avatar
cketti committed
                     * Broadcast Action:  External media is present and mounted at its mount point.
                     * The path to the mount point for the removed media is contained in the Intent.mData field.
                     * The Intent contains an extra with name "read-only" and Boolean value to indicate if the
                     * media was mounted read only.
cketti's avatar
cketti committed
                 -->
Jesse Vincent's avatar
Jesse Vincent committed
                <action android:name="android.intent.action.MEDIA_MOUNTED"/>
cketti's avatar
cketti committed
                <!--
cketti's avatar
cketti committed
                MEDIA_EJECT and MEDIA_UNMOUNTED are not defined here: they have to be dynamically registered
                otherwise it would make K-9 start at the wrong time
cketti's avatar
cketti committed
                 -->
Jesse Vincent's avatar
Jesse Vincent committed
                <data android:scheme="file"/>
            </intent-filter>
        </receiver>
cketti's avatar
cketti committed

        <receiver
            android:name=".widget.unread.UnreadWidgetProvider"
cketti's avatar
cketti committed
            android:icon="@drawable/icon"
            android:label="@string/unread_widget_label">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/unread_widget_info"/>
        </receiver>

cketti's avatar
cketti committed
        <receiver
            android:name=".widget.list.MessageListWidgetProvider"
            android:icon="@drawable/message_list_widget_preview"
cketti's avatar
cketti committed
            android:label="@string/mail_list_widget_text">
denis mone's avatar
denis mone committed
            <intent-filter>
cketti's avatar
cketti committed
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
denis mone's avatar
denis mone committed
            </intent-filter>
            <meta-data
cketti's avatar
cketti committed
                android:name="android.appwidget.provider"
                android:resource="@xml/message_list_widget_info" />
denis mone's avatar
denis mone committed
        </receiver>

cketti's avatar
cketti committed
        <service
            android:name=".widget.list.MessageListWidgetService"
cketti's avatar
cketti committed
            android:enabled="true"
            android:permission="android.permission.BIND_REMOTEVIEWS" />
denis mone's avatar
denis mone committed

            android:name=".service.MailService"
cketti's avatar
cketti committed
            android:enabled="true"/>

        <service
            android:name=".notification.NotificationActionService"
cketti's avatar
cketti committed
            android:enabled="true"/>

        <service
            android:name=".service.PushService"
            android:enabled="true"/>

        <service
            android:name=".service.PollService"
            android:enabled="true"/>

        <service
            android:name=".external.remotecontrol.RemoteControlService"
            android:enabled="true"
            android:permission="${applicationId}.permission.REMOTE_CONTROL"/>
cketti's avatar
cketti committed

        <service
            android:name=".service.SleepService"
            android:enabled="true"/>

Daniel Applebaum's avatar
Daniel Applebaum committed
        <service
cketti's avatar
cketti committed
            android:name=".service.DatabaseUpgradeService"
            android:exported="false"/>

mynimu's avatar
mynimu committed

        <service
            android:name="com.fsck.k9.directshare.K9ChooserTargetService"
mynimu's avatar
mynimu committed
            android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE" >
            <intent-filter>
                <action android:name="android.service.chooser.ChooserTargetService" />
            </intent-filter>
        </service>

            android:name=".provider.AttachmentProvider"
            android:authorities="${applicationId}.attachmentprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            
            <meta-data
                android:name="de.cketti.safecontentresolver.ALLOW_INTERNAL_ACCESS"
                android:value="true" />
        
        </provider>
        <provider
            android:name=".provider.RawMessageProvider"
            android:authorities="${applicationId}.rawmessageprovider"
            android:exported="false">

            <meta-data
                android:name="de.cketti.safecontentresolver.ALLOW_INTERNAL_ACCESS"
                android:value="true" />

        </provider>

            android:name=".external.MessageProvider"
            android:authorities="${applicationId}.messageprovider"
cketti's avatar
cketti committed
            android:exported="true"
            android:grantUriPermissions="true"
cketti's avatar
cketti committed
            android:multiprocess="true"
            android:readPermission="${applicationId}.permission.READ_MESSAGES"
            android:writePermission="${applicationId}.permission.DELETE_MESSAGES"/>
            android:name=".provider.EmailProvider"
            android:authorities="${applicationId}.provider.email"
cketti's avatar
cketti committed
            android:exported="false"/>
        <provider
            android:name=".provider.DecryptedFileProvider"
            android:authorities="${applicationId}.decryptedfileprovider"
            android:exported="false"
            android:grantUriPermissions="true">

            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/decrypted_file_provider_paths" />
        <provider
            android:name=".provider.AttachmentTempFileProvider"
            android:authorities="${applicationId}.tempfileprovider"
            android:exported="false"
            android:grantUriPermissions="true">

            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/temp_file_provider_paths" />