Merge changes from topic "remove-intermediate-callbacks" into sc-v2-dev am: 152b410194
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16175313 Change-Id: Ief1c0ba769a8ef536bc6ba061f89bd0fcffd8e96
This commit is contained in:
@@ -254,7 +254,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Allow transaction to change a TaskFragment created by the organizer.
|
// Allow transaction to change a TaskFragment created by the organizer.
|
||||||
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */);
|
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
|
||||||
|
"Test:TaskFragmentOrganizer" /* processName */);
|
||||||
|
|
||||||
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
||||||
}
|
}
|
||||||
@@ -276,7 +277,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Allow transaction to change a TaskFragment created by the organizer.
|
// Allow transaction to change a TaskFragment created by the organizer.
|
||||||
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */);
|
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
|
||||||
|
"Test:TaskFragmentOrganizer" /* processName */);
|
||||||
|
|
||||||
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
||||||
}
|
}
|
||||||
@@ -301,7 +303,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Allow transaction to change a TaskFragment created by the organizer.
|
// Allow transaction to change a TaskFragment created by the organizer.
|
||||||
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */);
|
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
|
||||||
|
"Test:TaskFragmentOrganizer" /* processName */);
|
||||||
clearInvocations(mAtm.mRootWindowContainer);
|
clearInvocations(mAtm.mRootWindowContainer);
|
||||||
|
|
||||||
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
||||||
@@ -337,8 +340,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Allow transaction to change a TaskFragment created by the organizer.
|
// Allow transaction to change a TaskFragment created by the organizer.
|
||||||
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */);
|
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
|
||||||
taskFragment2.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */);
|
"Test:TaskFragmentOrganizer" /* processName */);
|
||||||
|
taskFragment2.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
|
||||||
|
"Test:TaskFragmentOrganizer" /* processName */);
|
||||||
clearInvocations(mAtm.mRootWindowContainer);
|
clearInvocations(mAtm.mRootWindowContainer);
|
||||||
|
|
||||||
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
||||||
@@ -391,7 +396,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Allow transaction to change a TaskFragment created by the organizer.
|
// Allow transaction to change a TaskFragment created by the organizer.
|
||||||
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */);
|
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
|
||||||
|
"Test:TaskFragmentOrganizer" /* processName */);
|
||||||
clearInvocations(mAtm.mRootWindowContainer);
|
clearInvocations(mAtm.mRootWindowContainer);
|
||||||
|
|
||||||
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
||||||
|
|||||||
@@ -20,12 +20,15 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
|
|||||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
|
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
|
||||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
|
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.mockito.Mockito.clearInvocations;
|
import static org.mockito.Mockito.clearInvocations;
|
||||||
|
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.os.Binder;
|
||||||
import android.platform.test.annotations.Presubmit;
|
import android.platform.test.annotations.Presubmit;
|
||||||
import android.view.SurfaceControl;
|
import android.view.SurfaceControl;
|
||||||
import android.window.ITaskFragmentOrganizer;
|
import android.window.ITaskFragmentOrganizer;
|
||||||
|
import android.window.TaskFragmentInfo;
|
||||||
import android.window.TaskFragmentOrganizer;
|
import android.window.TaskFragmentOrganizer;
|
||||||
|
|
||||||
import androidx.test.filters.MediumTest;
|
import androidx.test.filters.MediumTest;
|
||||||
@@ -64,6 +67,7 @@ public class TaskFragmentTest extends WindowTestsBase {
|
|||||||
mTaskFragment = new TaskFragmentBuilder(mAtm)
|
mTaskFragment = new TaskFragmentBuilder(mAtm)
|
||||||
.setCreateParentTask()
|
.setCreateParentTask()
|
||||||
.setOrganizer(mOrganizer)
|
.setOrganizer(mOrganizer)
|
||||||
|
.setFragmentToken(new Binder())
|
||||||
.build();
|
.build();
|
||||||
mLeash = mTaskFragment.getSurfaceControl();
|
mLeash = mTaskFragment.getSurfaceControl();
|
||||||
spyOn(mTaskFragment);
|
spyOn(mTaskFragment);
|
||||||
@@ -103,4 +107,23 @@ public class TaskFragmentTest extends WindowTestsBase {
|
|||||||
verify(mTransaction).setPosition(mLeash, 500, 500);
|
verify(mTransaction).setPosition(mLeash, 500, 500);
|
||||||
verify(mTransaction).setWindowCrop(mLeash, 500, 500);
|
verify(mTransaction).setWindowCrop(mLeash, 500, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests that when a {@link TaskFragmentInfo} is generated from a {@link TaskFragment}, an
|
||||||
|
* activity that has not yet been attached to a process because it is being initialized but
|
||||||
|
* belongs to the TaskFragmentOrganizer process is still reported in the TaskFragmentInfo.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testActivityStillReported_NotYetAssignedToProcess() {
|
||||||
|
mTaskFragment.addChild(new ActivityBuilder(mAtm).setUid(DEFAULT_TASK_FRAGMENT_ORGANIZER_UID)
|
||||||
|
.setProcessName(DEFAULT_TASK_FRAGMENT_ORGANIZER_PROCESS_NAME).build());
|
||||||
|
final ActivityRecord activity = mTaskFragment.getTopMostActivity();
|
||||||
|
// Remove the process to simulate an activity that has not yet been attached to a process
|
||||||
|
activity.app = null;
|
||||||
|
final TaskFragmentInfo info = activity.getTaskFragment().getTaskFragmentInfo();
|
||||||
|
assertEquals(1, info.getRunningActivityCount());
|
||||||
|
assertEquals(1, info.getActivities().size());
|
||||||
|
assertEquals(false, info.isEmpty());
|
||||||
|
assertEquals(activity.token, info.getActivities().get(0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,6 +128,9 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
|||||||
// Default package name
|
// Default package name
|
||||||
static final String DEFAULT_COMPONENT_PACKAGE_NAME = "com.foo";
|
static final String DEFAULT_COMPONENT_PACKAGE_NAME = "com.foo";
|
||||||
|
|
||||||
|
static final int DEFAULT_TASK_FRAGMENT_ORGANIZER_UID = 10000;
|
||||||
|
static final String DEFAULT_TASK_FRAGMENT_ORGANIZER_PROCESS_NAME = "Test:TaskFragmentOrganizer";
|
||||||
|
|
||||||
// Default base activity name
|
// Default base activity name
|
||||||
private static final String DEFAULT_COMPONENT_CLASS_NAME = ".BarActivity";
|
private static final String DEFAULT_COMPONENT_CLASS_NAME = ".BarActivity";
|
||||||
|
|
||||||
@@ -1243,7 +1246,8 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
|||||||
}
|
}
|
||||||
if (mOrganizer != null) {
|
if (mOrganizer != null) {
|
||||||
taskFragment.setTaskFragmentOrganizer(
|
taskFragment.setTaskFragmentOrganizer(
|
||||||
mOrganizer.getOrganizerToken(), 10000 /* pid */);
|
mOrganizer.getOrganizerToken(), DEFAULT_TASK_FRAGMENT_ORGANIZER_UID,
|
||||||
|
DEFAULT_TASK_FRAGMENT_ORGANIZER_PROCESS_NAME);
|
||||||
}
|
}
|
||||||
return taskFragment;
|
return taskFragment;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user