Commit Graph

339 Commits

Author SHA1 Message Date
Dianne Hackborn
ca08198f41 am 176a8a8b: am 0b9b053c: Merge "Don\'t crash in window manager if we fail getting .apk resources." into jb-dev
* commit '176a8a8b7cba2654f50617b14a841ef977b95b11':
  Don't crash in window manager if we fail getting .apk resources.
2012-06-22 10:43:07 -07:00
Dianne Hackborn
0b9b053ce6 Merge "Don't crash in window manager if we fail getting .apk resources." into jb-dev 2012-06-22 10:38:45 -07:00
Craig Mautner
2cb7980660 am a6b8189f: am 9ce1ea3a: Merge "Fix starting window problems." into jb-dev
* commit 'a6b8189f8e152caafe5900cff0f068517a70088d':
  Fix starting window problems.
2012-06-21 19:00:50 -07:00
Craig Mautner
f412095686 Fix starting window problems.
Three problems fixed:
1. When one Activity took over for another Activity not all of the
starting window state was being copied over. Now copying over more
parameters.

2. When the visibility of an Activity was being changed the dummy
animation was overwriting the existing animation. If that animation
was the starting window animating then it started over when the
dummy animation was assigned. Now the dummy animation no longer
replaces an existing starting window animation.

3. The test for whether to animate away the starting window only
looked to see if the Activity had already drawn a window but did
not include the starting window. This caused the starting window
to immediately be hidden when the Activity was removed if no
windows were drawn, thereby exposing the fading window behind.
Now the starting window is included in the hasAppShownWindows test
and is animated away if it is exposed.

Fixes bug 6691421.

Change-Id: I4d32a1546c201652574a44d9e7f2752f1f1eb5a6
2012-06-21 18:25:39 -07:00
Dianne Hackborn
0b800190d7 Don't crash in window manager if we fail getting .apk resources.
This normally shouldn't noramlly happen, but it can in the case of
bug 6647334 (crash in LoadedApk.makeApplication) where the package
manager information becomes inconsistent, and it could also happen
if an app was uninstalled or started updating at just the right
time during a launch.

Bug: 6647334
Change-Id: Iba22efe1d646cdac46099b2135466309577dfa54
2012-06-21 15:29:36 -07:00
Dianne Hackborn
306211d792 am b0222bb1: am 0fa4d30b: Merge "Fix issue #6686339: 2 taps required to launch notification..." into jb-dev
* commit 'b0222bb19e8d850ccbd74c4f0832d73ae552df8d':
  Fix issue #6686339: 2 taps required to launch notification...
2012-06-20 12:10:39 -07:00
Dianne Hackborn
0fa4d30b03 Merge "Fix issue #6686339: 2 taps required to launch notification..." into jb-dev 2012-06-20 12:06:38 -07:00
Dianne Hackborn
6e2281d44c Fix issue #6686339: 2 taps required to launch notification...
...or settings from lock screen

When a window is drawn, the code to determine whether it should now
be shown was calling WindowState.isReadyForDisplay().  Part of the
condition of this function is that it is not ready if a policy is
forcing the window to be hidden -- which is the case when the lock
screen is shown.  As a result, we wouldn't show the window at that
point, so wouldn't tell the activity manager that the token's windows
are visibible, and wouldn't tell the lock screen to go away.

This adds a new variation WindowState.isReadyForDisplayIgnoringKeyguard(),
which is the same as the original method but ignores the policy visibility
for app windows.  This allows windows to be go through the complete
path of handling when the window is finally drawn and telling the
activity manager about it, even if behind the lock screen.  By making it
a separate function, we don't impact any other code that is calling the
old function and may be relying on its behavior.

Also cleaned up a little of the dumpsys output.  Most important, the
new ANR section is now moved to the top, since we want
"adb shell dumpsys window" to still give a nice summary of what we
normally care about -- the window stack and important global state.

