Commit Graph

129 Commits

Author SHA1 Message Date
Jamie Gennis
b001cfb4da am c2091130: am 075e4c3d: Merge "SurfaceFlinger: update orientation via transactions" into ics-mr0
* commit 'c2091130ae1a1b37956f49d0fe81fb82413cd2dd':
  SurfaceFlinger: update orientation via transactions
2011-10-12 20:42:40 -07:00
Jamie Gennis
e2909e121c SurfaceFlinger: update orientation via transactions
This change merges the ISurfaceComposer::setOrientation functionality
into ISurfaceComposer::setTransactionState.  It enables the window
manager to atomically update both the display orientation and the
position and size of the windows in a single transaction with
SurfaceFlinger.

Bug: 5439574
Change-Id: I18a8ccc564d7d760ef8afb2d015ccdb7a7963900
2011-10-11 13:34:01 -07:00
Dianne Hackborn
091ff486ab am 94e8471a: Merge "Fix issue #5405788: Device continuously opening and closing..."
* commit '94e8471a956d46f4fae3da2b1e79862e07209efa':
  Fix issue #5405788: Device continuously opening and closing...
2011-10-10 16:10:02 -07:00
Dianne Hackborn
58f42a59bd Fix issue #5405788: Device continuously opening and closing...
...the "Complete action using" dialog

When an application goes idle, it sends back to the activity manager
the configuration it last used, to make sure the two don't get out
of sync.  Fix a bunch of edge cases here in dealing with that, and
be sure to also send the current configuration when launching an
activity so the client is always up-to-date when launching.

Also a small fix to not show the upgrading dialog during first boot.

Change-Id: I14ed366a87cd689d1c78787369e052422290ac6f
2011-10-10 14:53:08 -07:00
Dianne Hackborn
be870e81e8 am ba8ecd20: Merge "Fix how we hide and show the nav bar."
* commit 'ba8ecd206cc6f175767f952d380c88f70ece04cf':
  Fix how we hide and show the nav bar.
2011-10-07 15:14:55 -07:00
Dianne Hackborn
df89e65bf0 Fix how we hide and show the nav bar.
The PhoneWindowManager is now responsible for hiding and showing
the nav bar.

For hiding, it just moves it off the screen (easy way to get a
nice slide animation on and off).  At the same time, we use a
new WM facility to put up a fake input window to capture all
touch events.

When a touch event is received, we force the system UI to clear
the navigation hiding bit so it will be shown again.

This removes a bunch of code from the system UI for hiding and
showing the nav bar.  Also removes the code calling from userActivity()
to the system UI, which was bad.  (Also no longer using userActivity()
fixes bugs around re-showing the nav bar due to key presses and
other wrong things.)

Change-Id: I8c3174873b5bcaa36a92322a51e8f7993e88e551
2011-10-07 14:32:01 -07:00
Dianne Hackborn
3c32c7a92e am 85b9edf2: Merge "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately"
* commit '85b9edf2da0534bc53d139bb88cda8866d265afe':
  Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately
2011-10-06 15:21:12 -07:00
Dianne Hackborn
85b9edf2da Merge "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately" 2011-10-06 15:15:32 -07:00
Dianne Hackborn
9a230e01a1 Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately
This cleans up how ui flags are managed between the client and window manager.
It still reports the global UI mode state to the callback, but we now only clear
certain flags when the system goes out of a state (currently this just means the
hide nav bar mode), and don't corrupt other flags in the application when the
global state changes.

Also introduces a sequence number between the app and window manager, to avoid
using bad old data coming from the app during these transitions.

Change-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23
2011-10-06 14:57:37 -07:00
Jeff Brown
b070aff670 am 219f3c71: Merge "Make SENSOR orientation modes trump rotation lock. Bug: 5371750"
* commit '219f3c71269ff0bd8949b88af07f92c4e4eddc67':
  Make SENSOR orientation modes trump rotation lock. Bug: 5371750
