Commit Graph

3497 Commits

Author SHA1 Message Date
Svetoslav
8e3feb15c5 Added accessibility APIs for introspecting interactive windows.
1. The old introspection model was allowing querying only the active window
   which is the one the user is touching or the focused one if no window is
   touched. This was limiting as auto completion drop downs were not inspectable,
   there was not way to know when the IME toggles, non-focusable windows were
   not inspectable if the user taps them as until a screen-reader starts
   introspecting the users finger is up, accessibility focus was limited to
   only one window and the user couldn't use gestures to visit the whole UI,
   and other things I can't remember right now.

   The new APIs allow getting all interactive windows, i.e. ones that a
   sighted user can interact with. This prevents an accessibility service
   from interacting with content a sighter user cannot. The list of windows
   can be obtained from an accessibility service or the host window from an
   accessibility node info. Introspecting windows obey the same rules for
   introspecting node, i.e. the service has to declare this capability
   in its manifest.

   When some windows change accessibility services receive a new type
   of event. Initially the types of windows is very limited. We provide
   the bounds in screen, layer, and some other properties which are
   enough for a client to determined the spacial and hierarchical
   relationship of the windows.

2. Update the documentation in AccessibilityService for newer event types.

3. LongArray was not removing elements properly.

4. Composite accessibility node ids were not properly constructed as they
   are composed of two ints, each taking 32 bits. However, the values for
   undefined were -1 so composing a 64 long from -1, -1 prevents from getting
   back these values when unpacking.

5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added
   a check that enforces such trees to be well formed on dev builds.

6. Removed an necessary code for piping the touch exploration state to
   the policy as it should just use the AccessibilityManager from context.

7. When view's visibility changed it was not firing an event to notify
   clients it disappeared/appeared. Also ViewGroup was sending accessibility
   events for changes if the view is included for accessibility but this is
   wrong as there may be a service that want all nodes, hence events from them.
   The accessibility manager service takes care of delivering events from
   not important for accessibility nodes only to services that want such.

8. Several places were asking for prefetching of sibling but not predecessor
   nodes which resulted in prefetching of unconnected subtrees.

9. The local AccessibilityManager implementation was relying on the backing
   service being ready when it is created but it can be fetched from a context
   before that. If that happens the local manager was in a broken state forever.
   Now it is more robust and starts working properly once the backing service
   is up. Several places were lacking locking.

bug:13331285

Change-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8
2014-03-20 16:52:59 +00:00
John Spurlock
1af30c7ac4 Add stream-level suppression to vibrate/audio services.
- Add new audio restriction layer to app-ops.  Restrictions add
additional constraints to audio operations at a stream-level.
Restrictions do not affect the persistable state, and are purely
additive: that is, they can only impose additional contstraints, not
enable something that has already been disabled.  Restrictions
also support a whitelisted set of exempt package names.

- Add new audio stream-level checks to app-ops.

- Implement a provisional OP_PLAY_AUDIO suppression to three
java entry points MediaPlayer, AudioTrack, & SoundPool.

- Enhance vibrator api to take stream information as an optional
hint - the constants correspond to AudioManager stream types.
OP_VIBRATE now supports the stream-level restriction check.

- Simplify Vibrator subclasses by adding default implementations
for two .vibrate calls.

- Migrate NoMan's zen-mode control to use the new app-ops
stream-level restriction mechanism.

Change-Id: Ifae8952647202f728cf1c73e881452660c704678
2014-03-19 15:32:51 -04:00
Kenny Guy
ecc9f9b6f3 Merge "Add flag to allow fetching related users recent tasks." 2014-03-18 11:43:46 +00:00
Kenny Guy
82326a98a4 Add flag to allow fetching related users recent tasks.
Fetch related users recent tasks along with requested users
tasks when flag is set
Set flag in requests coming from systemui/recents.

Change-Id: I985e2d9d6b9728603685fc6126e8193af119e172
2014-03-17 19:45:17 +00:00
Dianne Hackborn
4c1d506d7b Merge "Start enforcing explicit intents for Context.bindService()" 2014-03-17 19:30:43 +00:00
Dianne Hackborn
10ad98223f Start enforcing explicit intents for Context.bindService()
No longer prints a warning, now throws an exception.

Also fix a bug in UserManagerService that was causing an
exception while booting.

