Commit Graph

2913 Commits

Author SHA1 Message Date
Svetoslav
3ba01a7cc3 am 9d02928e: am 14c8c741: Merge "Adding APIs for an accessibility service to intercept key events." into jb-mr2-dev
* commit '9d02928e4349cecfa14e195d3d6f40e68c5fc468':
  Adding APIs for an accessibility service to intercept key events.
2013-04-11 22:51:09 -07:00
Svetoslav
14c8c741f7 Merge "Adding APIs for an accessibility service to intercept key events." into jb-mr2-dev 2013-04-12 05:45:43 +00:00
Dianne Hackborn
8773a5c52e am 26c702c3: am ba880da4: Merge "Fix issue #7643046: Activity.getCallingPackage() bogusly returns null..." into jb-mr2-dev
* commit '26c702c395fbbd833c2ae8d155ed4605b36c5472':
  Fix issue #7643046: Activity.getCallingPackage() bogusly returns null...
2013-04-11 18:36:34 -07:00
Dianne Hackborn
ba880da44c Merge "Fix issue #7643046: Activity.getCallingPackage() bogusly returns null..." into jb-mr2-dev 2013-04-12 01:29:14 +00:00
Dianne Hackborn
7b92467179 Fix issue #7643046: Activity.getCallingPackage() bogusly returns null...
...after having to recreate the task stack

Change-Id: Ia354240f3650ddb578f2116a2aa4584e9ffe8508
2013-04-11 18:12:56 -07:00
Dianne Hackborn
042a5b0a59 am bc708d8b: am c309ca46: Merge "Fix issue #8582003: Evernote Camera Capture Failure" into jb-mr2-dev
* commit 'bc708d8b9d8ac4d1a9a02c3d547364364114ddad':
  Fix issue #8582003: Evernote Camera Capture Failure
2013-04-11 18:05:17 -07:00
Dianne Hackborn
b57a50bd16 Fix issue #8582003: Evernote Camera Capture Failure
ActivityThread.currentPackageName() was actually returning
the process name.  Change this to return the package name, and
fix the one spot using it I could find that was actually wanting
the process name.

Change-Id: I323b9c5987106b5a090968e545281fc0ba55b6b8
2013-04-11 17:29:32 -07:00
Svetoslav
c4fccd183f Adding APIs for an accessibility service to intercept key events.
Now that we have gestures which are detected by the system and
interpreted by an accessibility service, there is an inconsistent
behavior between using the gestures and the keyboard. Some devices
have both. Therefore, an accessibility service should be able to
interpret keys in addition to gestures to provide consistent user
experience. Now an accessibility service can expose shortcuts for
each gestural action.

This change adds APIs for an accessibility service to observe and
intercept at will key events before they are dispatched to the
rest of the system. The service can return true or false from its
onKeyEvent to either consume the event or to let it be delivered
to the rest of the system. However, the service will *not* be
able to inject key events or modify the observed ones.

Previous ideas of allowing the service to say it "tracks" the event
so the latter is not delivered to the system until a subsequent
event is either "handled" or "not handled" will not work. If the
service tracks a key but no other key is pressed essentially this
key is not delivered to the app and at potentially much later point
this stashed event will be delivered in maybe a completely different
context.The correct way of implementing shortcuts is a combination
of modifier keys plus some other key/key sequence. Key events already
contain information about which modifier keys are down as well as
the service can track them as well.

bug:8088812

Change-Id: I81ba9a7de9f19ca6662661f27fdc852323e38c00
2013-04-11 16:00:08 -07:00
Jaikumar Ganesh
85ff1431e0 am ea4f556f: am 651f99cb: Merge "Sensor values changes." into jb-mr2-dev
* commit 'ea4f556f707678aa4d4be3f60b1dc34380f9f15a':
  Sensor values changes.
2013-04-11 10:56:18 -07:00
Jaikumar Ganesh
6d0c1d78f1 Sensor values changes.
1. Remove Sensor Event Pool.
2. Allocate fixed array values for each Sensor added.
   - Needed for backward compatibility.
