| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| Copyright (C) 2016 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manifest |
| xmlns:android="http://schemas.android.com/apk/res/android" |
| package="com.android.deskclock"> |
| |
| <original-package android:name="com.android.alarmclock" /> |
| <original-package android:name="com.android.deskclock" /> |
| |
| <uses-sdk android:minSdkVersion="31" android:targetSdkVersion="33" /> |
| |
| <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> |
| <uses-permission android:name="android.permission.WAKE_LOCK" /> |
| <uses-permission android:name="android.permission.VIBRATE" /> |
| <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> |
| <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> |
| <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" /> |
| <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" android:maxSdkVersion="32" /> |
| <uses-permission android:name="android.permission.USE_EXACT_ALARM" /> |
| <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> |
| <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> |
| <uses-permission android:name="org.codeaurora.permission.POWER_OFF_ALARM" /> |
| |
| <application |
| android:name=".DeskClockApplication" |
| android:allowBackup="true" |
| android:backupAgent="DeskClockBackupAgent" |
| android:dataExtractionRules="@xml/data_extraction_rules" |
| android:fullBackupOnly="true" |
| android:appCategory="productivity" |
| android:icon="@mipmap/ic_launcher" |
| android:label="@string/app_label" |
| android:requiredForAllUsers="true" |
| android:supportsRtl="true" |
| android:theme="@style/Theme.DeskClock"> |
| |
| <meta-data android:name="com.android.launcher3.LEVEL_PER_TICK_ICON_ROUND" android:resource="@mipmap/launcher_clock" /> |
| <meta-data android:name="com.android.launcher3.HOUR_LAYER_INDEX" android:value="0" /> |
| <meta-data android:name="com.android.launcher3.MINUTE_LAYER_INDEX" android:value="1" /> |
| <meta-data android:name="com.android.launcher3.SECOND_LAYER_INDEX" android:value="2" /> |
| <meta-data android:name="com.android.launcher3.DEFAULT_HOUR" android:value="10" /> |
| <meta-data android:name="com.android.launcher3.DEFAULT_MINUTE" android:value="10" /> |
| <meta-data android:name="com.android.launcher3.DEFAULT_SECOND" android:value="30" /> |
| |
| <!-- ============================================================== --> |
| <!-- Main app components. --> |
| <!-- ============================================================== --> |
| |
| <activity |
| android:name=".DeskClock" |
| android:label="@string/app_label" |
| android:launchMode="singleTask" |
| android:exported="true" |
| android:windowSoftInputMode="adjustPan"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.LAUNCHER" /> |
| </intent-filter> |
| </activity> |
| |
| <activity |
| android:name=".ringtone.RingtonePickerActivity" |
| android:excludeFromRecents="true" |
| android:taskAffinity="" /> |
| |
| <activity |
| android:name=".worldclock.CitySelectionActivity" |
| android:excludeFromRecents="true" |
| android:label="@string/cities_activity_title" |
| android:parentActivityName=".DeskClock" |
| android:taskAffinity="" |
| android:theme="@style/Theme.DeskClock.CitySelection" /> |
| |
| <activity |
| android:name=".settings.SettingsActivity" |
| android:excludeFromRecents="true" |
| android:label="@string/settings" |
| android:parentActivityName=".DeskClock" |
| android:taskAffinity="" |
| android:theme="@style/Theme.DeskClock.Settings" /> |
| |
| <activity |
| android:name=".HandleShortcuts" |
| android:excludeFromRecents="true" |
| android:launchMode="singleInstance" |
| android:taskAffinity="" |
| android:theme="@android:style/Theme.NoDisplay" /> |
| |
| <!-- ============================================================== --> |
| <!-- AlarmClock API components. --> |
| <!-- ============================================================== --> |
| |
| <activity |
| android:name="com.android.deskclock.HandleApiCalls" |
| android:permission="com.android.alarm.permission.SET_ALARM" |
| android:directBootAware="true" |
| android:excludeFromRecents="true" |
| android:launchMode="singleInstance" |
| android:showWhenLocked="true" |
| android:taskAffinity="" |
| android:exported="true" |
| android:theme="@android:style/Theme.NoDisplay"> |
| <intent-filter> |
| <action android:name="android.intent.action.DISMISS_ALARM" /> |
| <action android:name="android.intent.action.DISMISS_TIMER" /> |
| <action android:name="android.intent.action.SHOW_ALARMS" /> |
| <action android:name="android.intent.action.SHOW_TIMERS" /> |
| <action android:name="android.intent.action.SNOOZE_ALARM" /> |
| |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.VOICE" /> |
| </intent-filter> |
| </activity> |
| |
| <activity-alias |
| android:name="com.android.deskclock.HandleSetAlarmApiCalls" |
| android:permission="com.android.alarm.permission.SET_ALARM" |
| android:exported="true" |
| android:targetActivity="com.android.deskclock.HandleApiCalls"> |
| <intent-filter> |
| <action android:name="android.intent.action.SET_ALARM" /> |
| <action android:name="android.intent.action.SET_TIMER" /> |
| |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.VOICE" /> |
| </intent-filter> |
| </activity-alias> |
| |
| <!-- ============================================================== --> |
| <!-- Alarm components. --> |
| <!-- ============================================================== --> |
| |
| <activity |
| android:name=".alarms.AlarmActivity" |
| android:directBootAware="true" |
| android:excludeFromRecents="true" |
| android:resizeableActivity="false" |
| android:showOnLockScreen="true" |
| android:showWhenLocked="true" |
| android:taskAffinity="" |
| android:windowSoftInputMode="stateAlwaysHidden" /> |
| |
| <activity |
| android:name=".AlarmSelectionActivity" |
| android:label="@string/dismiss_alarm" |
| android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar" /> |
| |
| <provider |
| android:name=".provider.ClockProvider" |
| android:authorities="com.android.deskclock" |
| android:directBootAware="true" |
| android:exported="false" /> |
| |
| <receiver |
| android:name=".AlarmInitReceiver" |
| android:exported="true" |
| android:directBootAware="true"> |
| <intent-filter> |
| <action android:name="android.intent.action.BOOT_COMPLETED" /> |
| <action android:name="android.intent.action.LOCALE_CHANGED" /> |
| <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /> |
| <action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> |
| <action android:name="android.intent.action.TIME_SET" /> |
| <action android:name="android.intent.action.TIMEZONE_CHANGED" /> |
| <action android:name="org.codeaurora.poweroffalarm.action.UPDATE_ALARM" /> |
| </intent-filter> |
| </receiver> |
| |
| <receiver |
| android:name=".alarms.AlarmStateManager" |
| android:directBootAware="true" /> |
| |
| <service |
| android:name=".alarms.AlarmService" |
| android:directBootAware="true" /> |
| |
| <!-- ============================================================== --> |
| <!-- Timer components. --> |
| <!-- ============================================================== --> |
| |
| <activity |
| android:name=".timer.ExpiredTimersActivity" |
| android:configChanges="screenSize|keyboardHidden|keyboard|navigation" |
| android:directBootAware="true" |
| android:excludeFromRecents="true" |
| android:launchMode="singleInstance" |
| android:resizeableActivity="false" |
| android:showOnLockScreen="true" |
| android:taskAffinity="" /> |
| |
| <!-- Legacy broadcast receiver that honors old scheduled timers across app upgrade. --> |
| <receiver |
| android:name="com.android.deskclock.timer.TimerReceiver" |
| android:exported="false"> |
| <intent-filter> |
| <action android:name="times_up" /> |
| </intent-filter> |
| </receiver> |
| |
| <service |
| android:name=".timer.TimerService" |
| android:description="@string/timer_service_desc" |
| android:directBootAware="true" /> |
| |
| <!-- ============================================================== --> |
| <!-- Stopwatch components. --> |
| <!-- ============================================================== --> |
| |
| <service |
| android:name=".stopwatch.StopwatchService" |
| android:description="@string/stopwatch_service_desc" |
| android:directBootAware="true" /> |
| |
| |
| <!-- ============================================================== --> |
| <!-- Screen saver components. --> |
| <!-- ============================================================== --> |
| |
| <activity |
| android:name=".ScreensaverActivity" |
| android:excludeFromRecents="true" |
| android:resizeableActivity="false" |
| android:taskAffinity="" /> |
| |
| <activity |
| android:name=".settings.ScreensaverSettingsActivity" |
| android:excludeFromRecents="true" |
| android:label="@string/screensaver_settings" |
| android:taskAffinity="" |
| android:theme="@style/Theme.DeskClock.Settings" /> |
| |
| <service |
| android:name=".Screensaver" |
| android:label="@string/app_label" |
| android:exported="true" |
| android:permission="android.permission.BIND_DREAM_SERVICE"> |
| <intent-filter> |
| <action android:name="android.service.dreams.DreamService" /> |
| <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" /> |
| |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| <meta-data |
| android:name="android.service.dream" |
| android:resource="@xml/screensaver_info" /> |
| </service> |
| |
| <!-- ============================================================== --> |
| <!-- App widget components. --> |
| <!-- ============================================================== --> |
| |
| <receiver |
| android:name="com.android.alarmclock.AnalogAppWidgetProvider" |
| android:exported="true" |
| android:label="@string/analog_gadget"> |
| <intent-filter> |
| <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> |
| </intent-filter> |
| |
| <meta-data |
| android:name="android.appwidget.oldName" |
| android:value="com.android.deskclock.AnalogAppWidgetProvider" /> |
| <meta-data |
| android:name="android.appwidget.provider" |
| android:resource="@xml/analog_appwidget" /> |
| </receiver> |
| |
| <receiver |
| android:name="com.android.alarmclock.DigitalAppWidgetProvider" |
| android:exported="true" |
| android:label="@string/digital_gadget"> |
| <intent-filter> |
| <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> |
| <action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" /> |
| <action android:name="android.intent.action.LOCALE_CHANGED" /> |
| <action android:name="android.intent.action.TIME_SET" /> |
| <action android:name="android.intent.action.TIMEZONE_CHANGED" /> |
| <action android:name="com.android.deskclock.ON_DAY_CHANGE" /> |
| <action android:name="com.android.deskclock.WORLD_CITIES_CHANGED" /> |
| <action android:name="android.intent.action.CONFIGURATION_CHANGED" /> |
| </intent-filter> |
| <meta-data |
| android:name="android.appwidget.provider" |
| android:resource="@xml/digital_appwidget" /> |
| </receiver> |
| |
| <service |
| android:name="com.android.alarmclock.DigitalAppWidgetCityService" |
| android:permission="android.permission.BIND_REMOTEVIEWS" /> |
| |
| <activity |
| android:name="com.android.alarmclock.DigitalAppWidgetConfigurationActivity" |
| android:theme="@style/Theme.DeskClock.DigitalWidgetConfigurationTheme" |
| android:exported="true"> |
| <intent-filter> |
| <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/> |
| </intent-filter> |
| </activity> |
| </application> |
| </manifest> |