Change-Id: Ica3ea85ce46f3f5f5cd2cc30fbd9de13d3885a57
2012-06-19 17:54:24 -07:00
Craig Mautner
2fa2a52838 am 9a5a8aaf: am 5785e05d: Merge "Clear sendingToBottom when animation is complete." into jb-dev
* commit '9a5a8aafad89f3e05bb9c17c56ea4658413a4452':
  Clear sendingToBottom when animation is complete.
2012-06-19 15:13:46 -07:00
Craig Mautner
3f99fde465 Clear sendingToBottom when animation is complete.
Was counting on moving the app to the top to clear the flag
indicating that the app was being sent to the bottom. Since this
did not always happen the sendingToBottom flag was occasionally
left set. In this case the focus was skipped for that app and
consequently input was never propagated to it.

This fix clears the sendingToBottom flag each time the app
animations are completed.

Fixes bug 6691421.

Change-Id: I6f851dc5bedca95182db8490d87c876a71ad5fde
2012-06-19 14:10:01 -07:00
Jeff Brown
4f8ecd8029 Move power manager to a new package.
Change-Id: I5f5a6435e64354b7d6535e8e9a63934ba7a3f448
2012-06-18 19:43:44 -07:00
Jeff Brown
40af9c04c5 am 81c61fda: am c4b0d098: Merge "Fix an NPE and possible unsynchronized call of Locked method." into jb-dev
* commit '81c61fda9a1b45db4c06d2db2cf24b42045d4f76':
  Fix an NPE and possible unsynchronized call of Locked method.
2012-06-18 14:20:27 -07:00
Craig Mautner
aa9c9efa8f Merge "More steps to isolate animation." 2012-06-18 13:56:32 -07:00
Jeff Brown
ee17241487 Fix an NPE and possible unsynchronized call of Locked method.
Bug: 6680398
Change-Id: Id5ef4fa82b2a5ef5e9c3934ca95156143f91e5e2
2012-06-18 12:59:13 -07:00
Craig Mautner
01cd0e7df0 More steps to isolate animation.
- Create class to transfer state from WindowAnimator to
WindowManagerService.

- Detached wallpaper state was shared between the two classes. This
CL isolates it.

Change-Id: I7bcee348bf9f9f8f0228f36c53d75e5c92fd84cb
2012-06-18 10:19:11 -07:00
Jeff Brown
d7a04de167 Capture window manager's last ANR state in bug report.
Currently just grabbing the window state but we could grab
other things as part of the last ANR report.

Bug: 6680398
Change-Id: I23aa70907b1bdcb21c8acc556fde196ca790ef6a
2012-06-17 15:55:46 -07:00
Dianne Hackborn
734f0214ec Merge "Help out issue #6654729: CAB + screen off during playback" into jb-dev 2012-06-14 21:33:48 -07:00
Dianne Hackborn
b80395c17d Help out issue #6654729: CAB + screen off during playback
People generally expect, if they are using FLAG_KEEP_SCREEN_ON,
that the screen won't immediately dim after it is cleared, even
if it has been passed the user activity timeout since the last
user interaction.  So include the flag to reset the user activity
timeout when releasing its wake lock.

Change-Id: If7a8fea8faef3edbf13dff10a2f248adc9e3ff0b
2012-06-14 19:38:20 -07:00
Michael Jurka
a676cdab11 Merge "Tweak recents launch app animation" into jb-dev 2012-06-14 14:33:55 -07:00
Michael Jurka
b9a38c57fc Tweak recents launch app animation
- Sometimes the black background would flash; changing
animation durations to make this much less likely
- Fixing issue in Recents where we sometimes forgot
to disable drawing caches on views after enabling them
2012-06-14 11:57:50 -07:00
Craig Mautner
f8d05b4ea6 Merge "Update wallpaper visibility at time of hide/show." into jb-dev 2012-06-13 14:09:08 -07:00
Craig Mautner
507a2ee12b Update wallpaper visibility at time of hide/show.
Call the Window client method dispatchAppVisibility when hiding or
showing wallpaper rather than wait until the next call to
performLayoutAndPlaceSurfaces.

