#
# Test how FQCN class names are expanded and handled:
# - A library application can be merged doesn't have an app class name.
# - A library application can be merged if it has the same class name as the app.
# - A partial class name is expanded using the package name in a library or app.
#

@main

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

    <application
            android:name="TheApp"
            android:backupAgent=".MyBackupAgent" >
        <activity android:name=".MainActivity" />
        <receiver android:name="AppReceiver" />
        <activity android:name="com.example.lib2.LibActivity" />
    </application>
</manifest>


@lib1_widget

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

    <application android:name="com.example.app1.TheApp" >
        <activity android:name=".WidgetLibrary" />
        <receiver android:name=".WidgetReceiver" />
        <service  android:name="AppService" />
        <activity android:name="com.example.lib1.WidgetConfigurationUI" />
    </application>
</manifest>


@lib2_activity

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

    <application>
        <!-- This won't be merged because there's already an identical definition in the main. -->
        <activity android:name="LibActivity" />

        <!-- Provider extracted from ApiDemos -->
        <provider android:name=".app.LoaderThrottle$SimpleProvider" />

        <!-- This one does not conflict with the main -->
        <activity android:name="com.example.lib2.LibActivity2" />

    </application>
</manifest>


@lib3_alias

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib3" >
    <!-- This manifest has a 'package' attribute and FQCNs get resolved. -->

    <application
            android:name="com.example.app1.TheApp"
            android:backupAgent="com.example.app1.MyBackupAgent">
        <activity-alias android:name="com.example.lib3.MyActivity"
            android:targetActivity="com.example.app1.MainActivity" />

        <!-- This is a dup of the 2nd activity in lib2 -->
        <activity android:name="com.example.lib2.LibActivity2" />

        <!-- These class name should be expanded. -->
        <activity android:name=".LibActivity3" />
        <service  android:name=".LibService3" />
        <receiver android:name=".LibReceiver3" />
        <provider android:name=".LibProvider3" />

    </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">

    <application
            android:name="com.example.app1.TheApp"
            android:backupAgent="com.example.app1.MyBackupAgent" >
        <activity android:name="com.example.app1.MainActivity" />
        <receiver android:name="com.example.app1.AppReceiver" />
        <activity android:name="com.example.lib2.LibActivity" />
# from @lib1_widget
        <activity android:name="com.example.lib1.WidgetLibrary" />
        <activity android:name="com.example.lib1.WidgetConfigurationUI" />
        <service  android:name="com.example.lib1.AppService" />
        <receiver android:name="com.example.lib1.WidgetReceiver" />

# from @lib2_activity
        <!-- This one does not conflict with the main -->
        <activity android:name="com.example.lib2.LibActivity2" />

        <!-- Provider extracted from ApiDemos -->
        <provider android:name="com.example.lib2.app.LoaderThrottle$SimpleProvider" />

# from @lib3_alias
        <!-- These class name should be expanded. -->
        <activity android:name="com.example.lib3.LibActivity3" />
        <activity-alias android:name="com.example.lib3.MyActivity"
            android:targetActivity="com.example.app1.MainActivity" />
        <service  android:name="com.example.lib3.LibService3" />
        <receiver android:name="com.example.lib3.LibReceiver3" />
        <provider android:name="com.example.lib3.LibProvider3" />
    </application>
</manifest>

@errors

P [ManifestMergerTest0_main.xml:6, ManifestMergerTest2_lib2_activity.xml:5] Skipping identical /manifest/application/activity[@name=com.example.lib2.LibActivity] element.
P [ManifestMergerTest0_main.xml, ManifestMergerTest3_lib3_alias.xml:8] Skipping identical /manifest/application/activity[@name=com.example.lib2.LibActivity2] element.