3. Use SDK checks for backward compatibility for
   rotation vector.

b/8165631

Change-Id: I2d2cf10d3460478ed7af8e6188343f4bb033503c
2013-04-11 10:25:35 -07:00
Jamie Gennis
097fc7ef72 am bb2e031a: am 65b08486: Merge "Add APIs for application-generated systrace events" into jb-mr2-dev
* commit 'bb2e031ace9072a0bd71f6316269f3060f04aa27':
  Add APIs for application-generated systrace events
2013-04-09 15:39:55 -07:00
Jamie Gennis
f9c7d6bc15 Add APIs for application-generated systrace events
This change adds new APIs to enable applications to generate custom Systrace
begin/end events.  Application-generated events use the ATRACE_APP_TAG tag,
which is enabled only if either the application has declared itself debuggable
in its manifest or ro.debuggable is set to 1 on the device.

Change-Id: I311d09e2e6ed1a30f5ffa84907f250e11cc0d48d
2013-04-09 11:59:43 -07:00
Dianne Hackborn
875422153d resolved conflicts for merge of e9b4ee69 to master
Change-Id: Id752ae94f63a66b2ec200f68c73bf0d7b04b249f
2013-04-09 11:56:06 -07:00
Dianne Hackborn
558a3c1b7b Merge "Kill processes when permissions are revoked." into jb-mr2-dev 2013-04-09 17:38:00 +00:00
Dianne Hackborn
f1b782427f Kill processes when permissions are revoked.
Some permissions are associated with gids, so we need to
kill any running processes if their permission is revoked.
We will do this for any permission being revoked, since
the association between gids and permissions can change
over time.

Change-Id: Ieb7408e032539c4f21eb089d65a7a7e6c289f010
2013-04-08 22:28:59 -07:00
Jeff Brown
b437a79b05 resolved conflicts for merge of 21dffd5d to master
Change-Id: I37c48dee471c9d43f19c1fe4a01f70db53e2441f
2013-04-08 19:05:15 -07:00
Jeff Brown
3a2854bcee Merge "Queues, queues, queues and input." into jb-mr2-dev 2013-04-08 23:59:24 +00:00
Jeff Brown
f9e989d5f0 Queues, queues, queues and input.
Redesigned how ViewRootImpl delivers input events to views,
the IME and to native activities to fix several issues.

The prior change to make IME input event delegation use
InputChannels failed to take into account that InputMethodManager
is a singleton attached to the main looper whereas UI may be
attached to any looper.  Consequently interactions with the
InputChannel might occur on the wrong thread.  Fixed this
problem by checking the current thread and posting input
events or callbacks to the correct looper when necessary.

NativeActivity has also been broken for a while because the
default event handling logic for joysticks and touch navigation
was unable to dispatch events back into the native activity.
In particular, this meant that DPad synthesis from touch navigation
would not work in any native activity.  The plan is to fix
this problem by passing all events through ViewRootImpl as usual
then forwarding them to native activity as needed.  This should
greatly simplify IME pre-dispatch and system key handling
and make everything more robust overall.

Fixed issues related to when input events are synthesized.
In particular, added a more robust mechanism to ensure that
synthetic events are canceled appropriately when we discover
that events are no longer being resynthesized (because the
application or IME is handling or dropping them).

The new design is structured as a pipeline with a chain of
responsibility consisting of InputStage objects.  Each InputStage
is responsible for some part of handling each input event
such as dispatching to the view hierarchy or to the IME.
As a stage processes an input event, it has the option of
finishing the event, forwarding the event to the next stage
or handling the event asynchronously.  Some queueing logic
takes care to ensure that events are forwarded downstream in
the correct order even if they are handled out of order
by a given stage.

Cleaned up the InputMethodManager singleton initialization logic
to make it clearer that it must be attached to the main looper.
We don't actually need to pass this looper around.

Deleted the LatencyTimer class since no one uses it and we have
better ways of measuring latency these days using systrace.

