2977 Commits

Author SHA1 Message Date
Dianne Hackborn
5ffb591b06 am 6166a824: Merge "Implement issue #17906468: Allow search request to fall back to global search" into lmp-dev
* commit '6166a824b2ea7b7918f54769005ab691e15f77f7':
  Implement issue #17906468: Allow search request to fall back to global search
2014-10-09 19:15:32 +00:00
Dianne Hackborn
fdf5b35ab4 Implement issue #17906468: Allow search request to fall back to global search
Change-Id: I04834b2a9f1ec4a68c6a3fed14da2f8dd93b3be7
2014-10-09 10:37:19 -07:00
Dianne Hackborn
529b78941c am 89b19695: Merge "Put in real "code" (aka marketing) name." into lmp-dev
* commit '89b196958fee07475765bd3c458098464ba16f2e':
  Put in real "code" (aka marketing) name.
2014-10-08 22:48:44 +00:00
Dianne Hackborn
89b196958f Merge "Put in real "code" (aka marketing) name." into lmp-dev 2014-10-08 17:59:19 +00:00
Dianne Hackborn
955d8d69ea Put in real "code" (aka marketing) name.
Change-Id: Idb3976edfae37293ed75cb5b869b4b42d8042bbe
2014-10-07 20:17:19 -07:00
Jeff Brown
b4e7044bcd am 7f76ff2c: Merge "Suppress redundant power key presses while turning screen on." into lmp-dev
* commit '7f76ff2c933d725a8867414cacfed82ad61aa630':
  Suppress redundant power key presses while turning screen on.
2014-10-07 23:58:32 +00:00
Jeff Brown
734ab8e60b Suppress redundant power key presses while turning screen on.
Sometimes it can take a long time to turn the screen on.  That's not
good but what's worse is that the user will often get impatient
and press the power button again which effectively cancels the
process and makes the screen not come on at all.  The user may
then conclude that the device ignored the power key press.

This change suppresses power key presses while we're already in the
process of turning the screen on so that at least the screen comes
on eventually, even if it's slower than we would like.

Bug: 17753363
Change-Id: I23083873e35a3dcfa5c20b6f870f53c18e465582
2014-10-07 16:47:25 -07:00
Guang Zhu
9d5e64fc4c am ba5df0d0: Merge "Prevent monkey from triggering bugreport" into lmp-dev
* commit 'ba5df0d01970ec97d64397d9db55f8d1ad98aa16':
  Prevent monkey from triggering bugreport
2014-10-03 19:45:46 +00:00
Guang Zhu
98a881418a Prevent monkey from triggering bugreport
Change-Id: Ifa6f06f7dfa63b740352ad7388f33911649afcb0
2014-10-03 12:23:43 -07:00
Neil Fuller
f7cf5d43aa resolved conflicts for merge of ee665151 to lmp-dev-plus-aosp
Change-Id: I97671e62de26919e391dbb2686511584c59ab990
2014-10-02 11:48:08 +01:00
Neil Fuller
33253a4baa Switch from FloatMath -> Math and Math.hypot where possible
The motivation is an API change: FloatMath is going to be
deprecated and/or removed. Performance is not the goal of
this change.

That said...

Math is faster than FloatMath with AOT compilation.

While making the change, occurances of:

{Float}Math.sqrt(x * x + y * y) and
{Float}Math.sqrt({Float}Math.pow(x, 2) + {Float}Math.pow(y, 2))

have been replaced with:

{(float)} Math.hypot(x, y)

Right now there is no runtime intrinsic for hypot so is not faster
in all cases for AOT compilation:

Math.sqrt(x * x + y * y) is faster than Math.hypot(x, y) with
AOT, but all other combinations of FloatMath, use of pow() etc.
are slower than hypot().

hypot() has the advantage of being self documenting and
could be optimized in future. None of the behavior differences
around NaN and rounding appear to be important for the cases
looked at: they all assume results and arguments are in range
and usually the results are cast to float.

Different implementations measured on hammerhead / L:

AOT compiled:

[FloatMath.hypot(x, y)]
benchmark=Hypot_FloatMathHypot} 633.85 ns; σ=0.32 ns @ 3 trials

