<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you 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.
 -->

<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
    id="cordova-plugin-screen-orientation"
    version="2.0.2-dev">
    <name>Screen Orientation</name>
    <description>Adds Screen Orientation API lock and unlock functions to the global screen object in android, iOS, WP8, W8.1, and BB10.</description>
    <license>Apache 2.0</license>

    <engines>
        <engine name="cordova" version=">=3.0.0" />
    </engines>

    <js-module src="www/screenorientation.js" name="screenorientation">
        <clobbers target="cordova.plugins.screenorientation" />
    </js-module>

    <platform name="ios">
        <config-file target="config.xml" parent="/*">
            <feature name="CDVOrientation">
                <param name="ios-package" value="CDVOrientation" />
            </feature>
        </config-file>

        <header-file src="src/ios/CDVOrientation.h" />
        <source-file src="src/ios/CDVOrientation.m" />

    </platform>

    <platform name="android">
        <source-file src="src/android/CDVOrientation.java" target-dir="src/cordova/plugins/screenorientation/" />

        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="CDVOrientation">
                <param name="android-package" value="cordova.plugins.screenorientation.CDVOrientation" />
            </feature>
        </config-file>

        <dependency id="es6-promise-plugin" version="^4.1.0" />

    </platform>

    <platform name="blackberry10">
        <dependency id="com.blackberry.app" />
        <config-file target="www/config.xml" parent="/widget">
            <feature name="net.yoik.cordova.plugins.screenorientation" value="net.yoik.cordova.plugins.screenorientation" />
        </config-file>
        <js-module src="www/screenorientation.bb10.js" name="screenorientation.bb10">
            <merges target="cordova.plugins.screenorientation" />
        </js-module>
        <dependency id="es6-promise-plugin" version="^4.1.0"/>
    </platform>

    <platform name="windows">
        <js-module src="src/windows/CDVOrientationProxy.js" name="CDVOrientationProxy">
            <merges target="" />
        </js-module>
    </platform>



</plugin>