Fixes bug 6645473.

Change-Id: I363f69f8db0affff92308e11ce52546401959d8f
2012-06-13 08:39:38 -07:00
Craig Mautner
1c9581023c Merge "Set detached wallpaper on the scale up animation." into jb-dev 2012-06-12 19:04:01 -07:00
Craig Mautner
a803371535 Set detached wallpaper on the scale up animation.
This keeps the background wallpaper from disappearing when expanding an
app that has a wallpaper background (e.g. clock).

Fixes bug 6649988. The second half of the bug, the first half will be
reissued as a new bug.

Change-Id: I209c9038469e4133586a927c92ef64ae43fb937f
2012-06-12 15:50:45 -07:00
Craig Mautner
9fec779587 Do not cancel animations when switching.
Was canceling ongoing animations when starting a new animation which
caused the window of the first animation to restart. This looked
janky. The original cancellation was put in to stop the incorrect
animation being selected when quickly switching between an incoming
app and the homescreen. Reversing the cancellation no longer exposes
the original problem it was put in to fix.

One way to duplicate what this is fixing.
1. Slow down animations to 10x.
2. Run ApiDemos/App/Alert Dialogs/List dialog
3. Tap outside the list dialog and then tap the home button.
Tapping outside the list dialog causes the list dialog to animate
away. Tapping the home button then causes the app to animate away.
Before this fix the list dialog would revert to full size before
the app animates away. With this fix the list dialog continues its
original animation as the app animates away.

Fixes bug 6600726.

Change-Id: I29c940254808a321c3b6c2e4f4b7c78a72b47899
2012-06-12 11:13:41 -07:00
Michael Jurka
c016aaaa42 Tweak recents out animation a bit more
Bug: 6490204

-Fading to black in the recents layer
-Tweaking duration and interpolators
-Removing some unnecessary debug exceptions (Bug: 6642072)

Change-Id: Iba18fade7f874078111fc1d79a81830ee07617d4
2012-06-11 15:23:20 -07:00
Craig Mautner
fab75dc830 Merge "Turn off dimming immediately for removed windows." into jb-dev 2012-06-08 11:36:36 -07:00
Craig Mautner
236a35b77a Turn off dimming immediately for removed windows.
Dimming was only turning off immediately for app-animated windows.
For removed windows dimming wouldn't turn off until the window was
completely gone.

Fixes bug 6628057.

Change-Id: I3ba6501b10a31b6f8c91012e17ad8734a84050c4
2012-06-08 09:54:59 -07:00
Svetoslav Ganov
86783474fd Cannot interact with dialogs when IME is up and on not touch explored popups.
1. If the last touch explored location is within the active window we
   used to click on exact location if it is within the accessibility
   focus otherwise in the accessibility focus center. If the last touch
   explored location is not within the active window we used to just
   click there. This breaks in the case were one has touch explored
   at a given place in the current window and now a dialog opens *not*
   covering the touch explored location. If one uses swipes to move
   accessibility focus i.e. to traverse the dialog without touching
   it one cannot activate anything because the touch explorer is using
   the last touch explored location that is outside of the active
   window e.g the dialog.

   The solution is to clear the last touch explored location when a
   window opens or accessibility focus moves. If the last touch
   explored location is null we are clicking in the accessibility
   focus location.

bug:6620911

2. There is a bug in the window manager that does not notify a
   window that its location has changed (bug:6623031). This breaks
   accessibility interaction with dialogs that have input because
   when the IME is up the dialog is moved but not notified. Now
   the accessibility layer gets incorrect location for the
   accessibility focus and the window bounds.

   The soluion is when the accessibility manager service calls
   into the remove thress to obtain some accessibility node infos
   it passes the window left and top which it gets from the
   window manager. These values are used to update the attach info
   window left and top so all accessibility node infos emitted
   from that window had correct bounds in screen coordinates.

bug:6620796

