Merge "Fix incorrect animation direction for closing TaskFragment" into tm-qpr-dev
This commit is contained in:
@@ -540,9 +540,12 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
|
||||
synchronized (mGlobalLock) {
|
||||
final TaskFragmentOrganizerState organizerState =
|
||||
mTaskFragmentOrganizerState.get(organizer.asBinder());
|
||||
return organizerState != null
|
||||
? organizerState.mRemoteAnimationDefinition
|
||||
: null;
|
||||
if (organizerState == null) {
|
||||
Slog.e(TAG, "TaskFragmentOrganizer has been unregistered or died when trying"
|
||||
+ " to play animation on its organized windows.");
|
||||
return null;
|
||||
}
|
||||
return organizerState.mRemoteAnimationDefinition;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1962,6 +1962,8 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
|
||||
ownerTask.addChild(taskFragment, position);
|
||||
taskFragment.setWindowingMode(creationParams.getWindowingMode());
|
||||
taskFragment.setBounds(creationParams.getInitialBounds());
|
||||
// Record the initial relative embedded bounds.
|
||||
taskFragment.updateRelativeEmbeddedBounds();
|
||||
mLaunchTaskFragments.put(creationParams.getFragmentToken(), taskFragment);
|
||||
|
||||
if (transition != null) transition.collectExistenceChange(taskFragment);
|
||||
|
||||
@@ -795,6 +795,38 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
||||
task.mChildren.indexOf(activityOnTop));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testApplyTransaction_createTaskFragment_overrideBounds() {
|
||||
final Task task = createTask(mDisplayContent);
|
||||
final ActivityRecord activityAtBottom = createActivityRecord(task);
|
||||
final int uid = Binder.getCallingUid();
|
||||
activityAtBottom.info.applicationInfo.uid = uid;
|
||||
activityAtBottom.getTask().effectiveUid = uid;
|
||||
mTaskFragment = new TaskFragmentBuilder(mAtm)
|
||||
.setParentTask(task)
|
||||
.setFragmentToken(mFragmentToken)
|
||||
.createActivityCount(1)
|
||||
.build();
|
||||
mWindowOrganizerController.mLaunchTaskFragments.put(mFragmentToken, mTaskFragment);
|
||||
final IBinder fragmentToken1 = new Binder();
|
||||
final Rect bounds = new Rect(100, 100, 500, 1000);
|
||||
final TaskFragmentCreationParams params = new TaskFragmentCreationParams.Builder(
|
||||
mOrganizerToken, fragmentToken1, activityAtBottom.token)
|
||||
.setPairedActivityToken(activityAtBottom.token)
|
||||
.setInitialBounds(bounds)
|
||||
.build();
|
||||
mTransaction.setTaskFragmentOrganizer(mIOrganizer);
|
||||
mTransaction.createTaskFragment(params);
|
||||
assertApplyTransactionAllowed(mTransaction);
|
||||
|
||||
// Successfully created a TaskFragment.
|
||||
final TaskFragment taskFragment = mWindowOrganizerController.getTaskFragment(
|
||||
fragmentToken1);
|
||||
assertNotNull(taskFragment);
|
||||
// The relative embedded bounds is updated to the initial requested bounds.
|
||||
assertEquals(bounds, taskFragment.getRelativeEmbeddedBounds());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testApplyTransaction_createTaskFragment_withPairedActivityToken() {
|
||||
final Task task = createTask(mDisplayContent);
|
||||
|
||||
Reference in New Issue
Block a user