• 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" />
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.SHOW_ALARMS" />
113                <action android:name="android.intent.action.SHOW_TIMERS" />
114                <action android:name="android.intent.action.SNOOZE_ALARM" />
115
116                <category android:name="android.intent.category.DEFAULT" />
117                <category android:name="android.intent.category.VOICE" />
118            </intent-filter>
119        </activity>
120
121        <activity-alias
122            android:name=".HandleSetAlarmApiCalls"
123            android:permission="com.android.alarm.permission.SET_ALARM"
124            android:targetActivity=".HandleApiCalls">
125            <intent-filter>
126                <action android:name="android.intent.action.SET_ALARM" />
127                <action android:name="android.intent.action.SET_TIMER" />
128
129                <category android:name="android.intent.category.DEFAULT" />
130                <category android:name="android.intent.category.VOICE" />
131            </intent-filter>
132        </activity-alias>
133
134        <!-- ============================================================== -->
135        <!-- Alarm components.                                              -->
136        <!-- ============================================================== -->
137
138        <activity
139            android:name=".alarms.AlarmActivity"
140            android:directBootAware="true"
141            android:excludeFromRecents="true"
142            android:resizeableActivity="false"
143            android:showOnLockScreen="true"
144            android:taskAffinity=""
145            android:windowSoftInputMode="stateAlwaysHidden" />
146
147        <activity
148            android:name=".AlarmSelectionActivity"
149            android:label="@string/dismiss_alarm"
150            android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar" />
151
152        <provider
153            android:name=".provider.ClockProvider"
154            android:authorities="com.android.deskclock"
155            android:directBootAware="true"
156            android:exported="false" />
157
158        <receiver
159            android:name=".AlarmInitReceiver"
160            android:directBootAware="true">
161            <intent-filter>
162                <action android:name="android.intent.action.BOOT_COMPLETED" />
163                <action android:name="android.intent.action.LOCALE_CHANGED" />
164                <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
165                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
166                <action android:name="android.intent.action.TIME_SET" />
167                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
168            </intent-filter>
169        </receiver>
170
171        <receiver
172            android:name=".alarms.AlarmStateManager"
173            android:directBootAware="true" />
174
175        <service
176            android:name=".alarms.AlarmService"
177            android:directBootAware="true" />
178
179        <!-- ============================================================== -->
180        <!-- Timer components.                                              -->
181        <!-- ============================================================== -->
182
183        <activity
184            android:name=".timer.ExpiredTimersActivity"
185            android:configChanges="screenSize|keyboardHidden|keyboard|navigation"
186            android:directBootAware="true"
187            android:excludeFromRecents="true"
188            android:launchMode="singleInstance"
189            android:resizeableActivity="false"
190            android:showOnLockScreen="true"
191            android:taskAffinity="" />
192
193        <!-- Legacy broadcast receiver that honors old scheduled timers across app upgrade. -->
194        <receiver
195            android:name="com.android.deskclock.timer.TimerReceiver"
196            android:exported="false">
197            <intent-filter>
198                <action android:name="times_up" />
199            </intent-filter>
200        </receiver>
201
202        <service
203            android:name=".timer.TimerService"
204            android:description="@string/timer_service_desc"
205            android:directBootAware="true" />
206
207        <!-- ============================================================== -->
208        <!-- Stopwatch components.                                          -->
209        <!-- ============================================================== -->
210
211        <service
212            android:name=".stopwatch.StopwatchService"
213            android:description="@string/stopwatch_service_desc"
214            android:directBootAware="true" />
215
216
217        <!-- ============================================================== -->
218        <!-- Screen saver components.                                       -->
219        <!-- ============================================================== -->
220
221        <activity
222            android:name=".ScreensaverActivity"
223            android:excludeFromRecents="true"
224            android:resizeableActivity="false"
225            android:taskAffinity="" />
226
227        <activity
228            android:name=".settings.ScreensaverSettingsActivity"
229            android:excludeFromRecents="true"
230            android:label="@string/screensaver_settings"
231            android:taskAffinity=""
232            android:theme="@style/Theme.DeskClock.Settings" />
233
234        <service
235            android:name=".Screensaver"
236            android:label="@string/app_label"
237            android:permission="android.permission.BIND_DREAM_SERVICE">
238            <intent-filter>
239                <action android:name="android.service.dreams.DreamService" />
240                <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
241
242                <category android:name="android.intent.category.DEFAULT" />
243            </intent-filter>
244            <meta-data
245                android:name="android.service.dream"
246                android:resource="@xml/screensaver_info" />
247        </service>
248
249        <!-- ============================================================== -->
250        <!-- App widget components.                                         -->
251        <!-- ============================================================== -->
252
253        <receiver
254            android:name="com.android.alarmclock.AnalogAppWidgetProvider"
255            android:label="@string/analog_gadget">
256            <intent-filter>
257                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
258            </intent-filter>
259
260            <meta-data
261                android:name="android.appwidget.oldName"
262                android:value="com.android.deskclock.AnalogAppWidgetProvider" />
263            <meta-data
264                android:name="android.appwidget.provider"
265                android:resource="@xml/analog_appwidget" />
266        </receiver>
267
268        <receiver
269            android:name="com.android.alarmclock.DigitalAppWidgetProvider"
270            android:label="@string/digital_gadget">
271            <intent-filter>
272                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
273                <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
274                <action android:name="android.intent.action.DATE_CHANGED" />
275                <action android:name="android.intent.action.LOCALE_CHANGED" />
276                <action android:name="android.intent.action.SCREEN_ON" />
277                <action android:name="android.intent.action.TIME_SET" />
278                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
279                <action android:name="com.android.deskclock.ALARM_CHANGED" />
280                <action android:name="com.android.deskclock.ON_DAY_CHANGE" />
281                <action android:name="com.android.deskclock.WORLD_CITIES_CHANGED" />
282            </intent-filter>
283            <meta-data
284                android:name="android.appwidget.provider"
285                android:resource="@xml/digital_appwidget" />
286        </receiver>
287
288        <service
289            android:name="com.android.alarmclock.DigitalAppWidgetCityService"
290            android:permission="android.permission.BIND_REMOTEVIEWS" />
291
292    </application>
293</manifest>
294