Added a hidden helper to Looper to determine whether the current
thread is the indicated Looper thread.

Note: NativeActivity's IME dispatch is broken by this patch.
This will be fixed later in another patch.

Bug: 8473020
Change-Id: Iac2a1277545195a7a0137bbbdf04514c29165c60
2013-04-08 15:31:47 -07:00
Daniel Sandler
24670fada2 am 11c6b669: am 26c13439: Set FLAG_SHOW_LIGHTS if *either* on or off is nonzero.
* commit '11c6b669232d48d76a07a5dccb9042f2f5e037b2':
  Set FLAG_SHOW_LIGHTS if *either* on or off is nonzero.
2013-04-08 08:21:13 -07:00
Daniel Sandler
26c1343984 Set FLAG_SHOW_LIGHTS if *either* on or off is nonzero.
Previously they each had to be nonzero, which prevented
using the builder methods to create solid-on LED
notifications.

Change-Id: I30314ec33daa28ee2e1f0b87a184c3540254471c
2013-04-08 14:44:28 +00:00
Kenny Root
99db7379d0 am f1b2c348: am 8b51475c: Revert "Remove AndroidKeyStore from API"
* commit 'f1b2c34819ff65ba14af5eb4eeba06196ee978d3':
  Revert "Remove AndroidKeyStore from API"
2013-04-06 10:13:11 -07:00
Kenny Root
8b51475c97 Revert "Remove AndroidKeyStore from API"
This reverts commit ce24985ad6.

Change-Id: I02d6492c8db869619694c7209bb37522a7ec5a29
2013-04-06 10:05:31 -07:00
Adam Powell
d7fd69c045 am dddd59ff: am e0e2f4fd: Fix accessibility in action bars and add extra customization
* commit 'dddd59ff63c3121b53e790bb20b5b5d735036c30':
  Fix accessibility in action bars and add extra customization
2013-04-05 16:57:56 -07:00
Adam Powell
e0e2f4fd3a Fix accessibility in action bars and add extra customization
Fix a bug where the content description of the big unified Home/Up
button was not getting set properly.

Add the ability to change the home-as-up glyph from ActionBar.

Add the ability to set a custom action description for the home-as-up
button, useful if the above functionality is used.

Bug 8548229

Change-Id: I0635799772c7234b68247dfc105dce7f11acda32
2013-04-05 16:46:22 -07:00
John Spurlock
8740cb1da6 resolved conflicts for merge of 29211d3a to master
Change-Id: I9691f41b12fbf52d0ef35a9bf5223edef7afdfd2
2013-04-05 16:18:59 -04:00
Daniel Sandler
5feceebb89 New NotificationListenerService.
This is the best and only way for apps to listen for
notifications: create a NotificationListenerService, wait
for the NoMan to bind to you (as a result of the user
checking a box somewhere in Settings and agreeing to a
scary dialog box), and you'll start receiving notification
posted and dismissed callbacks. Your service, while enabled,
will also be able to clear one or all notifications.

Use this power wisely.

This change moves StatusBarNotification out of
com.android.internal into android.service.notification.
[Internal customers, including System UI and early users of
the system-only listener binder API, will need to be
updated.]

Bug: 8199624
Change-Id: I1be46f823d4b3ddc901109ec1e085cd6deb740c2
2013-04-05 19:54:44 +00:00
Jeff Sharkey
5c1994eeff am 04e740a6: am 0f8e8b03: Merge "Warn when exposing file:// Uris beyond a process." into jb-mr2-dev
* commit '04e740a65e2399c4a4b211408bd84f2d545d9f4a':
  Warn when exposing file:// Uris beyond a process.
2013-04-03 16:33:52 -07:00
Jeff Sharkey
a14acd20b8 Warn when exposing file:// Uris beyond a process.
Check for file:// Uris inside Intents, ClipData, Notifications and
RemoteViews when StrictMode option is enabled.

