<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/Calendar/AndroidManifest.xml
**
** Copyright 2006, 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.calendar"
        android:sharedUserLabel="@string/app_label">

    <!--
       NOTE: and original-package cannot be used, since the Eclair
       version was using a shared user ID with the provider.
    -->

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.mail" />

    <application android:name="CalendarApplication"
            android:label="@string/app_label" android:icon="@drawable/app_icon"
            android:taskAffinity="android.task.calendar">
        <!-- TODO: Remove dependency of application on the test runner
             (android.test) library. -->
        <uses-library android:name="android.test.runner" />

        <activity
            android:name="AllInOneActivity"
            android:theme="@style/CalendarTheme.WithActionBar">
        </activity>

        <activity-alias android:name="LaunchActivity"
            android:targetActivity=".AllInOneActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <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:mimeType="time/epoch" />
                <data android:host="com.android.calendar" />
                <data android:scheme="content"/>
            </intent-filter>
        </activity-alias>

        <!-- Make all activities a searchable context -->
        <meta-data android:name="android.app.default_searchable"
            android:value="com.android.calendar.SearchActivity"/>

        <activity android:name="EditEventActivity" android:label="@string/event_edit_title"
            android:theme="@android:style/Theme"
            android:configChanges="orientation|keyboardHidden">

            <intent-filter>
                <action android:name="android.intent.action.EDIT" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/event" />
            </intent-filter>
        </activity>

        <activity android:name="EventInfoActivity" android:label="@string/event_info_title"
            android:theme="@android:style/Theme.Light"
            android:configChanges="orientation|keyboardHidden">

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/event" />
            </intent-filter>
        </activity>

        <activity android:name="GoogleCalendarUriIntentFilter" android:label="@string/app_label"
            android:theme="@android:style/Theme.Light"
            android:configChanges="orientation|keyboardHidden">

            <intent-filter>
               <action android:name="android.intent.action.VIEW" />
               <category android:name="android.intent.category.DEFAULT" />
               <category android:name="android.intent.category.BROWSABLE" />
               <data android:scheme="http" android:host="www.google.com" android:pathPrefix="/calendar/event" />
               <data android:scheme="https" android:host="www.google.com" android:pathPrefix="/calendar/event" />
               <data android:scheme="http" android:host="www.google.com" android:pathPattern="/calendar/hosted/.*/event" />
               <data android:scheme="https" android:host="www.google.com" android:pathPattern="/calendar/hosted/.*/event" />
            </intent-filter>
        </activity>

        <activity android:name="SelectCalendarsActivity" android:label="@string/calendars_title" />
        <activity android:name="CalendarPreferenceActivity" android:label="@string/preferences_title" />

        <activity android:name="SearchActivity" android:label="@string/search_title"
            android:launchMode="singleTop" android:theme="@android:style/Theme.Light">
            <intent-filter>
                <action android:name="android.intent.action.SEARCH"/>
            </intent-filter>
            <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/>
        </activity>

        <!-- Declarations for alerts/reminders -->
        <activity android:name=".alerts.AlertActivity" android:launchMode="singleInstance"
             android:theme="@android:style/Theme.Light" android:excludeFromRecents="true" />

        <receiver android:name=".alerts.AlertReceiver">
            <intent-filter>
                <action android:name="android.intent.action.EVENT_REMINDER" />
                <action android:name="android.intent.action.LOCALE_CHANGED" />
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.TIME_SET" />
                <data android:scheme="content" />
            </intent-filter>
        </receiver>

        <service android:name=".alerts.AlertService" />

        <service android:name=".alerts.DismissAllAlarmsService" />

        <!-- Declarations for the widget -->
        <receiver android:name=".widget.CalendarAppWidgetReceiver" android:enabled="false">
            <intent-filter>
                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
                <action android:name="android.intent.action.TIME_SET" />
                <action android:name="android.intent.action.DATE_CHANGED" />
            </intent-filter>
            <intent-filter>
                <data android:scheme="content" android:host="com.android.calendar"/>
                <action android:name="android.intent.action.PROVIDER_CHANGED"/>
            </intent-filter>
        </receiver>

        <receiver android:name=".widget.CalendarAppWidgetProvider" android:label="@string/gadget_title">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                <action android:name="com.android.calendar.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_info" />
        </receiver>

        <service android:name=".widget.CalendarAppWidgetService" />

        <activity android:name="CalendarTests" android:label="Calendar Tests">
            <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.UNIT_TEST" />
            </intent-filter>
        </activity>

        <service android:name=".AsyncQueryServiceHelper" />

    </application>
</manifest>