xref: /aosp_15_r20/frameworks/base/packages/EasterEgg/AndroidManifest.xml (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1<?xml version="1.0" encoding="utf-8"?><!--
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    package="com.android.egg"
19    android:versionCode="12"
20    android:versionName="1.0">
21
22    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
23
24    <!-- used for cat notifications -->
25    <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
26
27    <!-- used to save cat images -->
28    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
29
30    <!-- controls -->
31    <uses-permission android:name="android.permission.BIND_CONTROLS" />
32
33    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
34
35    <application
36        android:icon="@drawable/android15_patch_adaptive"
37        android:label="@string/app_name">
38
39        <!-- Android V easter egg: Daydream version of Landroid
40             (must be enabled by unlocking the egg) -->
41        <service
42            android:name=".landroid.DreamUniverse"
43            android:exported="true"
44            android:icon="@drawable/android15_patch_adaptive"
45            android:label="@string/v_egg_name"
46            android:description="@string/dream_description"
47            android:enabled="false"
48            android:permission="android.permission.BIND_DREAM_SERVICE"
49            >
50
51            <intent-filter>
52                <action android:name="android.service.dreams.DreamService" />
53                <category android:name="android.intent.category.DEFAULT" />
54            </intent-filter>
55            <meta-data
56                android:name="android.service.dream"
57                android:resource="@xml/landroid_dream"/>
58        </service>
59
60        <!-- Android U easter egg -->
61        <activity
62            android:name=".landroid.MainActivity"
63            android:exported="true"
64            android:label="@string/u_egg_name"
65            android:icon="@drawable/android15_patch_adaptive"
66            android:configChanges="orientation|screenLayout|screenSize|density"
67            android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen">
68            <intent-filter>
69                <action android:name="android.intent.action.MAIN" />
70                <category android:name="android.intent.category.DEFAULT" />
71                <category android:name="com.android.internal.category.PLATLOGO" />
72            </intent-filter>
73        </activity>
74
75        <!-- Android Q easter egg -->
76        <activity
77            android:name=".quares.QuaresActivity"
78            android:exported="true"
79            android:icon="@drawable/q_icon"
80            android:label="@string/q_egg_name"
81            android:theme="@style/QuaresTheme">
82            <intent-filter>
83                <action android:name="android.intent.action.MAIN" />
84            </intent-filter>
85        </activity>
86        <activity
87            android:name=".paint.PaintActivity"
88            android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
89            android:exported="true"
90            android:icon="@drawable/p_icon"
91            android:label="@string/p_egg_name"
92            android:theme="@style/AppTheme">
93            <intent-filter>
94                <action android:name="android.intent.action.MAIN" />
95            </intent-filter>
96        </activity>
97
98        <!-- Android N easter egg bits -->
99        <activity
100            android:name=".neko.NekoLand"
101            android:exported="true"
102            android:label="@string/app_name"
103            android:theme="@android:style/Theme.Material.NoActionBar">
104            <intent-filter>
105                <action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" />
106                <action android:name="android.intent.action.MAIN" />
107
108                <category android:name="android.intent.category.DEFAULT" />
109            </intent-filter>
110        </activity>
111
112        <!-- This is where the magic happens -->
113        <service
114            android:name=".neko.NekoService"
115            android:enabled="true"
116            android:exported="true"
117            android:permission="android.permission.BIND_JOB_SERVICE" />
118        <!-- Used to show over lock screen -->
119        <activity
120            android:name=".neko.NekoLockedActivity"
121            android:excludeFromRecents="true"
122            android:exported="true"
123            android:showOnLockScreen="true"
124            android:theme="@android:style/Theme.Material.Light.Dialog.NoActionBar" />
125        <!-- Used to enable easter egg components for earlier easter eggs. -->
126        <activity
127            android:name=".ComponentActivationActivity"
128            android:excludeFromRecents="true"
129            android:exported="true"
130            android:theme="@android:style/Theme.NoDisplay">
131            <intent-filter>
132                <action android:name="android.intent.action.MAIN" />
133
134                <category android:name="android.intent.category.DEFAULT" />
135            </intent-filter>
136        </activity>
137
138        <!-- The quick settings tile, disabled by default -->
139        <service
140            android:name=".neko.NekoTile"
141            android:enabled="false"
142            android:exported="true"
143            android:icon="@drawable/stat_icon"
144            android:label="@string/default_tile_name"
145            android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
146            <intent-filter>
147                <action android:name="android.service.quicksettings.action.QS_TILE" />
148            </intent-filter>
149        </service>
150        <service
151            android:name=".neko.NekoControlsService"
152            android:enabled="false"
153            android:exported="true"
154            android:icon="@drawable/ic_fullcat_icon"
155            android:label="@string/r_egg_name"
156            android:permission="android.permission.BIND_CONTROLS">
157            <intent-filter>
158                <action android:name="android.service.controls.ControlsProviderService" />
159            </intent-filter>
160        </service> <!-- FileProvider for sending pictures -->
161        <provider
162            android:name="androidx.core.content.FileProvider"
163            android:authorities="com.android.egg.fileprovider"
164            android:exported="false"
165            android:grantUriPermissions="true">
166            <meta-data
167                android:name="android.support.FILE_PROVIDER_PATHS"
168                android:resource="@xml/filepaths" />
169        </provider>
170
171        <!-- Android S easter egg bits -->
172
173        <!-- List of all system theme colors on the device. -->
174        <activity
175            android:name=".widget.PaintChipsActivity"
176            android:theme="@android:style/Theme.Material.Wallpaper.NoTitleBar"
177            android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
178            android:label="@string/s_egg_name"
179            android:enabled="false"
180            android:exported="true">
181            <intent-filter>
182                <action android:name="android.intent.action.MAIN" />
183            </intent-filter>
184        </activity>
185
186        <!-- Homescreen widget also showing paint chips (may be affected by the exact position in
187             the workspace) -->
188        <receiver
189            android:name=".widget.PaintChipsWidget"
190            android:label="@string/s_egg_name"
191            android:exported="true"
192            android:enabled="false">
193            <intent-filter>
194                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
195            </intent-filter>
196
197            <meta-data
198                android:name="android.appwidget.provider"
199                android:resource="@xml/paint_chips_widget_info" />
200        </receiver>
201    </application>
202
203</manifest>
204