OSDN Git Service

Do not transfer starting window to translucent activity
authorJorim Jaggi <jjaggi@google.com>
Sat, 9 Apr 2016 07:29:07 +0000 (00:29 -0700)
committerJorim Jaggi <jjaggi@google.com>
Wed, 13 Apr 2016 19:10:17 +0000 (19:10 +0000)
When starting the "App may not work in split-screen" activity which
is translucent we used to transfer the starting window, and then the
frame was drawn quickly so the starting window from the behind was
removed, leading to a black hole.

Bug: 28094732
Change-Id: I828f0ea8b0465a5a113fd76a82d33177c8faa566

services/core/java/com/android/server/wm/WindowManagerService.java

index 40ae652..9088522 100644 (file)
@@ -3940,16 +3940,6 @@ public class WindowManagerService extends IWindowManager.Stub
                 return;
             }
 
-            if (transferStartingWindow(transferFrom, wtoken)) {
-                return;
-            }
-
-            // There is no existing starting window, and the caller doesn't
-            // want us to create one, so that's it!
-            if (!createIfNeeded) {
-                return;
-            }
-
             // If this is a translucent window, then don't
             // show a starting window -- the current effect (a full-screen
             // opaque starting window that fades away to the real contents
@@ -3995,6 +3985,16 @@ public class WindowManagerService extends IWindowManager.Stub
                 }
             }
 
+            if (transferStartingWindow(transferFrom, wtoken)) {
+                return;
+            }
+
+            // There is no existing starting window, and the caller doesn't
+            // want us to create one, so that's it!
+            if (!createIfNeeded) {
+                return;
+            }
+
             if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Creating StartingData");
             wtoken.startingData = new StartingData(pkg, theme, compatInfo, nonLocalizedLabel,
                     labelRes, icon, logo, windowFlags);