[FloatMath.sqrt(x*x + y*y)]
benchmark=Hypot_FloatMathSqrtMult} 684.17 ns; σ=4.83 ns @ 3 trials

[FloatMath.sqrt(FloatMath.pow(x, 2) + FloatMath.pow(y, 2))]
benchmark=Hypot_FloatMathSqrtPow} 1270.65 ns; σ=12.20 ns @ 6 trials

[(float) Math.hypot(x, y)]
benchmark=Hypot_MathHypot} 96.80 ns; σ=0.05 ns @ 3 trials

[(float) Math.sqrt(x*x + y*y)]
benchmark=Hypot_MathSqrtMult} 23.97 ns; σ=0.01 ns @ 3 trials

[(float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))]
benchmark=Hypot_MathSqrtPow} 156.19 ns; σ=0.12 ns @ 3 trials

Interpreter:

benchmark=Hypot_FloatMathHypot} 1180.54 ns; σ=5.13 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtMult} 1121.05 ns; σ=3.80 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtPow} 3327.14 ns; σ=7.33 ns @ 3 trials
benchmark=Hypot_MathHypot} 856.57 ns; σ=1.41 ns @ 3 trials
benchmark=Hypot_MathSqrtMult} 1028.92 ns; σ=9.11 ns @ 3 trials
benchmark=Hypot_MathSqrtPow} 2539.47 ns; σ=24.44 ns @ 3 trials

Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: I06c91f682095e627cb547d60d936ef87941be692
2014-10-01 14:04:15 +01:00
Adam Powell
ad60831ed9 am fe426d06: Merge "Inset the non-overlay contextual action bar without a status guard" into lmp-dev
* commit 'fe426d061ad5feb65200c2970bf826b10e356247':
  Inset the non-overlay contextual action bar without a status guard
2014-09-30 22:22:01 +00:00
Adam Powell
46cbf7e190 Inset the non-overlay contextual action bar without a status guard
When the status guard is not available, (e.g. when the window is not
drawing system bars) do not consume the insets when an action mode is
active.

Bug 17691453

Change-Id: I459622eaf161a96152fb9ac5f60bb9508aa4de89
2014-09-30 13:31:51 -07:00
RoboErik
2da9e080aa am 55ecb483: Merge "Don\'t forward media keys to the app if the phone session is active" into lmp-dev
* commit '55ecb483ba3afdc46eb4bec5daea4e56a195df22':
  Don't forward media keys to the app if the phone session is active
2014-09-26 22:58:56 +00:00
RoboErik
de9ba39c17 Don't forward media keys to the app if the phone session is active
This checks if the phone app is currently getting or in a call when a
media key event is sent and sends it to the phone session instead of the
foreground app if it is.

bug:17527302
Change-Id: Ie5d6cf0c897da81d106f2b1a0561b79f4fc35e82
2014-09-26 14:53:06 -07:00
Dan Sandler
20895a7973 am 7b7ef437: Merge "Don\'t start the keyguard until boot is done." into lmp-dev
* commit '7b7ef437e5b46d1173a7458ada6520778284c91a':
  Don't start the keyguard until boot is done.
2014-09-26 19:44:12 +00:00
Michael Wright
97e2ef03d6 am ff0384fa: Merge "Turn the device on if the camera lens is uncovered." into lmp-dev
* commit 'ff0384fa37801b82517897c3d0b03982d443e3c7':
  Turn the device on if the camera lens is uncovered.
2014-09-26 19:44:02 +00:00
Dan Sandler
22ef3ed305 Merge "Don't start the keyguard until boot is done." into lmp-dev 2014-09-26 19:32:26 +00:00
Michael Wright
1b409bcfb8 Merge "Turn the device on if the camera lens is uncovered." into lmp-dev 2014-09-26 18:13:55 +00:00
Jason Monk
5eeebf5c29 Don't start the keyguard until boot is done.
Create the KeyguardServiceDelegate but don't bind until boot is done.
Until the keyguard is bound, the delegate will assume it should be
in a secure state.

