Use the same transaction to set position of the leash
When a leash of an insets source is being created, it's initial position would be set in InsetsSourceProvider.ControlAdapter#startAnimation. And then, when the position changes, the new position would be set in InsetsSourceProvider#onPostLayout. Both places should use the same transaction. Otherwise, there is no guarantee which transaction will be applied first. Fix: 282880421 Test: Fold and unfold a foldable device. See if taskbar stays at bottom. Change-Id: Ib959e91dd25bf1ddb34b25aecda45ffcd396c4c6
This commit is contained in:
@@ -454,7 +454,7 @@ class InsetsSourceProvider {
|
||||
if (mSource.getType() == WindowInsets.Type.ime()) {
|
||||
setClientVisible(target.isRequestedVisible(WindowInsets.Type.ime()));
|
||||
}
|
||||
final Transaction t = mDisplayContent.getSyncTransaction();
|
||||
final Transaction t = mWindowContainer.getSyncTransaction();
|
||||
mWindowContainer.startAnimation(t, mAdapter, !mClientVisible /* hidden */,
|
||||
ANIMATION_TYPE_INSETS_CONTROL);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user