• 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="23" android:targetSdkVersion="29" />
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    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
33    <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
34    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
35
36    <!-- WRITE_SETTINGS is required to record the upcoming alarm prior to L -->
37    <uses-permission
38        android:name="android.permission.WRITE_SETTINGS"
39        android:maxSdkVersion="19" />
40    <!-- READ_PHONE_STATE is required to determine when a phone call exists prior to M -->
41    <uses-permission
42        android:name="android.permission.READ_PHONE_STATE"
43        android:maxSdkVersion="22" />
44
45    <application
46        android:name=".DeskClockApplication"
47        android:allowBackup="false"
48        android:backupAgent="DeskClockBackupAgent"
49        android:fullBackupContent="@xml/backup_scheme"
50        android:fullBackupOnly="true"
51        android:icon="@mipmap/ic_launcher_alarmclock"
52        android:label="@string/app_label"
53        android:requiredForAllUsers="true"
54        android:supportsRtl="true"
55        android:theme="@style/Theme.DeskClock">
56
57        <!-- ============================================================== -->
58        <!-- Main app components.                                           -->
59        <!-- ============================================================== -->
60
61        <activity
62            android:name=".DeskClock"
63            android:label="@string/app_label"
64            android:launchMode="singleTask"
65            android:exported="true"
66            android:windowSoftInputMode="adjustPan">
67            <intent-filter>
68                <action android:name="android.intent.action.MAIN" />
69
70                <category android:name="android.intent.category.DEFAULT" />
71                <category android:name="android.intent.category.LAUNCHER" />
72            </intent-filter>
73        </activity>
74
75        <activity
76            android:name=".ringtone.RingtonePickerActivity"
77            android:excludeFromRecents="true"
78            android:taskAffinity=""
79            android:theme="@style/Theme.DeskClock.RingtonePicker" />
80
81        <activity
82            android:name=".worldclock.CitySelectionActivity"
83            android:excludeFromRecents="true"
84            android:label="@string/cities_activity_title"
85            android:parentActivityName=".DeskClock"
86            android:taskAffinity=""
87            android:theme="@style/Theme.DeskClock.CitySelection" />
88
89        <activity
90            android:name=".settings.SettingsActivity"
91            android:excludeFromRecents="true"
92            android:label="@string/settings"
93            android:parentActivityName=".DeskClock"
94            android:taskAffinity=""
95            android:theme="@style/Theme.DeskClock.Settings" />
96
97        <activity
98            android:name=".HandleShortcuts"
99            android:excludeFromRecents="true"
100            android:launchMode="singleInstance"
101            android:taskAffinity=""
102            android:theme="@android:style/Theme.NoDisplay" />
103
104        <!-- ============================================================== -->
105        <!-- AlarmClock API components.                                     -->
106        <!-- ============================================================== -->
107
108        <activity
109            android:name="com.android.deskclock.HandleApiCalls"
110            android:permission="com.android.alarm.permission.SET_ALARM"
111            android:directBootAware="true"
112            android:excludeFromRecents="true"
113            android:launchMode="singleInstance"
114            android:showWhenLocked="true"
115            android:taskAffinity=""
116            android:exported="true"
117            android:theme="@android:style/Theme.NoDisplay">
118            <intent-filter>
119                <action android:name="android.intent.action.DISMISS_ALARM" />
120                <action android:name="android.intent.action.DISMISS_TIMER" />
121                <action android:name="android.intent.action.SHOW_ALARMS" />
122                <action android:name="android.intent.action.SHOW_TIMERS" />
123                <action android:name="android.intent.action.SNOOZE_ALARM" />
124
125                <category android:name="android.intent.category.DEFAULT" />
126                <category android:name="android.intent.category.VOICE" />
127            </intent-filter>
128        </activity>
129
130        <activity-alias
131            android:name="com.android.deskclock.HandleSetAlarmApiCalls"
132            android:permission="com.android.alarm.permission.SET_ALARM"
133            android:exported="true"
134            android:targetActivity="com.android.deskclock.HandleApiCalls">
135            <intent-filter>
136                <action android:name="android.intent.action.SET_ALARM" />
137                <action android:name="android.intent.action.SET_TIMER" />
138
139                <category android:name="android.intent.category.DEFAULT" />
140                <category android:name="android.intent.category.VOICE" />
141            </intent-filter>
142        </activity-alias>
143
144        <!-- ============================================================== -->
145        <!-- Alarm components.                                              -->
146        <!-- ============================================================== -->
147
148        <activity
149            android:name=".alarms.AlarmActivity"
150            android:directBootAware="true"
151            android:excludeFromRecents="true"
152            android:resizeableActivity="false"
153            android:showOnLockScreen="true"
154	    android:showWhenLocked="true"
155            android:taskAffinity=""
156            android:windowSoftInputMode="stateAlwaysHidden" />
157
158        <activity
159            android:name=".AlarmSelectionActivity"
160            android:label="@string/dismiss_alarm"
161            android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar" />
162
163        <provider
164            android:name=".provider.ClockProvider"
165            android:authorities="com.android.deskclock"
166            android:directBootAware="true"
167            android:exported="false" />
168
169        <receiver
170            android:name=".AlarmInitReceiver"
171            android:exported="true"
172            android:directBootAware="true">
173            <intent-filter>
174                <action android:name="android.intent.action.BOOT_COMPLETED" />
175                <action android:name="android.intent.action.LOCALE_CHANGED" />
176                <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
177                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
178                <action android:name="android.intent.action.TIME_SET" />
179                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
180            </intent-filter>
181        </receiver>
182
183        <receiver
184            android:name=".alarms.AlarmStateManager"
185            android:directBootAware="true" />
186
187        <service
188            android:name=".alarms.AlarmService"
189            android:directBootAware="true" />
190
191        <!-- ============================================================== -->
192        <!-- Timer components.                                              -->
193        <!-- ============================================================== -->
194
195        <activity
196            android:name=".timer.ExpiredTimersActivity"
197            android:configChanges="screenSize|keyboardHidden|keyboard|navigation"
198            android:directBootAware="true"
199            android:excludeFromRecents="true"
200            android:launchMode="singleInstance"
201            android:resizeableActivity="false"
202            android:showOnLockScreen="true"
203            android:taskAffinity="" />
204
205        <!-- Legacy broadcast receiver that honors old scheduled timers across app upgrade. -->
206        <receiver
207            android:name="com.android.deskclock.timer.TimerReceiver"
208            android:exported="false">
209            <intent-filter>
210                <action android:name="times_up" />
211            </intent-filter>
212        </receiver>
213
214        <service
215            android:name=".timer.TimerService"
216            android:description="@string/timer_service_desc"
217            android:directBootAware="true" />
218
219        <!-- ============================================================== -->
220        <!-- Stopwatch components.                                          -->
221        <!-- ============================================================== -->
222
223        <service
224            android:name=".stopwatch.StopwatchService"
225            android:description="@string/stopwatch_service_desc"
226            android:directBootAware="true" />
227
228
229        <!-- ============================================================== -->
230        <!-- Screen saver components.                                       -->
231        <!-- ============================================================== -->
232
233        <activity
234            android:name=".ScreensaverActivity"
235            android:excludeFromRecents="true"
236            android:resizeableActivity="false"
237            android:taskAffinity="" />
238
239        <activity
240            android:name=".settings.ScreensaverSettingsActivity"
241            android:excludeFromRecents="true"
242            android:label="@string/screensaver_settings"
243            android:taskAffinity=""
244            android:theme="@style/Theme.DeskClock.Settings" />
245
246        <service
247            android:name=".Screensaver"
248            android:label="@string/app_label"
249            android:exported="true"
250            android:permission="android.permission.BIND_DREAM_SERVICE">
251            <intent-filter>
252                <action android:name="android.service.dreams.DreamService" />
253                <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
254
255                <category android:name="android.intent.category.DEFAULT" />
256            </intent-filter>
257            <meta-data
258                android:name="android.service.dream"
259                android:resource="@xml/screensaver_info" />
260        </service>
261
262        <!-- ============================================================== -->
263        <!-- App widget components.                                         -->
264        <!-- ============================================================== -->
265
266        <receiver
267            android:name="com.android.alarmclock.AnalogAppWidgetProvider"
268            android:exported="true"
269            android:label="@string/analog_gadget">
270            <intent-filter>
271                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
272            </intent-filter>
273
274            <meta-data
275                android:name="android.appwidget.oldName"
276                android:value="com.android.deskclock.AnalogAppWidgetProvider" />
277            <meta-data
278                android:name="android.appwidget.provider"
279                android:resource="@xml/analog_appwidget" />
280        </receiver>
281
282        <receiver
283            android:name="com.android.alarmclock.DigitalAppWidgetProvider"
284            android:exported="true"
285            android:label="@string/digital_gadget">
286            <intent-filter>
287                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
288                <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
289                <action android:name="android.intent.action.DATE_CHANGED" />
290                <action android:name="android.intent.action.LOCALE_CHANGED" />
291                <action android:name="android.intent.action.SCREEN_ON" />
292                <action android:name="android.intent.action.TIME_SET" />
293                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
294                <action android:name="com.android.deskclock.ALARM_CHANGED" />
295                <action android:name="com.android.deskclock.ON_DAY_CHANGE" />
296                <action android:name="com.android.deskclock.WORLD_CITIES_CHANGED" />
297            </intent-filter>
298            <meta-data
299                android:name="android.appwidget.provider"
300                android:resource="@xml/digital_appwidget" />
301        </receiver>
302
303        <service
304            android:name="com.android.alarmclock.DigitalAppWidgetCityService"
305            android:permission="android.permission.BIND_REMOTEVIEWS" />
306
307    </application>
308</manifest>
309