Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6af8225 authored by Winson Chung's avatar Winson Chung Committed by Automerger Merge Worker
Browse files

Merge "3/ Fix inverted ShellInit dependency order (no functional changes)"...

Merge "3/ Fix inverted ShellInit dependency order (no functional changes)" into tm-qpr-dev am: 19aa0911

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19215131



Change-Id: I0220a85b35244d42a888477f7c11e3da7f8e4894
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 57776c7c 19aa0911
Loading
Loading
Loading
Loading
+25 −21
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import android.annotation.Nullable;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.TaskInfo;
import android.app.WindowConfiguration;
import android.content.Context;
import android.content.LocusId;
import android.content.pm.ActivityInfo;
import android.graphics.Rect;
@@ -56,6 +55,7 @@ import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.compatui.CompatUIController;
import com.android.wm.shell.recents.RecentTasksController;
import com.android.wm.shell.startingsurface.StartingWindowController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.unfold.UnfoldAnimationController;

import java.io.PrintWriter;
@@ -186,39 +186,43 @@ public class ShellTaskOrganizer extends TaskOrganizer implements
    @Nullable
    private RunningTaskInfo mLastFocusedTaskInfo;

    public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context) {
        this(null /* taskOrganizerController */, mainExecutor, context, null /* compatUI */,
    public ShellTaskOrganizer(ShellExecutor mainExecutor) {
        this(null /* shellInit */, null /* taskOrganizerController */, null /* compatUI */,
                Optional.empty() /* unfoldAnimationController */,
                Optional.empty() /* recentTasksController */);
                Optional.empty() /* recentTasksController */,
                mainExecutor);
    }

    public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context, @Nullable
            CompatUIController compatUI) {
        this(null /* taskOrganizerController */, mainExecutor, context, compatUI,
                Optional.empty() /* unfoldAnimationController */,
                Optional.empty() /* recentTasksController */);
    }

    public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context, @Nullable
            CompatUIController compatUI,
    public ShellTaskOrganizer(ShellInit shellInit,
            @Nullable CompatUIController compatUI,
            Optional<UnfoldAnimationController> unfoldAnimationController,
            Optional<RecentTasksController> recentTasks) {
        this(null /* taskOrganizerController */, mainExecutor, context, compatUI,
                unfoldAnimationController, recentTasks);
            Optional<RecentTasksController> recentTasks,
            ShellExecutor mainExecutor) {
        this(shellInit, null /* taskOrganizerController */, compatUI,
                unfoldAnimationController, recentTasks, mainExecutor);
    }

    @VisibleForTesting
    protected ShellTaskOrganizer(ITaskOrganizerController taskOrganizerController,
            ShellExecutor mainExecutor, Context context, @Nullable CompatUIController compatUI,
    protected ShellTaskOrganizer(ShellInit shellInit,
            ITaskOrganizerController taskOrganizerController,
            @Nullable CompatUIController compatUI,
            Optional<UnfoldAnimationController> unfoldAnimationController,
            Optional<RecentTasksController> recentTasks) {
            Optional<RecentTasksController> recentTasks,
            ShellExecutor mainExecutor) {
        super(taskOrganizerController, mainExecutor);
        mCompatUI = compatUI;
        mRecentTasks = recentTasks;
        mUnfoldAnimationController = unfoldAnimationController.orElse(null);
        if (compatUI != null) {
            compatUI.setCompatUICallback(this);
        if (shellInit != null) {
            shellInit.addInitCallback(this::onInit, this);
        }
    }

    private void onInit() {
        if (mCompatUI != null) {
            mCompatUI.setCompatUICallback(this);
        }
        registerOrganizer();
    }

    @Override
+7 −2
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.window.WindowContainerTransaction;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;

/**
@@ -38,13 +39,17 @@ public class ActivityEmbeddingController implements Transitions.TransitionHandle
    private final Context mContext;
    private final Transitions mTransitions;

    public ActivityEmbeddingController(Context context, Transitions transitions) {
    public ActivityEmbeddingController(Context context, ShellInit shellInit,
            Transitions transitions) {
        mContext = context;
        mTransitions = transitions;
        if (Transitions.ENABLE_SHELL_TRANSITIONS) {
            shellInit.addInitCallback(this::onInit, this);
        }
    }

    /** Registers to handle transitions. */
    public void init() {
    public void onInit() {
        mTransitions.addHandler(this);
    }

+4 −1
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@ import com.android.wm.shell.onehanded.OneHandedTransitionCallback;
import com.android.wm.shell.pip.PinnedStackListenerForwarder;
import com.android.wm.shell.sysui.ConfigurationChangeListener;
import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellInit;

import java.io.PrintWriter;
import java.util.ArrayList;
@@ -227,6 +228,7 @@ public class BubbleController implements ConfigurationChangeListener {

  
    public BubbleController(Context context,
            ShellInit shellInit,
            ShellController shellController,
            BubbleData data,
            @Nullable BubbleStackView.SurfaceSynchronizer synchronizer,
@@ -279,6 +281,7 @@ public class BubbleController implements ConfigurationChangeListener {
        mOneHandedOptional = oneHandedOptional;
        mDragAndDropController = dragAndDropController;
        mSyncQueue = syncQueue;
        shellInit.addInitCallback(this::onInit, this);
    }

    private void registerOneHandedState(OneHandedController oneHanded) {
@@ -300,7 +303,7 @@ public class BubbleController implements ConfigurationChangeListener {
                });
    }

    public void initialize() {
    protected void onInit() {
        mBubbleData.setListener(mBubbleDataListener);
        mBubbleData.setSuppressionChangedListener(this::onBubbleMetadataFlagChanged);

+7 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.window.WindowContainerTransaction;
import androidx.annotation.BinderThread;

import com.android.wm.shell.common.annotations.ShellMainThread;
import com.android.wm.shell.sysui.ShellInit;

import java.util.concurrent.CopyOnWriteArrayList;

@@ -47,10 +48,15 @@ public class DisplayChangeController {
    private final CopyOnWriteArrayList<OnDisplayChangingListener> mDisplayChangeListener =
            new CopyOnWriteArrayList<>();

    public DisplayChangeController(IWindowManager wmService, ShellExecutor mainExecutor) {
    public DisplayChangeController(IWindowManager wmService, ShellInit shellInit,
            ShellExecutor mainExecutor) {
        mMainExecutor = mainExecutor;
        mWmService = wmService;
        mControllerImpl = new DisplayChangeWindowControllerImpl();
        shellInit.addInitCallback(this::onInit, this);
    }

    private void onInit() {
        try {
            mWmService.setDisplayChangeWindowController(mControllerImpl);
        } catch (RemoteException e) {
+8 −3
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import androidx.annotation.BinderThread;

import com.android.wm.shell.common.DisplayChangeController.OnDisplayChangingListener;
import com.android.wm.shell.common.annotations.ShellMainThread;
import com.android.wm.shell.sysui.ShellInit;

import java.util.ArrayList;
import java.util.List;
@@ -57,19 +58,23 @@ public class DisplayController {
    private final SparseArray<DisplayRecord> mDisplays = new SparseArray<>();
    private final ArrayList<OnDisplaysChangedListener> mDisplayChangedListeners = new ArrayList<>();

    public DisplayController(Context context, IWindowManager wmService,
    public DisplayController(Context context, IWindowManager wmService, ShellInit shellInit,
            ShellExecutor mainExecutor) {
        mMainExecutor = mainExecutor;
        mContext = context;
        mWmService = wmService;
        mChangeController = new DisplayChangeController(mWmService, mainExecutor);
        // TODO: Inject this instead
        mChangeController = new DisplayChangeController(mWmService, shellInit, mainExecutor);
        mDisplayContainerListener = new DisplayWindowListenerImpl();
        // Note, add this after DisplaceChangeController is constructed to ensure that is
        // initialized first
        shellInit.addInitCallback(this::onInit, this);
    }

    /**
     * Initializes the window listener.
     */
    public void initialize() {
    public void onInit() {
        try {
            int[] displayIds = mWmService.registerDisplayWindowListener(mDisplayContainerListener);
            for (int i = 0; i < displayIds.length; i++) {
Loading