Commit Graph

250 Commits

Author SHA1 Message Date
kmccormick
eff1151d6c am 0de7af1e: am c9c63003: am fd245a2e: am 593c0dbf: am 378d4367: Merge "Doc update: misc fixes" into jb-mr1.1-docs
* commit '0de7af1e18a72a979baa9711e4e980b21cf80255':
  Doc update: misc fixes
2013-03-28 16:47:25 -07:00
kmccormick
0de7af1e18 am c9c63003: am fd245a2e: am 593c0dbf: am 378d4367: Merge "Doc update: misc fixes" into jb-mr1.1-docs
* commit 'c9c63003b2e30c068a1bc9eba7683b75ca272180':
  Doc update: misc fixes
2013-03-28 16:45:16 -07:00
kmccormick
c9c63003b2 am fd245a2e: am 593c0dbf: am 378d4367: Merge "Doc update: misc fixes" into jb-mr1.1-docs
* commit 'fd245a2ed78fd2b39c6d09ad0b1d84c275544c33':
  Doc update: misc fixes
2013-03-28 16:43:26 -07:00
kmccormick
50e27c8135 Doc update: misc fixes
"Bug: 3424410"

Some of these had already been fixed.

Change-Id: I1d0ab3a8fa51aa308186059db4186e7a7d24e9f8
2013-03-28 16:33:46 -07:00
Elliott Hughes
6c8cd01ad5 am c22657f8: am 3f5778c8: Merge "Fix incorrect FloatMath documentation."
* commit 'c22657f8b1e3b9198f1e7795a06a6f59b5cd9c80':
  Fix incorrect FloatMath documentation.
2013-02-26 18:04:35 +00:00
Elliott Hughes
f732a2f83f Fix incorrect FloatMath documentation.
Change-Id: I30bbe500e634b73f3456ccc797106ad261fd0ce7
2013-02-26 09:28:17 -08:00
Wink Saville
fb053cde74 am f7bf667d: am b5a1ce2f: Merge "Allow three digit phone numbers"
* commit 'f7bf667d4a5e8e3fca75640f6352724826705128':
  Allow three digit phone numbers
2013-02-21 15:19:53 -08:00
Bin Zhu
a37fc575a4 Allow three digit phone numbers
The comment for the PHONE pattern says:

"<digit><digit|sdd>+<digit>"

But the actual pattern requires that the string contains
more than that. A phone number should be allowed to be
three digits.

Change-Id: I86d2f3d634cd0c1654dad9814906f151055dc23a
2013-02-15 11:54:41 +01:00
Dianne Hackborn
56a2301c7a Implement issue #6646859: 4K!!!! 4K!!!! 4K!!!!
Change-Id: Ib05a2eb6a03db50074805a437a3639a7d10684a0
2013-02-12 15:41:49 -08:00
Jeff Sharkey
dda73b5dcd Add LongSparseLongArray with tests.
Change-Id: Iae32ba7647601c587e30834379d7d3c2235c75b0
2013-01-18 16:59:14 -08:00
Svetoslav Ganov
60fba77035 Simplification of the Pools implementation.
Now instead of a link list of holder objects the pool is backed by
an array of the max size.

Change-Id: Iad1f4f2766d42e8c438cc8efbc72e1e5756b0baf
2012-12-13 16:04:38 -08:00
Svetoslav Ganov
be922dc976 Adding pool management via the poolable APIs to some classes.
1. Removed the support for infinite pool size which nobody was using and
   does not make sense.

2. Update some classes in ViewGroup to use the poolable APIs.

Change-Id: Ifdb8c10968cd06fe53085ec9d3d649f7c9a944b7
2012-11-30 17:16:17 -08:00
Dianne Hackborn
5c1eb690bb am 84ea428d: am ed8c323a: am 38e84700: Merge "Fix issue #7585876: When changing the font settings, the movie..." into jb-mr1.1-dev
* commit '84ea428d24dedc4b9a44bf6b2c9419b3545a03b8':
  Fix issue #7585876: When changing the font settings, the movie...
