summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-10-13 18:25:06 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-10-13 18:25:06 +0000
commitf7eaeb648d27b3109df19383755ddeeadb4b1639 (patch)
tree7dd9175e966d4d30b9404eaa8eb93c6c949bf369
parent363a9ebb24bb81d4f98ce6bc135fd2b07c5cf119 (diff)
parente11871e7de141a23d2d8297932664587790807cf (diff)
downloadbase-oreo-r2-release.tar.gz
Merge cherrypicks of [3063760] into oc-r2-releaseandroid-8.0.0_r29oreo-r2-release
Change-Id: Ia0baa1ad2abbce60d8935e934715d2b1d0b4119e
-rw-r--r--services/core/java/com/android/server/wm/AppWindowContainerController.java73
1 files changed, 29 insertions, 44 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowContainerController.java b/services/core/java/com/android/server/wm/AppWindowContainerController.java
index 4e4398ee9d91..741161b79187 100644
--- a/services/core/java/com/android/server/wm/AppWindowContainerController.java
+++ b/services/core/java/com/android/server/wm/AppWindowContainerController.java
@@ -115,41 +115,6 @@ public class AppWindowContainerController
mListener.onWindowsGone();
};
- private final Runnable mRemoveStartingWindow = () -> {
- StartingSurface surface = null;
- synchronized (mWindowMap) {
- if (mContainer == null) {
- if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "mContainer was null while trying to"
- + " remove starting window");
- return;
- }
- if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Remove starting " + mContainer
- + ": startingWindow=" + mContainer.startingWindow
- + " startingView=" + mContainer.startingSurface);
- if (mContainer.startingData != null) {
- surface = mContainer.startingSurface;
- mContainer.startingData = null;
- mContainer.startingSurface = null;
- mContainer.startingWindow = null;
- mContainer.startingDisplayed = false;
- if (surface == null && DEBUG_STARTING_WINDOW) {
- Slog.v(TAG_WM, "startingWindow was set but startingSurface==null, couldn't "
- + "remove");
- }
- } else if (DEBUG_STARTING_WINDOW) {
- Slog.v(TAG_WM, "Tried to remove starting window but startingWindow was null:"
- + mContainer);
- }
- }
- if (surface != null) {
- try {
- surface.remove();
- } catch (Exception e) {
- Slog.w(TAG_WM, "Exception when removing starting window", e);
- }
- }
- };
-
private final Runnable mAddStartingWindow = () -> {
final StartingData startingData;
final AppWindowToken container;
@@ -649,13 +614,6 @@ public class AppWindowContainerController
public void removeStartingWindow() {
synchronized (mWindowMap) {
- if (mHandler.hasCallbacks(mRemoveStartingWindow)) {
- // Already scheduled.
- if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Trying to remove starting window but "
- + "already scheduled");
- return;
- }
-
if (mContainer.startingWindow == null) {
if (mContainer.startingData != null) {
// Starting window has not been added yet, but it is scheduled to be added.
@@ -667,9 +625,36 @@ public class AppWindowContainerController
return;
}
+ final StartingSurface surface;
+ if (mContainer.startingData != null) {
+ surface = mContainer.startingSurface;
+ mContainer.startingData = null;
+ mContainer.startingSurface = null;
+ mContainer.startingWindow = null;
+ mContainer.startingDisplayed = false;
+ if (surface == null && DEBUG_STARTING_WINDOW) {
+ Slog.v(TAG_WM, "startingWindow was set but startingSurface==null, couldn't "
+ + "remove");
+ }
+ } else {
+ if (DEBUG_STARTING_WINDOW) {
+ Slog.v(TAG_WM, "Tried to remove starting window but startingWindow was null:"
+ + mContainer);
+ }
+ return;
+ }
+
if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Schedule remove starting " + mContainer
- + " startingWindow=" + mContainer.startingWindow);
- mHandler.post(mRemoveStartingWindow);
+ + " startingWindow=" + mContainer.startingWindow
+ + " startingView=" + mContainer.startingSurface);
+ mHandler.post(() -> {
+ if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Removing startingView=" + surface);
+ try {
+ surface.remove();
+ } catch (Exception e) {
+ Slog.w(TAG_WM, "Exception when removing starting window", e);
+ }
+ });
}
}