• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  Copyright (C) 2016 The Android Open Source Project
4
5  Licensed under the Apache License, Version 2.0 (the "License");
6  you may not use this file except in compliance with the License.
7  You may obtain a copy of the License at
8
9      http://www.apache.org/licenses/LICENSE-2.0
10
11  Unless required by applicable law or agreed to in writing, software
12  distributed under the License is distributed on an "AS IS" BASIS,
13  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  See the License for the specific language governing permissions and
15  limitations under the License.
16  -->
17
18<manifest
19    xmlns:android="http://schemas.android.com/apk/res/android"
20    package="com.android.deskclock">
21
22    <original-package android:name="com.android.alarmclock" />
23    <original-package android:name="com.android.deskclock" />
24
25    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
26
27    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
28    <uses-permission android:name="android.permission.WAKE_LOCK" />
29    <uses-permission android:name="android.permission.VIBRATE" />
30    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
31    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
32
33    <!-- WRITE_SETTINGS is required to record the upcoming alarm prior to L -->
34    <uses-permission
35        android:name="android.permission.WRITE_SETTINGS"
36        android:maxSdkVersion="19" />
37    <!-- READ_PHONE_STATE is required to determine when a phone call exists prior to M -->
38    <uses-permission
39        android:name="android.permission.READ_PHONE_STATE"
40        android:maxSdkVersion="22" />
41
42    <application
43        android:name=".DeskClockApplication"
44        android:allowBackup="false"
45        android:backupAgent="DeskClockBackupAgent"
46        android:fullBackupContent="@xml/backup_scheme"
47        android:fullBackupOnly="true"
48        android:icon="@mipmap/ic_launcher_alarmclock"
49        android:label="@string/app_label"
50        android:requiredForAllUsers="true"
51        android:supportsRtl="true"
52        android:theme="@style/Theme.DeskClock">
53
54        <!-- ============================================================== -->
55        <!-- Main app components.                                           -->
56        <!-- ============================================================== -->
57
58        <activity
59            android:name=".DeskClock"
60            android:label="@string/app_label"
61            android:launchMode="singleTask"
62            android:windowSoftInputMode="adjustPan">
63            <intent-filter>
64                <action android:name="android.intent.action.MAIN" />
65
66                <category android:name="android.intent.category.DEFAULT" />
67                <category android:name="android.intent.category.LAUNCHER" />
68            </intent-filter>
69        </activity>
70
71        <activity
72            android:name=".ringtone.RingtonePickerActivity"
73            android:excludeFromRecents="true"
74            android:taskAffinity=""
75            android:theme="@style/Theme.DeskClock.RingtonePicker" />
76
77        <activity
78            android:name=".worldclock.CitySelectionActivity"
79            android:excludeFromRecents="true"
80            android:label="@string/cities_activity_title"
81            android:parentActivityName=".DeskClock"
82            android:taskAffinity=""
83            android:theme="@style/Theme.DeskClock.CitySelection" />
84
85        <activity
86            android:name=".settings.SettingsActivity"
87            android:excludeFromRecents="true"
88            android:label="@string/settings"
89            android:parentActivityName=".DeskClock"
90            android:taskAffinity=""
91            android:theme="@style/Theme.DeskClock.Settings" />
92
93        <activity
94            android:name=".HandleShortcuts"
95            android:excludeFromRecents="true"
96            android:launchMode="singleInstance"
97            android:taskAffinity=""
98            android:theme="@android:style/Theme.NoDisplay" />
99
100        <!-- ============================================================== -->
101        <!-- AlarmClock API components.                                     -->
102        <!-- ============================================================== -->
103
104        <activity
105            android:name=".HandleApiCalls"
106            android:excludeFromRecents="true"
107            android:launchMode="singleInstance"
108            android:taskAffinity=""
109            android:theme="@android:style/Theme.NoDisplay">
110            <intent-filter>
111                <action android:name="android.intent.action.DISMISS_ALARM" />
112                <action android:name="android.intent.action.DISMISS_TIMER" />
113                <action android:name="android.intent.action.SHOW_ALARMS" />
114                <action android:name="android.intent.action.SHOW_TIMERS" />
115                <action android:name="android.intent.action.SNOOZE_ALARM" />
116
117                <category android:name="android.intent.category.DEFAULT" />
118                <category android:name="android.intent.category.VOICE" />
119            </intent-filter>
120        </activity>
121
122        <activity-alias
123            android:name=".HandleSetAlarmApiCalls"
124            android:permission="com.android.alarm.permission.SET_ALARM"
125            android:targetActivity=".HandleApiCalls">
126            <intent-filter>
127                <action android:name="android.intent.action.SET_ALARM" />
128                <action android:name="android.intent.action.SET_TIMER" />
129
130                <category android:name="android.intent.category.DEFAULT" />
131                <category android:name="android.intent.category.VOICE" />
132            </intent-filter>
133        </activity-alias>
134
135        <!-- ============================================================== -->
136        <!-- Alarm components.                                              -->
137        <!-- ============================================================== -->
138
139        <activity
140            android:name=".alarms.AlarmActivity"
141            android:directBootAware="true"
142            android:excludeFromRecents="true"
143            android:resizeableActivity="false"
144            android:showOnLockScreen="true"
145            android:taskAffinity=""
146            android:windowSoftInputMode="stateAlwaysHidden" />
147
148        <activity
149            android:name=".AlarmSelectionActivity"
150            android:label="@string/dismiss_alarm"
151            android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar" />
152
153        <provider
154            android:name=".provider.ClockProvider"
155            android:authorities="com.android.deskclock"
156            android:directBootAware="true"
157            android:exported="false" />
158
159        <receiver
160            android:name=".AlarmInitReceiver"
161            android:directBootAware="true">
162            <intent-filter>
163                <action android:name="android.intent.action.BOOT_COMPLETED" />
164                <action android:name="android.intent.action.LOCALE_CHANGED" />
165                <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
166                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
167                <action android:name="android.intent.action.TIME_SET" />
168                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
169            </intent-filter>
170        </receiver>
171
172        <receiver
173            android:name=".alarms.AlarmStateManager"
174            android:directBootAware="true" />
175
176        <service
177            android:name=".alarms.AlarmService"
178            android:directBootAware="true" />
179
180        <!-- ============================================================== -->
181        <!-- Timer components.                                              -->
182        <!-- ============================================================== -->
183
184        <activity
185            android:name=".timer.ExpiredTimersActivity"
186            android:configChanges="screenSize|keyboardHidden|keyboard|navigation"
187            android:directBootAware="true"
188            android:excludeFromRecents="true"
189            android:launchMode="singleInstance"
190            android:resizeableActivity="false"
191            android:showOnLockScreen="true"
192            android:taskAffinity="" />
193
194        <!-- Legacy broadcast receiver that honors old scheduled timers across app upgrade. -->
195        <receiver
196            android:name="com.android.deskclock.timer.TimerReceiver"
197            android:exported="false">
198            <intent-filter>
199                <action android:name="times_up" />
200            </intent-filter>
201        </receiver>
202
203        <service
204            android:name=".timer.TimerService"
205            android:description="@string/timer_service_desc"
206            android:directBootAware="true" />
207
208        <!-- ============================================================== -->
209        <!-- Stopwatch components.                                          -->
210        <!-- ============================================================== -->
211
212        <service
213            android:name=".stopwatch.StopwatchService"
214            android:description="@string/stopwatch_service_desc"
215            android:directBootAware="true" />
216
217
218        <!-- ============================================================== -->
219        <!-- Screen saver components.                                       -->
220        <!-- ============================================================== -->
221
222        <activity
223            android:name=".ScreensaverActivity"
224            android:excludeFromRecents="true"
225            android:resizeableActivity="false"
226            android:taskAffinity="" />
227
228        <activity
229            android:name=".settings.ScreensaverSettingsActivity"
230            android:excludeFromRecents="true"
231            android:label="@string/screensaver_settings"
232            android:taskAffinity=""
233            android:theme="@style/Theme.DeskClock.Settings" />
234
235        <service
236            android:name=".Screensaver"
237            android:label="@string/app_label"
238            android:permission="android.permission.BIND_DREAM_SERVICE">
239            <intent-filter>
240                <action android:name="android.service.dreams.DreamService" />
241                <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
242
243                <category android:name="android.intent.category.DEFAULT" />
244            </intent-filter>
245            <meta-data
246                android:name="android.service.dream"
247                android:resource="@xml/screensaver_info" />
248        </service>
249
250        <!-- ============================================================== -->
251        <!-- App widget components.                                         -->
252        <!-- ============================================================== -->
253
254        <receiver
255            android:name="com.android.alarmclock.AnalogAppWidgetProvider"
256            android:label="@string/analog_gadget">
257            <intent-filter>
258                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
259            </intent-filter>
260
261            <meta-data
262                android:name="android.appwidget.oldName"
263                android:value="com.android.deskclock.AnalogAppWidgetProvider" />
264            <meta-data
265                android:name="android.appwidget.provider"
266                android:resource="@xml/analog_appwidget" />
267        </receiver>
268
269        <receiver
270            android:name="com.android.alarmclock.DigitalAppWidgetProvider"
271            android:label="@string/digital_gadget">
272            <intent-filter>
273                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
274                <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
275                <action android:name="android.intent.action.DATE_CHANGED" />
276                <action android:name="android.intent.action.LOCALE_CHANGED" />
277                <action android:name="android.intent.action.SCREEN_ON" />
278                <action android:name="android.intent.action.TIME_SET" />
279                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
280                <action android:name="com.android.deskclock.ALARM_CHANGED" />
281                <action android:name="com.android.deskclock.ON_DAY_CHANGE" />
282                <action android:name="com.android.deskclock.WORLD_CITIES_CHANGED" />
283            </intent-filter>
284            <meta-data
285                android:name="android.appwidget.provider"
286                android:resource="@xml/digital_appwidget" />
287        </receiver>
288
289        <service
290            android:name="com.android.alarmclock.DigitalAppWidgetCityService"
291            android:permission="android.permission.BIND_REMOTEVIEWS" />
292
293    </application>
294</manifest>
295