<!--
/*
 * 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="com.android.browser">

    <original-package android:name="com.android.browser" />

    <permission android:name="com.android.browser.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.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
    <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_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.MANAGE_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <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"/>

    <application   android:name="Browser"
                   android:label="@string/application_name"
                   android:icon="@mipmap/ic_launcher_browser"
                   android:backupAgent=".BrowserBackupAgent"
                   android:hardwareAccelerated="true"
                   android:taskAffinity="android.task.browser" >

        <provider android:name=".provider.BrowserProvider2"
                  android:authorities="com.android.browser;browser"
                  android:multiprocess="false"
                  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" />
        </provider>
        <activity android:name="BrowserActivity"
                  android:label="@string/application_name"
                  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 at a low priority -->
            <intent-filter android:priority="-101">
                <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>
            <!-- We are also 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>
            <!-- 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" />
                <data android:scheme="" />
                <data android:scheme="http" />
                <data android:scheme="https" />
            </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>

        <activity android:name="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>

        <activity android:name="BrowserPreferencesPage" android:label="@string/menu_preferences">
            <intent-filter>
               <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
               <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity android:name="BookmarkSearch"
                  android:label="@string/bookmarks_search"
                  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>

        <activity android:name="AddBookmarkPage" android:label="Save bookmark"
                  android:theme="@style/DialogWhenLarge"
                  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>

        <activity android:name="ComboViewActivity">
        </activity>

        <!-- Bookmark thumbnail homescreen widget -->
        <receiver
            android:name=".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=".widget.BookmarkThumbnailWidgetService"
            android:permission="android.permission.BIND_REMOTEVIEWS"
            android:exported="false" />
        <receiver
            android:name=".widget.BookmarkWidgetProxy"
            android:exported="false" />
        <activity android:name=".widget.BookmarkWidgetConfigure"
            android:theme="@android:style/Theme.Holo.DialogWhenLarge">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
            </intent-filter>
        </activity>

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

        <!-- Application code for RLZ tracking.  RLZ assigns non-unique, non-personally identifiable
             tracking labels to client products; these labels sometimes appear in Google search
             queries.  See http://code.google.com/p/rlz for more info.

             This value signifies to the RLZ client that this application uses RLZ tracking. -->
        <meta-data android:name="com.google.android.partnersetup.RLZ_ACCESS_POINT"
                   android:value="@string/rlz_access_point" />

        <receiver android:name=".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=".homepages.HomeProvider"
            android:authorities="com.android.browser.home"
            android:readPermission="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
            android:exported="false" />

        <receiver android:name=".AccountsChangedReceiver">
            <intent-filter>
                <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />
            </intent-filter>
        </receiver>

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

        <provider android:name=".provider.SnapshotProvider"
                  android:authorities="com.android.browser.snapshots"
                  android:exported="false" />

    </application>

</manifest>