Change-Id: I3b43cfe08067da840b6850b9bed58664d36d34f1
2014-03-17 11:28:36 -07:00
Jessica Hummel
03dd22079c Standardize the provisioning intent action.
Change-Id: Iea7f8827cf4b52e2e97e8675687412108dd917e4
2014-03-17 16:53:27 +00:00
John Spurlock
30672787d2 am dc28dc63: am 399cac5b: am 75985bbe: am 62826f55: am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit 'dc28dc63a7c04dcb87e257700a1d7aea40de0ce3':
  Fix doc typos in AppOpsManager.java
2014-03-14 17:53:53 +00:00
John Spurlock
399cac5b33 am 75985bbe: am 62826f55: am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit '75985bbe2f04519cc663db7ad54e8e69f3eabfc0':
  Fix doc typos in AppOpsManager.java
2014-03-14 16:32:24 +00:00
John Spurlock
75985bbe2f am 62826f55: am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit '62826f55be4415684b4e321469298ba43d598bbb':
  Fix doc typos in AppOpsManager.java
2014-03-14 16:28:15 +00:00
Jose Lima
92703e62c1 resolved conflicts for merge of 4882ddfa to master
Change-Id: I179899697c148ac34a67b195e2dbd3df2f9138de
2014-03-13 21:26:48 -07:00
John Spurlock
62826f55be am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit 'f6228d95eae7b05dd0015b3062e72c89148e65a2':
  Fix doc typos in AppOpsManager.java
2014-03-13 22:14:57 +00:00
Chad Brubaker
7f68f7f4a1 am f5729a6a: am 1011960c: am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev
* commit 'f5729a6a1573ba27f69a5c5dc144be3f8f60b026':
  Add the calling package name to requestRouteToHost
2014-03-13 18:22:57 +00:00
Chad Brubaker
f5729a6a15 am 1011960c: am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev
* commit '1011960c44a4f84d53d05199fe1ca09be9473822':
  Add the calling package name to requestRouteToHost
2014-03-13 18:18:36 +00:00
Craig Mautner
aea74a5977 Add Lock Task Mode.
When in lock task mode only the specified task may run. All
attempts to switch to another task are ignored until the task
finishes or a call to stopLockTaskMode() is made.

Change-Id: I6cfe92fe1bcf22cd47b5398c08e23c52a4092dda
2014-03-13 11:09:13 -07:00
Jose Lima
53ac5ef214 am 91726f4e: Merge "Add banner attribute to app manifest" into klp-modular-dev
* commit '91726f4ea7b60025490209ccb2637d712e8d75fd':
  Add banner attribute to app manifest
2014-03-13 18:02:50 +00:00
Jose Lima
f78e312db2 Add banner attribute to app manifest
Change-Id: I28b0dc6dee9623ec7534bb0e741b88f439b48c9f
2014-03-12 18:07:38 -07:00
Jeff Brown
825dd9dd38 am 73bd57f7: Merge "Retain display when creating specialized contexts. (DO NOT MERGE)" into klp-dev
* commit '73bd57f7abdb9eaf9239aa13945990acc6c97cd2':
  Retain display when creating specialized contexts. (DO NOT MERGE)
2014-03-13 00:15:19 +00:00
Jeff Brown
73bd57f7ab Merge "Retain display when creating specialized contexts. (DO NOT MERGE)" into klp-dev 2014-03-13 00:12:53 +00:00
Jeff Brown
ec463b96e1 resolved conflicts for merge of cc9894c8 to klp-modular-dev-plus-aosp
Change-Id: I0fa4486ed300a35de3af8748e01300b01f03ec01
2014-03-11 21:01:49 -07:00
Jeff Brown
f86c3a44f2 Retain display when creating specialized contexts. (DO NOT MERGE)
Fixed a bug that cause Context.createPackageContext() to discard
display information.  Likewise also fixes issues where the
activity token, override configuration, user handle, and
restriction state might be discarded.

As part of this change, reworked how Contexts are created to make
initialization easier to understand and less error-prone.
The init() methods have been removed and most of the state is
now stored in final variables.

Bug: 12015587
Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
2014-03-11 20:43:52 -07:00
Jeff Brown
f08ea09fc0 Merge "Retain display when creating specialized contexts." 2014-03-12 03:43:17 +00:00
Jeff Brown
089886058a Retain display when creating specialized contexts. (DO NOT MERGE)
Fixed a bug that cause Context.createPackageContext() to discard
display information.  Likewise also fixes issues where the
activity token, override configuration, user handle, and
restriction state might be discarded.

