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