Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -817,8 +817,10 @@ public abstract class WMShellBaseModule { @WMSingleton @Provides static FocusTransitionObserver provideFocusTransitionObserver() { return new FocusTransitionObserver(); static FocusTransitionObserver provideFocusTransitionObserver( ShellInit shellInit, ShellCommandHandler shellCommandHandler) { return new FocusTransitionObserver(shellInit, shellCommandHandler); } @WMSingleton Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +0 −1 Original line number Diff line number Diff line Loading @@ -5915,7 +5915,6 @@ class DesktopTasksController( pw.println("${prefix}DesktopTasksController") desktopConfig.dump(pw, innerPrefix) userRepositories.dump(pw, innerPrefix) focusTransitionObserver.dump(pw, innerPrefix) if (Flags.showDesktopExperienceDevOption()) { dumpFlags(pw, prefix) } Loading libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java +14 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ import android.window.TransitionInfo; import com.android.wm.shell.shared.FocusTransitionListener; import com.android.wm.shell.shared.IFocusTransitionListener; import com.android.wm.shell.shared.TransitionUtil.LeafTaskFilter; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellInit; import java.io.PrintWriter; import java.util.ArrayList; Loading @@ -57,6 +59,8 @@ import java.util.concurrent.Executor; public class FocusTransitionObserver { private static final String TAG = FocusTransitionObserver.class.getSimpleName(); private final ShellCommandHandler mShellCommandHandler; private IFocusTransitionListener mRemoteListener; private final Map<FocusTransitionListener, Executor> mLocalListeners = new HashMap<>(); Loading @@ -66,7 +70,16 @@ public class FocusTransitionObserver { private final ArraySet<RunningTaskInfo> mTmpTasksToBeNotified = new ArraySet<>(); public FocusTransitionObserver() {} public FocusTransitionObserver( @NonNull ShellInit shellInit, @NonNull ShellCommandHandler shellCommandHandler) { mShellCommandHandler = shellCommandHandler; shellInit.addInitCallback(this::onInit, this); } private void onInit() { mShellCommandHandler.addDumpCallback(this::dump, this); } /** * Update display/window focus state from the given transition info and notifies changes if any. Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java +17 −1 Original line number Diff line number Diff line Loading @@ -25,12 +25,15 @@ import static android.window.TransitionInfo.FLAG_MOVED_TO_TOP; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.when; Loading @@ -48,6 +51,8 @@ import com.android.window.flags.Flags; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.TestShellExecutor; import com.android.wm.shell.shared.FocusTransitionListener; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellInit; import org.junit.Before; import org.junit.Test; Loading @@ -69,13 +74,18 @@ public class FocusTransitionObserverTest extends ShellTestCase { private FocusTransitionListener mListener; private final TestShellExecutor mShellExecutor = new TestShellExecutor(); private ShellInit mShellInit; private ShellCommandHandler mShellCommandHandler; private FocusTransitionObserver mFocusTransitionObserver; @Before public void setUp() { mListener = mock(FocusTransitionListener.class); mFocusTransitionObserver = new FocusTransitionObserver(); mShellInit = spy(new ShellInit(mShellExecutor)); mShellCommandHandler = mock(ShellCommandHandler.class); mFocusTransitionObserver = new FocusTransitionObserver(mShellInit, mShellCommandHandler); mFocusTransitionObserver.setLocalFocusTransitionListener(mListener, mShellExecutor); mShellInit.init(); mShellExecutor.flushAll(); clearInvocations(mListener); } Loading Loading @@ -254,6 +264,12 @@ public class FocusTransitionObserverTest extends ShellTestCase { clearInvocations(mListener); } @Test public void testAddDump() { verify(mShellCommandHandler, times(1)).addDumpCallback( any(), isA(FocusTransitionObserver.class)); } private TransitionInfo.Change setupTaskChange(List<TransitionInfo.Change> changes, int taskId, @TransitionMode int mode, int displayId, boolean focused) { return setupTaskChange(changes, taskId, mode, displayId, displayId, focused); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -817,8 +817,10 @@ public abstract class WMShellBaseModule { @WMSingleton @Provides static FocusTransitionObserver provideFocusTransitionObserver() { return new FocusTransitionObserver(); static FocusTransitionObserver provideFocusTransitionObserver( ShellInit shellInit, ShellCommandHandler shellCommandHandler) { return new FocusTransitionObserver(shellInit, shellCommandHandler); } @WMSingleton Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +0 −1 Original line number Diff line number Diff line Loading @@ -5915,7 +5915,6 @@ class DesktopTasksController( pw.println("${prefix}DesktopTasksController") desktopConfig.dump(pw, innerPrefix) userRepositories.dump(pw, innerPrefix) focusTransitionObserver.dump(pw, innerPrefix) if (Flags.showDesktopExperienceDevOption()) { dumpFlags(pw, prefix) } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java +14 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ import android.window.TransitionInfo; import com.android.wm.shell.shared.FocusTransitionListener; import com.android.wm.shell.shared.IFocusTransitionListener; import com.android.wm.shell.shared.TransitionUtil.LeafTaskFilter; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellInit; import java.io.PrintWriter; import java.util.ArrayList; Loading @@ -57,6 +59,8 @@ import java.util.concurrent.Executor; public class FocusTransitionObserver { private static final String TAG = FocusTransitionObserver.class.getSimpleName(); private final ShellCommandHandler mShellCommandHandler; private IFocusTransitionListener mRemoteListener; private final Map<FocusTransitionListener, Executor> mLocalListeners = new HashMap<>(); Loading @@ -66,7 +70,16 @@ public class FocusTransitionObserver { private final ArraySet<RunningTaskInfo> mTmpTasksToBeNotified = new ArraySet<>(); public FocusTransitionObserver() {} public FocusTransitionObserver( @NonNull ShellInit shellInit, @NonNull ShellCommandHandler shellCommandHandler) { mShellCommandHandler = shellCommandHandler; shellInit.addInitCallback(this::onInit, this); } private void onInit() { mShellCommandHandler.addDumpCallback(this::dump, this); } /** * Update display/window focus state from the given transition info and notifies changes if any. Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java +17 −1 Original line number Diff line number Diff line Loading @@ -25,12 +25,15 @@ import static android.window.TransitionInfo.FLAG_MOVED_TO_TOP; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.when; Loading @@ -48,6 +51,8 @@ import com.android.window.flags.Flags; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.TestShellExecutor; import com.android.wm.shell.shared.FocusTransitionListener; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellInit; import org.junit.Before; import org.junit.Test; Loading @@ -69,13 +74,18 @@ public class FocusTransitionObserverTest extends ShellTestCase { private FocusTransitionListener mListener; private final TestShellExecutor mShellExecutor = new TestShellExecutor(); private ShellInit mShellInit; private ShellCommandHandler mShellCommandHandler; private FocusTransitionObserver mFocusTransitionObserver; @Before public void setUp() { mListener = mock(FocusTransitionListener.class); mFocusTransitionObserver = new FocusTransitionObserver(); mShellInit = spy(new ShellInit(mShellExecutor)); mShellCommandHandler = mock(ShellCommandHandler.class); mFocusTransitionObserver = new FocusTransitionObserver(mShellInit, mShellCommandHandler); mFocusTransitionObserver.setLocalFocusTransitionListener(mListener, mShellExecutor); mShellInit.init(); mShellExecutor.flushAll(); clearInvocations(mListener); } Loading Loading @@ -254,6 +264,12 @@ public class FocusTransitionObserverTest extends ShellTestCase { clearInvocations(mListener); } @Test public void testAddDump() { verify(mShellCommandHandler, times(1)).addDumpCallback( any(), isA(FocusTransitionObserver.class)); } private TransitionInfo.Change setupTaskChange(List<TransitionInfo.Change> changes, int taskId, @TransitionMode int mode, int displayId, boolean focused) { return setupTaskChange(changes, taskId, mode, displayId, displayId, focused); Loading