diff options
| author | Dianne Hackborn <hackbod@google.com> | 2011-11-19 14:36:15 -0800 |
|---|---|---|
| committer | Dianne Hackborn <hackbod@google.com> | 2011-11-28 14:45:50 -0800 |
| commit | 6d05fd3c795088ac60f86382df5a66d631e8a0cb (patch) | |
| tree | c6363c2b687619f594e95b4b67b83c3d015dab58 /core/java/android/view/WindowManagerImpl.java | |
| parent | e35581ad5ad635f9dcfe4ab6a432c48b46b782cd (diff) | |
Fix issue #5588689: Black camera preview after coming back from gmail
Make surface management between SurfaceView and the window manager
much more controlled, to ensure that SurfaceView always gets to report
the current surface is destroyed before the window manager actually
destroys it.
Also a small tweak to allow windows that have a wallpaper background
to still have a preview window. This makes launching home after it
has been killed feel much more responsive.
Change-Id: I0d22cf178a499601a770cb1dbadef7487e392d85
Diffstat (limited to 'core/java/android/view/WindowManagerImpl.java')
| -rw-r--r-- | core/java/android/view/WindowManagerImpl.java | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/core/java/android/view/WindowManagerImpl.java b/core/java/android/view/WindowManagerImpl.java index dfd1d5538030..d7113374bdc3 100644 --- a/core/java/android/view/WindowManagerImpl.java +++ b/core/java/android/view/WindowManagerImpl.java @@ -63,15 +63,34 @@ public class WindowManagerImpl implements WindowManager { * The user is navigating with keys (not the touch screen), so * navigational focus should be shown. */ - public static final int RELAYOUT_IN_TOUCH_MODE = 0x1; + public static final int RELAYOUT_RES_IN_TOUCH_MODE = 0x1; /** * This is the first time the window is being drawn, * so the client must call drawingFinished() when done */ - public static final int RELAYOUT_FIRST_TIME = 0x2; - + public static final int RELAYOUT_RES_FIRST_TIME = 0x2; + /** + * The window manager has changed the surface from the last call. + */ + public static final int RELAYOUT_RES_SURFACE_CHANGED = 0x4; + + /** + * Flag for relayout: the client will be later giving + * internal insets; as a result, the window will not impact other window + * layouts until the insets are given. + */ + public static final int RELAYOUT_INSETS_PENDING = 0x1; + + /** + * Flag for relayout: the client may be currently using the current surface, + * so if it is to be destroyed as a part of the relayout the destroy must + * be deferred until later. The client will call performDeferredDestroy() + * when it is okay. + */ + public static final int RELAYOUT_DEFER_SURFACE_DESTROY = 0x2; + public static final int ADD_FLAG_APP_VISIBLE = 0x2; - public static final int ADD_FLAG_IN_TOUCH_MODE = RELAYOUT_IN_TOUCH_MODE; + public static final int ADD_FLAG_IN_TOUCH_MODE = RELAYOUT_RES_IN_TOUCH_MODE; public static final int ADD_OKAY = 0; public static final int ADD_BAD_APP_TOKEN = -1; |