Also introduces Intent.prepareToLeaveProcess() to uniformly handle
Intents about to leave an app process.

Bug: 8529070
Change-Id: I8efb43877cbc5f21eb029fc6492b3ee1415059ef
2013-04-03 11:45:44 -07:00
kmccormick
e3855b5171 am 160c0059: am 257719ec: am cccf6e9b: am 9f0ed0ee: am 58db9597: am e4ca0650: am 31ed1722: Merge "Doc update: clarify dumpsys instructions" into jb-mr1.1-docs
* commit '160c0059f1499dbb7fdba7306f32227af7a15baa':
  Doc update: clarify dumpsys instructions
2013-03-29 16:23:53 -07:00
kmccormick
257719ec2a am cccf6e9b: am 9f0ed0ee: am 58db9597: am e4ca0650: am 31ed1722: Merge "Doc update: clarify dumpsys instructions" into jb-mr1.1-docs
* commit 'cccf6e9b85e7f9e5f404137dde5dbd9db937592b':
  Doc update: clarify dumpsys instructions
2013-03-29 16:18:40 -07:00
kmccormick
cccf6e9b85 am 9f0ed0ee: am 58db9597: am e4ca0650: am 31ed1722: Merge "Doc update: clarify dumpsys instructions" into jb-mr1.1-docs
* commit '9f0ed0ee508b8f2233c8834f067e2fb8275d2cfa':
  Doc update: clarify dumpsys instructions
2013-03-29 16:16:10 -07:00
kmccormick
9f0ed0ee50 am 58db9597: am e4ca0650: am 31ed1722: Merge "Doc update: clarify dumpsys instructions" into jb-mr1.1-docs
* commit '58db95970c9ba47dd83e06cc165d2dc5cc29ce8a':
  Doc update: clarify dumpsys instructions
2013-03-29 16:13:12 -07:00
kmccormick
f6dc107809 Doc update: clarify dumpsys instructions
"Bug: 8474578"

Change-Id: Ic743de8f41a1b2d38a4d2495148dc07e2f45b8e5
2013-03-29 16:01:31 -07:00
Matthew Xie
3f9560261f am e4eb23ec: am 84e594f7: Merge "Unhide Bluetooth Low Energy public APIs" into jb-mr2-dev
* commit 'e4eb23ecc232c508974976844df2ea8c44025fe9':
  Unhide Bluetooth Low Energy public APIs
2013-03-28 16:10:03 -07:00
Matthew Xie
ddf7e4756c Unhide Bluetooth Low Energy public APIs
Updated API headers. Add BluetoothManager to be retrieved by
context.getSystemService(Context.BLUETOOTH_SERVICE).
LE scan functions are placed in BluetoothAdapter
The GATT API are device driven instead of a profile-driver.
bug 8450158

Change-Id: I424a4cedaac3ef8120a05996500008dd210d2553
2013-03-28 15:36:10 -07:00
Craig Mautner
530da94727 am ad9f8791: am 54241a31: Merge "Add flag to method\'s javadoc." into jb-mr2-dev
* commit 'ad9f879139bdf37bdb745fcf9f909fa6cbcb1983':
  Add flag to method's javadoc.
2013-03-28 12:44:30 -07:00
Craig Mautner
54241a31e9 Merge "Add flag to method's javadoc." into jb-mr2-dev 2013-03-28 19:41:19 +00:00
Craig Mautner
ecbfe253fb Add flag to method's javadoc.
MOVE_TASK_NO_USER_ACTION was feeling neglected.

Change-Id: I1b8281878e99755ad9960904ba71b83ba3f05620
2013-03-28 11:58:25 -07:00
Dianne Hackborn
d734b4f285 am 6b8e7b35: am bf20aa76: Merge "Keep track of who has disabled applications." into jb-mr2-dev
* commit '6b8e7b35ef763d29a30c87a5a95ef941d39a8ee9':
  Keep track of who has disabled applications.