As part of this change, reworked how Contexts are created to make
initialization easier to understand and less error-prone.
The init() methods have been removed and most of the state is
now stored in final variables.

Bug: 12015587
Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
2014-03-11 19:30:22 -07:00
Jeff Brown
defd4a6b04 Retain display when creating specialized contexts.
Fixed a bug that cause Context.createPackageContext() to discard
display information.  Likewise also fixes issues where the
activity token, override configuration, user handle, and
restriction state might be discarded.

As part of this change, reworked how Contexts are created to make
initialization easier to understand and less error-prone.
The init() methods have been removed and most of the state is
now stored in final variables.

Bug: 12015587
Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
2014-03-11 19:30:00 -07:00
RoboErik
1ebd4ad6cd Fix SDK build
Change-Id: I4bf73294cc9d970e17d1cddb840b53cc42155d14
2014-03-11 15:44:40 -07:00
Chad Brubaker
1011960c44 am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev
* commit 'decfd7079b622f9135aeb8f7b2ec48005c844c38':
  Add the calling package name to requestRouteToHost
2014-03-11 19:22:39 +00:00
Winson Chung
303e1ff1fe Initial changes for recents.
Change-Id: Ide2c202b4a5b25410f0f32bd0a81ccf817ede38f
2014-03-11 12:03:08 -07:00
Jessica Hummel
f72078bdc5 Move the provisioning intents to DevicePolicyManager.
Change-Id: Ibde867b193e64c1fda8d9c84b0d1be36a1592035
2014-03-11 18:05:29 +00:00
Chad Brubaker
decfd7079b Merge "Add the calling package name to requestRouteToHost" into klp-dev 2014-03-11 17:51:45 +00:00
John Spurlock
925b85eae8 Fix doc typos in AppOpsManager.java
Change-Id: I3c930a2afce48c57570681a95595149df5158053
2014-03-10 16:52:11 -04:00
John Spurlock
fc558d56c2 Fix compiler warning in Activity.java.
Otherwise appears in frameworks/base build output.

Change-Id: Id4ee4f01ba8026b2629f4c3b30c7152d9bdcfc64
2014-03-10 09:56:00 -04:00
Jessica Hummel
df897d08ce Merge "Extend DeviceAdminReceiver to receive provisioning complete broadcast." 2014-03-10 09:29:25 +00:00
Dave Allison
2d3ddc2ba9 am 199670c4: am 324aa693: am b94904ab: am 3fc3b9fd: Merge "ART profiler usage."
* commit '199670c46a9950bd2e06af43ea082427b542060a':
  ART profiler usage.
2014-03-08 07:26:41 +00:00
Dave Allison
324aa693b8 am b94904ab: am 3fc3b9fd: Merge "ART profiler usage."
* commit 'b94904ab6dfbb9db7e8042f10886042a295857d4':
  ART profiler usage.
2014-03-08 01:56:29 +00:00
Dave Allison
0efbd9a463 ART profiler usage.
This is a change to add args to some of the profiler related
functions, including installd commands.

Also read properties and set command line options for the runtime
profiling parameters.

Changed calls to isDexOptNeeded() to isDexOptNeededInternal().  This
needs additional arguments passed for profiles.

Bug: 12877748
Change-Id: I1a426c9309d760bac0cf92daa298defee62287c1

Conflicts:
	core/jni/AndroidRuntime.cpp
2014-03-07 12:32:44 -08:00
Narayan Kamath
ca35c18a37 am cd4874cf: am d265bcc4: Merge "Inform libcore of time format pref. changes."
* commit 'cd4874cfdc00d17454529b5dca85a487c7c2de77':
  Inform libcore of time format pref. changes.
2014-03-07 16:11:29 +00:00
Chris Wren
148a965c81 am d1862dac: am 111e981d: am 70d5ed26: Merge "use relative positioning for notification actions" into klp-dev
* commit 'd1862dac05e4302761c8d741a3286fe5eb6f1174':
  use relative positioning for notification actions
2014-03-07 15:17:49 +00:00
Chris Wren
d1862dac05 am 111e981d: am 70d5ed26: Merge "use relative positioning for notification actions" into klp-dev
* commit '111e981dc7f7d62647d6aa5e6c44cfd13af53608':
  use relative positioning for notification actions
2014-03-07 15:15:08 +00:00
Chris Wren
111e981dc7 am 70d5ed26: Merge "use relative positioning for notification actions" into klp-dev
* commit '70d5ed269268c1da6169b49b555d7295ac5d6763':
  use relative positioning for notification actions
