Commit Graph

30521 Commits

Author SHA1 Message Date
Romain Guy
484f4d6282 Use the parameter type as part of the methods cache key
Change-Id: Ie204d16b62028fc1eb35cc7cb3244654e1360a37
2013-07-22 16:59:31 -07:00
Romain Guy
e4d4e20e8f Cache reflection lookups
This change also cleanups the code a little bit. Caching lookups
not only speed things up but it also avoids unnecessary allocations.

Change-Id: Ie3d1ae106d32b3b5f2c5d33b6318ed93cd9e27f9
2013-07-22 13:02:02 -07:00
Dianne Hackborn
4a8baef3f5 Merge "Make ArrayMap public! :)" 2013-07-17 00:53:33 +00:00
Adam Powell
f52ae147fb am 42658ed5: am 30ad7203: Merge "Consider mScrollX when drawing the checkMarkDrawable"
* commit '42658ed5182a75b82dd2b970a1f97fc30407d1e3':
  Consider mScrollX when drawing the checkMarkDrawable
2013-07-16 17:12:49 -07:00
Dianne Hackborn
3e82ba1a67 Make ArrayMap public! :)
Also do some tweaking of the various container classes
to synchronize them with the support lib and make it
easier to copy code between the two.

And update activity/fragment to use ArrayMap.

Change-Id: I3cfe82392a17119dfc72c3d9961f64e1914f42be
2013-07-16 17:08:04 -07:00
Adam Powell
42658ed518 am 30ad7203: Merge "Consider mScrollX when drawing the checkMarkDrawable"
* commit '30ad720304790b07112b87f973a7e6ed5e1e6ee5':
  Consider mScrollX when drawing the checkMarkDrawable
2013-07-16 17:06:36 -07:00
Adam Powell
30ad720304 Merge "Consider mScrollX when drawing the checkMarkDrawable" 2013-07-17 00:04:28 +00:00
Romain Guy
af093fd414 Merge "Skip unnecessary measurements when possible" 2013-07-16 23:37:29 +00:00
Romain Guy
93c567cddc Skip unnecessary measurements when possible
This change introduces a new measure cache to View, to remember
the measured dimensions for previous pairs of measure specs. The
measure cache is cleared whenever a View requests layout.

Unfortunately some Views rely on measure being always called when
layout is invoked. To work around this problem, we need to remember
when we hit the measure cache to force a call to measure just prior
to calling onLayout(). This does not completely removes all measure
calls but enough to optimize a number of layouts.

Change-Id: Ie085fbcf186e9d7505e1127e0786a12968ebc344
2013-07-16 16:25:09 -07:00
Romain Guy
775ffa78f3 Merge "Fix crashes in setMatrix() and concat()" 2013-07-16 22:27:04 +00:00
Chet Haase
4a83804ddf Merge "Fix issues with delayed transitions" 2013-07-16 22:20:24 +00:00
Chet Haase
c43524f386 Fix issues with delayed transitions
Previously, there were two distinct problems with how delayed
transitions were being run:
- there would be a delay between the transition being put into
a preDrawListener (to be kicked off when that listener fired) and
being removed from the pending list. This allowed another delayed
transition to be run in parallel, which would cause conflicting/
clobbering issues with transition values on the same objects.
- there would be an extra frame delay in some cases due to how/when the
delayed transition would be started. Specfically, we would postOnAnimation()
to call a method that would then add the onPreDraw listener. This two-step
forwarding caused issues noted above.

The fix is to simply add the transition to the preDrawListener immediately, removing
the two-step problem, and also ensuring that the transition is only removed
from the pending list when it is actually started, which prevents other transitions
from starting in the meantime.

Also, added more debug logging to help chase future issues with transitions.

Change-Id: Ie2ff8e73d29f342512842e9641bd8d605e74544c
2013-07-16 14:55:26 -07:00
Romain Guy
4e7b772b73 Fix crashes in setMatrix() and concat()
setMatrix() was crashing in native code, only with hw acceleration on.
concat() would throw a NullPointerException. It now ignores null matrices.

Change-Id: Iebd8b410a957d2ba501570c6fbb3f680ff4a1a23
2013-07-16 14:52:55 -07:00
Svetoslav
17b7f6e6d4 Clean up of the print APIs.
1. Fixed a case in which the onPrintCompleted callback may not be invoked.

2. Added string resulrces for the different error messages for failed
   printing in OnPrintCompletedCallback

3. Fixed the string comments for the MediaSize constants.

