[automerger] Revert "Fix lock contention while swiping up" am: daa47e7ccc

Change-Id: I66584ddff364de3ca11bf1a5941a3436f2bd0002
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java b/quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java
index a247d79..730984c 100644
--- a/quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java
+++ b/quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java
@@ -15,14 +15,10 @@
  */
 package com.android.quickstep;
 
-import com.android.launcher3.util.LooperExecutor;
 import com.android.launcher3.util.TraceHelper;
-import com.android.launcher3.util.UiThreadHelper;
 import com.android.quickstep.util.RemoteAnimationTargetSet;
 import com.android.systemui.shared.system.BackgroundExecutor;
 import com.android.systemui.shared.system.RecentsAnimationControllerCompat;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 
 /**
  * Wrapper around RecentsAnimationController to help with some synchronization
@@ -32,9 +28,6 @@
     public RecentsAnimationControllerCompat controller;
     public RemoteAnimationTargetSet targetSet;
 
-    private final ExecutorService mExecutorService =
-            new LooperExecutor(UiThreadHelper.getBackgroundLooper());
-
     private boolean mInputConsumerEnabled = false;
     private boolean mBehindSystemBars = true;
     private boolean mSplitScreenMinimized = false;
@@ -55,16 +48,17 @@
      *                         on the background thread.
      */
     public void finish(boolean toHome, Runnable onFinishComplete) {
-        mExecutorService.submit(() -> {
-            TraceHelper.endSection("RecentsController",
-                    "Finish " + controller + ", toHome=" + toHome);
-            RecentsAnimationControllerCompat thisController = controller;
-            controller = null;
-            if (thisController != null) {
-                thisController.setInputConsumerEnabled(false);
-                thisController.finish(toHome);
-                if (onFinishComplete != null) {
-                    onFinishComplete.run();
+        BackgroundExecutor.get().submit(() -> {
+            synchronized (this) {
+                TraceHelper.endSection("RecentsController",
+                        "Finish " + controller + ", toHome=" + toHome);
+                if (controller != null) {
+                    controller.setInputConsumerEnabled(false);
+                    controller.finish(toHome);
+                    if (onFinishComplete != null) {
+                        onFinishComplete.run();
+                    }
+                    controller = null;
                 }
             }
         });
@@ -73,11 +67,13 @@
     public void enableInputConsumer() {
         mInputConsumerEnabled = true;
         if (mInputConsumerEnabled) {
-            mExecutorService.submit(() -> {
-                TraceHelper.partitionSection("RecentsController",
-                        "Enabling consumer on " + controller);
-                if (controller != null) {
-                    controller.setInputConsumerEnabled(true);
+            BackgroundExecutor.get().submit(() -> {
+                synchronized (this) {
+                    TraceHelper.partitionSection("RecentsController",
+                            "Enabling consumer on " + controller);
+                    if (controller != null) {
+                        controller.setInputConsumerEnabled(true);
+                    }
                 }
             });
         }
@@ -88,11 +84,13 @@
             return;
         }
         mBehindSystemBars = behindSystemBars;
-        mExecutorService.submit(() -> {
-            TraceHelper.partitionSection("RecentsController",
-                    "Setting behind system bars on " + controller);
-            if (controller != null) {
-                controller.setAnimationTargetsBehindSystemBars(behindSystemBars);
+        BackgroundExecutor.get().submit(() -> {
+            synchronized (this) {
+                TraceHelper.partitionSection("RecentsController",
+                        "Setting behind system bars on " + controller);
+                if (controller != null) {
+                    controller.setAnimationTargetsBehindSystemBars(behindSystemBars);
+                }
             }
         });
     }
@@ -108,20 +106,24 @@
             return;
         }
         mSplitScreenMinimized = minimized;
-        mExecutorService.submit(() -> {
-            TraceHelper.partitionSection("RecentsController",
-                    "Setting minimize dock on " + controller);
-            if (controller != null) {
-                controller.setSplitScreenMinimized(minimized);
+        BackgroundExecutor.get().submit(() -> {
+            synchronized (this) {
+                TraceHelper.partitionSection("RecentsController",
+                        "Setting minimize dock on " + controller);
+                if (controller != null) {
+                    controller.setSplitScreenMinimized(minimized);
+                }
             }
         });
     }
 
     public void hideCurrentInputMethod() {
-        mExecutorService.submit(() -> {
-            TraceHelper.partitionSection("RecentsController", "Hiding currentinput method");
-            if (controller != null) {
-                controller.hideCurrentInputMethod();
+        BackgroundExecutor.get().submit(() -> {
+            synchronized (this) {
+                TraceHelper.partitionSection("RecentsController", "Hiding currentinput method");
+                if (controller != null) {
+                    controller.hideCurrentInputMethod();
+                }
             }
         });
     }