2013-03-27 16:40:49 -07:00
Dianne Hackborn
bf20aa767e Merge "Keep track of who has disabled applications." into jb-mr2-dev 2013-03-27 23:32:36 +00:00
Dianne Hackborn
3fa3c28a35 Keep track of who has disabled applications.
Change-Id: I2640d3dc2200b589e2beb42a43cc93efd090f06e
2013-03-27 12:01:52 -07:00
Dianne Hackborn
7666e015c9 am 084e6496: am 174d9078: am bfd15fa0: am 6b96e2f0: Merge "Two REMOVE_PROVIDER messages caused by race condition."
* commit '084e6496b32cc8e6ad742042f4a702e1c16e2e7d':
  Two REMOVE_PROVIDER messages caused by race condition.
2013-03-27 11:40:47 -07:00
Dianne Hackborn
174d90787c am bfd15fa0: am 6b96e2f0: Merge "Two REMOVE_PROVIDER messages caused by race condition."
* commit 'bfd15fa00557ea78567a30fe260dea62c37bd5a0':
  Two REMOVE_PROVIDER messages caused by race condition.
2013-03-27 11:37:08 -07:00
Jeff Brown
c5ebd80c43 am 901b77c6: am ca3d655d: Merge "Use input transport for communications between app and IME." into jb-mr2-dev
* commit '901b77c63bc707c5785a149975e2113a43e38ad6':
  Use input transport for communications between app and IME.
2013-03-26 19:48:23 -07:00
Jeff Brown
ca3d655d20 Merge "Use input transport for communications between app and IME." into jb-mr2-dev 2013-03-27 02:43:54 +00:00
Dianne Hackborn
bfd15fa005 am 6b96e2f0: Merge "Two REMOVE_PROVIDER messages caused by race condition."
* commit '6b96e2f0006b5c33973b3500d3bb72a8c7a3bd38':
  Two REMOVE_PROVIDER messages caused by race condition.
2013-03-26 17:46:21 -07:00
Guobin Zhang
9e3e526650 Two REMOVE_PROVIDER messages caused by race condition.
Fix a bug in unstable ContentProvider.
IllegalStateException: ref counts can't go to zero here: stable=0 unstable=0
IllegalStateException: unstable count < 0: -1

There is a race between main thread and background database thread. Main thread
is responsible for handling the REMOVE_PROVIDER message. Database thread starts
insert or query request again and again. acquireProvider in db thread will often
snatch provider from the jaws of death, sometime it fails to remove REMOVE_PROVIDER
which is already fired out from MessageQueue. But completeRemoveProvider in main
thread gets suspended when trying to execute the critical section. If db thread
released the provider before main thread resumes the execution, then two
REMOVE_PROVIDER messages will be executed.

Change-Id: I8588aa1d1a8bc444dcd2adf6f8bc3f055cebbdc4
Signed-off-by: Guobin Zhang <guobin.zhang@intel.com>
2013-03-27 00:17:27 +00:00
Jeff Brown
c28867a1d6 Use input transport for communications between app and IME.
The input method manager service now supplies an input channel for
communication while creating an IME session on behalf of the
application.

This change significanly reduces the overhead of IME event dispatch
by using a standard input channel to send input events rather than
using binder.  This results in fewer thread context switches
and fewer object allocations.

What's more, the IME may perform additional batching of the motion
events that it receives which may help it catch up if it is
getting behind while processing them.

Bug: 7984576
Bug: 8473020
Change-Id: Ibe26311edd0060cdcae80194f1753482e635786f
2013-03-26 15:42:39 -07:00
Amith Yamasani
a1535223fe am f3dc9f0a: am df5e9fe1: Merge "Device Owner, a special kind of device admin" into jb-mr2-dev
* commit 'f3dc9f0aa91d2785b715f251b144487ec1b57ecc':
  Device Owner, a special kind of device admin
2013-03-26 15:31:33 -07:00
Amith Yamasani
df5e9fe181 Merge "Device Owner, a special kind of device admin" into jb-mr2-dev 2013-03-26 22:27:13 +00:00