Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit99db321

Browse files
author
mert.yuksel
committed
Merge remote-tracking branch 'origin/master'
2 parents2246287 +10518de commit99db321

File tree

4 files changed

+101
-1
lines changed

4 files changed

+101
-1
lines changed

‎medusalib/src/androidTest/java/com/trendyol/medusalib/TestChildFragment.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ class TestChildFragment : Fragment() {
2626
}
2727
}
2828

29+
funrequireArgumentTitle()= requireArguments().getString(KEY_TITLE)!!
30+
2931
companionobject {
3032
funnewInstance(title:String):TestChildFragment {
3133
returnTestChildFragment().apply {
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
packagecom.trendyol.medusalib
2+
3+
importandroid.os.Bundle
4+
importandroid.view.LayoutInflater
5+
importandroid.view.View
6+
importandroid.view.ViewGroup
7+
importandroid.widget.FrameLayout
8+
importandroidx.fragment.app.Fragment
9+
importcom.trendyol.medusalib.navigator.MultipleStackNavigator
10+
importcom.trendyol.medusalib.navigator.Navigator
11+
importcom.trendyol.medusalib.navigator.NavigatorConfiguration
12+
importcom.trendyol.medusalib.navigator.transaction.NavigatorTransaction
13+
importcom.trendyol.medusalib.navigator.transaction.TransactionType
14+
15+
classTestParentWithNavigatorFragment :Fragment() {
16+
17+
lateinitvar navigator:Navigator
18+
19+
overridefunonCreateView(inflater:LayoutInflater,container:ViewGroup?,savedInstanceState:Bundle?):View? {
20+
navigator= createNavigator(
21+
{TestChildFragment.newInstance("Root1") },
22+
{TestChildFragment.newInstance("Root2") },
23+
{TestChildFragment.newInstance("Root3") }
24+
)
25+
navigator.initialize(savedInstanceState)
26+
returnFrameLayout(requireContext()).apply { id=CONTAINER_ID }
27+
}
28+
29+
funcreateNavigator(
30+
varargrootFragments: ()->TestChildFragment
31+
):MultipleStackNavigator {
32+
returnMultipleStackNavigator(
33+
fragmentManager=this.childFragmentManager,
34+
containerId=TestParentFragment.CONTAINER_ID,
35+
rootFragmentProvider= rootFragments.toList(),
36+
navigatorConfiguration=NavigatorConfiguration(
37+
defaultNavigatorTransaction=NavigatorTransaction(TransactionType.SHOW_HIDE)
38+
)
39+
)
40+
}
41+
42+
overridefunonSaveInstanceState(outState:Bundle) {
43+
navigator.onSaveInstanceState(outState)
44+
super.onSaveInstanceState(outState)
45+
}
46+
47+
companionobject {
48+
constvalCONTAINER_ID=1_000
49+
}
50+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
packagecom.trendyol.medusalib.navigator
2+
3+
importandroidx.fragment.app.testing.launchFragmentInContainer
4+
importandroidx.lifecycle.Lifecycle
5+
importandroidx.test.ext.junit.runners.AndroidJUnit4
6+
importcom.google.common.truth.Truth
7+
importcom.trendyol.medusalib.TestChildFragment
8+
importcom.trendyol.medusalib.TestParentWithNavigatorFragment
9+
importorg.junit.Test
10+
importorg.junit.runner.RunWith
11+
12+
13+
@RunWith(AndroidJUnit4::class)
14+
classActivityRecreationResetTabTest {
15+
16+
@Test
17+
fungivenWithMultipleStackNavigatorWhenresetCurrentTabIsCalledAfterActionRecreationThenRootFragmentMustBevVisible() {
18+
// Given
19+
launchFragmentInContainer<TestParentWithNavigatorFragment>(
20+
initialState=Lifecycle.State.INITIALIZED
21+
)
22+
.moveToState(Lifecycle.State.RESUMED)
23+
.onFragment {
24+
it.navigator.switchTab(2)
25+
it.childFragmentManager.executePendingTransactions()
26+
27+
it.navigator.start(TestChildFragment.newInstance("Root3-1"))
28+
it.childFragmentManager.executePendingTransactions()
29+
30+
it.navigator.start(TestChildFragment.newInstance("Root3-2"))
31+
it.childFragmentManager.executePendingTransactions()
32+
}
33+
// When
34+
.recreate()
35+
// Then
36+
.onFragment {
37+
it.navigator.resetCurrentTab(resetRootFragment=false)
38+
it.childFragmentManager.executePendingTransactions()
39+
Truth.assertThat(
40+
it
41+
.childFragmentManager
42+
.fragments.first { (itasTestChildFragment).requireArgumentTitle()=="Root3" }
43+
.isVisible
44+
).isTrue()
45+
}
46+
47+
}
48+
}

‎medusalib/src/main/java/com/trendyol/medusalib/navigator/MultipleStackNavigator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ open class MultipleStackNavigator(
164164
val upperFragment:Fragment?= fragmentManagerController.getFragment(upperFragmentTag)
165165

166166
val newDestination:Fragment= upperFragment?: getRootFragment(currentTabIndex)
167-
val newDestinationTag:String= tagCreator.create(newDestination)
167+
val newDestinationTag:String=newDestination.tag?:tagCreator.create(newDestination)
168168

169169
newDestination.observeFragmentLifecycle(
170170
onViewCreated= ::onFragmentViewCreated,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp