2014-04-02 15:39:13 -07:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<!--
|
|
|
|
/*
|
|
|
|
* Copyright (c) 2014 Google Inc.
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
-->
|
2010-04-08 16:41:23 -05:00
|
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
2012-09-27 23:20:10 -07:00
|
|
|
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
2010-05-26 17:03:26 -04:00
|
|
|
package="com.android.systemui"
|
2013-01-09 18:50:26 -08:00
|
|
|
android:sharedUserId="android.uid.systemui"
|
2012-04-18 19:16:15 -07:00
|
|
|
coreApp="true">
|
|
|
|
|
|
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
2012-04-23 13:32:00 -07:00
|
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
2015-07-06 09:45:55 -07:00
|
|
|
<!-- Used to read storage for all users -->
|
|
|
|
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
|
2012-04-26 17:30:34 -07:00
|
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
2012-04-18 19:16:15 -07:00
|
|
|
|
|
|
|
<uses-permission android:name="android.permission.INJECT_EVENTS" />
|
2013-02-19 13:01:35 -08:00
|
|
|
<uses-permission android:name="android.permission.DUMP" />
|
2012-04-18 19:16:15 -07:00
|
|
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
2010-04-08 16:41:23 -05:00
|
|
|
|
2010-06-04 16:21:12 -04:00
|
|
|
<uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
|
2012-04-18 19:16:15 -07:00
|
|
|
<uses-permission android:name="android.permission.STATUS_BAR" />
|
|
|
|
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
|
2012-04-26 17:30:34 -07:00
|
|
|
<uses-permission android:name="android.permission.REMOTE_AUDIO_PLAYBACK" />
|
2012-04-18 19:16:15 -07:00
|
|
|
|
2012-08-14 18:25:45 -07:00
|
|
|
<uses-permission android:name="android.permission.MANAGE_USERS" />
|
2012-09-05 17:34:41 -07:00
|
|
|
<uses-permission android:name="android.permission.READ_PROFILE" />
|
|
|
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
2012-09-08 23:15:12 -07:00
|
|
|
<uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
|
2012-09-11 10:00:53 -07:00
|
|
|
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
|
2013-08-08 12:56:57 -07:00
|
|
|
<uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
|
2012-08-14 15:08:24 -04:00
|
|
|
|
2012-04-18 19:16:15 -07:00
|
|
|
<!-- Networking and telephony -->
|
2010-08-31 14:16:13 -04:00
|
|
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
|
|
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
2015-02-04 13:00:55 -05:00
|
|
|
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
|
2015-07-23 12:47:06 -07:00
|
|
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
2012-04-18 19:16:15 -07:00
|
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
2014-09-23 09:25:29 -04:00
|
|
|
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
2015-07-08 16:34:33 -07:00
|
|
|
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
2012-04-18 19:16:15 -07:00
|
|
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
|
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
2015-04-06 17:28:56 +09:00
|
|
|
<uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
|
2012-04-30 17:14:51 -07:00
|
|
|
<uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
|
2014-05-23 12:59:27 -04:00
|
|
|
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
|
2015-12-28 15:11:58 -08:00
|
|
|
<uses-permission android:name="android.permission.TETHER_PRIVILEGED" />
|
2014-07-08 17:09:42 -04:00
|
|
|
<uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
|
2014-11-11 13:20:01 -08:00
|
|
|
<uses-permission android:name="android.permission.CONTROL_VPN" />
|
2015-07-27 12:20:18 -07:00
|
|
|
<uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/>
|
2012-04-18 19:16:15 -07:00
|
|
|
<!-- Physical hardware -->
|
2011-03-08 10:08:59 -05:00
|
|
|
<uses-permission android:name="android.permission.MANAGE_USB" />
|
2012-04-18 19:16:15 -07:00
|
|
|
<uses-permission android:name="android.permission.DEVICE_POWER" />
|
|
|
|
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
|
2012-05-01 15:42:56 -04:00
|
|
|
<uses-permission android:name="android.permission.MASTER_CLEAR" />
|
2012-05-17 17:01:15 -07:00
|
|
|
<uses-permission android:name="android.permission.VIBRATE" />
|
2012-04-18 19:16:15 -07:00
|
|
|
|
|
|
|
<!-- ActivityManager -->
|
2014-10-03 16:26:04 -07:00
|
|
|
<uses-permission android:name="android.permission.REAL_GET_TASKS" />
|
2012-04-24 11:15:40 -07:00
|
|
|
<uses-permission android:name="android.permission.GET_DETAILED_TASKS" />
|
2012-04-18 19:16:15 -07:00
|
|
|
<uses-permission android:name="android.permission.REORDER_TASKS" />
|
|
|
|
<uses-permission android:name="android.permission.REMOVE_TASKS" />
|
|
|
|
<uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
|
|
|
|
<uses-permission android:name="android.permission.SET_SCREEN_COMPATIBILITY" />
|
|
|
|
<uses-permission android:name="android.permission.START_ANY_ACTIVITY" />
|
2014-07-17 18:27:38 +02:00
|
|
|
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
|
2012-08-03 13:09:11 -07:00
|
|
|
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
|
2013-01-23 14:39:13 -08:00
|
|
|
<uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO" />
|
2014-03-07 15:06:19 -08:00
|
|
|
<uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
|
2014-07-20 17:48:47 -07:00
|
|
|
<uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" />
|
2016-02-29 18:02:43 -08:00
|
|
|
<uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT" />
|
2013-09-10 18:37:01 -07:00
|
|
|
|
2012-04-18 19:16:15 -07:00
|
|
|
<!-- WindowManager -->
|
|
|
|
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
|
2012-04-24 16:13:17 -07:00
|
|
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
2012-04-18 19:16:15 -07:00
|
|
|
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
|
|
|
|
<uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
|
2015-11-29 21:10:07 -08:00
|
|
|
<uses-permission android:name="android.permission.REGISTER_WINDOW_MANAGER_LISTENERS" />
|
2012-04-18 19:16:15 -07:00
|
|
|
<uses-permission android:name="android.permission.SET_ORIENTATION" />
|
|
|
|
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
2010-06-04 16:21:12 -04:00
|
|
|
|
2012-08-25 12:08:03 -04:00
|
|
|
<!-- DreamManager -->
|
|
|
|
<uses-permission android:name="android.permission.READ_DREAM_STATE" />
|
|
|
|
<uses-permission android:name="android.permission.WRITE_DREAM_STATE" />
|
|
|
|
|
2013-05-22 08:54:56 +09:00
|
|
|
<!-- Alarm clocks -->
|
|
|
|
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
|
|
|
|
|
2013-09-10 18:37:01 -07:00
|
|
|
<!-- Keyguard -->
|
|
|
|
<uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
|
2014-03-26 18:31:48 +01:00
|
|
|
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
|
2016-03-15 17:08:27 +00:00
|
|
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
2014-03-26 18:31:48 +01:00
|
|
|
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
|
|
|
|
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
|
|
|
|
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
|
|
|
|
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
|
|
|
|
<uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
|
2014-03-31 22:50:13 +02:00
|
|
|
<uses-permission android:name="android.permission.TRUST_LISTENER" />
|
2015-02-20 16:21:26 -08:00
|
|
|
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
2015-08-12 20:30:34 -07:00
|
|
|
<uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" />
|
2013-09-10 18:37:01 -07:00
|
|
|
|
2015-02-25 15:51:05 +01:00
|
|
|
<!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked -->
|
|
|
|
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
|
|
|
|
|
2014-04-30 17:11:13 -07:00
|
|
|
<!-- Recents -->
|
|
|
|
<uses-permission android:name="android.permission.BIND_APPWIDGET" />
|
|
|
|
|
2013-11-14 18:16:08 -08:00
|
|
|
<!-- Wifi Display -->
|
|
|
|
<uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
|
|
|
|
|
2014-06-30 15:11:53 +02:00
|
|
|
<uses-permission android:name="android.permission.CAMERA" />
|
|
|
|
|
2014-07-08 18:07:36 -07:00
|
|
|
<!-- Screen Capturing -->
|
2014-08-12 19:27:54 -07:00
|
|
|
<uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" />
|
2014-07-08 18:07:36 -07:00
|
|
|
|
2015-04-02 11:46:28 -07:00
|
|
|
<!-- Assist -->
|
|
|
|
<uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" />
|
|
|
|
|
2015-09-03 17:57:01 +01:00
|
|
|
<!-- Listen for keyboard attachment / detachment -->
|
|
|
|
<uses-permission android:name="android.permission.TABLET_MODE" />
|
|
|
|
|
2015-07-23 17:15:45 -07:00
|
|
|
<!-- Self permission for internal broadcasts. -->
|
|
|
|
<permission android:name="com.android.systemui.permission.SELF"
|
|
|
|
android:protectionLevel="signature" />
|
|
|
|
<uses-permission android:name="com.android.systemui.permission.SELF" />
|
|
|
|
|
Plugins for sysui
Why this is safe:
- To never ever be used in production code, simply for rapid
prototyping (multiple checks in place)
- Guarded by signature level permission checks, so only matching
signed code will be used
- Any crashing plugins are auto-disabled and sysui is allowed
to continue in peace
Now on to what it actually does. Plugins are separate APKs that
are expected to implement interfaces provided by SystemUI. Their
code is dynamically loaded into the SysUI process which can allow
for multiple prototypes to be created and run on a single android
build.
-------
PluginLifecycle:
plugin.onCreate(Context sysuiContext, Context pluginContext);
--- This is always called before any other calls
pluginListener.onPluginConnected(Plugin p);
--- This lets the plugin hook know that a plugin is now connected.
** Any other calls back and forth between sysui/plugin **
pluginListener.onPluginDisconnected(Plugin p);
--- Lets the plugin hook know that it should stop interacting with
this plugin and drop all references to it.
plugin.onDestroy();
--- Finally the plugin can perform any cleanup to ensure that its not
leaking into the SysUI process.
Any time a plugin APK is updated the plugin is destroyed and recreated
to load the new code/resources.
-------
Creating plugin hooks:
To create a plugin hook, first create an interface in
frameworks/base/packages/SystemUI/plugin that extends Plugin.
Include in it any hooks you want to be able to call into from
sysui and create callback interfaces for anything you need to
pass through into the plugin.
Then to attach to any plugins simply add a plugin listener and
onPluginConnected will get called whenever new plugins are installed,
updated, or enabled. Like this example from SystemUIApplication:
PluginManager.getInstance(this).addPluginListener(OverlayPlugin.COMPONENT,
new PluginListener<OverlayPlugin>() {
@Override
public void onPluginConnected(OverlayPlugin plugin) {
PhoneStatusBar phoneStatusBar = getComponent(PhoneStatusBar.class);
if (phoneStatusBar != null) {
plugin.setup(phoneStatusBar.getStatusBarWindow(),
phoneStatusBar.getNavigationBarView());
}
}
}, OverlayPlugin.VERSION, true /* Allow multiple plugins */);
Note the VERSION included here. Any time incompatible changes in the
interface are made, this version should be changed to ensure old plugins
aren't accidentally loaded. Since the plugin library is provided by
SystemUI, default implementations can be added for new methods to avoid
version changes when possible.
-------
Implementing a Plugin:
See the ExamplePlugin for an example Android.mk on how to compile
a plugin. Note that SystemUILib is not static for plugins, its classes
are provided by SystemUI.
Plugin security is based around a signature permission, so plugins must
hold the following permission in their manifest.
<uses-permission android:name="com.android.systemui.permission.PLUGIN" />
A plugin is found through a querying for services, so to let SysUI know
about it, create a service with a name that points at your implementation
of the plugin interface with the action accompanying it:
<service android:name=".TestOverlayPlugin">
<intent-filter>
<action android:name="com.android.systemui.action.PLUGIN_COMPONENT" />
</intent-filter>
</service>
Change-Id: I42c573a94907ca7a2eaacbb0a44614d49b8fc26f
2016-08-16 13:17:56 -04:00
|
|
|
<permission android:name="com.android.systemui.permission.PLUGIN"
|
|
|
|
android:protectionLevel="signature" />
|
|
|
|
|
2015-12-10 10:59:06 -08:00
|
|
|
<!-- Adding Quick Settings tiles -->
|
|
|
|
<uses-permission android:name="android.permission.BIND_QUICK_SETTINGS_TILE" />
|
|
|
|
|
2015-12-18 09:04:34 -05:00
|
|
|
<!-- Block notifications inline notifications -->
|
|
|
|
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
|
|
|
|
|
2016-01-08 14:12:18 -05:00
|
|
|
<!-- Access battery information -->
|
|
|
|
<uses-permission android:name="android.permission.BATTERY_STATS" />
|
|
|
|
|
2016-01-15 17:20:55 +00:00
|
|
|
<!-- DevicePolicyManager get user restrictions -->
|
|
|
|
<uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
|
|
|
|
|
2016-01-15 16:59:27 -08:00
|
|
|
<!-- TV picture-in-picture -->
|
|
|
|
<uses-permission android:name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE" />
|
|
|
|
|
2016-03-22 13:03:32 -07:00
|
|
|
<!-- DND access -->
|
|
|
|
<uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS" />
|
|
|
|
|
2016-04-07 21:04:46 -04:00
|
|
|
<!-- It's like, reality, but, you know, virtual -->
|
|
|
|
<uses-permission android:name="android.permission.ACCESS_VR_MANAGER" />
|
|
|
|
|
2016-04-13 16:17:47 -07:00
|
|
|
<!-- To control car audio module volume -->
|
|
|
|
<uses-permission android:name="android.car.permission.CAR_CONTROL_AUDIO_VOLUME" />
|
|
|
|
|
2016-04-14 10:16:28 -04:00
|
|
|
<!-- the ability to rename notifications posted by other apps -->
|
|
|
|
<uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
|
|
|
|
|
2016-06-14 11:17:59 -07:00
|
|
|
<!-- shortcut manager -->
|
|
|
|
<uses-permission android:name="android.permission.RESET_SHORTCUT_MANAGER_THROTTLING" />
|
|
|
|
|
2016-11-09 15:53:30 -05:00
|
|
|
<uses-permission android:name="android.permission.MODIFY_THEME_OVERLAY" />
|
|
|
|
|
2010-04-08 16:41:23 -05:00
|
|
|
<application
|
2014-03-31 16:35:15 +02:00
|
|
|
android:name=".SystemUIApplication"
|
2010-07-30 17:24:38 -07:00
|
|
|
android:persistent="true"
|
2010-04-08 16:41:23 -05:00
|
|
|
android:allowClearUserData="false"
|
2011-07-19 16:32:49 -07:00
|
|
|
android:allowBackup="false"
|
2011-01-11 10:28:58 -05:00
|
|
|
android:hardwareAccelerated="true"
|
2010-04-08 16:41:23 -05:00
|
|
|
android:label="@string/app_label"
|
2014-10-06 01:04:47 -04:00
|
|
|
android:icon="@drawable/icon"
|
2013-01-09 18:50:26 -08:00
|
|
|
android:process="com.android.systemui"
|
2014-04-10 23:25:03 +02:00
|
|
|
android:supportsRtl="true"
|
2015-11-08 16:46:05 -08:00
|
|
|
android:theme="@style/systemui_theme"
|
2016-03-16 16:25:45 -06:00
|
|
|
android:defaultToDeviceProtectedStorage="true"
|
|
|
|
android:directBootAware="true">
|
2014-04-10 23:25:03 +02:00
|
|
|
<!-- Keep theme in sync with SystemUIApplication.onCreate().
|
|
|
|
Setting the theme on the application does not affect views inflated by services.
|
|
|
|
The application theme is set again from onCreate to take effect for those views. -->
|
2010-07-09 18:52:06 -04:00
|
|
|
|
2010-10-21 11:09:02 -04:00
|
|
|
<!-- Broadcast receiver that gets the broadcast at boot time and starts
|
|
|
|
up everything else.
|
|
|
|
TODO: Should have an android:permission attribute
|
|
|
|
-->
|
|
|
|
<service android:name="SystemUIService"
|
|
|
|
android:exported="true"
|
2010-04-08 16:41:23 -05:00
|
|
|
/>
|
2010-06-04 11:25:26 -07:00
|
|
|
|
2016-04-04 17:47:41 -07:00
|
|
|
<!-- Recents depends on every user having their own SystemUI process, so on user switch,
|
|
|
|
ensure that the process is created by starting this service.
|
|
|
|
-->
|
|
|
|
<service android:name="SystemUISecondaryUserService"
|
|
|
|
android:exported="true"
|
|
|
|
android:permission="com.android.systemui.permission.SELF" />
|
|
|
|
|
|
|
|
|
2011-06-27 13:15:32 -07:00
|
|
|
<!-- started from PhoneWindowManager
|
|
|
|
TODO: Should have an android:permission attribute -->
|
|
|
|
<service android:name=".screenshot.TakeScreenshotService"
|
2011-08-17 16:20:47 -07:00
|
|
|
android:process=":screenshot"
|
2011-06-27 13:15:32 -07:00
|
|
|
android:exported="false" />
|
|
|
|
|
2016-03-10 14:00:14 -08:00
|
|
|
<!-- Called from PhoneWindowManager -->
|
|
|
|
<receiver android:name=".screenshot.ScreenshotServiceErrorReceiver"
|
|
|
|
android:process=":screenshot"
|
|
|
|
android:exported="false">
|
|
|
|
<intent-filter>
|
|
|
|
<action android:name="com.android.systemui.screenshot.SHOW_ERROR" />
|
|
|
|
</intent-filter>
|
|
|
|
</receiver>
|
|
|
|
|
2011-08-01 16:11:57 -07:00
|
|
|
<service android:name=".ImageWallpaper"
|
|
|
|
android:permission="android.permission.BIND_WALLPAPER"
|
|
|
|
android:exported="true" />
|
|
|
|
|
2015-05-11 16:57:15 -04:00
|
|
|
<activity android:name=".tuner.TunerActivity"
|
|
|
|
android:enabled="false"
|
2015-05-15 15:08:34 -04:00
|
|
|
android:icon="@drawable/tuner"
|
2015-12-11 21:39:54 -05:00
|
|
|
android:theme="@style/TunerSettings"
|
2015-05-11 16:57:15 -04:00
|
|
|
android:label="@string/system_ui_tuner"
|
2015-05-15 15:08:34 -04:00
|
|
|
android:process=":tuner"
|
2015-05-11 16:57:15 -04:00
|
|
|
android:exported="true">
|
|
|
|
<intent-filter>
|
|
|
|
<action android:name="com.android.settings.action.EXTRA_SETTINGS" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
</intent-filter>
|
|
|
|
<meta-data android:name="com.android.settings.category"
|
2015-05-15 15:08:34 -04:00
|
|
|
android:value="com.android.settings.category.system" />
|
2015-05-11 16:57:15 -04:00
|
|
|
</activity>
|
|
|
|
|
2016-10-04 08:49:50 -07:00
|
|
|
<activity-alias android:name=".tuner.TunerSettingLink"
|
|
|
|
android:targetActivity=".tuner.TunerActivity"
|
|
|
|
android:enabled="false"
|
|
|
|
android:process=":tuner">
|
|
|
|
<intent-filter android:priority="1">
|
|
|
|
<action android:name="com.android.settings.action.EXTRA_SETTINGS" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
</intent-filter>
|
|
|
|
<meta-data android:name="com.android.settings.category"
|
|
|
|
android:value="com.android.settings.category.ia.system" />
|
|
|
|
</activity-alias>
|
|
|
|
|
2016-04-12 13:08:31 -04:00
|
|
|
<activity-alias android:name=".DemoMode"
|
|
|
|
android:targetActivity=".tuner.TunerActivity"
|
|
|
|
android:icon="@drawable/tuner"
|
|
|
|
android:theme="@style/TunerSettings"
|
|
|
|
android:label="@string/demo_mode"
|
|
|
|
android:process=":tuner"
|
|
|
|
android:exported="true">
|
|
|
|
<intent-filter>
|
|
|
|
<action android:name="com.android.settings.action.DEMO_MODE" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
</intent-filter>
|
|
|
|
</activity-alias>
|
|
|
|
|
2015-10-20 14:57:24 -07:00
|
|
|
<!-- Service used by secondary users to register themselves with the system user. -->
|
|
|
|
<service android:name=".recents.RecentsSystemUserService"
|
|
|
|
android:exported="false"
|
|
|
|
android:permission="com.android.systemui.permission.SELF" />
|
|
|
|
|
2014-03-07 15:06:19 -08:00
|
|
|
<!-- Alternate Recents -->
|
|
|
|
<activity android:name=".recents.RecentsActivity"
|
2014-08-11 10:43:22 -07:00
|
|
|
android:label="@string/accessibility_desc_recent_apps"
|
2014-12-08 17:26:44 -08:00
|
|
|
android:exported="false"
|
2014-03-07 15:06:19 -08:00
|
|
|
android:launchMode="singleInstance"
|
|
|
|
android:excludeFromRecents="true"
|
Work on issue #17357238: Recents is often slow if not used in a while
Add a new activity attribute, resumeWhilePausing, that allows an
activity specifying it to immediately start running without waiting
for the previous activity to pause. The recents activity is updated
to use this.
The implementation of this is ultimately fairly simple -- if we are
in the path of resuming such an activity, and find that we first need
to pause the existing activity, then within the activity manager we
do the regular pause flow but act like it has immediately finished
pausing right then so that we can immediately go on to the resume.
To make this clean, we tell the activity when asking it to pause that
it should not come back and tell us it is done, because we aren't in
any way waiting for it.
One potentially important change I needed to make here is the pause
callback no longer provides the saved persistent state, because we
now can't count on that callback happening. I don't think there was
really any utility in this anyway -- all modern apps will have their
save state flow happen as part of stopping, not pausing, so we'll
only capture that saved state when the stop is reported back anyway.
And since we do send the saved state back when stopping, it would
always blow away whatever we had gotten at the pause.
Finally, update the documentation for AppTask.startActivity(), and
fix the implementation handling that to be cleaner -- we need to
deal with inTask first before getting in to "oh noes add NEW_TASK
if this isn't coming from a calling activity" flow.
Change-Id: Ia1da0fac90d7bdbaafdda2e34850d795ce17a39f
2014-09-04 22:52:27 -07:00
|
|
|
android:stateNotNeeded="true"
|
|
|
|
android:resumeWhilePausing="true"
|
2015-04-03 10:30:57 -07:00
|
|
|
android:screenOrientation="behind"
|
2015-09-16 16:49:55 -07:00
|
|
|
android:resizeableActivity="true"
|
2016-01-25 10:49:13 -08:00
|
|
|
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
|
2015-09-25 13:11:39 -07:00
|
|
|
android:theme="@style/RecentsTheme.Wallpaper">
|
2014-03-07 15:06:19 -08:00
|
|
|
<intent-filter>
|
|
|
|
<action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
|
|
|
|
</intent-filter>
|
|
|
|
</activity>
|
|
|
|
|
2016-01-26 15:39:27 -08:00
|
|
|
<activity android:name=".recents.tv.RecentsTvActivity"
|
|
|
|
android:label="@string/accessibility_desc_recent_apps"
|
|
|
|
android:exported="false"
|
|
|
|
android:launchMode="singleInstance"
|
|
|
|
android:excludeFromRecents="true"
|
|
|
|
android:stateNotNeeded="true"
|
|
|
|
android:resumeWhilePausing="true"
|
|
|
|
android:screenOrientation="behind"
|
2016-02-01 11:11:14 -08:00
|
|
|
android:theme="@style/RecentsTvTheme.Wallpaper">
|
2016-01-26 15:39:27 -08:00
|
|
|
<intent-filter>
|
2014-03-07 15:06:19 -08:00
|
|
|
<action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
|
|
|
|
</intent-filter>
|
|
|
|
</activity>
|
|
|
|
|
2016-03-03 13:43:39 +01:00
|
|
|
<activity
|
|
|
|
android:name=".stackdivider.ForcedResizableInfoActivity"
|
|
|
|
android:theme="@style/ForcedResizableTheme"
|
|
|
|
android:excludeFromRecents="true"
|
|
|
|
android:stateNotNeeded="true"
|
2016-05-07 14:13:52 -07:00
|
|
|
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
|
2016-03-03 13:43:39 +01:00
|
|
|
android:exported="false">
|
|
|
|
</activity>
|
|
|
|
|
2015-04-17 12:13:40 -07:00
|
|
|
<!-- Callback for dismissing screenshot notification after a share target is picked -->
|
|
|
|
<receiver android:name=".screenshot.GlobalScreenshot$TargetChosenReceiver"
|
2015-05-27 17:18:56 -07:00
|
|
|
android:process=":screenshot"
|
|
|
|
android:exported="false" />
|
|
|
|
|
|
|
|
<!-- Callback for deleting screenshot notification -->
|
|
|
|
<receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver"
|
|
|
|
android:process=":screenshot"
|
2015-04-17 12:13:40 -07:00
|
|
|
android:exported="false" />
|
|
|
|
|
2011-03-13 17:26:52 -04:00
|
|
|
<!-- started from UsbDeviceSettingsManager -->
|
|
|
|
<activity android:name=".usb.UsbConfirmActivity"
|
|
|
|
android:exported="true"
|
|
|
|
android:permission="android.permission.MANAGE_USB"
|
2014-05-06 19:10:53 -07:00
|
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
2011-03-13 17:26:52 -04:00
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:excludeFromRecents="true">
|
|
|
|
</activity>
|
|
|
|
|
2011-03-08 10:08:59 -05:00
|
|
|
<!-- started from UsbDeviceSettingsManager -->
|
|
|
|
<activity android:name=".usb.UsbPermissionActivity"
|
|
|
|
android:exported="true"
|
|
|
|
android:permission="android.permission.MANAGE_USB"
|
2014-05-06 19:10:53 -07:00
|
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
2011-03-08 10:08:59 -05:00
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:excludeFromRecents="true">
|
|
|
|
</activity>
|
|
|
|
|
|
|
|
<!-- started from UsbDeviceSettingsManager -->
|
|
|
|
<activity android:name=".usb.UsbResolverActivity"
|
|
|
|
android:exported="true"
|
|
|
|
android:permission="android.permission.MANAGE_USB"
|
2014-05-06 19:10:53 -07:00
|
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
2011-03-08 10:08:59 -05:00
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:excludeFromRecents="true">
|
|
|
|
</activity>
|
2011-03-10 12:12:31 -05:00
|
|
|
|
|
|
|
<!-- started from UsbDeviceSettingsManager -->
|
|
|
|
<activity android:name=".usb.UsbAccessoryUriActivity"
|
|
|
|
android:exported="true"
|
|
|
|
android:permission="android.permission.MANAGE_USB"
|
2014-05-06 19:10:53 -07:00
|
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
2011-03-10 12:12:31 -05:00
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:excludeFromRecents="true">
|
|
|
|
</activity>
|
2011-07-25 15:21:22 -07:00
|
|
|
|
2012-04-25 18:06:00 -07:00
|
|
|
<!-- started from UsbDebuggingManager -->
|
|
|
|
<activity android:name=".usb.UsbDebuggingActivity"
|
|
|
|
android:permission="android.permission.MANAGE_USB"
|
2014-05-06 19:10:53 -07:00
|
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
2012-04-25 18:06:00 -07:00
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:excludeFromRecents="true">
|
|
|
|
</activity>
|
2015-05-13 13:18:36 -07:00
|
|
|
<activity android:name=".usb.UsbDebuggingSecondaryUserActivity"
|
|
|
|
android:theme="@style/Theme.SystemUI.Dialog.Alert"
|
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:excludeFromRecents="true">
|
|
|
|
</activity>
|
2012-04-25 18:06:00 -07:00
|
|
|
|
2011-07-25 15:21:22 -07:00
|
|
|
<!-- started from NetworkPolicyManagerService -->
|
|
|
|
<activity
|
|
|
|
android:name=".net.NetworkOverLimitActivity"
|
|
|
|
android:exported="true"
|
|
|
|
android:permission="android.permission.MANAGE_NETWORK_POLICY"
|
2014-04-01 14:57:39 -07:00
|
|
|
android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
|
2011-07-25 15:21:22 -07:00
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:launchMode="singleTop"
|
|
|
|
android:taskAffinity="com.android.systemui.net"
|
|
|
|
android:excludeFromRecents="true" />
|
|
|
|
|
2014-07-08 18:07:36 -07:00
|
|
|
<!-- started from MediaProjectionManager -->
|
|
|
|
<activity
|
|
|
|
android:name=".media.MediaProjectionPermissionActivity"
|
|
|
|
android:exported="true"
|
2014-11-25 21:11:19 +01:00
|
|
|
android:theme="@style/Theme.AlertDialogHost"
|
2014-07-08 18:07:36 -07:00
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:launchMode="singleTop"
|
|
|
|
android:excludeFromRecents="true" />
|
|
|
|
|
2015-12-17 13:39:39 -08:00
|
|
|
<!-- started from PipUI -->
|
|
|
|
<activity
|
2016-10-18 18:56:24 -07:00
|
|
|
android:name=".pip.tv.PipMenuActivity"
|
2015-12-17 13:39:39 -08:00
|
|
|
android:exported="true"
|
|
|
|
android:theme="@style/PipTheme"
|
|
|
|
android:launchMode="singleTop"
|
2016-02-15 11:46:20 +09:00
|
|
|
android:taskAffinity=""
|
2016-07-18 13:50:33 +09:00
|
|
|
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection"
|
2016-02-23 10:02:58 -08:00
|
|
|
android:resizeableActivity="true"
|
2015-12-17 13:39:39 -08:00
|
|
|
android:supportsPictureInPicture="true"
|
|
|
|
androidprv:alwaysFocusable="true"
|
|
|
|
android:excludeFromRecents="true" />
|
|
|
|
<activity
|
2016-10-18 18:56:24 -07:00
|
|
|
android:name=".pip.tv.PipOverlayActivity"
|
2015-12-17 13:39:39 -08:00
|
|
|
android:exported="true"
|
|
|
|
android:theme="@style/PipTheme"
|
2016-02-15 11:46:20 +09:00
|
|
|
android:taskAffinity=""
|
2016-07-18 13:50:33 +09:00
|
|
|
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|layoutDirection"
|
2016-02-23 10:02:58 -08:00
|
|
|
android:resizeableActivity="true"
|
2015-12-17 13:39:39 -08:00
|
|
|
android:supportsPictureInPicture="true"
|
|
|
|
android:excludeFromRecents="true" />
|
2016-01-20 19:21:08 +09:00
|
|
|
<activity
|
2016-10-18 18:56:24 -07:00
|
|
|
android:name=".pip.tv.PipOnboardingActivity"
|
2016-01-20 19:21:08 +09:00
|
|
|
android:exported="true"
|
|
|
|
android:theme="@style/PipTheme"
|
|
|
|
android:launchMode="singleTop"
|
|
|
|
android:excludeFromRecents="true" />
|
2015-12-17 13:39:39 -08:00
|
|
|
|
2016-11-02 18:11:36 -07:00
|
|
|
<activity
|
|
|
|
android:name=".pip.phone.PipMenuActivity"
|
|
|
|
android:theme="@style/PipPhoneOverlayControlTheme"
|
|
|
|
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
|
|
|
|
android:excludeFromRecents="true"
|
|
|
|
android:exported="false"
|
|
|
|
android:resizeableActivity="true"
|
|
|
|
android:supportsPictureInPicture="true"
|
|
|
|
android:stateNotNeeded="true"
|
|
|
|
android:taskAffinity=""
|
2016-12-16 16:20:16 -08:00
|
|
|
android:launchMode="singleTop"
|
2016-11-02 18:11:36 -07:00
|
|
|
androidprv:alwaysFocusable="true" />
|
|
|
|
|
2013-09-16 10:16:49 -04:00
|
|
|
<!-- platform logo easter egg activity -->
|
|
|
|
<activity
|
|
|
|
android:name=".DessertCase"
|
|
|
|
android:exported="true"
|
|
|
|
android:label="@string/dessert_case"
|
2013-09-26 00:24:57 -04:00
|
|
|
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
|
2013-09-16 10:16:49 -04:00
|
|
|
android:hardwareAccelerated="true"
|
|
|
|
android:launchMode="singleInstance"
|
2013-10-15 00:17:25 -04:00
|
|
|
android:screenOrientation="locked"
|
|
|
|
android:process=":sweetsweetdesserts"
|
2013-09-16 10:16:49 -04:00
|
|
|
android:excludeFromRecents="true">
|
|
|
|
<intent-filter>
|
|
|
|
<action android:name="android.intent.action.MAIN" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
2014-09-14 16:28:58 -04:00
|
|
|
</intent-filter>
|
|
|
|
</activity>
|
|
|
|
|
2015-08-13 13:30:55 -04:00
|
|
|
<activity android:name=".egg.MLandActivity"
|
|
|
|
android:theme="@android:style/Theme.Material.NoActionBar"
|
2014-09-14 16:28:58 -04:00
|
|
|
android:exported="true"
|
2015-08-13 13:30:55 -04:00
|
|
|
android:icon="@drawable/icon"
|
|
|
|
android:label="@string/mland"
|
2014-09-14 16:28:58 -04:00
|
|
|
android:hardwareAccelerated="true"
|
|
|
|
android:launchMode="singleInstance"
|
2015-05-15 15:08:34 -04:00
|
|
|
android:screenOrientation="locked"
|
|
|
|
android:process=":sweetsweetdesserts"
|
|
|
|
android:excludeFromRecents="true">
|
|
|
|
<intent-filter>
|
|
|
|
<action android:name="android.intent.action.MAIN"/>
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
2013-09-16 10:16:49 -04:00
|
|
|
</intent-filter>
|
|
|
|
</activity>
|
|
|
|
|
|
|
|
<!-- a gallery of delicious treats -->
|
|
|
|
<service
|
|
|
|
android:name=".DessertCaseDream"
|
|
|
|
android:exported="true"
|
|
|
|
android:label="@string/dessert_case"
|
2014-06-25 17:46:15 -04:00
|
|
|
android:permission="android.permission.BIND_DREAM_SERVICE"
|
2013-09-16 10:16:49 -04:00
|
|
|
android:enabled="false"
|
2013-10-15 00:17:25 -04:00
|
|
|
android:process=":sweetsweetdesserts"
|
2013-09-16 10:16:49 -04:00
|
|
|
>
|
|
|
|
<intent-filter>
|
|
|
|
<action android:name="android.service.dreams.DreamService" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
</intent-filter>
|
|
|
|
</service>
|
|
|
|
|
2014-03-14 17:25:20 +01:00
|
|
|
<service
|
|
|
|
android:name=".keyguard.KeyguardService"
|
2014-04-22 12:39:26 +09:00
|
|
|
android:exported="true"
|
|
|
|
android:enabled="@bool/config_enableKeyguardService" />
|
2014-03-14 17:25:20 +01:00
|
|
|
|
2012-09-06 01:22:59 -04:00
|
|
|
<activity android:name=".Somnambulator"
|
|
|
|
android:label="@string/start_dreams"
|
2012-10-26 15:11:53 -04:00
|
|
|
android:icon="@mipmap/ic_launcher_dreams"
|
2012-09-06 01:22:59 -04:00
|
|
|
android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
|
|
|
|
android:exported="true"
|
|
|
|
android:excludeFromRecents="true"
|
|
|
|
>
|
2012-10-04 15:03:22 -04:00
|
|
|
<!--
|
2012-09-06 01:22:59 -04:00
|
|
|
<intent-filter>
|
|
|
|
<action android:name="android.intent.action.CREATE_SHORTCUT" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
</intent-filter>
|
2012-10-04 15:03:22 -04:00
|
|
|
-->
|
2012-09-28 11:28:09 -04:00
|
|
|
<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>
|
2012-09-06 01:22:59 -04:00
|
|
|
</activity>
|
2014-06-17 13:58:31 -04:00
|
|
|
|
2014-07-14 16:19:38 -07:00
|
|
|
<activity
|
|
|
|
android:name=".settings.BrightnessDialog"
|
|
|
|
android:label="@string/quick_settings_brightness_dialog_title"
|
2014-08-12 22:25:35 +02:00
|
|
|
android:theme="@android:style/Theme.DeviceDefault.Dialog"
|
2014-07-14 16:19:38 -07:00
|
|
|
android:finishOnCloseSystemDialogs="true"
|
|
|
|
android:launchMode="singleInstance"
|
|
|
|
android:excludeFromRecents="true"
|
|
|
|
android:exported="true">
|
|
|
|
<intent-filter>
|
|
|
|
<action android:name="android.intent.action.SHOW_BRIGHTNESS_DIALOG" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
</intent-filter>
|
|
|
|
</activity>
|
2014-06-17 13:58:31 -04:00
|
|
|
|
2014-08-25 12:19:41 -04:00
|
|
|
<!-- Doze with notifications, run in main sysui process for every user -->
|
2014-06-17 13:58:31 -04:00
|
|
|
<service
|
|
|
|
android:name=".doze.DozeService"
|
2014-06-25 17:46:15 -04:00
|
|
|
android:exported="true"
|
2014-08-25 12:19:41 -04:00
|
|
|
android:singleUser="true"
|
2014-06-25 17:46:15 -04:00
|
|
|
android:permission="android.permission.BIND_DREAM_SERVICE" />
|
2015-07-16 08:58:15 -04:00
|
|
|
|
|
|
|
<receiver
|
|
|
|
android:name=".tuner.TunerService$ClearReceiver"
|
|
|
|
android:exported="false">
|
|
|
|
<intent-filter>
|
|
|
|
<action android:name="com.android.systemui.action.CLEAR_TUNER" />
|
|
|
|
</intent-filter>
|
|
|
|
</receiver>
|
2016-04-01 14:37:32 +01:00
|
|
|
|
|
|
|
<receiver
|
|
|
|
android:name=".statusbar.KeyboardShortcutsReceiver">
|
|
|
|
<intent-filter>
|
2016-04-14 18:11:57 +01:00
|
|
|
<action android:name="android.intent.action.DISMISS_KEYBOARD_SHORTCUTS" />
|
2016-04-01 14:37:32 +01:00
|
|
|
<action android:name="android.intent.action.SHOW_KEYBOARD_SHORTCUTS" />
|
|
|
|
</intent-filter>
|
|
|
|
</receiver>
|
2010-04-08 16:41:23 -05:00
|
|
|
</application>
|
|
|
|
</manifest>
|