Commit Graph

759 Commits

Author SHA1 Message Date
Craig Mautner
7a078314b4 am 98874efb: am cc979c9e: Merge "Debug logging improvement." into jb-mr2-dev
* commit '98874efb994faca3bf253e9547cbb6227d44eb38':
  Debug logging improvement.
2013-04-10 17:00:47 -07:00
Craig Mautner
98874efb99 am cc979c9e: Merge "Debug logging improvement." into jb-mr2-dev
* commit 'cc979c9eae387d80e4c4129d18991d708dde44a6':
  Debug logging improvement.
2013-04-10 16:57:50 -07:00
Craig Mautner
cc979c9eae Merge "Debug logging improvement." into jb-mr2-dev 2013-04-10 23:54:29 +00:00
Craig Mautner
66d7730903 Debug logging improvement.
Previously a change to a surface would be logged with the old value
and you had to scroll through the logs to see what the new value
was. This change reflects the change to the surface immediately.

Change-Id: I2a6566466287922d08f4ce2329c61aa46d692ee1
2013-04-10 15:33:26 -07:00
Dianne Hackborn
229f1aadf9 am abe0aa78: am 8f980e1a: Merge "Reduce duration of rotation xfade animation." into jb-mr2-dev
* commit 'abe0aa78caf81b24af0b45700801fc1f867cfa0e':
  Reduce duration of rotation xfade animation.
2013-04-10 11:01:28 -07:00
Dianne Hackborn
abe0aa78ca am 8f980e1a: Merge "Reduce duration of rotation xfade animation." into jb-mr2-dev
* commit '8f980e1a5ae99d5e34aaef6aac7f38a7d0038631':
  Reduce duration of rotation xfade animation.
2013-04-10 10:51:50 -07:00
Dianne Hackborn
8f980e1a5a Merge "Reduce duration of rotation xfade animation." into jb-mr2-dev 2013-04-10 17:48:21 +00:00
Craig Mautner
e1197547a0 am d339818d: am bab9687e: Merge "Make the min layer go down through all windows" into jb-mr2-dev
* commit 'd339818d9a261974e535cd25797d7a614a17657d':
  Make the min layer go down through all windows
2013-04-05 10:33:53 -07:00
Craig Mautner
d339818d9a am bab9687e: Merge "Make the min layer go down through all windows" into jb-mr2-dev
* commit 'bab9687e6473072d6ff4f7ea5a7b21bcfbf95744':
  Make the min layer go down through all windows
2013-04-05 10:31:35 -07:00
Craig Mautner
bab9687e64 Merge "Make the min layer go down through all windows" into jb-mr2-dev 2013-04-05 17:28:08 +00:00
Craig Mautner
4238e3e4b5 Make the min layer go down through all windows
The min layer was set to only show the windows that matched
the specified app token. But that meant when dialogs were
launched it only showed the dialogs and not the background
windows.

Added improved debugging.

fixes bug 8502844.

Change-Id: I26b49568b872801ec9aa088df20317aa752dacd6
2013-04-05 10:26:19 -07:00
Brian Colonna
c849fbcf3d resolved conflicts for merge of 5856ee4b to master
Change-Id: I60ba85bc246b9cf25d467b2099535aad47f82ca7
2013-04-02 17:16:55 -04:00
Brian Colonna
5856ee4bd6 am 1eccc0cf: Merge "FUL now restarts when flipping tablet 180 (bug 7484464)" into jb-mr2-dev
* commit '1eccc0cf5f7f33203091c0b475a4ad91570c85cd':
  FUL now restarts when flipping tablet 180 (bug 7484464)
2013-04-02 13:26:23 -07:00
Craig Mautner
08426453f3 am 79b468dc: Merge "Fix potential deadlock between LockScreen and WindowManagerService" into jb-mr2-dev-plus-aosp
* commit '79b468dcaab89f52394132d5ee733c6a01bad7e9':
  Fix potential deadlock between LockScreen and WindowManagerService
2013-04-02 11:04:37 -07:00
Sangkyu Lee
0438bd692b Fix potential deadlock between LockScreen and WindowManagerService
If LockScreen is enhanced using SurfaceView/GLSurfaceView,
deadlock problem between LockScreen and WindowManagerService
can occur because of IWindow.resized() callback.
And it must lead to watchdog and reset.

