diff --git a/library/src/main/java/com/vinted/coper/CoperImpl.kt b/library/src/main/java/com/vinted/coper/CoperImpl.kt index 50dae99..f8a1309 100644 --- a/library/src/main/java/com/vinted/coper/CoperImpl.kt +++ b/library/src/main/java/com/vinted/coper/CoperImpl.kt @@ -106,13 +106,17 @@ internal class CoperImpl( fragmentManager: FragmentManager ): CoperFragment { return suspendCancellableCoroutine { continuation -> - fragmentManager.beginTransaction() - .add(this, FRAGMENT_TAG) - .runOnCommit { - continuation.resume(this) - } - .commit() - _latestCommittedFragmentFlow.value = this + if (!fragmentManager.isStateSaved) { + fragmentManager.beginTransaction() + .add(this, FRAGMENT_TAG) + .runOnCommit { + continuation.resume(this) + } + .commit() + _latestCommittedFragmentFlow.value = this + } else { + continuation.cancel() + } } }