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

Commit 597fe60d authored by Bill Lin's avatar Bill Lin Committed by Android (Google) Code Review
Browse files

Merge "Attach the background-panel to DisplayContent."

parents e2ce2025 1cc1f3ce
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.statusbar.IStatusBarService;
import com.android.launcher3.icons.IconProvider;
import com.android.launcher3.icons.IconProvider;
import com.android.wm.shell.RootDisplayAreaOrganizer;
import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.TaskViewTransitions;
import com.android.wm.shell.TaskViewTransitions;
@@ -271,11 +272,12 @@ public abstract class WMShellModule {
            TaskStackListenerImpl taskStackListener,
            TaskStackListenerImpl taskStackListener,
            UiEventLogger uiEventLogger,
            UiEventLogger uiEventLogger,
            InteractionJankMonitor jankMonitor,
            InteractionJankMonitor jankMonitor,
            RootDisplayAreaOrganizer rootDisplayAreaOrganizer,
            @ShellMainThread ShellExecutor mainExecutor,
            @ShellMainThread ShellExecutor mainExecutor,
            @ShellMainThread Handler mainHandler) {
            @ShellMainThread Handler mainHandler) {
        return OneHandedController.create(context, shellInit, shellCommandHandler, shellController,
        return OneHandedController.create(context, shellInit, shellCommandHandler, shellController,
                windowManager, displayController, displayLayout, taskStackListener, jankMonitor,
                windowManager, displayController, displayLayout, taskStackListener, jankMonitor,
                uiEventLogger, mainExecutor, mainHandler);
                uiEventLogger, rootDisplayAreaOrganizer, mainExecutor, mainHandler);
    }
    }


    //
    //
+7 −1
Original line number Original line Diff line number Diff line
@@ -34,6 +34,7 @@ import android.graphics.Rect;
import android.os.Binder;
import android.os.Binder;
import android.util.Slog;
import android.util.Slog;
import android.view.ContextThemeWrapper;
import android.view.ContextThemeWrapper;
import android.view.Display;
import android.view.IWindow;
import android.view.IWindow;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
import android.view.SurfaceControl;
import android.view.SurfaceControl;
@@ -47,6 +48,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Nullable;


import com.android.wm.shell.R;
import com.android.wm.shell.R;
import com.android.wm.shell.RootDisplayAreaOrganizer;
import com.android.wm.shell.common.DisplayLayout;
import com.android.wm.shell.common.DisplayLayout;


import java.io.PrintWriter;
import java.io.PrintWriter;
@@ -67,11 +69,14 @@ public final class BackgroundWindowManager extends WindowlessWindowManager {
    private SurfaceControl mLeash;
    private SurfaceControl mLeash;
    private View mBackgroundView;
    private View mBackgroundView;
    private @OneHandedState.State int mCurrentState;
    private @OneHandedState.State int mCurrentState;
    private RootDisplayAreaOrganizer mRootDisplayAreaOrganizer;


    public BackgroundWindowManager(Context context) {
    public BackgroundWindowManager(Context context,
            RootDisplayAreaOrganizer rootDisplayAreaOrganizer) {
        super(context.getResources().getConfiguration(), null /* rootSurface */,
        super(context.getResources().getConfiguration(), null /* rootSurface */,
                null /* hostInputToken */);
                null /* hostInputToken */);
        mContext = context;
        mContext = context;
        mRootDisplayAreaOrganizer = rootDisplayAreaOrganizer;
        mTransactionFactory = SurfaceControl.Transaction::new;
        mTransactionFactory = SurfaceControl.Transaction::new;
    }
    }


@@ -112,6 +117,7 @@ public final class BackgroundWindowManager extends WindowlessWindowManager {
                .setOpaque(true)
                .setOpaque(true)
                .setName(TAG)
                .setName(TAG)
                .setCallsite("BackgroundWindowManager#attachToParentSurface");
                .setCallsite("BackgroundWindowManager#attachToParentSurface");
        mRootDisplayAreaOrganizer.attachToDisplayArea(Display.DEFAULT_DISPLAY, builder);
        mLeash = builder.build();
        mLeash = builder.build();
        b.setParent(mLeash);
        b.setParent(mLeash);
    }
    }
