Loading services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java +1 −7 Original line number Diff line number Diff line Loading @@ -477,11 +477,6 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr : null; } @VisibleForTesting void registerOrganizer(@NonNull ITaskFragmentOrganizer organizer) { registerOrganizerInternal(organizer, false /* isSystemOrganizer */); } @Override public void registerOrganizer( @NonNull ITaskFragmentOrganizer organizer, boolean isSystemOrganizer) { Loading @@ -490,8 +485,7 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr Flags.taskFragmentSystemOrganizerFlag() && isSystemOrganizer); } @VisibleForTesting void registerOrganizerInternal( private void registerOrganizerInternal( @NonNull ITaskFragmentOrganizer organizer, boolean isSystemOrganizer) { if (isSystemOrganizer) { enforceTaskPermission("registerSystemOrganizer()"); Loading services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -1221,7 +1221,7 @@ public class AppTransitionControllerTest extends WindowTestsBase { public void testTransitionGoodToGoForTaskFragments_detachedApp() { final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run); final ITaskFragmentOrganizer iOrganizer = getITaskFragmentOrganizer(organizer); mAtm.mTaskFragmentOrganizerController.registerOrganizer(iOrganizer); registerTaskFragmentOrganizer(iOrganizer); final Task task = createTask(mDisplayContent); final TaskFragment changeTaskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer); Loading Loading @@ -1265,7 +1265,7 @@ public class AppTransitionControllerTest extends WindowTestsBase { definition.addRemoteAnimation(TRANSIT_OLD_TASK_FRAGMENT_CLOSE, adapter); definition.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_OPEN, adapter); definition.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_CLOSE, adapter); mAtm.mTaskFragmentOrganizerController.registerOrganizer(iOrganizer); registerTaskFragmentOrganizer(iOrganizer); mAtm.mTaskFragmentOrganizerController.registerRemoteAnimations(iOrganizer, definition); } Loading services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -439,7 +439,7 @@ public class AppTransitionTests extends WindowTestsBase { final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run); final ITaskFragmentOrganizer iOrganizer = ITaskFragmentOrganizer.Stub.asInterface(organizer.getOrganizerToken().asBinder()); mAtm.mTaskFragmentOrganizerController.registerOrganizer(iOrganizer); registerTaskFragmentOrganizer(iOrganizer); final TaskFragment taskFragment = new TaskFragmentBuilder(mAtm) .setParentTask(task) .setOrganizer(organizer) Loading services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java +3 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.wm; import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import android.os.Handler; Loading @@ -35,7 +37,7 @@ class SystemServiceTestsBase { new DexmakerShareClassLoaderRule(); @Rule(order = 1) public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT); @Rule(order = 2) public final SystemServicesTestRule mSystemServicesTestRule = new SystemServicesTestRule( Loading services/tests/wmtests/src/com/android/server/wm/TaskFragmentOrganizerControllerTest.java +21 −15 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; Loading Loading @@ -88,7 +87,6 @@ import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; import android.platform.test.flag.junit.SetFlagsRule; import android.view.RemoteAnimationDefinition; import android.view.SurfaceControl; import android.window.IRemoteTransition; Loading @@ -110,7 +108,6 @@ import androidx.test.filters.SmallTest; import com.android.window.flags.Flags; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; Loading @@ -130,9 +127,6 @@ import java.util.List; @RunWith(WindowTestRunner.class) public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Rule public SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT); private TaskFragmentOrganizerController mController; private WindowOrganizerController mWindowOrganizerController; private TransitionController mTransitionController; Loading Loading @@ -202,7 +196,7 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { doNothing().when(mOrganizer).applyTransaction(any(), anyInt(), anyBoolean()); doNothing().when(mOrganizer).onTransactionHandled(any(), any(), anyInt(), anyBoolean()); mController.registerOrganizer(mIOrganizer); registerTaskFragmentOrganizer(mIOrganizer); } @Test Loading Loading @@ -249,7 +243,7 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { mSetFlagsRule.enableFlags(Flags.FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG); // Re-register the organizer in case the flag was disabled during setup. mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizer(mIOrganizer); registerTaskFragmentOrganizer(mIOrganizer); // No-op when the TaskFragment is not attached. mController.onTaskFragmentAppeared(mTaskFragment.getTaskFragmentOrganizer(), mTaskFragment); Loading @@ -271,8 +265,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testOnTaskFragmentAppeared_systemOrganizer() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); // No-op when the TaskFragment is not attached. mController.onTaskFragmentAppeared(mTaskFragment.getTaskFragmentOrganizer(), mTaskFragment); Loading Loading @@ -613,8 +609,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_allowRemoteTransitionForSystemOrganizer() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); mTransaction.setRelativeBounds(mFragmentWindowToken, new Rect(0, 0, 100, 100)); mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */, Loading Loading @@ -1104,7 +1102,7 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { // Nothing should happen as the organizer is not registered. assertNull(mWindowOrganizerController.getTaskFragment(fragmentToken)); mController.registerOrganizer(mIOrganizer); registerTaskFragmentOrganizer(mIOrganizer); assertApplyTransactionAllowed(mTransaction); // Successfully created when the organizer is registered. Loading Loading @@ -1740,8 +1738,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_reorderToBottomOfTask() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); final Task task = createTask(mDisplayContent); // Create a non-embedded Activity at the bottom. final ActivityRecord bottomActivity = new ActivityBuilder(mAtm) Loading Loading @@ -1775,8 +1775,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_reorderToTopOfTask() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); final Task task = createTask(mDisplayContent); // Create a non-embedded Activity at the bottom. final ActivityRecord bottomActivity = new ActivityBuilder(mAtm) Loading Loading @@ -1810,9 +1812,11 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_createTaskFragmentDecorSurface() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); // TODO(b/293654166) remove system organizer requirement once security review is cleared. mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); final Task task = createTask(mDisplayContent); final TaskFragment tf = createTaskFragment(task); Loading @@ -1827,9 +1831,11 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_removeTaskFragmentDecorSurface() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); // TODO(b/293654166) remove system organizer requirement once security review is cleared. mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); final Task task = createTask(mDisplayContent); final TaskFragment tf = createTaskFragment(task); Loading Loading
services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java +1 −7 Original line number Diff line number Diff line Loading @@ -477,11 +477,6 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr : null; } @VisibleForTesting void registerOrganizer(@NonNull ITaskFragmentOrganizer organizer) { registerOrganizerInternal(organizer, false /* isSystemOrganizer */); } @Override public void registerOrganizer( @NonNull ITaskFragmentOrganizer organizer, boolean isSystemOrganizer) { Loading @@ -490,8 +485,7 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr Flags.taskFragmentSystemOrganizerFlag() && isSystemOrganizer); } @VisibleForTesting void registerOrganizerInternal( private void registerOrganizerInternal( @NonNull ITaskFragmentOrganizer organizer, boolean isSystemOrganizer) { if (isSystemOrganizer) { enforceTaskPermission("registerSystemOrganizer()"); Loading
services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -1221,7 +1221,7 @@ public class AppTransitionControllerTest extends WindowTestsBase { public void testTransitionGoodToGoForTaskFragments_detachedApp() { final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run); final ITaskFragmentOrganizer iOrganizer = getITaskFragmentOrganizer(organizer); mAtm.mTaskFragmentOrganizerController.registerOrganizer(iOrganizer); registerTaskFragmentOrganizer(iOrganizer); final Task task = createTask(mDisplayContent); final TaskFragment changeTaskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer); Loading Loading @@ -1265,7 +1265,7 @@ public class AppTransitionControllerTest extends WindowTestsBase { definition.addRemoteAnimation(TRANSIT_OLD_TASK_FRAGMENT_CLOSE, adapter); definition.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_OPEN, adapter); definition.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_CLOSE, adapter); mAtm.mTaskFragmentOrganizerController.registerOrganizer(iOrganizer); registerTaskFragmentOrganizer(iOrganizer); mAtm.mTaskFragmentOrganizerController.registerRemoteAnimations(iOrganizer, definition); } Loading
services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -439,7 +439,7 @@ public class AppTransitionTests extends WindowTestsBase { final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run); final ITaskFragmentOrganizer iOrganizer = ITaskFragmentOrganizer.Stub.asInterface(organizer.getOrganizerToken().asBinder()); mAtm.mTaskFragmentOrganizerController.registerOrganizer(iOrganizer); registerTaskFragmentOrganizer(iOrganizer); final TaskFragment taskFragment = new TaskFragmentBuilder(mAtm) .setParentTask(task) .setOrganizer(organizer) Loading
services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java +3 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.wm; import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import android.os.Handler; Loading @@ -35,7 +37,7 @@ class SystemServiceTestsBase { new DexmakerShareClassLoaderRule(); @Rule(order = 1) public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT); @Rule(order = 2) public final SystemServicesTestRule mSystemServicesTestRule = new SystemServicesTestRule( Loading
services/tests/wmtests/src/com/android/server/wm/TaskFragmentOrganizerControllerTest.java +21 −15 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; Loading Loading @@ -88,7 +87,6 @@ import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; import android.platform.test.flag.junit.SetFlagsRule; import android.view.RemoteAnimationDefinition; import android.view.SurfaceControl; import android.window.IRemoteTransition; Loading @@ -110,7 +108,6 @@ import androidx.test.filters.SmallTest; import com.android.window.flags.Flags; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; Loading @@ -130,9 +127,6 @@ import java.util.List; @RunWith(WindowTestRunner.class) public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Rule public SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT); private TaskFragmentOrganizerController mController; private WindowOrganizerController mWindowOrganizerController; private TransitionController mTransitionController; Loading Loading @@ -202,7 +196,7 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { doNothing().when(mOrganizer).applyTransaction(any(), anyInt(), anyBoolean()); doNothing().when(mOrganizer).onTransactionHandled(any(), any(), anyInt(), anyBoolean()); mController.registerOrganizer(mIOrganizer); registerTaskFragmentOrganizer(mIOrganizer); } @Test Loading Loading @@ -249,7 +243,7 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { mSetFlagsRule.enableFlags(Flags.FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG); // Re-register the organizer in case the flag was disabled during setup. mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizer(mIOrganizer); registerTaskFragmentOrganizer(mIOrganizer); // No-op when the TaskFragment is not attached. mController.onTaskFragmentAppeared(mTaskFragment.getTaskFragmentOrganizer(), mTaskFragment); Loading @@ -271,8 +265,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testOnTaskFragmentAppeared_systemOrganizer() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); // No-op when the TaskFragment is not attached. mController.onTaskFragmentAppeared(mTaskFragment.getTaskFragmentOrganizer(), mTaskFragment); Loading Loading @@ -613,8 +609,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_allowRemoteTransitionForSystemOrganizer() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); mTransaction.setRelativeBounds(mFragmentWindowToken, new Rect(0, 0, 100, 100)); mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */, Loading Loading @@ -1104,7 +1102,7 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { // Nothing should happen as the organizer is not registered. assertNull(mWindowOrganizerController.getTaskFragment(fragmentToken)); mController.registerOrganizer(mIOrganizer); registerTaskFragmentOrganizer(mIOrganizer); assertApplyTransactionAllowed(mTransaction); // Successfully created when the organizer is registered. Loading Loading @@ -1740,8 +1738,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_reorderToBottomOfTask() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); final Task task = createTask(mDisplayContent); // Create a non-embedded Activity at the bottom. final ActivityRecord bottomActivity = new ActivityBuilder(mAtm) Loading Loading @@ -1775,8 +1775,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_reorderToTopOfTask() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); final Task task = createTask(mDisplayContent); // Create a non-embedded Activity at the bottom. final ActivityRecord bottomActivity = new ActivityBuilder(mAtm) Loading Loading @@ -1810,9 +1812,11 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_createTaskFragmentDecorSurface() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); // TODO(b/293654166) remove system organizer requirement once security review is cleared. mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); final Task task = createTask(mDisplayContent); final TaskFragment tf = createTaskFragment(task); Loading @@ -1827,9 +1831,11 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase { @Test public void testApplyTransaction_removeTaskFragmentDecorSurface() { mSetFlagsRule.enableFlags(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG); // TODO(b/293654166) remove system organizer requirement once security review is cleared. mController.unregisterOrganizer(mIOrganizer); mController.registerOrganizerInternal(mIOrganizer, true /* isSystemOrganizer */); registerTaskFragmentOrganizer(mIOrganizer, true /* isSystemOrganizer */); final Task task = createTask(mDisplayContent); final TaskFragment tf = createTaskFragment(task); Loading