<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2012 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.mail"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <!-- Allows mail to access the user's contacts, for email address auto-completion -->
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <!-- Allows access to EmailProvider (EAS/IMAP/POP3) -->
    <uses-permission android:name="com.android.email.permission.ACCESS_PROVIDER"/>
    <uses-permission android:name="com.android.email.permission.READ_ATTACHMENT"/>
    <uses-permission android:name="android.permission.NFC" />
    <uses-permission android:name="com.google.android.gm.permission.READ_CONTENT_PROVIDER"/>
    <uses-permission android:name="com.google.android.gm.permission.READ_GMAIL"/>
    <uses-permission android:name="com.google.android.gm.permission.WRITE_GMAIL"/>

    <application
        android:icon="@mipmap/ic_launcher_mail"
        android:label="@string/app_name"
        android:theme="@style/UnifiedEmailTheme" >
        <!-- Enable search in all activities -->
        <meta-data android:name="android.app.default_searchable"
            android:value=".ui.MailActivity" />
        <!-- TODO: add a permission on this -->
        <activity
            android:label="@string/app_name"
            android:name=".ui.MailActivity"
            android:launchMode="singleTop"
            android:uiOptions="splitActionBarWhenNarrow">
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="content"/>
                <data android:mimeType="application/mail-ls" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
        </activity>
        <activity android:name=".compose.ComposeActivity"
            android:theme="@android:style/Theme.Holo.Light">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.SENDTO" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="mailto" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="mailto" />
           </intent-filter>

            <intent-filter android:label="@string/compose">
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="*/*" />
            </intent-filter>

            <intent-filter android:label="@string/compose">
                <action android:name="android.intent.action.SEND_MULTIPLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="*/*" />
            </intent-filter>
        </activity>
        <activity android:name="LabelSynchronizationActivity"
            android:theme="@android:style/Theme.Holo.Light.Dialog" />

        <activity android:name=".ui.CreateShortcutActivity"
            android:theme="@style/ShortcutWidgetTheme"
            android:label="@string/activity_folder_selection" />

        <activity android:name=".ui.FolderSelectionActivity"
            android:theme="@style/ShortcutWidgetTheme"
            android:label="@string/activity_folder_selection" />

        <activity android:name=".ui.MailboxSelectionActivity"
            android:theme="@style/InvisibleShortcutWidgetTheme"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
            </intent-filter>
        </activity>

        <provider
            android:authorities="com.android.mail.mockprovider"
            android:label="@string/mock_content_provider"
            android:multiprocess="false"
            android:name=".providers.protos.mock.MockUiProvider" >
            <grant-uri-permission android:pathPattern=".*" />
        </provider>

        <provider
            android:authorities="com.android.mail.conversation.provider"
            android:label="@string/conversation_content_provider"
            android:multiprocess="false"
            android:name=".browse.UnifiedConversationProvider" >
            <grant-uri-permission android:pathPattern=".*" />
        </provider>

        <provider
            android:authorities="com.android.mail.accountcache"
            android:label="@string/account_cache_provider"
            android:multiprocess="false"
            android:name=".providers.UnifiedAccountCacheProvider" >
            <grant-uri-permission android:pathPattern=".*" />
        </provider>

        <!-- The android:name is the name of the Provider class which is stored in
          UnifiedEmail, and has package name com.android.mail.providers and the class is
          called SuggestionsProvider. The authority name is specified in the MailAppProvider
          which is specific to the two apps separately. -->
        <provider android:name="com.android.mail.providers.SuggestionsProvider"
            android:authorities="com.android.mail.suggestionsprovider" />

        <receiver android:name=".providers.protos.boot.AccountReceiver">
          <intent-filter>
              <action android:name="com.android.mail.providers.protos.boot.intent.ACTION_PROVIDER_CREATED" />
          </intent-filter>
        </receiver>

        <service android:name=".compose.EmptyService"/>

        <!-- Widget -->
        <receiver android:name=".widget.WidgetProvider" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.android.mail.ACTION_NOTIFY_DATASET_CHANGED" />
            </intent-filter>
            <meta-data android:name="android.appwidget.provider"
                       android:resource="@xml/widget_info" />
        </receiver>
        <service android:name=".widget.WidgetService"
                 android:permission="android.permission.BIND_REMOTEVIEWS"
                 android:exported="false" />

    </application>

</manifest>
