34524 Commits

Author SHA1 Message Date
John Spurlock
927d854ff4 Merge "Optimize sysui ui queue during keyguard unlock." into klp-dev 2013-10-29 20:55:04 +00:00
Jeff Sharkey
704269ec1c Merge "Mention external storage changes in KITKAT docs." into klp-dev 2013-10-29 20:46:42 +00:00
Jeff Sharkey
7fbba1622a Merge "Suppress OperationCanceledException logging." into klp-dev 2013-10-29 20:46:39 +00:00
Michael Wright
3f83674150 Merge "Speculatively schedule input consumption" into klp-dev 2013-10-29 20:20:45 +00:00
Jeff Sharkey
3ec2f60ebd Mention external storage changes in KITKAT docs.
Bug: 11388971
Change-Id: I97145472948867f54125f1d0f0237bf3b339535e
2013-10-29 12:23:19 -07:00
Jeff Sharkey
33819318f6 Suppress OperationCanceledException logging.
These exceptions are normal when an app has cancelled an outstanding
thumbnail request.

Bug: 11385378
Change-Id: I8aed5721b447cda5baf447ac7afd627aa1062863
2013-10-29 11:56:37 -07:00
John Spurlock
e7c285725d Optimize sysui ui queue during keyguard unlock.
Target the two biggest offenders:
 - Coalesce keyguard setHidden(false) calls during unlock.
 - Make sysui->WM call async.

Found during investigation into b/11221659.

Bug: 11221659
Change-Id: Icab48376bc356a933e0f9940bc2f924e2e77ab22
2013-10-29 14:27:41 -04:00
Svetoslav
27f592df8c Share pack historical sorting using wrong keys.
The ActivityChooserModel keeps a history of the last fifty
share targets and based on past usage orders the targets in
the UI. The soring implementation is using a map for improving
performance. However, the activities in this map were keyed
on the package name but there maybe more that one share
target per package. Thus, the sorting was generating bad
results. Now the unique component name is used.

bug:11195578

Change-Id: I8c7018fea168b7253ddbe57b477028368726e75e
2013-10-28 18:43:08 -07:00
Svetoslav
baeabb65e1 Not show share targets that cannot be launched.
This changes filters out share targets that we cannot start
because the target does not properly implement the SEND protocol
and has either share target activity hidden or requires a
permission to launch it. Also the code that launches the share
target activity catches the runtime exception and shows an error
message. Note that being able to launch an activity in a moment
of time is not a guarantee that one can do that latter. Hence,
being able to launch an activity while building the share UI
does not guarantee that one can launch it when selecting the
share target.

bug:11402139

Change-Id: Id35732510755b2eeb9eccacc046d289c2f2ee856
2013-10-28 16:26:47 -07:00
Svetoslav
714ba34556 Merge "Complete implementation of the advanced print options." into klp-dev 2013-10-28 22:07:03 +00:00
Dianne Hackborn
3a702cb5d7 Merge "Fix issue #11391003: Allow dumpsys meminfo to be used with native processes" into klp-dev 2013-10-28 21:59:18 +00:00
Svetoslav
b4fda13476 Complete implementation of the advanced print options.
1. Implemented the advanced printer options integration. Now a print service
    may declare an advanced print options activity which may be launched by
    the user if the current printer supports advanced print options. These options
    are visible only to the print service that added them and it is the only party
    that will interpret the options.

2. Fixed a couple of bugs in the saved print jobs parsing. One was that if there
    are more than one page range, a half of the print job properties was not
    properly parsed. The other was that the media size constructor was using
    incorrect argument order, thus creating a media size with wring width.

3. Fixed and edge case where old print jobs and their docs can get stuck in
    the spooler. If the app did not write the requested pages we were not showing
    an error message, rather just finish the activity without canceling the print
    job and this print job is stuck in the spooler. Now we show an error message
    and the user may retry, cancel. If the user cancels the print job is also
    cancelled, thus no leftover in the spooler.

4. Fixed the background color of the print dialog to meet UX spec.

bug:11241800

