#
# Test:
# - Activities from libraries are merged in the main manifest.
# - Acts on activity / activity-alias / service / receiver / provider.
# - Elements are merged as-is with the first comment element preceding them.
# - Whitespace preceding the merged elements is transfered over too.
#
# Note:
# - New elements are always merged at the end of the application element.
# - It's an error if an element with the same @name attribute is defined
#   or merged more than once unless the definition is *exactly* the same,
#   the "same" being defined by the exact XML elements, whitespace excluded.
#
# This tests that an error is generated because the libraries define
# activities which are already in the main, with slightly different XML content:
# number and *order* of elements must match, attributes must match.
#

@fails

@main

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app1"
    android:versionCode="100"
    android:versionName="1.0.0">

    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="11"/>

    <supports-screens
        android:largeScreens="true"
        android:smallScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:xlargeScreens="true"
        />

    <!-- Typical analytics permissions. -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <!-- Touchscreen feature, optional to make sure we can run on devices with no touch screen. -->
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />

    <application
        android:label="@string/app_name"
        android:icon="@drawable/app_icon"
        android:backupAgent="com.example.app.BackupAgentClass"
        android:restoreAnyVersion="true"
        android:allowBackup="true"
        android:killAfterRestore="true"
        android:name="com.example.TheApp" >

        <activity
            android:name="com.example.MainActivity"
            android:label="@string/activity_name"
            android:icon="@drawable/activity_icon"
            android:theme="@style/Some.Theme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Receiver -->
        <receiver
            android:name="com.example.AppReceiver"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM" />
            </intent-filter>
        </receiver>


        <!-- Conflict with lib1 -->
        <activity
            android:icon="@drawable/widget_icon"
            android:label="Configure Widget"
            android:name="com.example.WidgetConfigurationUI"
            android:theme="@style/Theme.WidgetConfigurationUI" >
            <!-- missing the intent-filter -->
        </activity>


        <!-- Conflict with lib2 -->
        <activity
            android:name="com.example.LibActivity"
            android:label="@string/lib_activity_name"
            android:icon="@drawable/lib_activity_icon">
            <!-- missing attribute android:theme="@style/Lib.Theme" -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>


@lib1_widget

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib1">

    <application android:label="@string/lib_name" >

        <!-- Broadcast Receiver for a widget. -->
        <receiver
            android:label="@string/widget_name"
            android:icon="@drawable/widget_icon"
            android:name="com.example.WidgetReceiver" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_provider"
                />
        </receiver>

        <service
            android:icon="@drawable/app_icon"
            android:name="com.example.AppService" />

        <!-- Activity to configure widget -->
        <activity
            android:icon="@drawable/widget_icon"
            android:label="Configure Widget"
            android:name="com.example.WidgetConfigurationUI"
            android:theme="@style/Theme.WidgetConfigurationUI" >
            <intent-filter >
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
            </intent-filter>
        </activity>
    </application>

</manifest>


@lib2_activity

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib2">

    <application android:label="@string/lib_name" >

        <!-- This won't be merged because there's already an identical definition in the main. -->
        <activity
            android:name="com.example.LibActivity"
            android:label="@string/lib_activity_name"
            android:icon="@drawable/lib_activity_icon"
            android:theme="@style/Lib.Theme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Provider extracted from ApiDemos -->
        <provider android:name=".app.LoaderThrottle$SimpleProvider"
            android:authorities="com.example.android.apis.app.LoaderThrottle"
            android:enabled="@bool/atLeastHoneycomb" />

        <!-- This one does not conflict with the main -->
        <activity
            android:name="com.example.LibActivity2"
            android:label="@string/lib_activity_name"
            android:icon="@drawable/lib_activity_icon"
            android:theme="@style/Lib.Theme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>


@lib3_alias

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib3">

    <!-- This comment is ignored. -->

    <application android:label="@string/lib_name" >

        <!-- The first comment just before the element
             is carried over as-is.
        -->
        <!-- Formatting is preserved. -->
        <!-- All consecutive comments are taken together. -->

        <activity-alias
            android:name="com.example.alias.MyActivity"
            android:targetActivity="com.example.MainActivity"
            android:label="@string/alias_name"
            android:icon="@drawable/alias_icon"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

        <!-- This will conflict with the 2nd one from lib2 -->
        <activity
            android:name="com.example.LibActivity2"
            android:label="@string/lib_activity_name"
            android:icon="@drawable/lib_activity_icon"
            android:theme="@style/Lib.Theme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.MOARCATZPLZ" />
            </intent-filter>
        </activity>

    </application>