Change-Id: I18914f2095c55cfc826acf5277bd94b776bda0c8
2012-06-07 12:02:16 -07:00
Craig Mautner
ad5725d798 Eliminate wallpaper exposure during transition.
Make sure that the wallpaper target exists and is visible before
exposing the wallpaper.

Fixes bug 6570335.

Change-Id: I1dddfe26683e84fd813e7bee884ba2bd4bb85272
2012-06-05 10:20:56 -07:00
Daniel Sandler
ab886f588d Don't do closing animation on an opening app.
Check to make sure that the closing wallpaper animation isn't used on
an opening app token. This can happen when a previous animation hasn't
completed when the next animation is starting.

Fixes bug 6557751.

Change-Id: Ib8bd4dd7de1e361f6fc0cab11d0997e70f9ddd0b
2012-06-04 13:57:49 -07:00
Dianne Hackborn
6593be0c20 Merge "Work on issue #6579997: Mariner entrance animation" into jb-dev 2012-06-04 10:29:32 -07:00
Craig Mautner
da652f6e51 Merge "Revert change to correct animations." into jb-dev 2012-06-03 00:57:23 -07:00
Craig Mautner
3aa7fcac1c Revert change to correct animations.
Incorrect animation was introduced with CL 196207 (perhaps in
combination with a later CL). Reverting part of that CL fixes
the incorrect animation and so far has not reintroduced the jank
that was fixed by that CL. If the jank reappears it should be
fixed in a different fashion than in CL 196207.

Fixes bug 6597505.

Change-Id: Ie8012237a8d49810ede51bd8d78ef8c2fd91ddd4
2012-06-02 15:31:33 -07:00
Dianne Hackborn
84375876fc Work on issue #6579997: Mariner entrance animation
Add a new variation of ActivityOptions that allows you to
supply custom animation resources and get a callback when the
animation starts.

Use this in SearchPanelView to determine when to start hiding
the search panel instead of having a fixed delay.

Fix some issues in the activity manager where we would cancel
the options in cases where we should actually keep them to give
to the window manager for a transition.  (Basically when the
activity being started is not actually ending up launched, but
just results in a shift in the activity stack.)

Note that this is not quite what the design calls for -- the
entire search UI is waiting and then disappearing when the
animation starts, instead of the ring first disappearing while
waiting for the time to fade out the circle.

Change-Id: Iee9a404ba530908d73cdbd4a9d0d2907ac03428f
2012-06-01 19:13:55 -07:00
Craig Mautner
881656831c Use Surface layer for Surface operation.
Previous fix exposed an existing bug where we were using mAnimLayer to
determine the highest Surface layer. This fix uses mSurfaceLayer to set
the layer limits for making the screenshot.

Fixes bug 6586168.

Change-Id: Iaa3b43867aef795ca617ff4b8076428dfc91eaf2
2012-05-31 14:25:31 -07:00
Jeff Brown
7e4ff4b986 Fix comparison of device source bits.
Bug: 6576743
Change-Id: I6952b052e2ab9e62ddd46ab76f4df37ecc656757
2012-05-30 14:32:16 -07:00
Craig Mautner
de1ddd0f93 Merge "Better handle changing app transitions." into jb-dev 2012-05-29 13:53:06 -07:00
Craig Mautner
1d961d46d6 Better handle changing app transitions.
When we are in the middle of an app transition and need to change to a
new one we were not ending the old one in a clean state. Also,
wallpapers were defaulting to the wrong animation in certain
situations.

Remove ':' style iterators.

Fixes bug 6486708.

Change-Id: Ied17e8410486020295db380ff68df5dad08bc5cc
2012-05-29 13:00:25 -07:00
Craig Mautner
1dee897469 Merge "Track animating apps up until animation starts." into jb-dev 2012-05-29 11:45:16 -07:00
Craig Mautner
06a94f710d Track animating apps up until animation starts.
ActivityStack sets the mNextAppTransition value before moving the apps
to their proper position. This makes the test for mNextAppTransition
being TRANSITION_UNSET incorrect. Better to just look for animating.

