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:icon="@drawable/test_icon"
187                        android:exported="true"
188                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
189            <intent-filter>
190                <action android:name="android.intent.action.MAIN"/>
191                <category android:name="android.intent.category.LAUNCHER"/>
192            </intent-filter>
193        </activity-alias>
194        <activity-alias android:name="Activity3"
195                        android:label="TestActivity3"
196                        android:icon="@drawable/test_icon"
197                        android:exported="true"
198                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
199            <intent-filter>
200                <action android:name="android.intent.action.MAIN"/>
201                <category android:name="android.intent.category.LAUNCHER"/>
202            </intent-filter>
203        </activity-alias>
204        <activity-alias android:name="Activity4"
205                        android:label="TestActivity4"
206                        android:icon="@drawable/test_icon"
207                        android:exported="true"
208                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
209            <intent-filter>
210                <action android:name="android.intent.action.MAIN"/>
211                <category android:name="android.intent.category.LAUNCHER"/>
212            </intent-filter>
213        </activity-alias>
214        <activity-alias android:name="Activity5"
215                        android:label="TestActivity5"
216                        android:icon="@drawable/test_icon"
217                        android:exported="true"
218                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
219            <intent-filter>
220                <action android:name="android.intent.action.MAIN"/>
221                <category android:name="android.intent.category.LAUNCHER"/>
222            </intent-filter>
223        </activity-alias>
224        <activity-alias android:name="Activity6"
225                        android:label="TestActivity6"
226                        android:icon="@drawable/test_icon"
227                        android:exported="true"
228                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
229            <intent-filter>
230                <action android:name="android.intent.action.MAIN"/>
231                <category android:name="android.intent.category.LAUNCHER"/>
232            </intent-filter>
233        </activity-alias>
234        <activity-alias android:name="Activity7"
235                        android:label="TestActivity7"
236                        android:icon="@drawable/test_icon"
237                        android:exported="true"
238                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
239            <intent-filter>
240                <action android:name="android.intent.action.MAIN"/>
241                <category android:name="android.intent.category.LAUNCHER"/>
242            </intent-filter>
243        </activity-alias>
244        <activity-alias android:name="Activity8"
245                        android:label="TestActivity8"
246                        android:icon="@drawable/test_icon"
247                        android:exported="true"
248                        android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
249            <intent-filter>
250                <action android:name="android.intent.action.MAIN"/>
251                <category android:name="android.intent.category.LAUNCHER"/>
252            </intent-filter>
253        </activity-alias>
254        <activity-alias android:name="Activity9" android:exported="true"
255            android:label="TestActivity9"
256            android:icon="@drawable/test_icon"
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="Activity10" android:exported="true"
264            android:label="TestActivity10"
265            android:icon="@drawable/test_icon"
266            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
267            <intent-filter>
268                <action android:name="android.intent.action.MAIN" />
269                <category android:name="android.intent.category.LAUNCHER" />
270            </intent-filter>
271        </activity-alias>
272        <activity-alias android:name="Activity11" android:exported="true"
273            android:label="TestActivity11"
274            android:icon="@drawable/test_icon"
275            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
276            <intent-filter>
277                <action android:name="android.intent.action.MAIN" />
278                <category android:name="android.intent.category.LAUNCHER" />
279            </intent-filter>
280        </activity-alias>
281        <activity-alias android:name="Activity12" android:exported="true"
282            android:label="TestActivity12"
283            android:icon="@drawable/test_icon"
284            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
285            <intent-filter>
286                <action android:name="android.intent.action.MAIN" />
287                <category android:name="android.intent.category.LAUNCHER" />
288            </intent-filter>
289        </activity-alias>
290        <activity-alias android:name="Activity13" android:exported="true"
291            android:label="TestActivity13"
292            android:icon="@drawable/test_icon"
293            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
294            <intent-filter>
295                <action android:name="android.intent.action.MAIN" />
296                <category android:name="android.intent.category.LAUNCHER" />
297            </intent-filter>
298        </activity-alias>
299        <activity-alias android:name="Activity14" android:exported="true"
300            android:label="TestActivity14"
301            android:icon="@drawable/test_icon"
302            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
303            <intent-filter>
304                <action android:name="android.intent.action.MAIN" />
305                <category android:name="android.intent.category.LAUNCHER" />
306            </intent-filter>
307        </activity-alias>
308        <activity-alias android:name="Activity15" android:exported="true"
309            android:label="IconThemedActivity"
310            android:icon="@drawable/test_theme_icon"
311            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
312            <intent-filter>
313                <action android:name="android.intent.action.MAIN" />
314                <category android:name="android.intent.category.LAUNCHER" />
315            </intent-filter>
316        </activity-alias>
317        <activity-alias android:name="SplitTask1"
318            android:label="1st TopLeft"
319            android:exported="true"
320            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
321            <intent-filter>
322                <action android:name="android.intent.action.MAIN"/>
323                <category android:name="android.intent.category.LAUNCHER"/>
324            </intent-filter>
325        </activity-alias>
326        <activity-alias android:name="SplitTask2"
327            android:label="2nd BottomRight"
328            android:exported="true"
329            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
330            <intent-filter>
331                <action android:name="android.intent.action.MAIN"/>
332                <category android:name="android.intent.category.LAUNCHER"/>
333            </intent-filter>
334        </activity-alias>
335        <activity-alias android:name="ActivityNoLabel"
336            android:label=""
337            android:exported="true"
338            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
339            <intent-filter>
340                <action android:name="android.intent.action.MAIN"/>
341                <category android:name="android.intent.category.LAUNCHER"/>
342            </intent-filter>
343        </activity-alias>
344        <activity-alias android:name="MaxShortcutsActivity"
345            android:label="TestActivityMaxShortcuts"
346            android:exported="true"
347            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
348            <intent-filter>
349                <action android:name="android.intent.action.MAIN"/>
350                <category android:name="android.intent.category.LAUNCHER"/>
351            </intent-filter>
352            <meta-data android:name="android.app.shortcuts"
353                android:resource="@xml/max_shortcuts"/>
354        </activity-alias>
355        <activity-alias android:name="SingleShortcutActivity"
356            android:label="TestActivitySingleShortcut"
357            android:exported="true"
358            android:targetActivity="com.android.launcher3.testcomponent.OtherBaseTestingActivity">
359            <intent-filter>
360                <action android:name="android.intent.action.MAIN"/>
361                <category android:name="android.intent.category.LAUNCHER"/>
362            </intent-filter>
363            <meta-data android:name="android.app.shortcuts"
364                android:resource="@xml/single_shortcut"/>
365        </activity-alias>
366        <activity
367            android:name="com.android.launcher3.testcomponent.DialogTestActivity"
368            android:label="Dialog Activity"
369            android:theme="@android:style/Theme.Dialog"
370            android:exported="true"
371            android:taskAffinity="com.android.launcher3.testcomponent.Affinity2">
372            <intent-filter>
373                <action android:name="android.intent.action.MAIN"/>
374                <category android:name="android.intent.category.LAUNCHER"/>
375            </intent-filter>
376        </activity>
377        <activity android:name="com.android.launcher3.testcomponent.ImeTestActivity"
378            android:label="ImeTestActivity"
379            android:icon="@drawable/test_icon"
380            android:exported="true">
381            <intent-filter>
382                <action android:name="android.intent.action.MAIN" />
383                <category android:name="android.intent.category.LAUNCHER" />
384            </intent-filter>
385        </activity>
386        <activity-alias android:name="WebSearchActivity"
387            android:label="WebSearchActivity"
388            android:exported="true"
389            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
390            <intent-filter>
391                <action android:name="android.intent.action.WEB_SEARCH" />
392                <category android:name="android.intent.category.DEFAULT" />
393            </intent-filter>
394        </activity-alias>
395        <activity-alias android:name="AAAActivity"
396            android:label="AAA"
397            android:exported="true"
398            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
399            <intent-filter>
400                <action android:name="android.intent.action.MAIN"/>
401                <category android:name="android.intent.category.LAUNCHER"/>
402            </intent-filter>
403        </activity-alias>
404        <activity-alias android:name="ZZZActivity"
405            android:label="ZZZ"
406            android:exported="true"
407            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
408            <intent-filter>
409                <action android:name="android.intent.action.MAIN"/>
410                <category android:name="android.intent.category.LAUNCHER"/>
411            </intent-filter>
412        </activity-alias>
413        <activity android:name="com.android.launcher3.testcomponent.ExcludeFromRecentsTestActivity"
414            android:label="ExcludeFromRecentsTestActivity"
415            android:exported="true"
416            android:excludeFromRecents="true">
417            <intent-filter>
418                <action android:name="android.intent.action.MAIN"/>
419                <category android:name="android.intent.category.LAUNCHER"/>
420            </intent-filter>
421        </activity>
422
423        <activity-alias android:name="AppIconActivity"
424            android:label="Application Icon"
425            android:exported="true"
426            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
427            <intent-filter>
428                <action android:name="android.intent.action.MAIN"/>
429                <category android:name="android.intent.category.LAUNCHER"/>
430            </intent-filter>
431        </activity-alias>
432        <activity-alias android:name="DiffIconActivity"
433            android:label="Different icon"
434            android:exported="true"
435            android:icon="@drawable/test_different_activity_icon"
436            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
437            <intent-filter>
438                <action android:name="android.intent.action.MAIN"/>
439                <category android:name="android.intent.category.LAUNCHER"/>
440            </intent-filter>
441        </activity-alias>
442        <activity-alias android:name="WrongIconActivity"
443            android:label="Wrong icon"
444            android:exported="true"
445            android:icon="@drawable/test_wrong_activity_icon"
446            android:targetActivity="com.android.launcher3.testcomponent.BaseTestingActivity">
447            <intent-filter>
448                <action android:name="android.intent.action.MAIN"/>
449                <category android:name="android.intent.category.LAUNCHER"/>
450            </intent-filter>
451        </activity-alias>
452
453        <!-- Disable eager initialization of Jetpack libraries. See bug 197780098. -->
454        <provider
455            android:name="androidx.startup.InitializationProvider"
456            android:authorities="${applicationId}.androidx-startup"
457            tools:node="remove" />
458
459        <property
460            android:name="android.window.PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI"
461            android:value="true"/>
462    </application>
463</manifest>
464