IWindow.resized() callback is one-way function so calling resized()
callback of a remote IWindow object is never blocked.
However, calling resized() callback of a local IWindow object
(LockScreen is running on the same system_server process)
is always blocked until resized() callback returns.
Because resized() callback of SurfaceView/GLSurfaceView can lead to
WindowManagerService.relayoutWindow() call, deadlock can occur
between relayoutWindow() and performLayoutAndPlaceSurfacesLockedInner().
(Both functions need locking mWindowMap)

So this patch simulate one-way call when calling resized() callback
of a local IWindow object.

Change-Id: I2a6a5c74ed22d8e6b7a3bea3424ff2879d227105
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>

Conflicts:
	services/java/com/android/server/wm/WindowManagerService.java
2013-04-02 10:28:13 -07:00
Brian Colonna
b1b9a8ac07 FUL now restarts when flipping tablet 180 (bug 7484464)
When a tablet rotates, FUL must be stopped and restarted in a new
position.  90 degree rotations cause a configuration change, causing
FUL to be automatically reconstructed in the new location.  However,
a 180 degree rotation is not a configuration change, so FUL was not
restarting.  A 180 degree rotation happens more often than one might
think.  If you set the tablet down and later picked it up in the
opposite orientation, FUL would not work prior to this fix.

This change adds a rotation watcher to KeyguardFaceUnlockView.  It
watches for 180 degree rotations and stops and restarts FUL
accordingly.

The rotation watcher callback must be unregistered when
KeyguardFaceUnlockView is recreated (as during 90 degree rotation
changes), otherwise the number of rotation watcher callbacks will keep
growing and they will never go away.  This is a problem not just
because there are many callbacks hanging around, but also because the
old callbacks end up trying to access biometric unlock views that no
longer exist, resulting in crashes.  So, a simple function was added
to the window manager to unregister a rotation watcher.

Change-Id: Ie1ef20a9a22b8f4e39918987dff2b8ad444fcfd1
2013-03-29 18:35:43 -04:00
Dianne Hackborn
a57c695bf2 Reduce duration of rotation xfade animation.
Also add code for tracking how long a rotation takes,
and who is causing it to take that time.

Change-Id: Ie3352ddfddd247f5a5c08f7da6bfe6b4da607ba2
2013-03-29 15:03:18 -07:00
Dianne Hackborn
5ab6d90578 am a4820789: am 5871b258: Merge "Change wm commands to return size and density info." into jb-mr2-dev
* commit 'a4820789136c814e1e9ae26d5a0712e1c7fd4dd5':
  Change wm commands to return size and density info.
2013-03-26 17:28:16 -07:00
Dianne Hackborn
672cf45de7 Change wm commands to return size and density info.
Change-Id: Id25722fe5f0cd9470d04d657f067e5ad29927c98
2013-03-26 15:24:24 -07:00
Craig Mautner
00af9fe6ae Modify StackBox and TaskStack methods.
Also add dump() throughout.

Change-Id: I5369d2e71262645d9b1015bd4e72fad395cc7547
2013-03-25 09:13:41 -07:00
Craig Mautner
1a563451db am 78089c3c: am 5341f377: Merge "Reduce situations where black thumbnail occurs." into jb-mr2-dev
* commit '78089c3c225c27c326f5e4aad0084e173a7075e9':
  Reduce situations where black thumbnail occurs.
2013-03-22 22:57:36 +00:00
Craig Mautner
24d88747e9 Reduce situations where black thumbnail occurs.
Pause and retry capturing a thumbnail if the window hasn't yet
been drawn. Still will show black thumbnails if recents is pressed
before window has anything drawn.

Improves bug 7552304.

Change-Id: I550c5a60510bfc4547bbb44451d57b4bc9f49880
2013-03-22 12:07:51 -07:00
Craig Mautner
8c2267d471 am c9e2239e: am aea8b0e5: am 7f7ac5b4: am fda1bff8: Merge "Correct the target app token for input method window"
* commit 'c9e2239efeddc7f22b67073e33c99e5521d31bf1':
  Correct the target app token for input method window
2013-03-19 01:56:27 +00:00
Craig Mautner
aea8b0e571 am 7f7ac5b4: am fda1bff8: Merge "Correct the target app token for input method window"
* commit '7f7ac5b4a86be479bdede226fd4a2bddcd8a9a2b':
  Correct the target app token for input method window
2013-03-18 17:50:32 -07:00
Craig Mautner
e3cae7f1fd am 769b610e: am 2fc8ad1f: Merge "Properly close Surface when done." into jb-mr2-dev
* commit '769b610eb251554b81991c613d947208f78c493a':
  Properly close Surface when done.
