373 lines
18 KiB
XML
373 lines
18 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
Copyright (C) 2015 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"
|
|
android:versionCode="450" android:versionName="4.5.0">
|
|
|
|
<original-package android:name="com.android.alarmclock" />
|
|
<original-package android:name="com.android.deskclock" />
|
|
|
|
<uses-sdk android:minSdkVersion="19" />
|
|
|
|
<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" />
|
|
<!-- WRITE_SETTINGS is required to record the upcoming alarm prior to L -->
|
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
|
<!-- READ_PHONE_STATE is required to determine when a phone call exists prior to M -->
|
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
|
<!-- READ_EXTERNAL_STORAGE is required to play custom ringtones from the SD card prior to M -->
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
|
|
|
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<uses-permission android:name="com.android.deskclock.worldclock.permissions.WRITE_DATABASE" />
|
|
<uses-permission android:name="org.codeaurora.permission.POWER_ON_ALERT" />
|
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
|
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
|
|
<uses-permission android:name="cyanogenmod.permission.MODIFY_PROFILES" />
|
|
|
|
<application android:label="@string/app_label"
|
|
android:name=".DeskClockApplication"
|
|
android:allowBackup="true"
|
|
android:backupAgent="DeskClockBackupAgent"
|
|
android:fullBackupContent="@xml/backup_scheme"
|
|
android:fullBackupOnly="true"
|
|
android:icon="@mipmap/ic_launcher_alarmclock"
|
|
android:requiredForAllUsers="true"
|
|
android:supportsRtl="true">
|
|
|
|
<provider android:name=".provider.ClockProvider"
|
|
android:authorities="com.android.deskclock"
|
|
android:exported="false"
|
|
android:directBootAware="true" />
|
|
|
|
<provider android:name="com.android.deskclock.worldclock.db.DbCityProvider"
|
|
android:authorities="com.android.deskclock.worldclock.db"
|
|
android:exported="true"
|
|
android:writePermission="com.android.deskclock.worldclock.permissions.WRITE_DATABASE" />
|
|
|
|
<activity android:name="DeskClock"
|
|
android:label="@string/app_label"
|
|
android:theme="@style/DeskClockTheme"
|
|
android:icon="@mipmap/ic_launcher_alarmclock"
|
|
android:launchMode="singleTask">
|
|
|
|
<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-alias android:name="DockClock"
|
|
android:targetActivity="DeskClock"
|
|
android:label="@string/app_label"
|
|
android:theme="@style/DeskClockTheme"
|
|
android:icon="@mipmap/ic_launcher_alarmclock"
|
|
android:launchMode="singleTask"
|
|
android:enabled="@bool/config_dockAppEnabled"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.DESK_DOCK" />
|
|
</intent-filter>
|
|
</activity-alias>
|
|
|
|
<activity android:name=".settings.SettingsActivity"
|
|
android:label="@string/settings"
|
|
android:theme="@style/SettingsTheme"
|
|
android:taskAffinity=""
|
|
android:excludeFromRecents="true"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name=".worldclock.CitySelectionActivity"
|
|
android:label="@string/cities_activity_title"
|
|
android:theme="@style/CitiesTheme"
|
|
android:taskAffinity=""
|
|
android:excludeFromRecents="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name=".alarms.AlarmActivity"
|
|
android:taskAffinity=""
|
|
android:excludeFromRecents="true"
|
|
android:theme="@style/AlarmAlertFullScreenTheme"
|
|
android:windowSoftInputMode="stateAlwaysHidden"
|
|
android:showOnLockScreen="true"
|
|
android:directBootAware="true" />
|
|
|
|
<activity android:name="ScreensaverActivity"
|
|
android:excludeFromRecents="true"
|
|
android:taskAffinity=""
|
|
android:theme="@style/ScreensaverActivityTheme"
|
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard" />
|
|
|
|
<receiver android:name=".alarms.AlarmStateManager"
|
|
android:exported="false"
|
|
android:directBootAware="true">
|
|
</receiver>
|
|
|
|
<receiver android:name=".alarms.PhoneStateReceiver">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.PHONE_STATE"/>
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<service android:name=".alarms.AlarmService"
|
|
android:exported="false"
|
|
android:directBootAware="true">
|
|
</service>
|
|
|
|
<activity android:name="HandleApiCalls"
|
|
android:theme="@android:style/Theme.NoDisplay"
|
|
android:excludeFromRecents="true"
|
|
android:launchMode="singleTask"
|
|
android:permission="com.android.alarm.permission.SET_ALARM"
|
|
android:taskAffinity="">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SET_ALARM" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.DISMISS_ALARM" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SNOOZE_ALARM" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SHOW_ALARMS" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<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>
|
|
|
|
<activity-alias android:name="HandleSetAlarm"
|
|
android:targetActivity=".HandleApiCalls"
|
|
android:exported="true">
|
|
</activity-alias>
|
|
|
|
<activity android:name=".HandleDeskClockApiCalls"
|
|
android:theme="@android:style/Theme.NoDisplay"
|
|
android:excludeFromRecents="true"
|
|
android:launchMode="singleTask"
|
|
android:permission="com.android.alarm.permission.SET_ALARM"
|
|
android:taskAffinity="">
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.SHOW_CLOCK" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.ADD_CLOCK" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.DELETE_CLOCK" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.START_TIMER" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.RESET_TIMER" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.PAUSE_TIMER" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.SHOW_TIMERS" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.DELETE_TIMER" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.SHOW_STOPWATCH" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.START_STOPWATCH" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.PAUSE_STOPWATCH" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.LAP_STOPWATCH" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.deskclock.action.RESET_STOPWATCH" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.VOICE" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<receiver android:name="AlarmInitReceiver"
|
|
android:directBootAware="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
|
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
|
<action android:name="android.intent.action.TIME_SET" />
|
|
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
|
|
<action android:name="android.intent.action.LOCALE_CHANGED" />
|
|
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<receiver
|
|
android:name="com.android.alarmclock.AnalogAppWidgetProvider"
|
|
android:icon="@mipmap/ic_launcher_alarmclock"
|
|
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:icon="@mipmap/ic_launcher_alarmclock"
|
|
android:label="@string/digital_gadget">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.TIME_SET"/>
|
|
<action android:name="android.intent.action.SCREEN_ON"/>
|
|
<action android:name="android.intent.action.DATE_CHANGED"/>
|
|
<action android:name="android.intent.action.LOCALE_CHANGED"/>
|
|
<action android:name="android.intent.action.TIMEZONE_CHANGED"/>
|
|
<action android:name="com.android.deskclock.DIGITAL_WIDGET_CHANGED"/>
|
|
<action android:name="com.android.deskclock.ON_QUARTER_HOUR"/>
|
|
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
|
|
<action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED"/>
|
|
</intent-filter>
|
|
<meta-data
|
|
android:name="android.appwidget.provider"
|
|
android:resource="@xml/digital_appwidget"/>
|
|
</receiver>
|
|
|
|
<service android:name="com.android.alarmclock.DigitalAppWidgetService"
|
|
android:permission="android.permission.BIND_REMOTEVIEWS"
|
|
android:exported="false" />
|
|
|
|
<!-- Dream (screensaver) implementation -->
|
|
<service android:name="Screensaver"
|
|
android:exported="true"
|
|
android:label="@string/app_label"
|
|
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/dream_info" />
|
|
</service>
|
|
|
|
<!-- Settings activity for screensaver -->
|
|
<activity android:name=".settings.ScreensaverSettingsActivity"
|
|
android:label="@string/screensaver_settings"
|
|
android:theme="@style/SettingsTheme"
|
|
android:taskAffinity=""
|
|
android:excludeFromRecents="true"
|
|
android:exported="true"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".AlarmSelectionActivity"
|
|
android:label="@string/dismiss_alarm"
|
|
android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar"/>
|
|
|
|
<!-- This activity displays only the timers that have expired with only a reset button
|
|
present. This makes the activity appropriate for display above the lock screen so that
|
|
users have the limited ability to silence expired timers but nothing else. -->
|
|
<activity android:name=".timer.ExpiredTimersActivity"
|
|
android:excludeFromRecents="true"
|
|
android:theme="@style/ExpiredTimersActivityTheme"
|
|
android:launchMode="singleInstance"
|
|
android:showOnLockScreen="true"
|
|
android:taskAffinity=""
|
|
android:configChanges="screenSize|keyboardHidden|keyboard|navigation"/>
|
|
|
|
<!-- 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:exported="false"
|
|
android:description="@string/timer_service_desc">
|
|
</service>
|
|
|
|
<service android:name=".stopwatch.StopwatchService"
|
|
android:exported="false"
|
|
android:description="@string/stopwatch_service_desc">
|
|
</service>
|
|
</application>
|
|
</manifest>
|