</manifest>


@result

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app1"
    android:versionCode="100"
    android:versionName="1.0.0">

    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="11"/>

    <supports-screens
        android:largeScreens="true"
        android:smallScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:xlargeScreens="true"
        />

    <!-- Typical analytics permissions. -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <!-- Touchscreen feature, optional to make sure we can run on devices with no touch screen. -->
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />

    <application
        android:label="@string/app_name"
        android:icon="@drawable/app_icon"
        android:backupAgent="com.example.app.BackupAgentClass"
        android:restoreAnyVersion="true"
        android:allowBackup="true"
        android:killAfterRestore="true"
        android:name="com.example.TheApp" >

        <activity
            android:name="com.example.MainActivity"
            android:label="@string/activity_name"
            android:icon="@drawable/activity_icon"
            android:theme="@style/Some.Theme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Receiver -->
        <receiver
            android:name="com.example.AppReceiver"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM" />
            </intent-filter>
        </receiver>


        <!-- Conflict with lib1 -->
        <activity
            android:icon="@drawable/widget_icon"
            android:label="Configure Widget"
            android:name="com.example.WidgetConfigurationUI"
            android:theme="@style/Theme.WidgetConfigurationUI" >
            <!-- missing the intent-filter -->
        </activity>


        <!-- Conflict with lib2 -->
        <activity
            android:name="com.example.LibActivity"
            android:label="@string/lib_activity_name"
            android:icon="@drawable/lib_activity_icon">
            <!-- missing attribute android:theme="@style/Lib.Theme" -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

# from @lib1_widget
        <service
            android:icon="@drawable/app_icon"
            android:name="com.example.AppService" />

        <!-- Broadcast Receiver for a widget. -->
        <receiver
            android:label="@string/widget_name"
            android:icon="@drawable/widget_icon"
            android:name="com.example.WidgetReceiver" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_provider"
                />
        </receiver>

# from @lib2_activity
        <!-- This one does not conflict with the main -->
        <activity android:icon="@drawable/lib_activity_icon" android:label="@string/lib_activity_name" android:name="com.example.LibActivity2" android:theme="@style/Lib.Theme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <!-- Provider extracted from ApiDemos -->
        <provider android:name="com.example.lib2.app.LoaderThrottle$SimpleProvider"
            android:authorities="com.example.android.apis.app.LoaderThrottle"
            android:enabled="@bool/atLeastHoneycomb" />

# from @lib3_alias
        <!-- The first comment just before the element
             is carried over as-is.
        -->
        <!-- Formatting is preserved. -->
        <!-- All consecutive comments are taken together. -->

        <activity-alias
            android:name="com.example.alias.MyActivity"
            android:targetActivity="com.example.MainActivity"
            android:label="@string/alias_name"
            android:icon="@drawable/alias_icon"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

    </application>

</manifest>

@errors

E [ManifestMergerTest0_main.xml:32, ManifestMergerTest1_lib1_widget.xml:16] Trying to merge incompatible /manifest/application/activity[@name=com.example.WidgetConfigurationUI] element:
  <activity android:name=com.example.WidgetConfigurationUI>
--  <intent-filter>
++  (end reached)
E [ManifestMergerTest0_main.xml:38, ManifestMergerTest2_lib2_activity.xml:6] Trying to merge incompatible /manifest/application/activity[@name=com.example.LibActivity] element:
  <activity android:name=com.example.LibActivity>
      @android:icon = @drawable/lib_activity_icon
      @android:label = @string/lib_activity_name
      @android:name = com.example.LibActivity
--    @android:theme = @style/Lib.Theme
E [ManifestMergerTest0_main.xml, ManifestMergerTest3_lib3_alias.xml:19] Trying to merge incompatible /manifest/application/activity[@name=com.example.LibActivity2] element:
  <activity android:name=com.example.LibActivity2>
    <intent-filter>
      <action android:name=android.intent.action.MAIN>
      <category android:name=android.intent.category.LAUNCHER>
--    <category android:name=android.intent.category.MOARCATZPLZ>
++    (end reached)
