1<!--
2  ~ Copyright (C) 2023 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 xmlns:android="http://schemas.android.com/apk/res/android"
18          xmlns:tools="http://schemas.android.com/tools"
19          package="com.android.wm.shell.flicker.splitscreen">
20
21    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/>
22    <!-- Read and write traces from external storage -->
23    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
24    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
25    <!-- Allow the test to write directly to /sdcard/ -->
26    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
27    <!-- Write secure settings -->
28    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
29    <!-- Capture screen contents -->
30    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
31    <!-- Enable / Disable tracing !-->
32    <uses-permission android:name="android.permission.DUMP" />
33    <!-- Run layers trace -->
34    <uses-permission android:name="android.permission.HARDWARE_TEST"/>
35    <!-- Capture screen recording -->
36    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/>
37    <!-- Workaround grant runtime permission exception from b/152733071 -->
38    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
39    <uses-permission android:name="android.permission.READ_LOGS"/>
40    <!-- Force-stop test apps -->
41    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/>
42    <!-- Control test app's media session -->
43    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
44    <!-- ATM.removeRootTasksWithActivityTypes() -->
45    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" />
46    <!-- Enable bubble notification-->
47    <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
48    <!-- Allow the test to connect to perfetto trace processor -->
49    <uses-permission android:name="android.permission.INTERNET"/>
50
51    <!-- Allow the test to write directly to /sdcard/ and connect to trace processor -->
52    <application android:requestLegacyExternalStorage="true"
53                 android:networkSecurityConfig="@xml/network_security_config"
54                 android:largeHeap="true">
55        <uses-library android:name="android.test.runner"/>
56
57        <service android:name=".NotificationListener"
58                 android:exported="true"
59                 android:label="WMShellTestsNotificationListenerService"
60                 android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
61            <intent-filter>
62                <action android:name="android.service.notification.NotificationListenerService" />
63            </intent-filter>
64        </service>
65
66        <!-- (b/197936012) Remove startup provider due to test timeout issue -->
67        <provider
68            android:name="androidx.startup.InitializationProvider"
69            android:authorities="${applicationId}.androidx-startup"
70            tools:node="remove" />
71    </application>
72
73    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
74                     android:targetPackage="com.android.wm.shell.flicker.splitscreen"
75                     android:label="WindowManager Flicker Tests">
76    </instrumentation>
77</manifest>
78