4. Added APIs to create certain print attributes by passing in a
   string label instead of resource and package name since in some cases
   a print service may be getting already internationalized lables
   or it may not know all possible values.

5. Fixed a crash in PrintJobConfigActivity if there is no input or
   output tray.

Change-Id: Ie877b7dc669051606394aa290e6d2b979a42db4c
2013-07-16 14:39:32 -07:00
Eino-Ville Talvala
29b173ae07 Merge "Camera2: Remove/@hide non-public keys." 2013-07-16 21:10:43 +00:00
Svetoslav Ganov
c59df3caeb Merge "Refactoring of the print sub-system and API clean up." 2013-07-16 20:01:34 +00:00
Svetoslav Ganov
a00271533f Refactoring of the print sub-system and API clean up.
1. Now a user state has ins own spooler since the spooler app is
   running per user. The user state registers an observer for the state
   of the spooler to get information needed to orchestrate unbinding
   from print serivces that have no work and eventually unbinding from
   the spooler when all no service has any work.

2. Abstracted a remote print service from the perspective of the system
   in a class that is transparently managing binding and unbinding to
   the remote instance.

3. Abstracted the remote print spooler to transparently manage binding
   and unbinding to the remote instance when there is work and when
   there is no work, respectively.

4. Cleaned up the print document adapter (ex-PrintAdapter) APIs to
   enable implementing the all callbacks on a thread of choice. If
   the document is really small, using the main thread makes sense.

   Now if an app that does not need the UI state to layout the printed
   content, it can schedule all the work for allocating resources, laying
   out, writing, and releasing resources on a dedicated thread.

5. Added info class for the printed document that is now propagated
   the the print services. A print service gets an instance of a
   new document class that encapsulates the document info and a method
   to access the document's data.

6. Added APIs for describing the type of a document to the new document
   info class. This allows a print service to do smarts based on the
   doc type. For now we have only photo and document types.

7. Renamed the systemReady method for system services that implement
   it with different semantics to systemRunning. Such methods assume
   the the service can run third-party code which is not the same as
   systemReady.

8. Cleaned up the print job configuration activity.

9. Sigh... code clean up here and there. Factoring out classes to
   improve readability.

Change-Id: I637ba28412793166cbf519273fdf022241159a92
2013-07-16 12:59:59 -07:00
Dianne Hackborn
cdae0f3c60 Merge "Switch proc stats to use new process state constants." 2013-07-16 18:15:09 +00:00
Eino-Ville Talvala
855ccce701 Camera2: Remove/@hide non-public keys.
Change-Id: I28fc5d6d41a444730061b6d2652f5cb75f97d56b
2013-07-16 11:13:12 -07:00
Alan Viverette
d91f8af40b Merge "Add disabled state to FastScroller." 2013-07-16 14:41:40 +00:00
John Spurlock
fe4fb365ba Merge "Un@hide View.PRESSED_STATE_SET." 2013-07-16 13:37:18 +00:00
Rom Lemarchand
0a880d0402 Merge "Increase swappiness of processes when memcgroups are enabled" 2013-07-16 02:32:13 +00:00
michaelwr
20555cb645 Merge "Add a keycode to switch audio tracks (1/2)" 2013-07-16 01:38:46 +00:00
Alan Viverette
447cdf2c06 Add disabled state to FastScroller.
BUG: 9759511
Change-Id: I555f501b33029665d94a493ee5cab5741c843328
2013-07-15 17:47:34 -07:00
Svetoslav
f9d73e6016 Merge "Fixing bugs discovered by the CTS tests." 2013-07-16 00:24:10 +00:00
Svetoslav
8d820ecffd Fixing bugs discovered by the CTS tests.
1. Delayed accessibility events sent when a view subtree changes may be
   be delivered after accessibility is disabled leading to a crash. It is
   possible that accessibility was disabled while we were waiting for
   the timeout before sending the event. Added a check before dispatching.

2. When refreshing a cached node the accessibility node info cache was
   not using the correct bypass cache argument value and as result was
   not getting the latest node but its cached value. We really want to
   get the latest state to update the cache.

3. The debugging cache integrity verification logic was incorrectly
   removing nodes from the cache while doing its work.

4. Removed the comments for some debug logging.

bug:9857067

Change-Id: I20ee1a6ffa65ad35457b51d3f2dc0bc5d8d784e6
2013-07-15 17:22:04 -07:00
Dianne Hackborn
c823051972 Switch proc stats to use new process state constants.
These new constants are a better mapping to the kind of
information that procstats is wanting to collect about
processes.  In doing this, the process states are tweaked
to have a bit more information that we care about for
procstats.

