<!--
/*
 * Copyright 2006, 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="{{ manifest_package }}">

    <permission android:name="{{ app_package_name }}.permission.PRELOAD"
        android:label="@string/permission_preload_label"
        android:protectionLevel="signatureOrSystem" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.NFC" />
    <uses-permission android:name="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS" />
    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
    <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
    <uses-permission android:name="{{ app_package_name }}.permission.READ_HOMEPAGE" />
    <uses-permission android:name="{{ app_package_name }}.permission.WRITE_HOMEPAGE" />
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <!-- Templatize taskAffinity otherwise it will default to 'package'
        defined in manifest -->
    <application   android:name="com.android.browser.Browser"
                   android:label="{{ apk_label }}"
                   android:icon="@mipmap/ic_launcher_browser"
                   android:backupAgent="com.android.browser.BrowserBackupAgent"
                   android:hardwareAccelerated="true"
                   android:taskAffinity="{{ apk_task_affinity }}"
                   android:theme="@style/BrowserBase" >

        <uses-library android:name="com.qrd.useragent"
                      android:required="false" />

        <provider android:name="com.android.browser.provider.BrowserProvider2"
                  android:authorities="{{app_package_name}};{{apk_authorities}};{{app_authorities}}"
                  android:multiprocess="false"
                  android:exported="true"
                  android:readPermission="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
                  android:writePermission="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS">
            <path-permission android:path="/bookmarks/search_suggest_query"
                    android:readPermission="android.permission.GLOBAL_SEARCH" />
            <path-permission android:path="/homepage"
                    android:readPermission="{{ app_package_name }}.permission.READ_HOMEPAGE"
                    android:writePermission="{{ app_package_name }}.permission.WRITE_HOMEPAGE" />
        </provider>

        <activity android:name="com.android.browser.BrowserLauncher"
                  android:theme="@android:style/Theme.NoDisplay" >
            <!-- We are the main entry point of the browser. -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.APP_BROWSER" />
            </intent-filter>
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.BrowserLauncher"
            android:targetActivity="com.android.browser.BrowserLauncher"
            android:exported="true">
        </activity-alias>
        {% endif %}

        <activity android:name="com.android.browser.BrowserActivity"
                  android:label="{{ apk_label }}"
                  android:launchMode="singleTask"
                  android:alwaysRetainTaskState="true"
                  android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
                  android:theme="@style/BrowserTheme"
                  android:windowSoftInputMode="adjustResize" >

            <intent-filter>
                <action android:name="android.speech.action.VOICE_SEARCH_RESULTS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <!-- For these schemes were not particular MIME type has been
                 supplied, we are a good candidate. -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="http" />
                <data android:scheme="https" />
                <data android:scheme="about" />
                <data android:scheme="javascript" />
            </intent-filter>
            <!--  For these schemes where any of these particular MIME types
                  have been supplied, we are a good candidate. -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
                <data android:scheme="https" />
                <data android:scheme="inline" />
                <data android:mimeType="text/html"/>
                <data android:mimeType="text/plain"/>
                <data android:mimeType="application/xhtml+xml"/>
                <data android:mimeType="application/vnd.wap.xhtml+xml"/>
            </intent-filter>
            <!-- For viewing saved web archives. -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
                <data android:scheme="https" />
                <data android:scheme="file" />
                <data android:mimeType="application/x-webarchive-xml"/>
            </intent-filter>
            <!-- Accept inbound NFC URLs -->
            <intent-filter>
                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
                <data android:scheme="https" />
            </intent-filter>
            <!-- The maps app is a much better experience, so it's not
                 worth having this at all... especially for a demo!
            <intent-filter android:label="Map In Browser">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/postal-address" />
            </intent-filter>
            -->
            <intent-filter>
                <action android:name="android.intent.action.WEB_SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="android.app.searchable"
                    android:resource="@xml/searchable" />
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.BrowserActivity"
            android:targetActivity="com.android.browser.BrowserActivity"/>
        {% endif %}

        <activity android:name="com.android.browser.ShortcutActivity"
            android:theme="@style/ShortcutTheme"
            android:label="@string/shortcut_bookmark"
            android:icon="@mipmap/ic_launcher_shortcut_browser_bookmark">
            <intent-filter>
                <action android:name="android.intent.action.CREATE_SHORTCUT" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.ShortcutActivity"
            android:targetActivity="com.android.browser.ShortcutActivity"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <activity android:name="com.android.browser.BrowserPreferencesPage"
            android:label="@string/menu_preferences"
            android:parentActivityName="com.android.browser.BrowserActivity"
            android:theme="@style/SettingsTheme">
            <intent-filter>
               <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
               <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.BrowserPreferencesPage"
            android:targetActivity="com.android.browser.BrowserPreferencesPage"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <activity android:name="com.android.browser.preferences.LegalPreviewActivity"
            android:parentActivityName="com.android.browser.BrowserActivity"
            android:theme="@style/SettingsTheme">
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.LegalPreviewActivity"
            android:targetActivity="com.android.browser.preferences.LegalPreviewActivity"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <activity android:name="com.android.browser.BookmarkSearch"
                  android:label="@string/application_name"
                  android:stateNotNeeded="true"
                  android:theme="@android:style/Theme.NoDisplay"
                  android:excludeFromRecents="true">
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="android.app.searchable"
                    android:resource="@xml/bookmarks_searchable" />
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.BookmarkSearch"
            android:targetActivity="com.android.browser.BookmarkSearch"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <activity android:name="com.android.browser.AddBookmarkPage"
                  android:label="@string/bookmarks_add_page"
                  android:theme="@style/MyNavAddStyle"
                  android:configChanges="orientation|keyboardHidden|screenSize"
                  android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.INSERT" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.dir/bookmark"/>
            </intent-filter>
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.AddBookmarkPage"
            android:targetActivity="com.android.browser.AddBookmarkPage"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <activity android:name="com.android.browser.DownloadSettings"
                  android:label="@string/download_settings_title"
                  android:theme="@style/DialogWhenLarge"
                  android:launchMode="singleTask"
                  android:configChanges="orientation|keyboardHidden|screenSize"
                  android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.BROWSERDOWNLOAD" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.DownloadSettings"
            android:targetActivity="com.android.browser.DownloadSettings"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <!-- For creating new folder in bookmarks page -->
        <activity android:name="com.android.browser.AddBookmarkFolder"
                  android:label="@string/new_folder"
                  android:theme="@style/DialogWhenLarge"
                  android:configChanges="orientation|keyboardHidden|screenSize">
                  <intent-filter>
                      <category android:name="android.intent.category.DEFAULT" />
                      <data android:mimeType="vnd.android.cursor.dir/bookmark"/>
                  </intent-filter>
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.AddBookmarkFolder"
            android:targetActivity="com.android.browser.AddBookmarkFolder"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <activity android:name="com.android.browser.ComboViewActivity"
                  android:theme="@style/ComboViewTheme">
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.ComboViewActivity"
            android:targetActivity="com.android.browser.ComboViewActivity"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <!-- Bookmark thumbnail homescreen widget -->
        <receiver
            android:name="com.android.browser.widget.BookmarkThumbnailWidgetProvider"
            android:label="@string/bookmarks">
            <intent-filter>
                <action
                    android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                <action
                    android:name="com.android.browser.BOOKMARK_APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/bookmarkthumbnailwidget_info" />
        </receiver>
        <service
            android:name="com.android.browser.widget.BookmarkThumbnailWidgetService"
            android:permission="android.permission.BIND_REMOTEVIEWS"
            android:exported="false" />
        <receiver
            android:name="com.android.browser.widget.BookmarkWidgetProxy"
            android:exported="false" />
        <activity android:name="com.android.browser.widget.BookmarkWidgetConfigure"
            android:theme="@style/DialogWhenLarge">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
            </intent-filter>
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.widget.BookmarkWidgetConfigure"
            android:targetActivity="com.android.browser.widget.BookmarkWidgetConfigure"
            android:exported="false">
        </activity-alias>
        {% endif %}
        <!-- add or edit my navigation activity -->
        <activity android:name="com.android.browser.mynavigation.AddMyNavigationPage"
            android:label="@string/my_navigation_page_title"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden">
        </activity>
        {% if not app_package_name in ['com.android.browser'] %}
        <activity-alias android:name="{{ app_package_name }}.mynavigation.AddMyNavigationPage"
            android:targetActivity="com.android.browser.mynavigation.AddMyNavigationPage"
            android:exported="false">
        </activity-alias>
        {% endif %}

        <!-- Makes .BrowserActivity the search target for any activity in Browser -->
        <meta-data android:name="android.app.default_searchable" android:value="com.android.browser.BrowserActivity" />

        <receiver android:name="com.android.browser.OpenDownloadReceiver">
            <intent-filter>
                <action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED"/>
            </intent-filter>
        </receiver>

        <!-- For custom home pages (like most visited) -->
        <provider
            android:name="com.android.browser.homepages.HomeProvider"
            android:authorities="{{ app_package_name }}.home;{{app_authorities}}.home"
            android:grantUriPermissions="true"
            android:readPermission="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
            android:exported="false" />

         <receiver android:name="com.android.browser.MessagesReceiver">
            <intent-filter>
                <action android:name="com.android.mms.transaction.MESSAGE_RECEIVED" />
            </intent-filter>
        </receiver>

        <receiver android:name="com.android.browser.PreloadRequestReceiver"
             android:permission="{{ app_package_name }}.permission.PRELOAD" >
             <intent-filter>
                 <action android:name="android.intent.action.PRELOAD"/>
                 <data android:scheme="http" />
             </intent-filter>
         </receiver>

        <provider android:name="com.android.browser.provider.SnapshotProvider"
                  android:authorities="{{ app_package_name }}.snapshots;{{app_authorities}}.snapshots"
                  android:exported="false" />
        <provider
            android:name="com.android.browser.provider.MyNavigationProvider"
            android:authorities="{{ app_package_name }}.mynavigation;{{app_authorities}}.mynavigation"
            android:exported="false"
            android:grantUriPermissions="true"/>

        {% set num_sandboxed_services = 20 %}
        <meta-data android:name="org.chromium.content.browser.NUM_SANDBOXED_SERVICES"
                   android:value="{{ num_sandboxed_services }}"/>
        {% for i in range(num_sandboxed_services) %}
        <service android:name="org.chromium.content.app.SandboxedProcessService{{ i }}"
                 android:process=":sandboxed_process{{ i }}"
                 android:isolatedProcess="true"
                 android:exported="false" />
        {% endfor %}

        {% set num_privileged_services = 3 %}
        <meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES"
                   android:value="{{ num_privileged_services }}"/>
        {% for i in range(num_privileged_services) %}
        <service android:name="org.chromium.content.app.PrivilegedProcessService{{ i }}"
                 android:process=":privileged_process{{ i }}"
                 android:isolatedProcess="false"
                 android:exported="false" />
        {% endfor %}


        <!-- Provider for FileProvider. -->
        <provider android:name="android.support.v4.content.FileProvider"
            android:authorities="{{ app_package_name }}.FileProvider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
        </provider>

        <service
            android:name="com.android.browser.UpdateNotificationService"
            android:exported="false" >
        </service>

        <!-- Compiler gcc/llvm -->
        <meta-data android:name="Compiler" android:value="{{ apk_compiler }}" />
        <!-- Architecture x64/x32 -->
        <meta-data android:name="Architecture" android:value="{{ apk_architecture }}" />

    </application>

    <!-- CM 12.1+ -->
    <uses-sdk android:minSdkVersion="22" android:targetSdkVersion="23" />

    {{ extra_supports_gl_texture }}

    <uses-feature android:name="android.hardware.location.gps" android:required="false" />

</manifest>
