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) {
|
synchronized (mGlobalLock) {
|
||||||
final TaskFragmentOrganizerState organizerState =
|
final TaskFragmentOrganizerState organizerState =
|
||||||
mTaskFragmentOrganizerState.get(organizer.asBinder());
|
mTaskFragmentOrganizerState.get(organizer.asBinder());
|
||||||
return organizerState != null
|
if (organizerState == null) {
|
||||||
? organizerState.mRemoteAnimationDefinition
|
Slog.e(TAG, "TaskFragmentOrganizer has been unregistered or died when trying"
|
||||||
: null;
|
+ " 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);
|
ownerTask.addChild(taskFragment, position);
|
||||||
taskFragment.setWindowingMode(creationParams.getWindowingMode());
|
taskFragment.setWindowingMode(creationParams.getWindowingMode());
|
||||||
taskFragment.setBounds(creationParams.getInitialBounds());
|
taskFragment.setBounds(creationParams.getInitialBounds());
|
||||||
|
// Record the initial relative embedded bounds.
|
||||||
|
taskFragment.updateRelativeEmbeddedBounds();
|
||||||
mLaunchTaskFragments.put(creationParams.getFragmentToken(), taskFragment);
|
mLaunchTaskFragments.put(creationParams.getFragmentToken(), taskFragment);
|
||||||
|
|
||||||
if (transition != null) transition.collectExistenceChange(taskFragment);
|
if (transition != null) transition.collectExistenceChange(taskFragment);
|
||||||
|
|||||||
@@ -795,6 +795,38 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
|||||||
task.mChildren.indexOf(activityOnTop));
|
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
|
@Test
|
||||||
public void testApplyTransaction_createTaskFragment_withPairedActivityToken() {
|
public void testApplyTransaction_createTaskFragment_withPairedActivityToken() {
|
||||||
final Task task = createTask(mDisplayContent);
|
final Task task = createTask(mDisplayContent);
|
||||||
|
|||||||
Reference in New Issue
Block a user