Bug: 17464800
Change-Id: I91650d1e3e3ea993168855bc3444b905aac9aac3
2014-09-26 12:53:29 -04:00
Michael Wright
61a43ee7a9 Turn the device on if the camera lens is uncovered.
Bug: 17643810
Change-Id: I4747414224c3219bf91c0c83e969530cb20f96e5
2014-09-25 22:19:13 +00:00
Alan Viverette
9f0b7db924 am 00660f66: Merge "Fix "Always apply window insets to action modes"" into lmp-dev
* commit '00660f66ef0344698551c88c0f26663f70e31b5e':
  Fix "Always apply window insets to action modes"
2014-09-25 20:15:40 +00:00
Alan Viverette
314dc4c553 Merge "Fix "Always apply window insets to action modes"" into lmp-dev 2014-09-25 20:11:28 +00:00
Alan Viverette
98a514221a Fix "Always apply window insets to action modes"
BUG: 17628875
Change-Id: I03bf6cfd68d0ca2904b43e00f68d07d497ff9879
2014-09-24 17:55:52 -07:00
Jason Monk
409353186c am b73e5baf: am f40f4af6: Merge "Add announcement of global actions dialog" into lmp-dev
* commit 'b73e5baf14e99e3078e08f76f1d492ec47c49dbc':
  Add announcement of global actions dialog
2014-09-24 15:10:47 +00:00
Jason Monk
ed1ae8f87b Merge "Add announcement of global actions dialog" into lmp-dev 2014-09-24 14:57:26 +00:00
Jason Monk
30443b14d1 Add announcement of global actions dialog
Rather than saying 'Alert', say 'Alert, ...' describing the contents
of the menu.

Bug: 17559783
Change-Id: I43b1b5ba9ce76b8c205f2d29f2f8ee7569517c19
2014-09-24 08:43:22 -04:00
Jeff Brown
b0697d1e8c am a9b97c68: am 3f51958b: Merge "Fix window manager policy state when waking from doze." into lmp-dev
* commit 'a9b97c6839ebf7364552c3c7b1e8eed2c2e56e1a':
  Fix window manager policy state when waking from doze.
2014-09-23 17:00:11 +00:00
Jeff Brown
3ee549ca24 Fix window manager policy state when waking from doze.
Once upon a time when the world was fresh and new, the heavens
had an easy rhythm.  Day and night.  Night and day.  In the day,
the pixel fairies would cavort and play in the bright gardens
with narry a mark of shadow or gloom.  In the night, they would
rest peacefully, dreaming no dreams and knowing no fear.

Then one night a fairy dreamed the first dream.  At first
the dream was peaceful, full of colors and delight, hopes and
memories.  Then all at once, jarringly, it awoke in bright
daylight.  The pixel fairy knew fear, for the world had changed
and it was unprepared.

Time passed and the pixel fairies grew accustomed to their
fate, day and night, night and day, sometimes dreaming, until
there came a night when a fairy did not sleep.  It roamed
the land in a dreamless doze, lost and afraid amid a grim haze
of grey and darkness.  The fairy despaired.  It wanted no
part of this place.  It pretended for a time to be awake but
the bright daylight would not come.  It pretended for a time to
be dreaming but the colors and memories would not come.
That is when the fairy wished for oblivion.  Then just as
suddenly, it awoke in the daylight.  It fell to the ground,
stunned as if it had forgotten how to walk in the too bright
daylight.

Though the world again grew softer and kinder in time, the pixel
fairies were never the same.  For the night is dark and full
of terrors.

---

It used to be easy.  Screen on and screen off could explain almost
everything about the state of the device but it's different now with
ambient display.  We need to be able to wait for all windows to be
drawn even in the case where the device is still nominally asleep.
In truth, the window manager policy which drives a lot of these
interactions is a thicket of outdated assumptions.

Added a new method to tell the window manager policy when the screen
is being turned off so that it can correctly account for changes
to the interactive state (wakeUp and goingToSleep) and screen state
(screenTurningOn and screenTurnedOff).  Now we can independently
poke keyguard during interactive state changes and we can apply
screen on blocking during screen state changes.

