Add fragment transactions observing support#66
Merged
Conversation
9b7b327 to
87e54b2
Compare
MertNYuksel
approved these changes
Sep 30, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Types of changes
Description
This MR introduces fragment transaction observability and a helper to retrieve the pending/current fragment, and aligns the project with Java 21.
Navigator)observeFragmentTransaction(lifecycleOwner, (currentFragment, nextFragment) -> Unit)getPendingOrCurrentFragment()MultipleStackNavigator)LiveDataofMedusaRequestedFragmentTransaction(usesWeakReferenceto avoid leaks).FragmentManagerController#getCurrentOrStagedFragment(tag)to return staged (pending) fragments before commit.observeFragmentTransactionand logsPrevious/Nextfragment pairs inMainActivity.appandmedusalibcompileOptions, and in GitHub Actions (pull-request.yml,publish.yml).PUBLISH_VERSION→0.13.0;CHANGELOG.mdupdated accordingly.Motivation and Context
FragmentManager.How Has This Been Tested?
MultipleStackNavigatorFragmentTransactionObserverTest.kt— observer registration & lifecycle edge cases (no crashes with destroyed lifecycle).MultipleStackNavigatorGetPendingOrCurrentFragmentTest.kt— validates return value across init/start/tab switch/back/reset and pending transactions.FragmentTransactionObserverTest.kt— ensures notifications on start/back/switch flows and basic ordering.TestExtensions.kt— helpers to force-execute pending transactions and extract readable fragment names.app; navigate between fragments.Destination Changed: <class> - <tag>FragmentTransaction: Previous = <prev>, Next = <next>Checklist: