Merge "[8/n] Pin ActivityStack" into udc-qpr-dev
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
index bcbf728..3ad3045 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
@@ -261,10 +261,6 @@
// Updates the Split
final TransactionRecord transactionRecord = mTransactionManager.startNewTransaction();
final WindowContainerTransaction wct = transactionRecord.getTransaction();
-
- mPresenter.setTaskFragmentIsolatedNavigation(wct,
- splitPinContainer.getSecondaryContainer().getTaskFragmentToken(),
- true /* isolatedNav */);
mPresenter.updateSplitContainer(splitPinContainer, wct);
transactionRecord.apply(false /* shouldApplyIndependently */);
updateCallbackIfNecessary();
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
index 5de6acf..896fe61 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
@@ -382,6 +382,19 @@
}
setCompanionTaskFragment(wct, primaryContainer.getTaskFragmentToken(),
secondaryContainer.getTaskFragmentToken(), splitRule, isStacked);
+
+ // Setting isolated navigation and clear non-sticky pinned container if needed.
+ final SplitPinRule splitPinRule =
+ splitRule instanceof SplitPinRule ? (SplitPinRule) splitRule : null;
+ if (splitPinRule == null) {
+ return;
+ }
+
+ setTaskFragmentIsolatedNavigation(wct, secondaryContainer.getTaskFragmentToken(),
+ !isStacked /* isolatedNav */);
+ if (isStacked && !splitPinRule.isSticky()) {
+ secondaryContainer.getTaskContainer().removeSplitPinContainer();
+ }
}
/**