2012-11-29 14:33:44 -08:00
Dianne Hackborn
84ea428d24 am ed8c323a: am 38e84700: Merge "Fix issue #7585876: When changing the font settings, the movie..." into jb-mr1.1-dev
* commit 'ed8c323a6c776540de356d6fc7d902cc5916fef5':
  Fix issue #7585876: When changing the font settings, the movie...
2012-11-29 14:28:24 -08:00
Dianne Hackborn
ed8c323a6c am 38e84700: Merge "Fix issue #7585876: When changing the font settings, the movie..." into jb-mr1.1-dev
* commit '38e847004978031c2b914714e92bc5407ba3ce65':
  Fix issue #7585876: When changing the font settings, the movie...
2012-11-29 12:08:41 -08:00
Dianne Hackborn
7ac8bbddfc Fix issue #7585876: When changing the font settings, the movie...
...just keeps attempting to load and doesn't play on the TV

Change-Id: Ifcdc969a037a113224632f907d55f60a168dd05a
2012-11-29 11:59:58 -08:00
Svetoslav Ganov
abae2a1b89 Simplification of the poolable management utils.
Before to implement a pool of objects, the pooled class had to implement an
   interface which was leaking the pool management APIs. This requires
   hiding APIs - inconvenient at best. Further, each client had to
   implement the chaining of pooled instances which means adding a couple
   of member variables which are manipulated by the implemented interface
   methods. As a consequence the client is aware of how pooling is
   implemented which is error prone and breaks encapsulation. Now the
   pool objects are responsible for managing pooling state via reusable
   wrapper objects and the clients are oblivious of how pooling is done.
   Creating a thin cached wrapper for each pooled object has minimal
   performance impact while making the code more maintainable. Actually
   implementing of the old version of the APIs was taking as much code
   as implementing the pooling yourself.

   Also clients had to implement a poolable manager whose responsibility
   was to create new instances and provide callbacks when an instance
   is added to or removed from the pool. Now, the clinet class should
   create a static member for the pool and expose obtain/aquire and
   release/recycle methods in which it should create a new instance if
   the pool did not return one and clear the state of the host when
   it is returned to the pool. Updated the JavaDoc with a best practice.

   The pooling was composed of several interfaces and classes scattered
   over a few files, now all this is in a single small file.

   Update all usages of the pooling APIs in the framework.

Also one had to write a poolable
   manager which

Change-Id: Ib8dc286040eb3d7cb7d9668ba76fead05cb97647
2012-11-27 19:10:51 -08:00
Chet Haase
3b2b3aaf9f am 47a8e863: Merge "Fix infinite recursive loop DO NOT MERGE" into jb-mr1.1-dev
* commit '47a8e863e32dc634aa1df79d805f4a366e13d4e9':
  Fix infinite recursive loop DO NOT MERGE
2012-11-27 12:49:16 -08:00
László Dávid
6ead9418ff Fix infinite recursive loop DO NOT MERGE
FindBugs description:

There is an apparent recursive loop at IntProperty.java
in method set(Object, Integer)

This method unconditionally invokes itself. This would seem
to indicate an infinite recursive loop that will result in a stack overflow.

Note: Checked into AOSP. Cherry-picking for mr1.1.

Issue #7621806 IntProperty has infinite recursion bug

Change-Id: I2f52dd3689198cb948925aa65dd9c95be7888fe7
2012-11-27 11:11:10 -08:00
Chet Haase
62d3fd89ec am 161194da: am d8a6b544: am 21243369: Merge "Fix infinite recursive loop"
* commit '161194daad7cee031475648be294e5e9d4bc6d68':
  Fix infinite recursive loop
2012-11-27 09:41:16 -08:00
Chet Haase
2124336984 Merge "Fix infinite recursive loop" 2012-11-27 08:34:18 -08:00
Scott Kennedy
c40d1153e0 Unhide SparseLongArray
Because it's useful.

