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