Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } // // Loading libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/BackgroundWindowManager.java +7 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; } } Loading Loading @@ -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); } } Loading libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 = Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/BackgroundWindowManagerTest.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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); } } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } // // Loading
libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/BackgroundWindowManager.java +7 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; } } Loading Loading @@ -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); } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 = Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/BackgroundWindowManagerTest.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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); } } Loading