Change-Id: I6c71a49eed2c0c366e8afa874ebbc48cfe816a90
2012-11-26 17:51:04 -08:00
László Dávid
c5d43f76fd Fix infinite recursive loop
FindBugs description:

There is an apparent recursive loop at IntProperty.java
in method set(Object, Integer)

This method unconditionally invokes itself. This would seem
to indicate an infinite recursive loop that will result in a stack overflow.

Change-Id: I2f52dd3689198cb948925aa65dd9c95be7888fe7
2012-11-23 00:26:22 +01:00
Fabrice Di Meglio
8bf1cb378b am 20586fa0: Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev
* commit '20586fa0353f63453766140b32a4778793ce2b43':
  Fix bug #7173351 API REVIEW: android.util.LocaleUtil
2012-09-18 15:00:14 -07:00
Fabrice Di Meglio
ad31d027ca am 684f1078: am 20586fa0: Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev
* commit '684f10788707f154e54a614b2d60cc28542aee3a':
  Fix bug #7173351 API REVIEW: android.util.LocaleUtil
2012-09-18 14:59:00 -07:00
Fabrice Di Meglio
20586fa035 Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev 2012-09-18 14:48:48 -07:00
Fabrice Di Meglio
d3d9f3f100 Fix bug #7173351 API REVIEW: android.util.LocaleUtil
Change-Id: I08fd491eff714059e9ec874fadebe7eb556c34d5
2012-09-18 12:55:32 -07:00
Philip Milne
417e267a75 Merge "Revert "Simple MVC based binding mechanism for android controls." Do not merge." into jb-mr1-dev 2012-09-17 15:47:11 -07:00
Philip Milne
8e1c2b6b71 Revert "Simple MVC based binding mechanism for android controls." Do not merge.
This reverts commit 989709a973.

Change-Id: Ifc2c511b0d99d4a3a164b4a2281ca140015b366d
2012-09-17 14:31:03 -07:00
Jeff Sharkey
e6e6197d7c Actually move to Global settings.
Also add better ConnectivityService logging.

Bug: 7157464
Change-Id: Ia235a7e62ed809240913c4782920c1410c7d597d
2012-09-14 13:47:51 -07:00
Jeff Sharkey
023c05a341 Move to Global.NETSTATS and Global.NTP constants.
Bug: 7157464
Change-Id: Ief10fd37940f62420f5684940994c9f93802e0be
2012-09-14 13:14:21 -07:00
Jeff Sharkey
162fabbcf8 Let Pair represent null values.
Bug: 7121262
Change-Id: I067ea0a4af40a0e8935a9408404df7a2e851e22c
2012-09-06 23:05:11 -07:00
Jeff Brown
a492c3a7b2 Initial draft of high-level multi-display APIs.
This patch introduces the ability to create a Context that
is bound to a Display.  The context gets its configuration and
metrics from that display and is able to provide a WindowManager
that is bound to the display.

To make it easier to use, we also add a new kind of Dialog
called a Presentation.  Presentation takes care of setting
up the context as needed and watches for significant changes
in the display configuration.  If the display is removed,
then the presentation simply dismisses itself.

Change-Id: Idc54b4ec84b1ff91505cfb78910cf8cd09696d7d
2012-08-31 15:42:45 -07:00
Jeff Brown
e2c279e8a1 Add FloatMath.pow.
Change-Id: I5c584f4894caba47fccfa22ba95f8665990d516c
2012-08-21 22:27:41 -07:00
Jeff Brown
1a30b55036 Use spline interpolation for auto-brightness.
Strictly speaking, this is a change in behavior for all products.
Instead of using discrete zones, they will all now use spline
interpolation.  We could make this behavior configurable
but there seems to be little point to it.  The range of brightness
values used will be more or less the same as before, it's just
that what used to be the brightness value for all levels within
a particular zone now becomes the brightness value for the
highest level in that zone and lower values are used for lower
levels within the zone.