This changes the format of the data printed by procstats,
so the checkin version is bumped to 2.  The structure is
the same, however the codes for process states have all
changed.  The new codes are, in order of precedence:

p -- persistent system process.
t -- top activity; actually any visible activity.
f -- important foreground process (ime, wallpaper, etc).
b -- important background process
u -- performing backup operation.
w -- heavy-weight process (currently not used).
s -- background process running a service.
r -- process running a receiver.
h -- process hosting home/launcher app when not on top.
l -- process hosting the last app the user was in.
a -- cached process hosting a previous activity.
c -- cached process hosting a client activity.
e -- cached process that is empty.

In addition, we are now collecting uss along with pss
data for each process, so the pss checkin entries now
have three new values at the end of the min/avg/max uss
values of that process.

With this switch to using process state constants more
fundamentally, I realized that they could actually be
used by the core oom adj code to make it a lot cleaner.
So that change has been made, that code has changed quite
radically, and lost a lot of its secondary states and flags
that it used to use in its computation, now relying on
primarily the oom_adj and proc state values for the process.

This also cleaned up a few problems -- for example for
purposes of determing the memory level of the device, if a
long-running service dropped into the cached oom_adj level,
it would start being counted as a cached process and thus
make us think that the memory state is better than it is.
Now we do this based on the proc state, which always stays
as a service regardless of what is happening like this, giving
as a more consistent view of the memory state of the device.

Making proc state a more fundamentally part of the oom adj
computation means that the values can also be more carefully
tuned in semantic meaning so the value assigned to a process
doesn't tend to change unless the semantics of the process
has really significantly changed.

For example, a process will be assigned the service state
regardless of whether that services is executing operations
in the foreground, running normally, or has been dropped to
the lru list for pruning.  The top state is used for everything
related to activities visible to the user: when actually on
top, visible but not on top, currently pausing, etc.

There is a new Context.BIND_SHOWING_UI added for when system
services bind to apps, to explicitly indicate that the app
is showing UI for the system.  This gives us a better metric
to determine when it is showing UI, and thus when it needs
to do a memory trim when it is no longer in that state.  Without
this, services could get in bad states of continually trimming.

Finally, more HashSet containers have been changed to ArraySet,
reducing the temporary iterators created for iterating over
them.

Change-Id: I1724113f42abe7862e8aecb6faae5a7620245e89
2013-07-15 16:21:35 -07:00
Geremy Condra
c3bdf87505 Merge "Support routing sockets as another user" 2013-07-15 21:57:18 +00:00
Geremy Condra
045ad910b7 Merge changes Ia6646363,I94389b64
* changes:
  Add per user VPN support
  Add NetworkUtil function for marking sockets
2013-07-15 21:56:30 +00:00
Igor Murashkin
648e4fc7ad Merge "camera2: Implement CameraDevice#getCameraInfo" 2013-07-15 20:45:36 +00:00
Igor Murashkin
d7bf1778df camera2: Implement CameraDevice#getCameraInfo
Bug: 9529161
Change-Id: Ie37d1e07bb8416cbb141f4d49e52337bf7236610
2013-07-15 13:37:08 -07:00
Rom Lemarchand
5534ba91ac Increase swappiness of processes when memcgroups are enabled
When memcgroups are enabled, migrate heavier and lower priority processes
to the sw memcgroup.

Change-Id: Iba07a723037a599736ef23dea16a30a26634428a
2013-07-15 13:19:27 -07:00
Chad Brubaker
d475c70424 Support routing sockets as another user
Add support for routing sockets as if they were another user's.
This is for services that handle delegated network tasks like MediaServer and DownloadManager.

Change-Id: Id20efc1f5c2cce6f8838d777762f6c0a703a9437
2013-07-15 12:14:10 -07:00
John Spurlock
0a55c94730 Un@hide View.PRESSED_STATE_SET.
Looks like an oversight.  The other state sets are public, and we
reference this one in the public docs.

Change-Id: I1c2d8bec3cb277ebfb55ccaacefab0cb38703177
2013-07-15 12:18:04 -04:00
John Spurlock
6098c5d355 Docfixes in IBinder, Context, View, and Intent.
Fix links in @throws clauses, typos, redundant "returns"
and use @code for true + false in returns.

Change-Id: Ic3c4c75d6061732d997a386dc3232475c992c188
2013-07-15 12:08:21 -04:00
Chad Brubaker
4ca19e8377 Add per user VPN support
VPNs are now per user instead of global. A VPN set by user A routes only
user A's traffic and no other user can access it.

