1<?xml version="1.0" encoding="utf-8"?>
2<!--
3/*
4 * Copyright (C) 2007-2017 The Android Open Source Project
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *      http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18-->
19<manifest xmlns:android="http://schemas.android.com/apk/res/android"
20        package="com.android.documentsui">
21
22    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="30"/>
23
24    <uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
25    <uses-permission android:name="android.permission.REMOVE_TASKS" />
26    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
27    <uses-permission android:name="android.permission.WAKE_LOCK" />
28    <uses-permission android:name="android.permission.CACHE_CONTENT" />
29    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
30    <uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES" />
31    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
32    <uses-permission android:name="android.permission.MODIFY_QUIET_MODE" />
33    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
34
35    <!-- Permissions required for reading and logging compat changes -->
36    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
37    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
38
39    <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
40
41    <application
42        android:name=".DocumentsApplication"
43        android:label="@string/app_label"
44        android:icon="@drawable/app_icon"
45        android:supportsRtl="true"
46        android:allowBackup="true"
47        android:backupAgent=".prefs.BackupAgent"
48        android:fullBackupOnly="false"
49        android:crossProfile="true">
50
51        <meta-data
52            android:name="com.google.android.backup.api_key"
53            android:value="AEdPqrEAAAAInBA8ued0O_ZyYUsVhwinUF-x50NIe9K0GzBW4A" />
54
55        <activity
56            android:name=".picker.PickActivity"
57            android:exported="true"
58            android:theme="@style/LauncherTheme"
59            android:visibleToInstantApps="true">
60            <intent-filter android:priority="100">
61                <action android:name="android.intent.action.OPEN_DOCUMENT" />
62                <category android:name="android.intent.category.DEFAULT" />
63                <category android:name="android.intent.category.OPENABLE" />
64                <data android:mimeType="*/*" />
65            </intent-filter>
66            <intent-filter android:priority="100">
67                <action android:name="android.intent.action.CREATE_DOCUMENT" />
68                <category android:name="android.intent.category.DEFAULT" />
69                <category android:name="android.intent.category.OPENABLE" />
70                <data android:mimeType="*/*" />
71            </intent-filter>
72            <intent-filter android:priority="100">
73                <action android:name="android.intent.action.GET_CONTENT" />
74                <category android:name="android.intent.category.DEFAULT" />
75                <category android:name="android.intent.category.OPENABLE" />
76                <data android:mimeType="*/*" />
77            </intent-filter>
78            <intent-filter android:priority="100">
79                <action android:name="android.intent.action.OPEN_DOCUMENT_TREE" />
80                <category android:name="android.intent.category.DEFAULT" />
81            </intent-filter>
82        </activity>
83
84        <activity
85            android:name=".files.LauncherActivity"
86            android:label="@string/launcher_label"
87            android:icon="@drawable/launcher_icon"
88            android:theme="@android:style/Theme.NoDisplay">
89        </activity>
90
91        <activity
92            android:name=".inspector.InspectorActivity"
93            android:label="@string/menu_inspect"
94            android:icon="@drawable/launcher_icon"
95            android:theme="@style/DocumentsTheme">
96        </activity>
97
98        <!--  Preserve original launcher activity from Nougat. -->
99        <activity-alias
100            android:name=".LauncherActivity"
101            android:targetActivity=".files.LauncherActivity"
102            android:label="@string/launcher_label"
103            android:exported="true"
104            android:icon="@drawable/launcher_icon" >
105            <intent-filter>
106                <action android:name="android.intent.action.MAIN" />
107                <category android:name="android.intent.category.LAUNCHER" />
108                <category android:name="android.intent.category.APP_FILES" />
109            </intent-filter>
110            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
111        </activity-alias>
112
113        <activity
114            android:name=".files.FilesActivity"
115            android:documentLaunchMode="intoExisting"
116            android:exported="true"
117            android:theme="@style/LauncherTheme">
118            <intent-filter>
119                <action android:name="android.intent.action.MAIN" />
120            </intent-filter>
121            <intent-filter>
122                <action android:name="android.intent.action.VIEW" />
123                <category android:name="android.intent.category.DEFAULT" />
124                <data android:mimeType="vnd.android.document/root" />
125            </intent-filter>
126            <intent-filter>
127                <action android:name="android.intent.action.VIEW" />
128                <category android:name="android.intent.category.DEFAULT" />
129                <data android:mimeType="vnd.android.document/directory" />
130            </intent-filter>
131        </activity>
132
133        <activity-alias android:name=".ViewDownloadsActivity"
134                        android:targetActivity=".files.FilesActivity"
135                        android:exported="true"
136                        android:enabled="@bool/handle_view_downloads_intent">
137            <intent-filter>
138                <action android:name="android.intent.action.VIEW_DOWNLOADS" />
139                <category android:name="android.intent.category.DEFAULT" />
140            </intent-filter>
141        </activity-alias>
142
143        <activity
144            android:name=".ScopedAccessActivity"
145            android:exported="true"
146            android:theme="@android:style/Theme.Translucent.NoTitleBar">
147            <intent-filter>
148                <action android:name="android.os.storage.action.OPEN_EXTERNAL_DIRECTORY" />
149                <category android:name="android.intent.category.DEFAULT" />
150            </intent-filter>
151        </activity>
152
153        <provider
154            android:name=".picker.LastAccessedProvider"
155            android:authorities="com.android.documentsui.lastAccessed"
156            android:exported="false"/>
157
158        <provider
159            android:name=".picker.PickCountRecordProvider"
160            android:authorities="com.android.documentsui.pickCountRecord"
161            android:exported="false"/>
162
163        <provider
164            android:name=".archives.ArchivesProvider"
165            android:authorities="com.android.documentsui.archives"
166            android:grantUriPermissions="true"
167            android:permission="android.permission.MANAGE_DOCUMENTS"
168            android:exported="true">
169            <intent-filter>
170                <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
171            </intent-filter>
172        </provider>
173
174        <receiver android:name=".PackageReceiver"
175            android:exported="true">
176            <intent-filter>
177                <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
178                <action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
179                <data android:scheme="package" />
180            </intent-filter>
181        </receiver>
182
183        <receiver android:name=".roots.BootReceiver" android:enabled="false"
184            android:exported="true">
185            <intent-filter>
186                <action android:name="android.intent.action.BOOT_COMPLETED" />
187            </intent-filter>
188        </receiver>
189
190        <receiver android:name=".PreBootReceiver"
191            android:exported="true">
192            <intent-filter>
193                <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
194            </intent-filter>
195        </receiver>
196
197        <!-- Run FileOperationService in a separate process so that we can use FileLock class to
198            wait until jumbo clip is done writing to disk before reading it. See ClipStorage for
199            details. -->
200        <service
201            android:name=".services.FileOperationService"
202            android:exported="false"
203            android:process=":com.android.documentsui.services">
204        </service>
205
206        <activity
207            android:name=".selection.demo.SelectionDemoActivity"
208            android:label="Selection Demo"
209            android:exported="true"
210            android:theme="@style/DocumentsTheme">
211            <intent-filter>
212                <action android:name="android.intent.action.MAIN" />
213            </intent-filter>
214        </activity>
215
216    </application>
217</manifest>
218