Change-Id: I39804ee630ba55f018e1e53c0576b28e7bd27931
2012-08-16 01:45:10 -07:00
Jeff Brown
270e3381e7 Add FloatMath.hypot.
Change-Id: I6a5a7ea2254300614dbbf540f40e39dbec2d2900
2012-08-16 01:30:22 -07:00
Jeff Brown
9630704ed3 Power manager rewrite.
The major goal of this rewrite is to make it easier to implement
power management policies correctly.  According, the new
implementation primarily uses state-based rather than event-based
triggers for applying changes to the current power state.

For example, when an application requests that the proximity
sensor be used to manage the screen state (by way of a wake lock),
the power manager makes note of the fact that the set of
wake locks changed.  Then it executes a common update function
that recalculates the entire state, first looking at wake locks,
then considering user activity, and eventually determining whether
the screen should be turned on or off.  At this point it may
make a request to a component called the DisplayPowerController
to asynchronously update the display's powe state.  Likewise,
DisplayPowerController makes note of the updated power request
and schedules its own update function to figure out what needs
to be changed.

The big benefit of this approach is that it's easy to mutate
multiple properties of the power state simultaneously then
apply their joint effects together all at once.  Transitions
between states are detected and resolved by the update in
a consistent manner.

The new power manager service has is implemented as a set of
loosely coupled components.  For the most part, information
only flows one way through these components (by issuing a
request to that component) although some components support
sending a message back to indicate when the work has been
completed.  For example, the DisplayPowerController posts
a callback runnable asynchronously to tell the PowerManagerService
when the display is ready.  An important feature of this
approach is that each component neatly encapsulates its
state and maintains its own invariants.  Moreover, we do
not need to worry about deadlocks or awkward mutual exclusion
semantics because most of the requests are asynchronous.

The benefits of this design are especially apparent in
the implementation of the screen on / off and brightness
control animations which are able to take advantage of
framework features like properties, ObjectAnimator
and Choreographer.

The screen on / off animation is now the responsibility
of the power manager (instead of surface flinger).  This change
makes it much easier to ensure that the animation is properly
coordinated with other power state changes and eliminates
the cause of race conditions in the older implementation.

The because of the userActivity() function has been changed
so that it never wakes the device from sleep.  This change
removes ambiguity around forcing or disabling user activity
for various purposes.  To wake the device, use wakeUp().
To put it to sleep, use goToSleep().  Simple.

The power manager service interface and API has been significantly
simplified and consolidated.  Also fixed some inconsistencies
related to how the minimum and maximum screen brightness setting
was presented in brightness control widgets and enforced behind
the scenes.

At present the following features are implemented:

- Wake locks.
- User activity.
- Wake up / go to sleep.
- Power state broadcasts.
- Battery stats and event log notifications.
- Dreams.
- Proximity screen off.
- Animated screen on / off transitions.
- Auto-dimming.
- Auto-brightness control for the screen backlight with
  different timeouts for ramping up versus ramping down.
- Auto-on when plugged or unplugged.
- Stay on when plugged.
- Device administration maximum user activity timeout.
- Application controlled brightness via window manager.

The following features are not yet implemented:

- Reduced user activity timeout for the key guard.
- Reduced user activity timeout for the phone application.
- Coordinating screen on barriers with the window manager.
- Preventing auto-rotation during power state changes.
- Auto-brightness adjustment setting (feature was disabled
  in previous version of the power manager service pending
  an improved UI design so leaving it out for now).
- Interpolated brightness control (a proposed new scheme
  for more compactly specifying auto-brightness levels
  in config.xml).
- Button / keyboard backlight control.
- Change window manager to associated WorkSource with
  KEEP_SCREEN_ON_FLAG wake lock instead of talking
  directly to the battery stats service.
- Optionally support animating screen brightness when
  turning on/off instead of playing electron beam animation
  (config_animateScreenLights).