+4 −1
Original line number Original line Diff line number Diff line
@@ -47,6 +47,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.wm.shell.R;
import com.android.wm.shell.R;
import com.android.wm.shell.RootDisplayAreaOrganizer;
import com.android.wm.shell.common.DisplayChangeController;
import com.android.wm.shell.common.DisplayChangeController;
import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.DisplayLayout;
import com.android.wm.shell.common.DisplayLayout;
@@ -204,12 +205,14 @@ public class OneHandedController implements RemoteCallable<OneHandedController>,
            DisplayController displayController, DisplayLayout displayLayout,
            DisplayController displayController, DisplayLayout displayLayout,
            TaskStackListenerImpl taskStackListener,
            TaskStackListenerImpl taskStackListener,
            InteractionJankMonitor jankMonitor, UiEventLogger uiEventLogger,
            InteractionJankMonitor jankMonitor, UiEventLogger uiEventLogger,
            RootDisplayAreaOrganizer rootDisplayAreaOrganizer,
            ShellExecutor mainExecutor, Handler mainHandler) {
            ShellExecutor mainExecutor, Handler mainHandler) {
        OneHandedSettingsUtil settingsUtil = new OneHandedSettingsUtil();
        OneHandedSettingsUtil settingsUtil = new OneHandedSettingsUtil();
        OneHandedAccessibilityUtil accessibilityUtil = new OneHandedAccessibilityUtil(context);
        OneHandedAccessibilityUtil accessibilityUtil = new OneHandedAccessibilityUtil(context);
        OneHandedTimeoutHandler timeoutHandler = new OneHandedTimeoutHandler(mainExecutor);
        OneHandedTimeoutHandler timeoutHandler = new OneHandedTimeoutHandler(mainExecutor);
        OneHandedState oneHandedState = new OneHandedState();
        OneHandedState oneHandedState = new OneHandedState();
        BackgroundWindowManager backgroundWindowManager = new BackgroundWindowManager(context);
        BackgroundWindowManager backgroundWindowManager =
                new BackgroundWindowManager(context, rootDisplayAreaOrganizer);
        OneHandedTutorialHandler tutorialHandler = new OneHandedTutorialHandler(context,
        OneHandedTutorialHandler tutorialHandler = new OneHandedTutorialHandler(context,
                settingsUtil, windowManager, backgroundWindowManager);
                settingsUtil, windowManager, backgroundWindowManager);
        OneHandedAnimationController animationController =
        OneHandedAnimationController animationController =
+4 −1
Original line number Original line Diff line number Diff line
@@ -24,6 +24,7 @@ import androidx.test.annotation.UiThreadTest;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import androidx.test.filters.SmallTest;


import com.android.wm.shell.RootDisplayAreaOrganizer;
import com.android.wm.shell.ShellTestCase;
import com.android.wm.shell.ShellTestCase;
import com.android.wm.shell.common.DisplayLayout;
import com.android.wm.shell.common.DisplayLayout;


@@ -41,11 +42,13 @@ public class BackgroundWindowManagerTest extends ShellTestCase {
    private BackgroundWindowManager mBackgroundWindowManager;
    private BackgroundWindowManager mBackgroundWindowManager;
    @Mock
    @Mock
    private DisplayLayout  mMockDisplayLayout;
    private DisplayLayout  mMockDisplayLayout;
    @Mock
    private RootDisplayAreaOrganizer mRootDisplayAreaOrganizer;


    @Before
    @Before
    public void setup() {
    public void setup() {
        MockitoAnnotations.initMocks(this);
        MockitoAnnotations.initMocks(this);
        mBackgroundWindowManager = new BackgroundWindowManager(mContext);
        mBackgroundWindowManager = new BackgroundWindowManager(mContext, mRootDisplayAreaOrganizer);
        mBackgroundWindowManager.onDisplayChanged(mMockDisplayLayout);
        mBackgroundWindowManager.onDisplayChanged(mMockDisplayLayout);
    }
    }