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