Change-Id: I352440bc86aec824a805883fc9579d96a06d11e6
2013-10-28 11:44:07 -07:00
Michael Wright
62ce65d6ed Speculatively schedule input consumption
With the new tuned vsync offset, vsyncs are likely to occur shortly
after the input is received, meaning we will empty the input queue,
and thus won't schedule input consumption until more input is
received. If an application then speculatively posts draw commands to
the main looper faster than 60 hz, it will eventually end up blocking
in eglSwapBuffers. Since we're blocking in eglSwapBuffers, we won't
even schedule consumption until after the current frame (8-16ms), and
it's entirely likely we won't actually get around to consuming input
until after the next frame (another 16 ms of latency). This means we
can often go 16-32ms without processing any input events, causing
very noticeable amounts of jank.

Rather than waiting for the next input event to schedule input
consumption, speculatively schedule it every frame as long as we've
consumed some motion batch during this frame.

Bug: 11398045
Change-Id: I25e46308e00e9f9de00a1d8906f6b0e0f2e845b4
2013-10-26 12:18:00 -07:00
Christopher Tate
6364c26cb3 Merge "Un-deprecate setInexactRepeating() and tweak docs" into klp-dev 2013-10-26 00:42:01 +00:00
Christopher Tate
109e4db471 Un-deprecate setInexactRepeating() and tweak docs
Bug 10461371

Change-Id: Ic62a0e94c83c0c7b50e21a7bee19c3d92255d231
2013-10-25 16:55:36 -07:00
Dianne Hackborn
e77187d018 Fix issue #11391003: Allow dumpsys meminfo to be used with native processes
Change-Id: I005e4dc763deafac95dc3aa6261c06d1808fdaff
2013-10-25 16:32:41 -07:00
Jeff Sharkey
96c620595b Extra to always show advanced devices.
Also always lower-case extension to extract MIME type correctly,
we may want to fix in MimeUtils at some point.

Bug: 11354402
Change-Id: I77d0c06a663cd0c4320c41553ff1980b6f9a7778
2013-10-25 16:30:54 -07:00
Christopher Tate
6aedab9b64 Merge "DOCS: document API 19+ Alarm Manager API and behaviors" into klp-dev 2013-10-25 21:59:41 +00:00
Marco Nelissen
2165718153 Merge "Add a method to set a list of uids for a wake lock" into klp-dev 2013-10-25 21:55:55 +00:00
Christopher Tate
062bce7d87 DOCS: document API 19+ Alarm Manager API and behaviors
Bug 9941334

Change-Id: I65473bd62f7113c74ed6277d61db56c76441ff1b
2013-10-25 13:59:44 -07:00
Svetoslav Ganov
2a40da558b Merge "Update the documentaton of the android.print package." into klp-dev 2013-10-25 20:48:45 +00:00
Jeff Sharkey
ac4bf7fd9a Merge "Skip writing PFD status when comm is closed." into klp-dev 2013-10-25 20:17:03 +00:00
Marco Nelissen
738ffdc9da Add a method to set a list of uids for a wake lock
Cherrypicked from master.

b/9464621

Change-Id: Ia6a9d36d55129ae87d3ec070fbf10dc02f4b6cb4
2013-10-25 12:49:55 -07:00
Dianne Hackborn
df033aed9d Merge "Fix issue #11290095: Parcel change causing crashing in KLP..." into klp-dev 2013-10-25 19:15:45 +00:00
Jeff Sharkey
d99f9caba6 Skip writing PFD status when comm is closed.
If the remote side of PFD has already written a status message, then
they've also closed their end of the comm FD, and we're going to
EPIPE if we try sending our own status.  So, skip writing status if
a remote status is present.

Only one end of the openFile() comm socket needs to be blocking,
otherwise detachFd() would end up blocking forever.

Bug: 11385467
Change-Id: I346d40cc1ca4a6683cec4c2d2b7db2b32ac94a55
2013-10-25 11:34:35 -07:00
Svetoslav Ganov
4d4c66dd38 Update the documentaton of the android.print package.
bug:10551786
bug:10551697
bug:10705082
bug:10741641
bug:11318976
bug:10550979
bug:10551761

Change-Id: I46ceb66a69b6d32d6b417356178f67f2e25e891a
2013-10-25 11:33:34 -07:00
Dianne Hackborn
8aee64d18b Fix issue #11290095: Parcel change causing crashing in KLP...
...when reading from empty byte[]

Better handling of empty bundles and parcels.

Change-Id: Ie9182e43a52b8f163e8fb20bd1d110e0832683e6
2013-10-25 10:41:50 -07:00
Adam Powell
1e9f3d868b Hide TransitionManager default transition methods
Pending future API consideration.