2013-03-18 21:14:28 +00:00
Craig Mautner
e50d7fcd97 Properly close Surface when done.
Surface.destroy was not being called. Leading to warning from
StrictMode.

Fixes bug 8388527.

Change-Id: I472fb57ed2c3f6389e53d8f020f3b22b2d0740c8
2013-03-18 10:06:21 -07:00
Carrie Xu
5c97184c3a Correct the target app token for input method window
The root cause is:
There is a defect in window manager service: When a new
activity that can be ime target is added into window manager
but the Z order of input method window don't need to be
changed, then the target app token of input method window
would not be updated to new one. This defect may cause that
the layer of input method window is calculated incorrectly.

The solution:
Correct the target app token for input method window.

Change-Id: I008311e3c9b1cf5fc320b614d8675c183c506d50
2013-03-18 11:45:14 +09:00
Craig Mautner
d9a22881fd Complete removal of Task from DisplayContent.
Moved Tasks into TaskStacks.

Change-Id: I3478dab4eab3a68d4d71a7a5bb2e65ba2394f2d7
2013-03-17 16:19:21 -07:00
Craig Mautner
a5eed0b8c7 Refactor addWindowToListInOrderLocked for clarity
Break up long method into three orthogonal shorter methods.

Change-Id: Ieeffd6263b84de50956f03e513f80a9264a09e43
2013-03-16 12:41:54 -07:00
Craig Mautner
c00204b4d1 Start moving Tasks from DisplayContent to TaskStack
- Create new classes for Stacks on WindowManager.
- Stop using DisplayContent methods and members:
    addAppToken(),
    removeAppToken(),
    setAppTaskId(),
    removeTask(),
    mTaskIdToDisplayContents,
    mTaskIdToTask.
- Start using WindowManagerService.createTask().
- Establish hierarchy of references: AppWindowToken=>Task=>
TaskStack=>StackBox=>DisplayContent.
- Clean up StackBox, TaskStack, and Task.

Change-Id: I798990aa7966784d22f4a43822087d8bb0404dd6
2013-03-15 22:44:29 -07:00
Craig Mautner
3f0bc9af04 am db6c556d: am cc947fdc: Merge "Add window leak check and possible recovery." into jb-mr2-dev
* commit 'db6c556daea9fcf8aaeea8cacb5d8c29d0b406e7':
  Add window leak check and possible recovery.
2013-03-06 18:46:21 +00:00
Craig Mautner
a99764e597 Add window leak check and possible recovery.
Search output for "!!! LEAK !!!"

For bug 8322020.

Change-Id: I6db572a1c7fe0e6b386ccb0dba08bc376659a75a
2013-03-06 10:22:16 -08:00
Mathias Agopian
3205ebf67b am 563c374f: am f4d6f153: Merge "remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT" into jb-mr2-dev
* commit '563c374faf2c9e2741e0c73edff22237aa0562e5':
  remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT
2013-03-06 16:53:51 +00:00
Mathias Agopian
f4d6f153e6 Merge "remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT" into jb-mr2-dev 2013-03-06 03:52:50 +00:00
Mathias Agopian
11e7d88d14 remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT
the window manager can now use the SurfaceControl.screenshot
API with a "regular" surface.

Change-Id: I76bed81d5e7b078ea1b3e8f96814aba32e9d5405
2013-03-05 14:14:55 -08:00
Dianne Hackborn
ee61a7fb95 am 530b2b1c: am a5513616: Merge "Add new WindowId for cross-process monitoring of focus." into jb-mr2-dev
* commit '530b2b1c98e3a3d86fd90cd91a08005370b8aa49':
  Add new WindowId for cross-process monitoring of focus.
2013-03-05 21:08:13 +00:00
Dianne Hackborn
e3f23a36d8 Add new WindowId for cross-process monitoring of focus.
This is a class representing a window and providing limited
interaction with it, which can be handed across processes.

Change-Id: I22885f2064a9cc8c68d690a5858c2e28bbb6a0f3
2013-03-05 09:33:48 -08:00
Craig Mautner
f81b908752 Remove AppTokenIterator from DisplayContent.
Simplify accessing successive AppWindowTokens from different
TaskLists.

Change-Id: Icf6265dd6c7953c9c770c97e1342f0f81256c017
2013-02-26 13:04:35 -08:00
Craig Mautner
2ad920759b Revert ActivityManager changes for tasks. DO NOT MERGE
Keeping all activity=>task changes in master and removing them
from jb-mr2.