2011-10-05 17:27:49 -07:00
Jeff Brown
4dfce20cac Make SENSOR orientation modes trump rotation lock.
Bug: 5371750

Change-Id: I4d18b6c8ba1de0afd5929ddb8d7123272e35fbe2
2011-10-05 16:12:07 -07:00
Dianne Hackborn
3f03016ba9 am edc63317: Merge "Always unfreeze display."
* commit 'edc633170fb28fd17395472d000875f19d157e18':
  Always unfreeze display.
2011-10-05 11:26:49 -07:00
Dianne Hackborn
edc633170f Merge "Always unfreeze display." 2011-10-05 11:25:19 -07:00
Dianne Hackborn
eda74be89a am 59ba9856: Merge "Fix issue #5388352: font size change back to normal"
* commit '59ba98565d82fe7542569d1dd0847b47f30655d6':
  Fix issue #5388352: font size change back to normal
2011-10-05 06:37:00 -07:00
Dianne Hackborn
161dc80ea7 Always unfreeze display.
Change-Id: I7a0f3be49fe723fe59cf6268861bc5fe7f49bc62
2011-10-04 19:18:25 -07:00
Dianne Hackborn
09e5b9daf3 Fix issue #5388352: font size change back to normal
This is another place where we are messed up by the stupid default
Configuration having a 1.0 font scale.  Argh.

Change-Id: Iaa2550d4edab92fb8a52f98fbb9fd8ef5fab94b5
2011-10-04 16:32:01 -07:00
Jeff Brown
c976aec618 am 4c253119: Merge "Prevent unintended rotations. Bug: 4981385"
* commit '4c253119db0ce753e46ec3809b54b9e357d363db':
  Prevent unintended rotations. Bug: 4981385
2011-09-23 18:29:49 -07:00
Jeff Brown
4c253119db Merge "Prevent unintended rotations. Bug: 4981385" 2011-09-23 18:28:01 -07:00
Jeff Brown
c0347aa19f Prevent unintended rotations.
Bug: 4981385

Changed the orientation listener to notify the policy whenever
its proposed orientation changes, and changes the window manager
to notify the orientation listener when the actual orientation
changes.  This allows us to better handle the case where the
policy has rejected a given proposal at one time (because the
current application forced orientation) but might choose
to accept the same proposal at another time.

It's important that the proposal always be up to date.  A proposal
becomes irrelevant as soon as the phone posture changes such
that we can no longer determine the orientation with confidence
(such as when a device is placed flat on a table).

Simplified the orientation filtering.  Now we just wait 200ms
for the device to be still before issuing a proposal.  The idea
is that if the device is moving around a lot, we assume that
the device is being picked up or put down or otherwise in
the process of being moved.  We don't want to change the rotation
until that's all settled down.  However, we do want to tolerate
a certain amount of environmental noise.

(The previous confidence algorithm was also designed along
these lines but it was less direct about waiting for things
to settle.  Instead it simply made orientation changes take
longer than usual while unsettled, but the extra delay was often
too much or too little.  This one should be easier to tune.)

Change-Id: I09e6befea1f0994b6b15d424f3182859c0d9a530
2011-09-23 17:26:09 -07:00
Dianne Hackborn
0ba3f30655 am a982ad19: Merge "Fix issue #5173952: Opening a Notification From Lock Screen..."
* commit 'a982ad19d2aee54f714fa3ad9ee4ddbac08dc0fe':
  Fix issue #5173952: Opening a Notification From Lock Screen...
2011-09-23 14:56:48 -07:00
Dianne Hackborn
90c52de286 Fix issue #5173952: Opening a Notification From Lock Screen...
...Should Skip Unsecure Lockscreen (ICS)

