309 lines
13 KiB
XML
309 lines
13 KiB
XML
<?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="23" android:targetSdkVersion="29" />
|
|
|
|
<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" />
|
|
|
|
<!-- WRITE_SETTINGS is required to record the upcoming alarm prior to L -->
|
|
<uses-permission
|
|
android:name="android.permission.WRITE_SETTINGS"
|
|
android:maxSdkVersion="19" />
|
|
<!-- READ_PHONE_STATE is required to determine when a phone call exists prior to M -->
|
|
<uses-permission
|
|
android:name="android.permission.READ_PHONE_STATE"
|
|
android:maxSdkVersion="22" />
|
|
|
|
<application
|
|
android:name=".DeskClockApplication"
|
|
android:allowBackup="false"
|
|
android:backupAgent="DeskClockBackupAgent"
|
|
android:fullBackupContent="@xml/backup_scheme"
|
|
android:fullBackupOnly="true"
|
|
android:icon="@mipmap/ic_launcher_alarmclock"
|
|
android:label="@string/app_label"
|
|
android:requiredForAllUsers="true"
|
|
android:supportsRtl="true"
|
|
android:theme="@style/Theme.DeskClock">
|
|
|
|
<!-- ============================================================== -->
|
|
<!-- 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=""
|
|
android:theme="@style/Theme.DeskClock.RingtonePicker" />
|
|
|
|
<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" />
|
|
</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.DATE_CHANGED" />
|
|
<action android:name="android.intent.action.LOCALE_CHANGED" />
|
|
<action android:name="android.intent.action.SCREEN_ON" />
|
|
<action android:name="android.intent.action.TIME_SET" />
|
|
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
|
|
<action android:name="com.android.deskclock.ALARM_CHANGED" />
|
|
<action android:name="com.android.deskclock.ON_DAY_CHANGE" />
|
|
<action android:name="com.android.deskclock.WORLD_CITIES_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" />
|
|
|
|
</application>
|
|
</manifest>
|