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