Fixes bug 6565418.

Change-Id: I4651b7d3678e46fc712a8e901992fb01b94c415e
2012-05-29 10:46:00 -07:00
Craig Mautner
3d7b7d59c8 Redraw all windows earlier in power on sequence.
Send a message to all windows to redraw before notifying
PhoneWindowManager of screen on. This minimizes the delay in
screen update that causes the keyguard clock to display the old time
before displaying the current time.

Fixes bug 6381021.

Change-Id: Ida7071e7dac2284540f101c5d004511b52133b91
2012-05-24 15:38:54 -07:00
Craig Mautner
67e6070fa1 Merge "Change method of tracking moving AppWindowTokens." into jb-dev 2012-05-23 18:30:25 -07:00
Craig Mautner
ef25d7a019 Change method of tracking moving AppWindowTokens.
Stop trying to keep track of the AppTokens that have been moved
to the top and bottom and then try and match the WindowStates when
transitions are goodToGo. Instead rebuild the WindowState order based
on the AppToken order when we are goodToGo.

When moving AppWindowTokens lower in mAppTokens create a new ArrayList
of AppWindowTokens to keep track of the apps in Z order while
animating.

Fixes bug 6481078.

Change-Id: I29b33a507b45752f15feb10a9f4b47a3f5eb9f0e
2012-05-23 17:07:36 -07:00
Craig Mautner
8e4df6c1e2 Fix jank when launching apps that show wallpaper.
Do not create a StartingWindow for apps that show wallpaper.
Fix handling of obscure case where found wallpaper is hidden.

Fixes bug 6484034.

Change-Id: I07181c4aea56fa9e530df0c95d886fe8ad61ec9d
2012-05-23 16:57:23 -07:00
Craig Mautner
208236dd96 Merge "Pull showStrictModeViolation off of local threads." into jb-dev 2012-05-22 16:54:09 -07:00
Craig Mautner
0447a81e6d Pull showStrictModeViolation off of local threads.
By moving the StrictModeViolation display onto the WindowManager
Handler we avoid potential deadlocks as found in the bug below.

Fixes bug 6537798.

Change-Id: Ia46a43d1f7f6e55256f770b9e196602092669b49
2012-05-22 16:01:31 -07:00
Dianne Hackborn
ac92087a9a Fix issue #6499411: Characters not displayed (but suggestion bar is working)
The problem was that when dismissing the lock screen, the window manager
would briefly turn off force hiding when it started animating the transition
and then turn it back on until the transition was done.

This would cause it to briefly switch focus to the app behind and then
take focus off it.  The app would find out it got focus, and re-start
input on itself, asking the input method service to do so.  At this
point the input method service would ask the window manager if the
caller really had focus, and it may or may not be told no depending
on the timing.  If it is told no, then it doesn't allow the focus
switch to happen at that point, ignoring the new input connection,
and ultimately when focus does really switch the IME is left talking
with an old dead input connection.

I added some code to the input connection to make sure when we are
no longer using one that we mark it inactive and can't use it.  This
bug was especially difficult to track down because it would only
visibly break when a GC happened during this time, causing the weak
reference on the input connection to become null.  With this change
it will now always break (though in the scenario here only if you
hit the race condition correctly).

Change-Id: I81a6164dc140c548da1a9736e42cd253e8238a80
2012-05-22 12:15:15 -07:00
Svetoslav Ganov
9faa9374c1 Merge "Changing the interaction model of the touch explorer." into jb-dev 2012-05-21 17:52:28 -07:00
Svetoslav Ganov
e15ccb93ad Changing the interaction model of the touch explorer.
1. Now the user have to double tap to activate the last
   item. If the last touched window is not active because
   it does not take input focus the click on the last
   touch explored location. Othewise the click is on the
   accessibility focus location.

bug:5932640

Change-Id: Ibb7b97262a7c5f2f94abef429e02790fdc91a8dd
2012-05-21 14:08:57 -07:00