<!--
  Copyright 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.example.android.animationsdemo"
    android:versionCode="1"
    android:versionName="1.0">

    <!--
        This example's minimum API level is 14 due to the following recent
        key platform features:

        API 11: property animations (android.animations package)
        API 12: ViewPropertyAnimator
        API 14: View properties (android.util.Property) such as View.X and View.Y.
    -->
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" />

    <application android:allowBackup="true"
        android:label="@string/app_name"
        android:icon="@drawable/ic_launcher"
        android:theme="@android:style/Theme.Holo.Light.DarkActionBar">

        <activity android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".CrossfadeActivity"
            android:label="@string/title_crossfade"
            android:uiOptions="splitActionBarWhenNarrow"
            android:parentActivityName=".MainActivity">
            <meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
        </activity>

        <activity android:name=".CardFlipActivity"
            android:label="@string/title_card_flip"
            android:parentActivityName=".MainActivity"
            android:theme="@style/DarkTheme">
            <meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
        </activity>

        <activity android:name=".ScreenSlideActivity"
            android:label="@string/title_screen_slide"
            android:parentActivityName=".MainActivity"
            android:uiOptions="splitActionBarWhenNarrow">
            <meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
        </activity>

        <activity android:name=".ZoomActivity"
            android:label="@string/title_zoom"
            android:parentActivityName=".MainActivity">
            <meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
        </activity>

        <activity android:name=".LayoutChangesActivity"
            android:label="@string/title_layout_changes"
            android:parentActivityName=".MainActivity">>
            <meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
        </activity>

    </application>

</manifest>