Revert "Update histories simultaneously."
Revert "Add null check to setAppGroupId."
Revert "Fix crashing bug in validator."
Revert "Switch topRunning* and moveTaskTo*"
Revert "Begin switch over to task based history."
Revert "Reset and reuse Iterators and don't new() one."
Revert "Remove AppWindowToken lists."
Revert "Fix build."
Revert "Remove unused App methods."
Revert "Stop using AppToken movement and start using Task."
Revert "Replace access to mAppTokens with AppTokenIterator"
Revert "Refactor setAppOpVisibility implementation."
Revert "Add AppWindowTokens to TaskList."
Revert "Make ActivityStack.mHistory private."
Revert "Migrate AppWindowToken lists into DisplayContent."

Change-Id: I5722c9a4956dccb52864207e2967690bc58e4ebb
2013-02-25 17:07:39 -08:00
Dianne Hackborn
c4aad01cbb Formalize overscan metrics.
The window manager now maintains and reports a new formal
"overscan insets" for each window, much like the existing
content and visible insets.  This is used to correctly
position the various UI elements in the various combination
of layout options.  In particular, this allows us to have
an activity that is using fitSystemWindows to have the content
of its UI extend out to the visible content part of the screen
while still positioning its fixed UI elements inside the
standard content rect (and the entire window extending all
the way into the overscan area to fill the screen as desired).

Okay, maybe that is not written so clearly.  Well, it made
my head hurt too, so suffer!

The key thing is that windows now need to know about three
rectangles: the overall rectangle of the window, the rectangle
inside of the overscan area, and the rectangle inside of the
content area.  The FLAG_LAYOUT_IN_OVERSCAN option controls
whether the second rectangle is pushed out to fill the entire
overscan area.

Also did some improvements to debug dumping in the window
manager.

Change-Id: Ib2368c4aff5709d00662c799507c37b6826929fd
2013-02-22 19:14:37 -08:00
Craig Mautner
12e563fff9 Merge "Create rotation animation modes." 2013-02-22 18:51:21 +00:00
Craig Mautner
3c1743705c Create rotation animation modes.
Allow fullscreen windows to specify crossfade or jumpcut animations
that override the default rotation animation. Only if the incoming
and outgoing topmost windows are fullscreen and both specify the
same animation to use.

Fixes bug 8182773.

Change-Id: I6b3c0020d7bd2cdfba5c66189e114ec62cd54fcf
2013-02-22 10:44:52 -08:00
Craig Mautner
b44de0d910 Update histories simultaneously.
In moveTaskToBackLocked calls that used mHistory were being made
between the times that mTaskHistory and mHistory were modified. This
caused an inconsistent state that led to Windows arranged out of
order. Updating both history stacks at the same time fixes this.

Fixes bug 8244261.

Change-Id: I9669762ad39b06ab6d401122702b74969d4dc658
2013-02-21 20:00:58 -08:00
Craig Mautner
32b44d08e2 Add null check to setAppGroupId.
Fix bug 8217929.

Change-Id: I3bd54c32abcf6683c2fa75a85bf5025f47e09398
2013-02-21 08:26:06 -08:00
Craig Mautner
5161f20925 Fix crashing bug in validator.
Change-Id: I649bb7cfc2b42fbeda478edcaa3a56f3c23d4bc8
2013-02-20 16:54:05 -08:00
Craig Mautner
07aa25dab9 Merge "Switch topRunning* and moveTaskTo*" 2013-02-21 00:39:00 +00:00
Craig Mautner
11bf9a52eb Switch topRunning* and moveTaskTo*
- More of the Activity to Task changeover.
- Fix bug in validateAppTokens().
- Improved validation of changeover.
- Eliminated iterator classes.

Change-Id: I934a208eabfc9a2668e5a6162452e1406f2c8d3a
2013-02-20 16:29:07 -08:00
Daniel Sandler
fd171e43e4 Merge "Switch to system process before modifying rotation." 2013-02-20 21:35:53 +00:00
Daniel Sandler
3de830b82b Switch to system process before modifying rotation.
Bug: 8218133
Change-Id: Ib44d64d48dbdf3095182c409dd2211f6a3b726ad
2013-02-20 15:23:52 -05:00
Craig Mautner
5d9c7be84d Begin switch over to task based history.
- Introduce the task history and add to and remove from it with
verification.

Change-Id: If97e74f5a13f85acdb1521fc6d0b066a7e8584ae
2013-02-19 18:11:33 -08:00