<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.solovyev.android.calculator"
    android:installLocation="auto">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="com.android.vending.BILLING" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.VIBRATE" />

    <!--TODO: REMOVE IN PRODUCTION-->
    <!--<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>-->

    <!-- for onscreen -->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

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

    <application
        android:name=".CalculatorApplication"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/c_app_name"
        android:theme="@style/Cpp.Theme.Material">

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity
            android:name=".CalculatorActivity"
            android:clearTaskOnLaunch="true"
            android:label="@string/c_app_name"
            android:launchMode="singleTop"
            android:windowSoftInputMode="stateHidden|adjustPan">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

        <receiver
            android:name=".WidgetReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="org.solovyev.android.calculator.BUTTON_PRESSED" />
            </intent-filter>
        </receiver>

        <activity
            android:name=".preferences.PreferencesActivity"
            android:label="@string/cpp_settings" />

        <activity
            android:name=".preferences.PreferencesActivity$Dialog"
            android:label="@string/cpp_settings"
            android:theme="@style/Cpp.Theme.Dialog" />

        <activity
            android:name=".history.HistoryActivity"
            android:label="@string/c_history" />

        <activity
            android:name=".history.HistoryActivity$Dialog"
            android:label="@string/c_history"
            android:theme="@style/Cpp.Theme.Dialog" />

        <activity
            android:name=".errors.FixableErrorsActivity"
            android:excludeFromRecents="true"
            android:finishOnTaskLaunch="true"
            android:launchMode="singleTask"
            android:theme="@style/Cpp.Theme.Translucent" />

        <activity
            android:name=".about.AboutActivity"
            android:label="@string/cpp_about" />

        <activity
            android:name=".about.AboutActivity$Dialog"
            android:label="@string/cpp_about"
            android:theme="@style/Cpp.Theme.Dialog" />

        <activity
            android:name=".functions.FunctionsActivity"
            android:label="@string/c_functions" />

        <activity
            android:name=".functions.FunctionsActivity$Dialog"
            android:label="@string/c_functions"
            android:theme="@style/Cpp.Theme.Dialog" />

        <activity
            android:name=".operators.OperatorsActivity"
            android:label="@string/c_operators" />

        <activity
            android:name=".operators.OperatorsActivity$Dialog"
            android:label="@string/c_operators"
            android:theme="@style/Cpp.Theme.Dialog" />

        <activity
            android:name=".variables.VariablesActivity"
            android:label="@string/c_vars_and_constants" />

        <activity
            android:name=".variables.VariablesActivity$Dialog"
            android:label="@string/c_vars_and_constants"
            android:theme="@style/Cpp.Theme.Dialog" />

        <activity
            android:name=".plot.PlotActivity"
            android:label="@string/cpp_plotter">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
            </intent-filter>
        </activity>

        <activity
            android:name=".wizard.WizardActivity"
            android:launchMode="singleTop"
            android:theme="@style/Cpp.Theme.Wizard">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>

        <activity
            android:name=".preferences.PurchaseDialogActivity"
            android:label="@string/cpp_purchase_title"
            android:theme="@style/Cpp.Theme.Translucent" />

        <!-- todo serso: strings-->
        <activity
            android:name=".matrix.CalculatorMatrixActivity"
            android:label="@string/c_plot_graph">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>

        <!-- ONSCREEN CONFIG -->

        <activity
            android:name=".floating.FloatingCalculatorActivity"
            android:icon="@drawable/ic_launcher_window"
            android:label="@string/c_app_name_on_screen"
            android:launchMode="singleInstance"
            android:theme="@style/Cpp.Theme.Translucent">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

        <service
            android:name=".floating.FloatingCalculatorService"
            android:exported="false">
            <intent-filter>
                <action android:name="org.solovyev.android.calculator.onscreen.SHOW_WINDOW" />
                <action android:name="org.solovyev.android.calculator.onscreen.SHOW_NOTIFICATION" />
            </intent-filter>
        </service>

        <receiver android:name=".floating.FloatingCalculatorBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="org.solovyev.android.calculator.onscreen.SHOW_WINDOW" />
                <action android:name="org.solovyev.android.calculator.onscreen.SHOW_NOTIFICATION" />
            </intent-filter>
        </receiver>

        <!-- WIDGET CONFIG -->

        <receiver
            android:name=".widget.CalculatorWidget"
            android:icon="@drawable/ic_launcher"
            android:label="@string/c_app_name">

            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                <action android:name="org.solovyev.android.calculator.INIT" />
                <action android:name="org.solovyev.android.calculator.EDITOR_STATE_CHANGED" />
                <action android:name="org.solovyev.android.calculator.DISPLAY_STATE_CHANGED" />
                <action android:name="org.solovyev.android.calculator.BUTTON_PRESSED" />
                <action android:name="org.solovyev.android.calculator.THEME_CHANGED" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/calculator_widget" />
        </receiver>

        <!-- ADMOB -->

        <activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@android:style/Theme.Translucent" />

        <!-- ACRA CONFIG -->

        <activity
            android:name="org.acra.CrashReportDialog"
            android:excludeFromRecents="true"
            android:finishOnTaskLaunch="true"
            android:launchMode="singleInstance"
            android:theme="@android:style/Theme.Dialog" />

        <!-- Google Analytics -->
        <receiver
            android:name="com.google.android.gms.analytics.AnalyticsReceiver"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
            </intent-filter>
        </receiver>
        <service
            android:name="com.google.android.gms.analytics.AnalyticsService"
            android:enabled="true"
            android:exported="false" />

    </application>
</manifest>