1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3 Copyright (C) 2015 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 xmlns:android="http://schemas.android.com/apk/res/android" 19 package="com.android.deskclock" 20 android:versionCode="410" android:versionName="4.1.0"> 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="23" /> 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 <!-- WRITE_SETTINGS is required to record the upcoming alarm prior to L --> 32 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 33 <!-- READ_PHONE_STATE is required to determine when a phone call exists prior to M --> 34 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 35 <!-- READ_EXTERNAL_STORAGE is required to play custom ringtones from the SD card prior to M --> 36 <!-- It is also required to display user-friendly names for custom ringtones in the UI. --> 37 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 38 39 <application android:label="@string/app_label" 40 android:name=".DeskClockApplication" 41 android:allowBackup="true" 42 android:backupAgent="DeskClockBackupAgent" 43 android:fullBackupContent="@xml/backup_scheme" 44 android:fullBackupOnly="true" 45 android:icon="@mipmap/ic_launcher_alarmclock" 46 android:requiredForAllUsers="true" 47 android:supportsRtl="true"> 48 49 <provider android:name=".provider.ClockProvider" 50 android:authorities="com.android.deskclock" 51 android:exported="false" /> 52 53 <activity android:name="DeskClock" 54 android:label="@string/app_label" 55 android:theme="@style/DeskClock" 56 android:icon="@mipmap/ic_launcher_alarmclock" 57 android:launchMode="singleTask"> 58 59 <intent-filter> 60 <action android:name="android.intent.action.MAIN" /> 61 <category android:name="android.intent.category.DEFAULT" /> 62 <category android:name="android.intent.category.LAUNCHER" /> 63 </intent-filter> 64 </activity> 65 66 <activity-alias android:name="DockClock" 67 android:targetActivity="DeskClock" 68 android:label="@string/app_label" 69 android:theme="@style/DeskClock" 70 android:icon="@mipmap/ic_launcher_alarmclock" 71 android:launchMode="singleTask" 72 android:enabled="@bool/config_dockAppEnabled" 73 > 74 <intent-filter> 75 <action android:name="android.intent.action.MAIN" /> 76 <category android:name="android.intent.category.DEFAULT" /> 77 <category android:name="android.intent.category.DESK_DOCK" /> 78 </intent-filter> 79 </activity-alias> 80 81 <activity android:name="SettingsActivity" 82 android:label="@string/settings" 83 android:theme="@style/SettingsTheme" 84 android:taskAffinity="" 85 android:excludeFromRecents="true" 86 > 87 <intent-filter> 88 <action android:name="android.intent.action.MAIN" /> 89 </intent-filter> 90 </activity> 91 92 <activity android:name=".worldclock.CitiesActivity" 93 android:label="@string/cities_activity_title" 94 android:theme="@style/CitiesTheme" 95 android:taskAffinity="" 96 android:excludeFromRecents="true" 97 > 98 <intent-filter> 99 <action android:name="android.intent.action.MAIN" /> 100 </intent-filter> 101 </activity> 102 103 <activity android:name=".alarms.AlarmActivity" 104 android:taskAffinity="" 105 android:excludeFromRecents="true" 106 android:theme="@style/AlarmAlertFullScreenTheme" 107 android:windowSoftInputMode="stateAlwaysHidden" 108 android:showOnLockScreen="true" /> 109 110 <activity android:name="ScreensaverActivity" 111 android:excludeFromRecents="true" 112 android:taskAffinity="" 113 android:theme="@style/ScreensaverActivityTheme" 114 android:configChanges="orientation|screenSize|keyboardHidden|keyboard" /> 115 116 <receiver android:name=".alarms.AlarmStateManager" 117 android:exported="false"> 118 </receiver> 119 120 <service android:name=".alarms.AlarmService" 121 android:exported="false"> 122 </service> 123 124 <activity android:name="HandleApiCalls" 125 android:theme="@android:style/Theme.NoDisplay" 126 android:excludeFromRecents="true" 127 android:launchMode="singleTask" 128 android:permission="com.android.alarm.permission.SET_ALARM" 129 android:taskAffinity=""> 130 <intent-filter> 131 <action android:name="android.intent.action.SET_ALARM" /> 132 <category android:name="android.intent.category.DEFAULT" /> 133 <category android:name="android.intent.category.VOICE" /> 134 </intent-filter> 135 <intent-filter> 136 <action android:name="android.intent.action.DISMISS_ALARM" /> 137 <category android:name="android.intent.category.DEFAULT" /> 138 <category android:name="android.intent.category.VOICE" /> 139 </intent-filter> 140 <intent-filter> 141 <action android:name="android.intent.action.SNOOZE_ALARM" /> 142 <category android:name="android.intent.category.DEFAULT" /> 143 <category android:name="android.intent.category.VOICE" /> 144 </intent-filter> 145 <intent-filter> 146 <action android:name="android.intent.action.SHOW_ALARMS" /> 147 <category android:name="android.intent.category.DEFAULT" /> 148 <category android:name="android.intent.category.VOICE" /> 149 </intent-filter> 150 <intent-filter> 151 <action android:name="android.intent.action.SET_TIMER" /> 152 <category android:name="android.intent.category.DEFAULT" /> 153 <category android:name="android.intent.category.VOICE" /> 154 </intent-filter> 155 </activity> 156 157 <activity-alias android:name="HandleSetAlarm" 158 android:targetActivity=".HandleApiCalls" 159 android:exported="true"> 160 </activity-alias> 161 162 <activity android:name=".HandleDeskClockApiCalls" 163 android:theme="@android:style/Theme.NoDisplay" 164 android:excludeFromRecents="true" 165 android:launchMode="singleTask" 166 android:permission="com.android.alarm.permission.SET_ALARM" 167 android:taskAffinity=""> 168 <intent-filter> 169 <action android:name="com.android.deskclock.action.SHOW_CLOCK" /> 170 <category android:name="android.intent.category.DEFAULT" /> 171 <category android:name="android.intent.category.VOICE" /> 172 </intent-filter> 173 <intent-filter> 174 <action android:name="com.android.deskclock.action.ADD_CLOCK" /> 175 <category android:name="android.intent.category.DEFAULT" /> 176 <category android:name="android.intent.category.VOICE" /> 177 </intent-filter> 178 <intent-filter> 179 <action android:name="com.android.deskclock.action.DELETE_CLOCK" /> 180 <category android:name="android.intent.category.DEFAULT" /> 181 <category android:name="android.intent.category.VOICE" /> 182 </intent-filter> 183 <intent-filter> 184 <action android:name="com.android.deskclock.action.START_TIMER" /> 185 <category android:name="android.intent.category.DEFAULT" /> 186 <category android:name="android.intent.category.VOICE" /> 187 </intent-filter> 188 <intent-filter> 189 <action android:name="com.android.deskclock.action.RESET_TIMER" /> 190 <category android:name="android.intent.category.DEFAULT" /> 191 <category android:name="android.intent.category.VOICE" /> 192 </intent-filter> 193 <intent-filter> 194 <action android:name="com.android.deskclock.action.STOP_TIMER" /> 195 <category android:name="android.intent.category.DEFAULT" /> 196 <category android:name="android.intent.category.VOICE" /> 197 </intent-filter> 198 <intent-filter> 199 <action android:name="com.android.deskclock.action.SHOW_TIMERS" /> 200 <category android:name="android.intent.category.DEFAULT" /> 201 <category android:name="android.intent.category.VOICE" /> 202 </intent-filter> 203 <intent-filter> 204 <action android:name="com.android.deskclock.action.DELETE_TIMER" /> 205 <category android:name="android.intent.category.DEFAULT" /> 206 <category android:name="android.intent.category.VOICE" /> 207 </intent-filter> 208 <intent-filter> 209 <action android:name="com.android.deskclock.action.SHOW_STOPWATCH" /> 210 <category android:name="android.intent.category.DEFAULT" /> 211 <category android:name="android.intent.category.VOICE" /> 212 </intent-filter> 213 <intent-filter> 214 <action android:name="com.android.deskclock.action.START_STOPWATCH" /> 215 <category android:name="android.intent.category.DEFAULT" /> 216 <category android:name="android.intent.category.VOICE" /> 217 </intent-filter> 218 <intent-filter> 219 <action android:name="com.android.deskclock.action.STOP_STOPWATCH" /> 220 <category android:name="android.intent.category.DEFAULT" /> 221 <category android:name="android.intent.category.VOICE" /> 222 </intent-filter> 223 <intent-filter> 224 <action android:name="com.android.deskclock.action.LAP_STOPWATCH" /> 225 <category android:name="android.intent.category.DEFAULT" /> 226 <category android:name="android.intent.category.VOICE" /> 227 </intent-filter> 228 <intent-filter> 229 <action android:name="com.android.deskclock.action.RESET_STOPWATCH" /> 230 <category android:name="android.intent.category.DEFAULT" /> 231 <category android:name="android.intent.category.VOICE" /> 232 </intent-filter> 233 </activity> 234 235 <receiver android:name="AlarmInitReceiver"> 236 <intent-filter> 237 <action android:name="android.intent.action.BOOT_COMPLETED" /> 238 <action android:name="android.intent.action.TIME_SET" /> 239 <action android:name="android.intent.action.TIMEZONE_CHANGED" /> 240 <action android:name="android.intent.action.LOCALE_CHANGED" /> 241 </intent-filter> 242 </receiver> 243 244 <receiver android:name="com.android.alarmclock.AnalogAppWidgetProvider" android:label="@string/analog_gadget" 245 android:icon="@mipmap/ic_launcher_alarmclock"> 246 <intent-filter> 247 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 248 </intent-filter> 249 <meta-data android:name="android.appwidget.oldName" android:value="com.android.deskclock.AnalogAppWidgetProvider" /> 250 <meta-data android:name="android.appwidget.provider" android:resource="@xml/analog_appwidget" /> 251 </receiver> 252 253 <receiver android:name="com.android.alarmclock.DigitalAppWidgetProvider" android:label="@string/digital_gadget" 254 android:icon="@mipmap/ic_launcher_alarmclock"> 255 <intent-filter> 256 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 257 <action android:name="com.android.deskclock.ON_QUARTER_HOUR" /> 258 <action android:name="android.intent.action.DATE_CHANGED" /> 259 <action android:name="android.intent.action.TIMEZONE_CHANGED" /> 260 <action android:name="android.intent.action.SCREEN_ON" /> 261 <action android:name="android.intent.action.TIME_SET" /> 262 <action android:name="android.intent.action.LOCALE_CHANGED" /> 263 <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" /> 264 <action android:name="com.android.deskclock.worldclock.update" /> 265 </intent-filter> 266 <meta-data android:name="android.appwidget.provider" android:resource="@xml/digital_appwidget" /> 267 </receiver> 268 269 <service android:name="com.android.alarmclock.DigitalAppWidgetService" 270 android:permission="android.permission.BIND_REMOTEVIEWS" 271 android:exported="false" /> 272 273 <receiver android:name="com.android.alarmclock.DigitalWidgetViewsFactory" 274 android:exported="false" /> 275 276 <!-- Dream (screensaver) implementation --> 277 <service android:name="Screensaver" 278 android:exported="true" 279 android:label="@string/app_label" 280 android:permission="android.permission.BIND_DREAM_SERVICE"> 281 <intent-filter> 282 <action android:name="android.service.dreams.DreamService" /> 283 <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" /> 284 <category android:name="android.intent.category.DEFAULT" /> 285 </intent-filter> 286 <meta-data 287 android:name="android.service.dream" 288 android:resource="@xml/dream_info" /> 289 </service> 290 291 <!-- Settings activity for screensaver --> 292 <activity android:name=".ScreensaverSettingsActivity" 293 android:label="@string/screensaver_settings" 294 android:theme="@style/SettingsTheme" 295 android:taskAffinity="" 296 android:excludeFromRecents="true" 297 android:exported="true" 298 > 299 <intent-filter> 300 <action android:name="android.intent.action.MAIN" /> 301 </intent-filter> 302 </activity> 303 304 <activity 305 android:name=".AlarmSelectionActivity" 306 android:label="@string/dismiss_alarm" 307 android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar"/> 308 309 <!-- This activity is basically like the TimerFragment in DeskClock 310 but only during lock screen 311 so that it only has the fired timers --> 312 <activity android:name="com.android.deskclock.timer.TimerAlertFullScreen" 313 android:excludeFromRecents="true" 314 android:theme="@style/TimerAlertFullScreenTheme" 315 android:launchMode="singleInstance" 316 android:showOnLockScreen="true" 317 android:taskAffinity="" 318 android:configChanges="screenSize|keyboardHidden|keyboard|navigation"/> 319 320 <service android:name="TimerRingService" 321 android:exported="false" 322 android:description="@string/timer_ring_service_desc"> 323 <intent-filter> 324 <action android:name="com.android.deskclock.TIMER_ALERT" /> 325 </intent-filter> 326 </service> 327 328 <receiver android:name="com.android.deskclock.timer.TimerReceiver" 329 android:exported="false"> 330 <intent-filter> 331 <action android:name="start_timer" /> 332 <action android:name="stop_timer" /> 333 <action android:name="delete_timer" /> 334 <action android:name="reset_timer" /> 335 <action android:name="times_up" /> 336 <action android:name="timer_done" /> 337 <action android:name="timer_update" /> 338 <action android:name="notif_in_use_show" /> 339 <action android:name="notif_in_use_cancel" /> 340 <action android:name="notif_times_up_stop" /> 341 <action android:name="notif_times_up_plus_one" /> 342 <action android:name="notif_times_up_show" /> 343 <action android:name="notif_times_up_cancel" /> 344 </intent-filter> 345 </receiver> 346 347 <service android:name="com.android.deskclock.stopwatch.StopwatchService" 348 android:exported="false" 349 android:description="@string/stopwatch_service_desc"> 350 <intent-filter> 351 <action android:name="start_stopwatch" /> 352 <action android:name="lap_stopwatch" /> 353 <action android:name="stop_stopwatch" /> 354 <action android:name="reset_stopwatch" /> 355 <action android:name="share_stopwatch" /> 356 </intent-filter> 357 </service> 358 </application> 359</manifest> 360