Moved the code which manages screen on blocking (which is what
ensures the UI has fully drawn before revealing screen contents)
from the power manager to the display manager since the display
manager is in a better position to accurately track the state of
the screen, particularly when the screen is being turned off.

Fixed a bunch of synchronization issues.  Previously some work
had been moved to a handler without considering what might
happen if it became reordered relative to other work happening
elsewhere.  Documented the desired behavior in the code to
prevent this from happening again.

There's still a bunch of stuff in here that isn't quite right,
particularly the assumption that there's only one screen, but
it's good enough for now.  Hopefully there aren't too many bugs.

Bug: 17605802
Change-Id: Ic7319e09948c8a3cda014d7e169c964a3ad86f14
2014-09-23 09:38:05 -07:00
John Reck
7a5b01bc0e am 01b5cfaa: am 668e566e: Merge "Aggressively trim memory for system_process" into lmp-dev
* commit '01b5cfaac7e72526d145b4c5ea706993321abaa9':
  Aggressively trim memory for system_process
2014-09-23 02:52:16 +00:00
John Reck
73840ea367 Aggressively trim memory for system_process
Bug: 16978006

Don't HWUI-accelerate KeyguardScrim
Aggressively trim memory as soon as a ViewRootImpl
dies or has its visibility changed.

Change-Id: Ie1b7c9d30653456bd2e9f309128174f972999368
2014-09-22 16:01:56 -07:00
Jeff Brown
2a46170cd6 am 54d28e51: am 09395677: Merge "Decouple turning screen on from waking up in policy." into lmp-dev
* commit '54d28e51275e948d59484e3bd3e3eaea25c012e8':
  Decouple turning screen on from waking up in policy.
2014-09-20 04:46:16 +00:00
Jeff Brown
36c4db8bd3 Decouple turning screen on from waking up in policy.
This allows us to ensure windows are fully drawn before unblocking
screen on while dozing.

Bug: 17516245
Change-Id: Ibe63c212b8db855ce26a34a8169f33764b266ee6
2014-09-19 13:14:29 -07:00
Adam Powell
aaf130873d am 0f1b4f46: am e58c9578: Merge "Make panel menu windows respect elevation" into lmp-dev
* commit '0f1b4f46f32d9a49c2023ee5c6a4ca6a7b4ee7ef':
  Make panel menu windows respect elevation
2014-09-19 17:54:38 +00:00
Adam Powell
2b2f6729b8 Merge "Make panel menu windows respect elevation" into lmp-dev 2014-09-19 17:25:34 +00:00
Alan Viverette
0bdf25b090 am cb1fd0e1: am d03ba30b: Merge "Always apply window insets to action modes" into lmp-dev
* commit 'cb1fd0e161670120f64dc35c2588a0d994edf0b1':
  Always apply window insets to action modes
2014-09-19 03:53:10 +00:00
Adam Powell
594558d7e9 Make panel menu windows respect elevation
Bug 17430536

Change-Id: I962dfa10d3cb4f735dcaa68f17e7ff278d1580a2
2014-09-18 18:22:29 -07:00
Alan Viverette
24b5f2cf95 Always apply window insets to action modes
BUG: 17567245
Change-Id: I3c37d228e3a9d3060a4fd1a86abf2ffbf91802e8
2014-09-18 15:46:42 -07:00
Alan Viverette
194206c4d7 am c5073a81: am fb15b0e2: Merge "Use action bar theme for action modes, fix ViewStub inflation theme" into lmp-dev
* commit 'c5073a812a82928ae681c9fcd328a3b1323b4edc':
  Use action bar theme for action modes, fix ViewStub inflation theme
2014-09-18 20:57:26 +00:00
John Reck
7c48077877 am a0f5d726: am e182b60c: Merge "Revert "Make starting window hw-accelerated"" into lmp-dev
* commit 'a0f5d726fc8a5610e41c40e289fd107704202327':
  Revert "Make starting window hw-accelerated"