Also while I am in there, clean up logging of intent objects to include
even less sensitive information, while showing the true Intent in dump
output (since apps can't get to that).

Change-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e
2011-09-23 13:39:33 -07:00
Jeff Brown
088663e846 am a829e166: Merge "Handle orientation changes more systematically. Bug: 4981385"
* commit 'a829e16681903e6a41901145195f88bf9d952f88':
  Handle orientation changes more systematically. Bug: 4981385
2011-09-21 21:11:37 -07:00
Jeff Brown
01a98ddbdf Handle orientation changes more systematically.
Bug: 4981385

Simplify the orientation changing code path in the
WindowManager.  Instead of the policy calling setRotation()
when the sensor determined orientation changes, it calls
updateRotation(), which figures everything out.  For the most
part, the rotation actually passed to setRotation() was
more or less ignored and just added confusion, particularly
when handling deferred orientation changes.

Ensure that 180 degree rotations are disallowed even when
the application specifies SCREEN_ORIENTATION_SENSOR_*.
These rotations are only enabled when docked upside-down for
some reason or when the application specifies
SCREEN_ORIENTATION_FULL_SENSOR.

Ensure that special modes like HDMI connected, lid switch,
dock and rotation lock all cause the sensor to be ignored
even when the application asks for sensor-based orientation
changes.  The sensor is not relevant in these modes because
some external factor (or the user) is determining the
preferred rotation.

Currently, applications can still override the preferred
rotation even when there are special modes in play that
might say otherwise.  We could tweak this so that some
special modes trump application choices completely
(resulting in a letter-boxed application, perhaps).
I tested this sort of tweak (not included in the patch)
and it seems to work fine, including transitions between
applications with varying orientation.

Delete dead code related to animFlags.

Handle pausing/resuming orientation changes more precisely.
Ensure that a deferred orientation change is performed when
a drag completes, even if endDragLw() is not called because the
drag was aborted before the drop happened.  We pause
the orientation change in register() and resume in unregister()
because those methods appear to always be called as needed.

Change-Id: If0a31de3d057251e581fdee64819f2b19e676e9a
2011-09-21 19:26:15 -07:00
Jason Simmons
8d3538d016 resolved conflicts for merge of 0799e951 to ics-aah
Change-Id: I4f968fa84aa395c63c28053ef0f489161530bf86
2011-09-20 14:36:22 -07:00
Dianne Hackborn
bc1aa7bbc7 Fix issue #5312624: Lock screen very flickery
The key thing was to fix isVisibleOrBehindKeyguardLw() so that it
wouldn't count a window as not visible if it was just currently
in the process of drawing due to an orientation change.

Also improve logic in deciding when to turn screen on to better ensure
the screen is in a stable state, in particular treating screen off
as a frozen screen and not allowing it to turn on until the
update of the screen due to any config change is done.

Change-Id: If82199f3773270b2d07f9c7de9da2dad8c7b28d7
2011-09-20 11:20:31 -07:00
Mike Lockwood
1e0207674d resolved conflicts for merge of 2f7d7c9b to ics-aah
Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

Change-Id: I851866d74ff9674bfb7ff652d8be65da342273c0
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-09-18 18:25:44 -04:00
Dianne Hackborn
38e29a61d0 Fix issue #5242779: Device not responding to touch on unlock screen
Rework how we decide when it is okay to turn on the screen by having
the policy call back to the power manager when it knows the lock screen
has been drawn.

Change-Id: Ie8f3f72111dcf7f168723e6dce24e0343b4afe5d
2011-09-18 14:52:52 -07:00
Dianne Hackborn
1a30857a89 am 09bd49a8: Fix issue #5328235: Wrong values for smallestScreenWidthDp
* commit '09bd49a8a74cafe7f03aee769bfe0748bf3c2b51':
  Fix issue #5328235: Wrong values for smallestScreenWidthDp
2011-09-16 00:16:48 -07:00
Dianne Hackborn
09bd49a8a7 Fix issue #5328235: Wrong values for smallestScreenWidthDp
Maybe.

Change-Id: I88dfde1626376b3003bdd7a8068c55545255851e
2011-09-15 19:12:01 -07:00
Dianne Hackborn
7b50e27ad2 am ca7b6568: Merge "Fix issue #5283365: Rotating the device to portrait mode, hides the keyboard partly"
* commit 'ca7b6568333e1446b8357a89f6bdf757fee29768':
  Fix issue #5283365: Rotating the device to portrait mode, hides the keyboard partly
2011-09-14 17:59:44 -07:00
Dianne Hackborn
1f903c3b57 Fix issue #5283365: Rotating the device to portrait mode, hides the keyboard partly
PhoneWindowManager now takes full responsibility for deciding where the
navigation bar goes.  This gets rid of a bunch of race conditions with
determining layout while the nav bar is moving itself at the same time
the window manager is computing a new configuration.

Note that this breaks the "nav bar on left" option.  The current nav
bar code could also be cleaned up some more to completely drive its
behavior based on onSizeChanged() happening during relayout.

Change-Id: I1651d74c3464ba0d588aab3049e099c78420146a
2011-09-14 17:56:40 -07:00
Mike Lockwood
1d29e2129f Fix problems dispatching media button events on headless devices
Change-Id: Ib0f8ca008c7e1325d5dc6f6534f08960c527eeac
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-09-13 16:29:38 -04:00
Dianne Hackborn
4c34eed9ab am 1cd955b0: Merge "Get rid of some animation flickers and other bad things."
* commit '1cd955b01d8ea72009be56f4c4a93d4d79e902df':
  Get rid of some animation flickers and other bad things.
2011-09-12 14:44:11 -07:00
Dianne Hackborn
d02a9e95f4 Get rid of some animation flickers and other bad things.
Change-Id: If7606286bf0bd01cf023d57719ccb27e39d5564c
2011-09-12 13:47:31 -07:00
Dianne Hackborn
54869071db am fe75cb34: Merge "Fix inflating of animations."
* commit 'fe75cb342e33e7c465709bb34ab7abae9e9871f6':
  Fix inflating of animations.
2011-09-11 13:09:40 -07:00
Dianne Hackborn
8962028b6e Fix inflating of animations.
Need to define attributes for animation set, to have correct indices.

Also small fixes elsewhere.

Change-Id: If596147e8aee4ebffe4e184872070341eff6df73
2011-09-11 12:47:45 -07:00
Dianne Hackborn
569857cd44 am 4ee36669: Merge "Fix issue #5263361: Browser instance not created in application picker"
* commit '4ee366690111e5f71a248a2af10301db425162d5':
  Fix issue #5263361: Browser instance not created in application picker
2011-09-08 10:41:59 -07:00
Dianne Hackborn
905577f634 Fix issue #5263361: Browser instance not created in application picker
The resolver activity was hiding the following activity from recents.

Also some other fixes: a little better memory use debugging, removed
some unneeded code from window manager, moved some system activities
into their own process, added some more running process information for
manage apps.

Change-Id: I66687d16989ff965d524b92dc360f37c19199717
2011-09-08 10:35:11 -07:00
Dianne Hackborn
0d772c766f am 7de6578f: Merge "Fix issue #4974633: Block the HOME button using TYPE_KEYGUARD"
* commit '7de6578f1c4bf97c9f856f819d4985d25163012a':
  Fix issue #4974633: Block the HOME button using TYPE_KEYGUARD
2011-09-01 16:54:31 -07:00
Dianne Hackborn
7cbbb8b1a3 am 69666e07: Merge "Fix issue #5229575: Youtube link shared through messaging is not..."
* commit '69666e078152362b19d02d9ee79bbd5fc69e09c3':
  Fix issue #5229575: Youtube link shared through messaging is not...
2011-09-01 16:54:23 -07:00
Dianne Hackborn
7de6578f1c Merge "Fix issue #4974633: Block the HOME button using TYPE_KEYGUARD" 2011-09-01 15:56:36 -07:00
Dianne Hackborn
ba24e4d8bb Fix issue #5229575: Youtube link shared through messaging is not...
...opening after selecting option "Youtube" as a luncher.

Also:

* Tweak window animations so that the wallpaper exist animations do not
stop too early (causing the wallpaper to suddenly disappear).
* Make sure no input is being processed while booting, to avoid
accidentally doing things especially in the upgrade dialog.
* Some other small cleanup.

Change-Id: I40a6b53731991d4e31ac4502e3d85f0e47507481
2011-09-01 12:39:17 -07:00
Dianne Hackborn
0e60db221c Fix issue #4974633: Block the HOME button using TYPE_KEYGUARD
Applications shouldn't be able to change their window type after
the window is added to the window manager.

Change-Id: Iac63da65f96fb30683f68f8d89c3fd29199a750c
2011-09-01 11:17:57 -07:00
Dianne Hackborn
8aab8b5759 am 1434ab98: Merge "Use floating point window positions."
* commit '1434ab98e690cbcfcdcd2296b491a44bff14cc55':
  Use floating point window positions.
2011-08-31 14:22:37 -07:00
Dianne Hackborn
d040edbae9 Use floating point window positions.
Gets rid of gapps between windows during animations.

Change-Id: I17d2ef0af214008f0eabd7eb19268f145fe83b39
2011-08-31 14:18:32 -07:00
Jeff Brown
79753f387a am 9d4bc852: Merge "Fix input channel leak. Bug: 5156144"
* commit '9d4bc852ea459c2a4347a87ce0357b3328a25db8':
  Fix input channel leak. Bug: 5156144
2011-08-31 13:03:26 -07:00
Jeff Brown
9d4bc852ea Merge "Fix input channel leak. Bug: 5156144" 2011-08-31 13:01:16 -07:00
Jeff Brown
cc4f7db698 Fix input channel leak.
Bug: 5156144

Input channels could leak or simply live longer than they should
in some cases.

1. Monitor channels (used by the pointer location overlay) are never
   unregistered, so they would leak.

   Added code to handle failures in the receive callback by closing
   the input channel.

2. The DragState held onto its input window and application handles
   even after the input channel was disposed.

   Added code to null these handles out when they are no longer needed.

3. Input channels previously used as input event targets would stick
   around until the targets were cleared (usually on the next
   event).

   Added code to detect when the input dispatcher is in
   an idle state and to proactively clear the targets then
   to ensure that resources are released promptly.

4. Native input window handles held onto the input channel even
   after the input window was removed from the input dispatcher.
   Consequently, the input channel would not be disposed until
   the input window handle itself was freed.  Since the input
   window handle is held from managed code, this meant that the
   window's input channel could stick around until the next GC.

   Refactored the input window handle to separate the properties
   (info) and identify (handle) state into different objects.
   Then modified the dispatcher to release the properties (info)
   when no longer needed, including the input channel.

7. The pointer location overlay does not actually use its
   standard input channel, only the monitor input channel.

   Added INPUT_FEATURE_NO_INPUT_CHANNEL to allow windows to
   request that they not be provided with an input channel
   at all.

Improved some of the error handling logic to emit the status
code as part of the exception message.

Change-Id: I01988d4391a70c6678c8b0e936ca051af680b1a5
2011-08-30 21:40:28 -07:00
Dianne Hackborn
9a3fe4744e am 9c93db60: Merge "Fix issues #5233826 and #5209847 -- live wallpapers."
* commit '9c93db60e6d9172e1957e5e31a6c5b82e2494420':
  Fix issues #5233826 and #5209847 -- live wallpapers.
2011-08-30 15:50:35 -07:00
Dianne Hackborn
9e4e727b4a Fix issues #5233826 and #5209847 -- live wallpapers.
5233826	when a live wallpaper starts, it does so regardless of its visibility

The WallpaperService is now very forceful about telling a wallpaper it is
not visible when it first starts.

5209847	Make launcher turn off the wallpaper in all apps.

Fix a bug in the window manager that would not correctly handle the wallpaper
flag changing.

Change-Id: Ie3314043a84664be72a1304a1705408efd789a15
2011-08-30 14:56:31 -07:00