Merge "Add shell background executor to bubbles and put unregister call on it" into tm-dev am: 0fe75d50e3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18300851 Change-Id: Icda51bd86c76a7f77cd90b558298e39c1eeb4f85 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -96,6 +96,8 @@ import com.android.wm.shell.common.ShellExecutor;
|
||||
import com.android.wm.shell.common.SyncTransactionQueue;
|
||||
import com.android.wm.shell.common.TaskStackListenerCallback;
|
||||
import com.android.wm.shell.common.TaskStackListenerImpl;
|
||||
import com.android.wm.shell.common.annotations.ShellBackgroundThread;
|
||||
import com.android.wm.shell.common.annotations.ShellMainThread;
|
||||
import com.android.wm.shell.draganddrop.DragAndDropController;
|
||||
import com.android.wm.shell.onehanded.OneHandedController;
|
||||
import com.android.wm.shell.onehanded.OneHandedTransitionCallback;
|
||||
@@ -158,6 +160,8 @@ public class BubbleController {
|
||||
private final ShellExecutor mMainExecutor;
|
||||
private final Handler mMainHandler;
|
||||
|
||||
private final ShellExecutor mBackgroundExecutor;
|
||||
|
||||
private BubbleLogger mLogger;
|
||||
private BubbleData mBubbleData;
|
||||
@Nullable private BubbleStackView mStackView;
|
||||
@@ -234,8 +238,9 @@ public class BubbleController {
|
||||
DisplayController displayController,
|
||||
Optional<OneHandedController> oneHandedOptional,
|
||||
DragAndDropController dragAndDropController,
|
||||
ShellExecutor mainExecutor,
|
||||
Handler mainHandler,
|
||||
@ShellMainThread ShellExecutor mainExecutor,
|
||||
@ShellMainThread Handler mainHandler,
|
||||
@ShellBackgroundThread ShellExecutor bgExecutor,
|
||||
TaskViewTransitions taskViewTransitions,
|
||||
SyncTransactionQueue syncQueue) {
|
||||
BubbleLogger logger = new BubbleLogger(uiEventLogger);
|
||||
@@ -245,7 +250,7 @@ public class BubbleController {
|
||||
new BubbleDataRepository(context, launcherApps, mainExecutor),
|
||||
statusBarService, windowManager, windowManagerShellWrapper, launcherApps,
|
||||
logger, taskStackListener, organizer, positioner, displayController,
|
||||
oneHandedOptional, dragAndDropController, mainExecutor, mainHandler,
|
||||
oneHandedOptional, dragAndDropController, mainExecutor, mainHandler, bgExecutor,
|
||||
taskViewTransitions, syncQueue);
|
||||
}
|
||||
|
||||
@@ -269,8 +274,9 @@ public class BubbleController {
|
||||
DisplayController displayController,
|
||||
Optional<OneHandedController> oneHandedOptional,
|
||||
DragAndDropController dragAndDropController,
|
||||
ShellExecutor mainExecutor,
|
||||
Handler mainHandler,
|
||||
@ShellMainThread ShellExecutor mainExecutor,
|
||||
@ShellMainThread Handler mainHandler,
|
||||
@ShellBackgroundThread ShellExecutor bgExecutor,
|
||||
TaskViewTransitions taskViewTransitions,
|
||||
SyncTransactionQueue syncQueue) {
|
||||
mContext = context;
|
||||
@@ -286,6 +292,7 @@ public class BubbleController {
|
||||
mLogger = bubbleLogger;
|
||||
mMainExecutor = mainExecutor;
|
||||
mMainHandler = mainHandler;
|
||||
mBackgroundExecutor = bgExecutor;
|
||||
mTaskStackListener = taskStackListener;
|
||||
mTaskOrganizer = organizer;
|
||||
mSurfaceSynchronizer = synchronizer;
|
||||
@@ -725,7 +732,8 @@ public class BubbleController {
|
||||
|
||||
try {
|
||||
mAddedToWindowManager = false;
|
||||
mContext.unregisterReceiver(mBroadcastReceiver);
|
||||
// Put on background for this binder call, was causing jank
|
||||
mBackgroundExecutor.execute(() -> mContext.unregisterReceiver(mBroadcastReceiver));
|
||||
if (mStackView != null) {
|
||||
mWindowManager.removeView(mStackView);
|
||||
mBubbleData.getOverflow().cleanUpExpandedState();
|
||||
|
||||
@@ -43,6 +43,7 @@ import com.android.wm.shell.common.SystemWindows;
|
||||
import com.android.wm.shell.common.TaskStackListenerImpl;
|
||||
import com.android.wm.shell.common.TransactionPool;
|
||||
import com.android.wm.shell.common.annotations.ChoreographerSfVsync;
|
||||
import com.android.wm.shell.common.annotations.ShellBackgroundThread;
|
||||
import com.android.wm.shell.common.annotations.ShellMainThread;
|
||||
import com.android.wm.shell.draganddrop.DragAndDropController;
|
||||
import com.android.wm.shell.freeform.FreeformTaskListener;
|
||||
@@ -114,13 +115,15 @@ public class WMShellModule {
|
||||
DragAndDropController dragAndDropController,
|
||||
@ShellMainThread ShellExecutor mainExecutor,
|
||||
@ShellMainThread Handler mainHandler,
|
||||
@ShellBackgroundThread ShellExecutor bgExecutor,
|
||||
TaskViewTransitions taskViewTransitions,
|
||||
SyncTransactionQueue syncQueue) {
|
||||
return BubbleController.create(context, null /* synchronizer */,
|
||||
floatingContentCoordinator, statusBarService, windowManager,
|
||||
windowManagerShellWrapper, launcherApps, taskStackListener,
|
||||
uiEventLogger, organizer, displayController, oneHandedOptional,
|
||||
dragAndDropController, mainExecutor, mainHandler, taskViewTransitions, syncQueue);
|
||||
dragAndDropController, mainExecutor, mainHandler, bgExecutor,
|
||||
taskViewTransitions, syncQueue);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -69,7 +69,7 @@ public class TestableBubbleController extends BubbleController {
|
||||
statusBarService, windowManager, windowManagerShellWrapper, launcherApps,
|
||||
bubbleLogger, taskStackListener, shellTaskOrganizer, positioner, displayController,
|
||||
oneHandedOptional, dragAndDropController, shellMainExecutor, shellMainHandler,
|
||||
taskViewTransitions, syncQueue);
|
||||
new SyncExecutor(), taskViewTransitions, syncQueue);
|
||||
setInflateSynchronously(true);
|
||||
initialize();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user