2014-09-18 20:57:13 +00:00
Alan Viverette
07ecc748fb Merge "Use action bar theme for action modes, fix ViewStub inflation theme" into lmp-dev 2014-09-18 20:25:22 +00:00
John Reck
7e3d6c988c Merge "Revert "Make starting window hw-accelerated"" into lmp-dev 2014-09-18 20:01:15 +00:00
John Reck
61375a8bb5 Revert "Make starting window hw-accelerated"
Bug: 17516789

This change corresponds to a sudden influx of bad surface crashes.
Reverting to see if stability returns as this was an optimization
CL

This reverts commit 29ff1bc57ac2c995c56f15ed6e56e5fb247b2a44.

Change-Id: I7835e89017161d94ad05fe46d81bd437c3dae3a7
2014-09-18 19:29:23 +00:00
Adrian Roos
e623e3c5c8 am a5d25381: am a92e765e: Merge "Fix bar visibility after restarting immersive activities" into lmp-dev
* commit 'a5d253811519cf14af88407b285024d78001e6d1':
  Fix bar visibility after restarting immersive activities
2014-09-18 13:18:19 +00:00
Alan Viverette
a9ddb8dc23 Use action bar theme for action modes, fix ViewStub inflation theme
BUG: 17262483
BUG: 17513621
Change-Id: I74764570a11da162a224e94978e21e52d17e2e84
2014-09-17 18:14:32 -07:00
Adrian Roos
dc263b1abf Fix bar visibility after restarting immersive activities
This was a result of using the wrong systemUiVisibility listener.
Instead, DecorView now follows the structure in ActionBarOverlayLayout,
where we use onWindowSystemUiVisibilityChanged for everything.

Bug: 17494017
Change-Id: I1be9165c5ff80021f3a7889d3811cf0c54f68e71
2014-09-17 15:55:27 +02:00
Adrian Roos
96174641f8 am 1f86d47c: am 90c9f382: Merge "Properly redispatch systemUiVisibility flags" into lmp-dev
* commit '1f86d47c2bdeff6603793a9a8d6e50beca2ea014':
  Properly redispatch systemUiVisibility flags
2014-09-16 18:04:19 +00:00
Adrian Roos
ce4a0cf9ce Properly redispatch systemUiVisibility flags
Fixes two bugs introduced by change
I7bd32531130d199c0734ffcb800194e77b7e16c3:

When the system window insets consumed by DecorView
change as a result of changing flags, the insets must
be redispatched to the hierarchy.

Also fixes a bug where, as a result of removing the wrong
implication of the SYSTEM_UI_FLAG_LAYOUT_STABLE flag by
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS, the status bar was
being forced to black when returning from recents.

Bug: 17489047
Bug: 15046646
Change-Id: I127b0ff3b17c4873a7c28d67020f84298ed09db2
2014-09-16 16:28:45 +02:00
Adam Powell
35e752ef62 am 51bf4916: am 86a3adca: Merge "Magic null-background filling for PhoneWindows" into lmp-dev
* commit '51bf49165c01c6ee7386fcee35c17cf636a151cb':
  Magic null-background filling for PhoneWindows
2014-09-14 23:21:09 +00:00
Adam Powell
f849a5e16d Magic null-background filling for PhoneWindows
In the past it's been a recommended approach to avoiding overdraw for
apps to set their window background to null at runtime if their
content view fully covers their window surface. The problem with this
is the IME.

The IME can force a resize of the window at unexpected times and
unless an app has been configured to fit system windows and manually
cover the padded area that the IME window covers, the asynchronous
nature of the IME-show process can leave surface buffer garbage
visible to the user. In previous platform versions this wasn't an
issue since pre-renderthread we would always animate a crossfade from
the closed to open state. This animation was always a bit of a hack
since it could break the contract of requestLayout/invalidate on the
view hierarchy - it could result in a draw happening into the saved
"before" state of the crossfade before a pending layout.

Now that this has been cleaned up the buffer garbage is sometimes
visible.

To prevent this, PhoneWindow now detects the state of a null window
background and draws solid rects into the area not covered by a
window's content. Which color is determined by the window context's
theme, though this is not a public API available to apps.

Bug 17006497

Change-Id: I714439a1608c4ae135f3d9d49bb165330d9fbe9f
2014-09-14 15:44:11 -07:00