Change-Id: Ia4b162392e1c96b485bc28781a199bc2979ec53f
2013-10-24 18:54:33 -07:00
Adam Powell
f3c1577212 Fix bug in Scene's use of setTag
setTagInternal must be used for framework resource IDs.

Bug 11374402

Change-Id: If4d256dbf05055dac70796edd8d7b94bf65d947d
2013-10-24 16:01:34 -07:00
Aravind Akella
28e26eb38d Merge "Fix for ClassCastException in SystemSensorManager." into klp-dev 2013-10-24 19:32:01 +00:00
Amith Yamasani
34d41e9a85 Only simulate the first click if "Always use" button is available
This prevents Keep from being selected automatically when shown in the Share dialog
if Keep was previously chosen by the user as Always use for a send action.
This was a regression introduced by the new intent disambig behavior.

Bug: 11294904
Change-Id: I6745060a8ee0a6d680e657b55ee46aaec27bbacb
2013-10-23 16:05:29 -07:00
Aravind Akella
31d14ce57c Fix for ClassCastException in SystemSensorManager.
Bug: 11068858
Change-Id: I074798a6978b91766b37dec32f2683d8e4adf5d3
2013-10-23 15:09:13 -07:00
Adam Powell
40a67888f9 Cache Scene objects by layout ID on the scene root
The current tracking of scene objects in a static ThreadLocal is
problematic as it leaks the Context associated with the SceneRoot and
returns the wrong Scene object if the same layout ID is used across
different scene roots.

Track Scene objects on the scene root view instead to avoid these
issues.

Change-Id: I891986897f757f2666897c937b5ebb0ed1d531c1
2013-10-23 14:26:57 -07:00
Jeff Sharkey
ca8547b435 Merge "Add notification docs to DocumentsProvider." into klp-dev 2013-10-23 19:19:07 +00:00
Chet Haase
c9d8e38317 Merge "Fix leak with transitions when views get removed" into klp-dev 2013-10-23 19:17:10 +00:00
Jeff Sharkey
9352c383e9 Add notification docs to DocumentsProvider.
Bug: 11272209
Change-Id: I97d67c91c4f4a312cbde82afd9e27509c26517b2
2013-10-23 12:15:34 -07:00
Dianne Hackborn
237cefbcee Fix issue #11323037: Android apk incorrectly marked as running in app processes
The android package is now a special case, not being added to the package list
when creating a multi-process component.  There is no need, since this package
is actually the framework itself which must be loaded in every process.

Also cleaned up some of the procstats dump output to help see what is going
on here.

Change-Id: If65d35ecd562f3154bdebfded69c454af6ce8c96
2013-10-22 19:15:49 -07:00
Chet Haase
df32aa8715 Fix leak with transitions when views get removed
Transitions, when started, add an OnPreDrawListener to the current
ViewTreeObserver (which is global to the view hierarchy). This listener
is removed when the listener is called.

It is possible to add this listener and then remove the view from
the hierarchy before the listener is called. This could result in
either the listener not getting called at all (since there was no
drawing event) or (in the case of this bug) the listener getting called
when the sceneRoot had no AttachInfo (which is the case when that
root has been removed from the hierarchy). This results in the listener
trying to remove itself from a *different* ViewTreeObserver than the one
it added itself to, leaving the actual listener still sitting on a list
of listeners in that original VTO. This can result in a growing list of
listeners and a growing amount of work that gets done on every frame.
It can also lead to a serious memory leak, since the objects referred to
by the transition may be non-trivial (as in the case of this bug).

The fix is to add another mechanism for the listener to get removed.
Specifically, we now listen for detach events on the sceneRoot. If that
view gets detached before the listener is called, then we have a chance to
remove it from the correct VTO before the AttachInfo becomes null.

Issue #11307391 keyguard is slow after updating to krt16c and playing music

Change-Id: I108413ea2f18f5351df0a11d4ae56fec0b4aa154
2013-10-22 16:27:56 -07:00
Matthew Xie
ce39e8ced8 Merge "Change pairing api/intent permission from PRIVILEGED to ADMIN" into klp-dev 2013-10-21 22:58:53 +00:00
Matthew Xie
ac2c6c3a16 Change pairing api/intent permission from PRIVILEGED to ADMIN
The APIs are createBond, setPin, setPairingConfirmation
The intent is ACTION_PAIRING_REQUEST
bug 11101076