2014-03-07 15:10:47 +00:00
Jorim Jaggi
2d171a5bce Merge "Change appearance of notifications to light theme." 2014-03-07 14:07:07 +00:00
Narayan Kamath
ccb2a086fe Inform libcore of time format pref. changes.
- Introduce a boolean extra for intent TIME_CHANGED that
  specifies if the user wants a 24 hour format or not.
- Have the ActivityManagerService inform running processes
  of changes to this preference.
- Add plumbing in ActivityThread to inform j.t.DateFormat

(cherry-picked from dd491cc756233c088fd26eba4918671fcc9cfc30)

Change-Id: Ib90636bda4bc8332cfa22def831877b524b5c486
2014-03-07 13:55:23 +00:00
Narayan Kamath
27ad525c7e Inform libcore of time format pref. changes.
- Introduce a boolean extra for intent TIME_CHANGED that
  specifies if the user wants a 24 hour format or not.
- Have the ActivityManagerService inform running processes
  of changes to this preference.
- Add plumbing in ActivityThread to inform j.t.DateFormat

Change-Id: I05fafb903ae54e39c03a048b7a219dc5a93fd472
2014-03-07 13:48:04 +00:00
Jorim Jaggi
39fa59fc49 Change appearance of notifications to light theme.
Change-Id: Ic15e96582d6b46b4dc195b1c7c0cef38f25f0d38
2014-03-07 14:34:17 +01:00
Chris Wren
be63a95d2b use relative positioning for notification actions
Bug: 10531101
Change-Id: Ia1d7cac880f620a9760271344edf920caf0d852d
2014-03-06 14:55:23 -05:00
Jessica Hummel
8cdb6fcd9b Extend DeviceAdminReceiver to receive provisioning complete broadcast.
The managed profile provisioning app completes provisioning (creating the profile, installing the mdm on the secondary user, setting the mdm as the profile owner, removing unneeded apps from secondary user, removing mdm from the primary user). Then it sends a notification that the provisioning has completed across to the new profile. If the mdm, which is now installed on the profile wants to be notified that provisioning has completed it needs to implement this callback method.

Change-Id: I75f2d6d19709fd39aa867f1254e0c37a0c936222
2014-03-06 17:23:03 +00:00
Griff Hazen
5ab311550f am 6daf22ca: am 47826bfa: am c748341a: Merge "Add addExtras and getExtras to Notification.Builder." into klp-modular-dev
* commit '6daf22ca7680261e07dfd298a43d6e473e6c06f6':
  Add addExtras and getExtras to Notification.Builder.
2014-03-06 02:57:21 +00:00
Griff Hazen
47826bfa16 am c748341a: Merge "Add addExtras and getExtras to Notification.Builder." into klp-modular-dev
* commit 'c748341af5616e183303dbe3267627a7f08aea37':
  Add addExtras and getExtras to Notification.Builder.
2014-03-06 02:19:38 +00:00
Griff Hazen
720042b72f Add addExtras and getExtras to Notification.Builder.
addExtras allows merging with exiting set extras instead of replacing
them. This matches the similar function putExtras in Intent.

Both functions are useful for multi-stage notification building logic.

Change-Id: Ice3e4a53ec05b7129ebdac14e2084163946273a4
2014-03-05 18:00:57 -08:00
Chad Brubaker
18dd015e6e Add the calling package name to requestRouteToHost
The calling package name will be used to check if an application is a
system application when deciding if a route should be exempt from VPN
routing rules.

Bug: 12937545
Change-Id: I2c09c875fe9bb9685871a0a801ddcbb32fc17405
2014-03-05 13:35:20 -08:00
Will Haldean Brown
568628dc2c Manually merge commit '2faf28cf' into master
Original commit message:

  Add swipe-to-dismiss support to PhoneWindow.

  This adds a new window feature -- FEATURE_SWIPE_TO_DISMISS -- and a
  theme attribute to activate that feature. When the feature is
  activated, a SwipeDismissLayout is inflated as the DecorView layout.
  SwipeDismissLayout intercepts touch events and steals ones that are
  large swipes to the right if its children don't. PhoneWindow
  registers handlers that listen for these swipe events, translate the
  window when necessary, and finish the activity at the end of the
  gesture.

Conflicts:
	core/java/android/view/Window.java
	core/res/res/values/attrs.xml

Change-Id: I943290b436864ca4a1bd401b88d696e08c921cdd
2014-03-04 15:25:43 -08:00