Merge "Attach the background-panel to DisplayContent."
This commit is contained in:
@@ -27,6 +27,7 @@ import com.android.internal.jank.InteractionJankMonitor;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.launcher3.icons.IconProvider;
|
||||
import com.android.wm.shell.RootDisplayAreaOrganizer;
|
||||
import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
|
||||
import com.android.wm.shell.ShellTaskOrganizer;
|
||||
import com.android.wm.shell.TaskViewTransitions;
|
||||
@@ -271,11 +272,12 @@ public abstract class WMShellModule {
|
||||
TaskStackListenerImpl taskStackListener,
|
||||
UiEventLogger uiEventLogger,
|
||||
InteractionJankMonitor jankMonitor,
|
||||
RootDisplayAreaOrganizer rootDisplayAreaOrganizer,
|
||||
@ShellMainThread ShellExecutor mainExecutor,
|
||||
@ShellMainThread Handler mainHandler) {
|
||||
return OneHandedController.create(context, shellInit, shellCommandHandler, shellController,
|
||||
windowManager, displayController, displayLayout, taskStackListener, jankMonitor,
|
||||
uiEventLogger, mainExecutor, mainHandler);
|
||||
uiEventLogger, rootDisplayAreaOrganizer, mainExecutor, mainHandler);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -34,6 +34,7 @@ import android.graphics.Rect;
|
||||
import android.os.Binder;
|
||||
import android.util.Slog;
|
||||
import android.view.ContextThemeWrapper;
|
||||
import android.view.Display;
|
||||
import android.view.IWindow;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.SurfaceControl;
|
||||
@@ -47,6 +48,7 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.wm.shell.R;
|
||||
import com.android.wm.shell.RootDisplayAreaOrganizer;
|
||||
import com.android.wm.shell.common.DisplayLayout;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
@@ -67,11 +69,14 @@ public final class BackgroundWindowManager extends WindowlessWindowManager {
|
||||
private SurfaceControl mLeash;
|
||||
private View mBackgroundView;
|
||||
private @OneHandedState.State int mCurrentState;
|
||||
private RootDisplayAreaOrganizer mRootDisplayAreaOrganizer;
|
||||
|
||||
public BackgroundWindowManager(Context context) {
|
||||
public BackgroundWindowManager(Context context,
|
||||
RootDisplayAreaOrganizer rootDisplayAreaOrganizer) {
|
||||
super(context.getResources().getConfiguration(), null /* rootSurface */,
|
||||
null /* hostInputToken */);
|
||||
mContext = context;
|
||||
mRootDisplayAreaOrganizer = rootDisplayAreaOrganizer;
|
||||
mTransactionFactory = SurfaceControl.Transaction::new;
|
||||
}
|
||||
|
||||
@@ -112,6 +117,7 @@ public final class BackgroundWindowManager extends WindowlessWindowManager {
|
||||
.setOpaque(true)
|
||||
.setName(TAG)
|
||||
.setCallsite("BackgroundWindowManager#attachToParentSurface");
|
||||
mRootDisplayAreaOrganizer.attachToDisplayArea(Display.DEFAULT_DISPLAY, builder);
|
||||
mLeash = builder.build();
|
||||
b.setParent(mLeash);
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
import com.android.internal.jank.InteractionJankMonitor;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
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.DisplayController;
|
||||
import com.android.wm.shell.common.DisplayLayout;
|
||||
@@ -204,12 +205,14 @@ public class OneHandedController implements RemoteCallable<OneHandedController>,
|
||||
DisplayController displayController, DisplayLayout displayLayout,
|
||||
TaskStackListenerImpl taskStackListener,
|
||||
InteractionJankMonitor jankMonitor, UiEventLogger uiEventLogger,
|
||||
RootDisplayAreaOrganizer rootDisplayAreaOrganizer,
|
||||
ShellExecutor mainExecutor, Handler mainHandler) {
|
||||
OneHandedSettingsUtil settingsUtil = new OneHandedSettingsUtil();
|
||||
OneHandedAccessibilityUtil accessibilityUtil = new OneHandedAccessibilityUtil(context);
|
||||
OneHandedTimeoutHandler timeoutHandler = new OneHandedTimeoutHandler(mainExecutor);
|
||||
OneHandedState oneHandedState = new OneHandedState();
|
||||
BackgroundWindowManager backgroundWindowManager = new BackgroundWindowManager(context);
|
||||
BackgroundWindowManager backgroundWindowManager =
|
||||
new BackgroundWindowManager(context, rootDisplayAreaOrganizer);
|
||||
OneHandedTutorialHandler tutorialHandler = new OneHandedTutorialHandler(context,
|
||||
settingsUtil, windowManager, backgroundWindowManager);
|
||||
OneHandedAnimationController animationController =
|
||||
|
||||
@@ -24,6 +24,7 @@ import androidx.test.annotation.UiThreadTest;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.wm.shell.RootDisplayAreaOrganizer;
|
||||
import com.android.wm.shell.ShellTestCase;
|
||||
import com.android.wm.shell.common.DisplayLayout;
|
||||
|
||||
@@ -41,11 +42,13 @@ public class BackgroundWindowManagerTest extends ShellTestCase {
|
||||
private BackgroundWindowManager mBackgroundWindowManager;
|
||||
@Mock
|
||||
private DisplayLayout mMockDisplayLayout;
|
||||
@Mock
|
||||
private RootDisplayAreaOrganizer mRootDisplayAreaOrganizer;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mBackgroundWindowManager = new BackgroundWindowManager(mContext);
|
||||
mBackgroundWindowManager = new BackgroundWindowManager(mContext, mRootDisplayAreaOrganizer);
|
||||
mBackgroundWindowManager.onDisplayChanged(mMockDisplayLayout);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user