Change-Id: I3a314efd973b3ce078ab5347159c336f222d9f15
2013-10-21 14:56:33 -07:00
Deepanshu Gupta
bf3acff10a Merge "Don't run the async query if being rendered in EditMode." into klp-dev 2013-10-21 02:51:20 +00:00
Scott Main
bab3348fc3 Merge "add xml attributes to IME javadoc" into klp-dev 2013-10-20 22:28:11 +00:00
John Spurlock
d4595bd1e6 Merge "Move the IME navigation guard view up to decor." into klp-dev 2013-10-19 17:03:55 +00:00
Jonathan Dixon
43e533dea9 Merge "Restore 4 classes that were accidentally deleted" into klp-dev 2013-10-19 00:35:23 +00:00
Svetoslav Ganov
237575278d Merge "Hide the print dialog if the printing activity is destroyed." into klp-dev 2013-10-19 00:26:44 +00:00
Jonathan Dixon
74fc73f62b Restore 4 classes that were accidentally deleted
Bug 11291911

These deleted classes were previously public APIs and so need to remain
in the build (but hidden) in order to keep existing apps working.
(Partially reverts Change-Id: I02549a71104b35d86d99058c71f43e054730ec7d)

Change-Id: I28e53b056f41e66645136f5e18fba2ff55a65fe5
2013-10-18 17:10:34 -07:00
Scott Main
5df0631003 add xml attributes to IME javadoc
Change-Id: I7a3505753188ba23777391a286d8595ed64777cb
2013-10-18 16:09:51 -07:00
John Spurlock
ae3349e1c3 Move the IME navigation guard view up to decor.
Although the IME windows are now allowed to extend into
the nav bar, some IMEs were making assumptions about
computed insets based on the height of the content view.

So our navigation bar view (opaque view blocking the nav bar
area to avoid the island effect when transparent) needs to live
above the content view in the hierarchy, making the content view
the same height as it was before.

A surgical spot to put the guard view is up at the root view
(PhoneWindow.DecorView).  fitSystemWindows is always called since
this view is not recreated, and the layout is stable: waiting until
the IME is attached to the window is too late to add a guard view.

This is above the screen_* layouts, so will work without having to
touch all of them.  And it only affects windows of TYPE_INPUT_METHOD.

Bug:11237795
Change-Id: I6a93f30aec83f1cecfb854073046cbc87ab4aa66
2013-10-18 18:41:22 -04:00
Scott Main
96844ed886 fix javadoc link
Change-Id: I509fb12393ee0b8bf78ff4110fc18420739f7c58
2013-10-18 14:43:02 -07:00
Svetoslav Ganov
858a1850e2 Hide the print dialog if the printing activity is destroyed.
1. For an app to print it creates a PrintDocumentAdapter implementation
   which is passed to the print dialog activity. If the activity that
   created the adapter is destroyed then the adapter, which may rely on
   the activity state, may be in an invalid state. For example, an app
   creates an adapter and calls print resuting in the app activity and
   the print dialog activity being stacked. Now the user rotates the
   device which triggers the recreating of the activity stack (assume the
   app does not handle rotation). The recreated print dialog activity
   receives the intent that originally created it with containing the
   adapter that was constructed in the context of the old, now destroyed,
   app activity instance.

   To handle this we are limiting an app to be able to print only from
   and activity and when this activity is destroyed we mark the adapter
   as invalid which will result in hiding the print dialog activity. Note
   that if the app process is killed we already handle this in the print
   dialog activiy by registering a death recipient on the adapter binder.

2. In the PrintManager.PrintDocumentAdapterDelegate some of the state is
   accessed only on the main thread and some from miltiple threads. The
   code was trying to avoid locking for state that is not accessed by
   multiple threads but this is error prone and the benefit does not
   justify the complexity and added fragility. Now grabbing a lock all
   the time.

3. The PrintJobConfigActivity waits for it to bind to the print spooler
   service before instantiating its print controller and editor. However,
   these can be accessed by invoking some of the activity cycle callbacks.
   This change is adding null checks for the case where the activity
   callbacks are called before the binding to the spooler is completed.

bug:11242661

Change-Id: Id906b3170e4f0a0553772dfa62686f06fdca0eaf
2013-10-18 13:12:06 -07:00