Change-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
2012-08-15 03:06:24 -07:00
Jeff Brown
5d728bb9ff Add FloatMath.exp.
Change-Id: I7f215e5fd4cb942ddee56eebaef04be565ac79f3
2012-08-08 18:23:53 -07:00
Dianne Hackborn
dde331cebd We can now (kind-of) change screen density on the fly.
Preloaded drawables now have a density associated with them, so we
can load the correct drawable if we are using a different density.

Window manager now formally keeps track of the density for each
screen, allowing it to be overridden like you can already do with
size, and relies on this density to drive itself internally and
the configurations it reports.

There are a new set of Bitmap constructors where you provide a
DisplayMetrics so they can be constructed with the correct density.
(This will be for when you can have different windows in the same
app running at different densities.)

ActivityThread now watches for density changes, and pushes them
to the DENSITY_DEVICE and Bitmap global density values for that
process.

A new am command allows you to change the density.
2012-08-03 17:27:29 -07:00
Jeff Sharkey
6a916ed0c0 Merge "Add trimToSize() to public API." into jb-mr1-dev 2012-08-01 14:34:47 -07:00
Jeff Sharkey
d96b585f5c Add trimToSize() to public API.
Bug: 6602490
Bug: http://code.google.com/p/android/issues/detail?id=35349
Change-Id: Ib3bc7fee05bb0edc375ebee1c40a1d7bd82e2a17
2012-08-01 14:20:04 -07:00
Dianne Hackborn
908aecc3a6 Start moving away from DisplayMetrics.DENSITY_DEVICE.
This puts in most of the infrastructure needed to allow us to
switch between different densities at run time.  The main remaining
uses of the global are to initialize the Bitmap object (not sure
what to do about that since it doesn't have anything passed in
the constructor to get this information from), and being able to
load drawables if we need a different density than what was preloaded
by zygote.

Change-Id: Ifdbfd6b7a5c59e6aa22e63b95b78d96af3d96848
2012-08-01 10:54:39 -07:00
Dianne Hackborn
39606a007a Make AtomicFile a public API. It's about time!
Change-Id: Ib34e294747405b7ab709cb0bbb2d9a0cc80ce86a
2012-07-31 17:54:52 -07:00
Jeff Sharkey
2bbc19ddbb Merge "Avoid emitting broken ASCII." 2012-07-21 12:44:07 -07:00
Jeff Sharkey
eaaf396169 Avoid emitting broken ASCII.
Bug: 6131887
Change-Id: Iff13573aad8128cc7ae3613ab718c81e6d0862a1
2012-07-21 12:39:48 -07:00
Philip Milne
989709a973 Simple MVC based binding mechanism for android controls.
Change-Id: I80fe18e0e15f8a840d558de9863650505bd5fb00
2012-07-20 15:14:45 -07:00
Dianne Hackborn
d80e7fb3f8 am ecf5bc55: am fe54cb6f: Merge "Docs only: DENSITY_TV, not just for TVs any more!" into jb-dev
* commit 'ecf5bc551eddacfb4a4041d614f8fe50672659ae':
  Docs only: DENSITY_TV, not just for TVs any more!
2012-06-19 10:59:18 -07:00
Dianne Hackborn
493861dfa0 Docs only: DENSITY_TV, not just for TVs any more!
Change-Id: Id70e0bc179ab405fbb7f3b2cda7b75f44ff30b57
2012-06-18 19:29:45 -07:00
Wink Saville
0f863886c8 am 85dc303f: am e9aa4b27: Merge "Add additional debug for time zone handling." into jb-dev
* commit '85dc303f80d141d70af9ba2e105c1af49bf9a7ad':
  Add additional debug for time zone handling.
2012-05-10 23:19:57 -07:00
Wink Saville
26e1a02ba3 Add additional debug for time zone handling.
Change-Id: Ie46bba7e0ef7737a865f7efadbf963c2d14e488f
2012-05-10 16:23:39 -07:00