Change-Id: Ia66463637b6bd088b05768076a1db897fe95c46c
2013-07-12 20:51:03 -07:00
Dianne Hackborn
326ef35f6f Merge "Add new proc state constants and delivery." 2013-07-13 01:15:30 +00:00
Igor Murashkin
e1bc8d4eb8 Merge "camera2 api: Generate metadata keys and enums from XML" 2013-07-13 01:14:46 +00:00
Dianne Hackborn
a413dc06b2 Add new proc state constants and delivery.
The activity manager now keeps a new "process state" for
each process, indicating the general execution and memory
state of the process.  This closely follows the out-of-memory
adjustment and scheduling class that it currently tracks,
but roles these together (plus a little more info) into one
more semantically meaningful number.

This value is reported to each process as it changes, so they
can do things like tune the Dalvik garbage collector to match
the current process state.

I think I should also switch to this for process states.  It
will give is more meaningful divisions of time for each process.

Also fix a problem in the activity stack where the previous
process was not being set correctly when moving between
activity stacks.

Change-Id: I598b1667dc46547f8fadae304e210c352cc9d41f
2013-07-12 18:14:46 -07:00
Dianne Hackborn
f9ad937d7a Merge "Update SparseArray docs to be more informative." 2013-07-13 01:06:38 +00:00
Dianne Hackborn
b993f41eb2 Update SparseArray docs to be more informative.
Change-Id: I5d8d17d46a69ccdcf6b29f93be3d44addd80ab61
2013-07-12 18:05:37 -07:00
Igor Murashkin
b9dd637f83 camera2 api: Generate metadata keys and enums from XML
Change-Id: I9b04b5933c5922fc522e9216f4deebcd6fc24d78
2013-07-12 17:25:50 -07:00
keunyoung
e3d2cc8fcc fix build
Change-Id: Ife4a1e33df2e4a71edba7b29844a06138103440d
2013-07-12 16:55:44 -07:00
keunyoung
27116e35e8 Merge "add TYPE_PRIVATE_PRESENTATION window type" 2013-07-12 23:03:21 +00:00
Adam Powell
e5ff7d81db am 45130c62: am 1dc3b790: am 4b8cc94c: Merge "PreferenceActivity should not leave message in looper when destroyed"
* commit '45130c62e1a17887bd27f12c834609159bba1c1a':
  PreferenceActivity should not leave message in looper when destroyed
2013-07-12 15:13:55 -07:00
Adam Powell
45130c62e1 am 1dc3b790: am 4b8cc94c: Merge "PreferenceActivity should not leave message in looper when destroyed"
* commit '1dc3b790df61aa95cb68da390045249c59049fcd':
  PreferenceActivity should not leave message in looper when destroyed
2013-07-12 15:11:41 -07:00
Adam Powell
1dc3b790df am 4b8cc94c: Merge "PreferenceActivity should not leave message in looper when destroyed"
* commit '4b8cc94cc67d760e724c56aee9301d1bcc2bbe89':
  PreferenceActivity should not leave message in looper when destroyed
2013-07-12 15:09:54 -07:00
Adam Powell
da05cc2fac Merge "Tweak error fallback behavior for view direction resolution" 2013-07-12 21:56:44 +00:00
keunyoung
a446bf0e8c add TYPE_PRIVATE_PRESENTATION window type
- This window type can be used for Presentation created on top of virtual
  private display.
- There can be PRIVATE_PRESENTATION specific policy / behavior, but for now,
  there is nothing special.

Change-Id: I9fde0f0376e57fcc60000d3a3f8657a21ef58993
2013-07-12 14:41:10 -07:00
Chet Haase
c81a849388 Fix minor transition bugs and add capabilities
Some view changes require more flexible transitions than the
defaults provided by Crossfade and TextChange - this change supplies some
of that flexibility.

Also, starting a new transition on a hierarchy undergoing a transition
caused the first to get canceled, then the start values to be retrieved.
The new transition should actually get the start values from the intermediate
state of the views, so we now cancel the previous transition only after the
start values have been captured.

Issue #9756349 Transitions: Crossfade does not handle interruption/reverse correctly
Issue #9295863 Transitions: Add behavior API/flags to various transitions
Issue #9275859 Transitions: Improve mechanism for transition interruption

Change-Id: I5a8c5a12466ddcab9e84e4880930563fa1216f3b
2013-07-12 13:40:38 -07:00