1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2017 The Android Open Source Project
3
4    Licensed under the Apache License, Version 2.0 (the "License");
5    you may not use this file except in compliance with the License.
6    You may obtain a copy of the License at
7
8         http://www.apache.org/licenses/LICENSE-2.0
9
10    Unless required by applicable law or agreed to in writing, software
11    distributed under the License is distributed on an "AS IS" BASIS,
12    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13    See the License for the specific language governing permissions and
14    limitations under the License.
15-->
16
17<manifest
18    xmlns:android="http://schemas.android.com/apk/res/android"
19    xmlns:tools="http://schemas.android.com/tools"
20    package="com.android.launcher3.tests">
21
22    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
23
24    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
25    <uses-permission android:name="android.permission.READ_LOGS"/>
26    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
27    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
28
29    <application android:debuggable="true" android:extractNativeLibs="true">
30        <uses-library android:name="android.test.runner"/>
31
32        <receiver
33            android:name="com.android.launcher3.testcomponent.AppWidgetNoConfig"
34            android:exported="true"
35            android:icon="@drawable/test_widget_no_config_icon"
36            android:label="No Config">
37            <intent-filter>
38                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
39            </intent-filter>
40            <meta-data android:name="android.appwidget.provider"
41                       android:resource="@xml/appwidget_no_config"/>
42        </receiver>
43
44        <receiver
45            android:name="com.android.launcher3.testcomponent.AppWidgetHidden"
46            android:exported="true"
47            android:label="Hidden widget">
48            <intent-filter>
49                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
50            </intent-filter>
51            <meta-data android:name="android.appwidget.provider"
52                       android:resource="@xml/appwidget_hidden"/>
53        </receiver>
54
55        <receiver
56            android:name="com.android.launcher3.testcomponent.AppWidgetWithConfig"
57            android:exported="true"
58            android:icon="@drawable/test_widget_with_config_icon"
59            android:label="With Config">
60            <intent-filter>
61                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
62            </intent-filter>
63            <meta-data android:name="android.appwidget.provider"
64                       android:resource="@xml/appwidget_with_config"/>
65        </receiver>
66
67        <receiver
68            android:name="com.android.launcher3.testcomponent.AppWidgetWithDialog"
69            android:exported="true"
70            android:icon="@drawable/test_widget_with_dialog_icon"
71            android:label="With Dialog">
72            <intent-filter>
73                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
74            </intent-filter>
75            <meta-data android:name="android.appwidget.provider"
76                android:resource="@xml/appwidget_no_config_large"/>
77        </receiver>
78
79        <receiver
80            android:name="com.android.launcher3.testcomponent.AppWidgetDynamicColors"
81            android:exported="true"
82            android:icon="@drawable/test_widget_dynamic_colors_icon"
83            android:label="Dynamic Colors">
84            <intent-filter>
85                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
86            </intent-filter>
87            <meta-data android:name="android.appwidget.provider"
88                android:resource="@xml/appwidget_dynamic_colors"/>
89        </receiver>
90
91        <receiver android:name="com.android.launcher3.testcomponent.UnarchiveBroadcastReceiver"
92            android:enabled="true"
93            android:exported="true">
94            <intent-filter>
95                <action android:name="android.intent.action.UNARCHIVE_PACKAGE"/>
96            </intent-filter>
97        </receiver>
98
99        <activity
100            android:name="com.android.launcher3.testcomponent.WidgetConfigActivity"
101            android:exported="true">
102            <intent-filter>
103                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
104            </intent-filter>
105        </activity>
106        <activity android:name="com.android.launcher3.testcomponent.CustomShortcutConfigActivity"
107            android:exported="true">
108            <intent-filter>
109                <action android:name="android.intent.action.CREATE_SHORTCUT" />
110                <category android:name="android.intent.category.DEFAULT" />
111            </intent-filter>
112        </activity>
113        <activity
114            android:name="com.android.launcher3.testcomponent.RequestPinItemActivity"
115            android:icon="@drawable/test_drawable_pin_item"
116            android:exported="true"
117            android:label="Test Pin Item">
118            <intent-filter>
119                <action android:name="android.intent.action.MAIN"/>
120                <category android:name="android.intent.category.LAUNCHER"/>
121            </intent-filter>
122        </activity>
123
124        <service
125            android:name="com.android.launcher3.testcomponent.ListViewService"
126            android:permission="android.permission.BIND_REMOTEVIEWS" />
127
128        <provider
129            android:name="com.android.launcher3.testcomponent.TestCommandProvider"
130            android:authorities="${packageName}.commands"
131            android:exported="true"/>
132
133        <activity
134            android:name="com.android.launcher3.testcomponent.TestLauncherActivity"
135            android:clearTaskOnLaunch="true"
136            android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize"
137            android:enabled="false"
138            android:label="Test launcher"
139            android:launchMode="singleTask"
140            android:process=":testLauncherProcess"
141            android:resizeableActivity="true"
142            android:screenOrientation="unspecified"
143            android:stateNotNeeded="true"
144            android:taskAffinity=""
145            android:theme="@android:style/Theme.DeviceDefault.Light"
146            android:exported="true"
147            android:windowSoftInputMode="adjustPan">
148            <intent-filter>
149                <action android:name="android.intent.action.MAIN"/>
150                <category android:name="android.intent.category.HOME"/>
151                <category android:name="android.intent.category.DEFAULT"/>
152                <category android:name="android.intent.category.MONKEY"/>
153                <category android:name="android.intent.category.LAUNCHER_APP"/>
154            </intent-filter>
155        </activity>
156        <activity
157            android:name="com.android.launcher3.testcomponent.BaseTestingActivity"
158            android:label="LauncherTestApp"
159            android:exported="true"
160            android:taskAffinity="com.android.launcher3.testcomponent.Affinity1"
161            android:theme="@style/Theme.TestActivities">
162            <intent-filter>
163                <action android:name="android.intent.action.MAIN"/>
164                <category android:name="android.intent.category.LAUNCHER"/>
165                <category android:name="android.intent.category.DEFAULT"/>
166            </intent-filter>
167            <intent-filter>
168                <action android:name="com.android.launcher3.intent.action.test_shortcut"/>
169                <category android:name="android.intent.category.DEFAULT"/>
170            </intent-filter>
171            <meta-data android:name="android.app.shortcuts"
172                       android:resource="@xml/shortcuts"/>
173        </activity>
174        <activity
175            android:name="com.android.launcher3.testcomponent.OtherBaseTestingActivity"
176            android:label="OtherLauncherTestApp"
177            android:exported="true"
178            android:taskAffinity="com.android.launcher3.testcomponent.Affinity2">
179            <intent-filter>
180                <action android:name="android.intent.action.MAIN"/>
181                <category android:name="android.intent.category.LAUNCHER"/>
182            </intent-filter>
183        </activity>
184        <activity-alias android:name="Activity2"
185                        android:label="TestActivity2"
186                        android:exported="true"
187                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
188            <intent-filter>
189                <action android:name="android.intent.action.MAIN"/>
190                <category android:name="android.intent.category.LAUNCHER"/>
191            </intent-filter>
192        </activity-alias>
193        <activity-alias android:name="Activity3"
194                        android:label="TestActivity3"
195                        android:exported="true"
196                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
197            <intent-filter>
198                <action android:name="android.intent.action.MAIN"/>
199                <category android:name="android.intent.category.LAUNCHER"/>
200            </intent-filter>
201        </activity-alias>
202        <activity-alias android:name="Activity4"
203                        android:label="TestActivity4"
204                        android:exported="true"
205                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
206            <intent-filter>
207                <action android:name="android.intent.action.MAIN"/>
208                <category android:name="android.intent.category.LAUNCHER"/>
209            </intent-filter>
210        </activity-alias>
211        <activity-alias android:name="Activity5"
212                        android:label="TestActivity5"
213                        android:exported="true"
214                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
215            <intent-filter>
216                <action android:name="android.intent.action.MAIN"/>
217                <category android:name="android.intent.category.LAUNCHER"/>
218            </intent-filter>
219        </activity-alias>
220        <activity-alias android:name="Activity6"
221                        android:label="TestActivity6"
222                        android:exported="true"
223                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
224            <intent-filter>
225                <action android:name="android.intent.action.MAIN"/>
226                <category android:name="android.intent.category.LAUNCHER"/>
227            </intent-filter>
228        </activity-alias>
229        <activity-alias android:name="Activity7"
230                        android:label="TestActivity7"
231                        android:exported="true"
232                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
233            <intent-filter>
234                <action android:name="android.intent.action.MAIN"/>
235                <category android:name="android.intent.category.LAUNCHER"/>
236            </intent-filter>
237        </activity-alias>
238        <activity-alias android:name="Activity8"
239                        android:label="TestActivity8"
240                        android:exported="true"
241                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
242            <intent-filter>
243                <action android:name="android.intent.action.MAIN"/>
244                <category android:name="android.intent.category.LAUNCHER"/>
245            </intent-filter>
246        </activity-alias>
247        <activity-alias android:name="Activity9" android:exported="true"
248            android:label="TestActivity9"
249            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
250            <intent-filter>
251                <action android:name="android.intent.action.MAIN" />
252                <category android:name="android.intent.category.LAUNCHER" />
253            </intent-filter>
254        </activity-alias>
255        <activity-alias android:name="Activity10" android:exported="true"
256            android:label="TestActivity10"
257            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
258            <intent-filter>
259                <action android:name="android.intent.action.MAIN" />
260                <category android:name="android.intent.category.LAUNCHER" />
261            </intent-filter>
262        </activity-alias>
263        <activity-alias android:name="Activity11" android:exported="true"
264            android:label="TestActivity11"
265            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
266            <intent-filter>
267                <action android:name="android.intent.action.MAIN" />
268                <category android:name="android.intent.category.LAUNCHER" />
269            </intent-filter>
270        </activity-alias>
271        <activity-alias android:name="Activity12" android:exported="true"
272            android:label="TestActivity12"
273            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
274            <intent-filter>
275                <action android:name="android.intent.action.MAIN" />
276                <category android:name="android.intent.category.LAUNCHER" />
277            </intent-filter>
278        </activity-alias>
279        <activity-alias android:name="Activity13" android:exported="true"
280            android:label="TestActivity13"
281            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
282            <intent-filter>
283                <action android:name="android.intent.action.MAIN" />
284                <category android:name="android.intent.category.LAUNCHER" />
285            </intent-filter>
286        </activity-alias>
287        <activity-alias android:name="Activity14" android:exported="true"
288            android:label="TestActivity14"
289            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
290            <intent-filter>
291                <action android:name="android.intent.action.MAIN" />
292                <category android:name="android.intent.category.LAUNCHER" />
293            </intent-filter>
294        </activity-alias>
295        <activity-alias android:name="Activity15" android:exported="true"
296            android:label="IconThemedActivity"
297            android:icon="@drawable/test_theme_icon"
298            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
299            <intent-filter>
300                <action android:name="android.intent.action.MAIN" />
301                <category android:name="android.intent.category.LAUNCHER" />
302            </intent-filter>
303        </activity-alias>
304        <activity-alias android:name="SplitTask1"
305            android:label="1st TopLeft"
306            android:exported="true"
307            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
308            <intent-filter>
309                <action android:name="android.intent.action.MAIN"/>
310                <category android:name="android.intent.category.LAUNCHER"/>
311            </intent-filter>
312        </activity-alias>
313        <activity-alias android:name="SplitTask2"
314            android:label="2nd BottomRight"
315            android:exported="true"
316            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
317            <intent-filter>
318                <action android:name="android.intent.action.MAIN"/>
319                <category android:name="android.intent.category.LAUNCHER"/>
320            </intent-filter>
321        </activity-alias>
322        <activity-alias android:name="ActivityNoLabel"
323            android:label=""
324            android:exported="true"
325            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
326            <intent-filter>
327                <action android:name="android.intent.action.MAIN"/>
328                <category android:name="android.intent.category.LAUNCHER"/>
329            </intent-filter>
330        </activity-alias>
331        <activity-alias android:name="MaxShortcutsActivity"
332            android:label="TestActivityMaxShortcuts"
333            android:exported="true"
334            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
335            <intent-filter>
336                <action android:name="android.intent.action.MAIN"/>
337                <category android:name="android.intent.category.LAUNCHER"/>
338            </intent-filter>
339            <meta-data android:name="android.app.shortcuts"
340                android:resource="@xml/max_shortcuts"/>
341        </activity-alias>
342        <activity-alias android:name="SingleShortcutActivity"
343            android:label="TestActivitySingleShortcut"
344            android:exported="true"
345            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
346            <intent-filter>
347                <action android:name="android.intent.action.MAIN"/>
348                <category android:name="android.intent.category.LAUNCHER"/>
349            </intent-filter>
350            <meta-data android:name="android.app.shortcuts"
351                android:resource="@xml/single_shortcut"/>
352        </activity-alias>
353        <activity
354            android:name="com.android.launcher3.testcomponent.DialogTestActivity"
355            android:label="Dialog Activity"
356            android:theme="@android:style/Theme.Dialog"
357            android:exported="true"
358            android:taskAffinity="com.android.launcher3.testcomponent.Affinity2">
359            <intent-filter>
360                <action android:name="android.intent.action.MAIN"/>
361                <category android:name="android.intent.category.LAUNCHER"/>
362            </intent-filter>
363        </activity>
364        <activity android:name="com.android.launcher3.testcomponent.ImeTestActivity"
365            android:label="ImeTestActivity"
366            android:icon="@drawable/test_theme_icon"
367            android:exported="true">
368            <intent-filter>
369                <action android:name="android.intent.action.MAIN" />
370                <category android:name="android.intent.category.LAUNCHER" />
371            </intent-filter>
372        </activity>
373        <activity-alias android:name="WebSearchActivity"
374            android:label="WebSearchActivity"
375            android:exported="true"
376            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
377            <intent-filter>
378                <action android:name="android.intent.action.WEB_SEARCH" />
379                <category android:name="android.intent.category.DEFAULT" />
380            </intent-filter>
381        </activity-alias>
382        <activity-alias android:name="AAAActivity"
383            android:label="AAA"
384            android:exported="true"
385            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
386            <intent-filter>
387                <action android:name="android.intent.action.MAIN"/>
388                <category android:name="android.intent.category.LAUNCHER"/>
389            </intent-filter>
390        </activity-alias>
391        <activity-alias android:name="ZZZActivity"
392            android:label="ZZZ"
393            android:exported="true"
394            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
395            <intent-filter>
396                <action android:name="android.intent.action.MAIN"/>
397                <category android:name="android.intent.category.LAUNCHER"/>
398            </intent-filter>
399        </activity-alias>
400        <activity android:name="com.android.launcher3.testcomponent.ExcludeFromRecentsTestActivity"
401            android:label="ExcludeFromRecentsTestActivity"
402            android:exported="true"
403            android:excludeFromRecents="true">
404            <intent-filter>
405                <action android:name="android.intent.action.MAIN"/>
406                <category android:name="android.intent.category.LAUNCHER"/>
407            </intent-filter>
408        </activity>
409
410        <!-- Disable eager initialization of Jetpack libraries. See bug 197780098. -->
411        <provider
412            android:name="androidx.startup.InitializationProvider"
413            android:authorities="${applicationId}.androidx-startup"
414            tools:node="remove" />
415
416        <property
417            android:name="android.window.PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI"
418            android:value="true"/>
419    </application>
420</manifest>
421