<!--
/*
 * 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.READ_PHONE_STATE"/>
    <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}}"
                  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"
            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"
                  android:exported="false" />
        <provider
            android:name="com.android.browser.provider.MyNavigationProvider"
            android:authorities="{{ app_package_name }}.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>

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

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

</manifest>
