Merge "Change reordering parameter from boolean to sealed class" into androidx-master-dev
diff --git a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTestUtil.kt b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTestUtil.kt
index 53624aed..800e19e 100644
--- a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTestUtil.kt
+++ b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTestUtil.kt
@@ -30,6 +30,16 @@
import java.lang.ref.WeakReference
import java.util.ArrayList
+fun FragmentTransaction.setReorderingAllowed(
+ reorderingAllowed: ReorderingAllowed
+) = setReorderingAllowed(reorderingAllowed is Reordered)
+
+sealed class ReorderingAllowed {
+ override fun toString(): String = this.javaClass.simpleName
+}
+object Reordered : ReorderingAllowed()
+object Ordered : ReorderingAllowed()
+
@Suppress("DEPRECATION")
fun androidx.test.rule.ActivityTestRule<out FragmentActivity>.executePendingTransactions(
fm: FragmentManager = activity.supportFragmentManager
diff --git a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionAnimTest.kt b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionAnimTest.kt
index eba4c38e..98eae5e 100644
--- a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionAnimTest.kt
+++ b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionAnimTest.kt
@@ -41,7 +41,7 @@
@LargeTest
@RunWith(Parameterized::class)
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.LOLLIPOP)
-class FragmentTransitionAnimTest(private val reorderingAllowed: Boolean) {
+class FragmentTransitionAnimTest(private val reorderingAllowed: ReorderingAllowed) {
private var onBackStackChangedTimes: Int = 0
@Before
@@ -309,9 +309,9 @@
companion object {
@JvmStatic
- @Parameterized.Parameters
- fun data(): Array<Boolean> {
- return arrayOf(false, true)
+ @Parameterized.Parameters(name = "ordering={0}")
+ fun data(): Array<ReorderingAllowed> {
+ return arrayOf(Ordered, Reordered)
}
@AnimRes
diff --git a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionTest.kt b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionTest.kt
index c89d582..c214354f 100644
--- a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionTest.kt
+++ b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionTest.kt
@@ -47,7 +47,7 @@
@MediumTest
@RunWith(Parameterized::class)
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.LOLLIPOP)
-class FragmentTransitionTest(private val reorderingAllowed: Boolean) {
+class FragmentTransitionTest(private val reorderingAllowed: ReorderingAllowed) {
@Suppress("DEPRECATION")
@get:Rule
@@ -145,7 +145,7 @@
// If reordering is allowed, the remove is ignored and the transaction is just added to the
// back stack
- if (reorderingAllowed) {
+ if (reorderingAllowed is Reordered) {
assertThat(onBackStackChangedTimes).isEqualTo(2)
assertThat(fragment.requireView()).isEqualTo(view1)
} else {
@@ -782,7 +782,7 @@
// FragmentStateManager is able to build the correct transition
// whether you use reordering or not
- if (FragmentManager.USE_STATE_MANAGER || reorderingAllowed) {
+ if (FragmentManager.USE_STATE_MANAGER || reorderingAllowed is Reordered) {
fragment1.exitTransition.verifyAndClearTransition {
exitingViews += listOf(startGreen, startBlue)
}
@@ -836,7 +836,7 @@
// Test that invisible fragment views don't participate in transitions
@Test
fun invisibleNoTransitions() {
- if (!reorderingAllowed) {
+ if (reorderingAllowed is Ordered) {
return // only reordered transitions can avoid interaction
}
// enter transition
@@ -927,7 +927,7 @@
fragment2.waitForTransition()
// It does not transition properly for ordered transactions, though.
- if (reorderingAllowed) {
+ if (reorderingAllowed is Reordered) {
// reordering allowed fragment3 to get a transition so we should wait for it to finish
fragment3.waitForTransition()
if (FragmentManager.USE_STATE_MANAGER) {
@@ -987,7 +987,7 @@
activityRule.executePendingTransactions()
// It does not transition properly for ordered transactions, though.
- if (reorderingAllowed) {
+ if (reorderingAllowed is Reordered) {
// reordering allowed fragment3 to get a transition so we should wait for it to finish
fragment2.waitForTransition()
@@ -1012,11 +1012,11 @@
enteringViews += endGreen
}
fragment2.sharedElementEnter.verifyAndClearTransition {
- if (FragmentManager.USE_STATE_MANAGER) {
- epicenter = endGreenBounds
+ epicenter = if (FragmentManager.USE_STATE_MANAGER) {
+ endGreenBounds
} else {
// In this case, we can't find an epicenter
- epicenter = Rect()
+ Rect()
}
exitingViews += startBlue
enteringViews += endBlue
@@ -1058,7 +1058,7 @@
// FragmentStateManager is able to build the correct transition
// whether you use reordering or not
- if (FragmentManager.USE_STATE_MANAGER || reorderingAllowed) {
+ if (FragmentManager.USE_STATE_MANAGER || reorderingAllowed is Reordered) {
fragment2.sharedElementEnter.verifyAndClearTransition {
epicenter = startGreenBounds
exitingViews += startGreen
@@ -1164,7 +1164,7 @@
from2: TransitionFragment
) {
val startNumOnBackStackChanged = onBackStackChangedTimes
- val changesPerOperation = if (reorderingAllowed) 1 else 2
+ val changesPerOperation = if (reorderingAllowed is Reordered) 1 else 2
val to1 = TransitionFragment(R.layout.scene2)
val to2 = TransitionFragment(R.layout.scene2)
@@ -1405,9 +1405,9 @@
companion object {
@JvmStatic
- @Parameterized.Parameters
- fun data(): Array<Boolean> {
- return arrayOf(false, true)
+ @Parameterized.Parameters(name = "ordering={0}")
+ fun data(): Array<ReorderingAllowed> {
+ return arrayOf(Ordered, Reordered)
}
}
}
diff --git a/transition/transition/src/androidTest/java/androidx/transition/FragmentTestUtil.kt b/transition/transition/src/androidTest/java/androidx/transition/FragmentTestUtil.kt
index 794a637..448ec19 100644
--- a/transition/transition/src/androidTest/java/androidx/transition/FragmentTestUtil.kt
+++ b/transition/transition/src/androidTest/java/androidx/transition/FragmentTestUtil.kt
@@ -23,6 +23,7 @@
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.FragmentTransaction
import androidx.fragment.app.TargetTracking
import androidx.transition.test.R
import androidx.test.platform.app.InstrumentationRegistry
@@ -32,6 +33,16 @@
import java.lang.ref.WeakReference
import java.util.ArrayList
+fun FragmentTransaction.setReorderingAllowed(
+ reorderingAllowed: ReorderingAllowed
+) = setReorderingAllowed(reorderingAllowed is Reordered)
+
+sealed class ReorderingAllowed {
+ override fun toString(): String = this.javaClass.simpleName
+}
+object Reordered : ReorderingAllowed()
+object Ordered : ReorderingAllowed()
+
@Suppress("DEPRECATION")
fun androidx.test.rule.ActivityTestRule<out FragmentActivity>.executePendingTransactions(
fm: FragmentManager = activity.supportFragmentManager
diff --git a/transition/transition/src/androidTest/java/androidx/transition/FragmentTransitionTest.kt b/transition/transition/src/androidTest/java/androidx/transition/FragmentTransitionTest.kt
index f5cd778..a3cddd3 100644
--- a/transition/transition/src/androidTest/java/androidx/transition/FragmentTransitionTest.kt
+++ b/transition/transition/src/androidTest/java/androidx/transition/FragmentTransitionTest.kt
@@ -47,7 +47,7 @@
@MediumTest
@RunWith(Parameterized::class)
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.LOLLIPOP)
-class FragmentTransitionTest(private val reorderingAllowed: Boolean) {
+class FragmentTransitionTest(private val reorderingAllowed: ReorderingAllowed) {
@Suppress("DEPRECATION")
@get:Rule
@@ -146,7 +146,7 @@
// If reordering is allowed, the remove is ignored and the transaction is just added to the
// back stack
- if (reorderingAllowed) {
+ if (reorderingAllowed is Reordered) {
assertThat(onBackStackChangedTimes).isEqualTo(2)
assertThat(fragment.requireView()).isEqualTo(view1)
} else {
@@ -791,7 +791,7 @@
val endBlue = activityRule.findBlue()
val endGreen = activityRule.findGreen()
- if (reorderingAllowed) {
+ if (reorderingAllowed is Reordered) {
fragment1.exitTransition.verifyAndClearTransition {
exitingViews += listOf(startGreen, startBlue)
}
@@ -845,7 +845,7 @@
// Test that invisible fragment views don't participate in transitions
@Test
fun invisibleNoTransitions() {
- if (!reorderingAllowed) {
+ if (reorderingAllowed is Ordered) {
return // only reordered transitions can avoid interaction
}
// enter transition
@@ -936,7 +936,7 @@
fragment2.waitForTransition()
// It does not transition properly for ordered transactions, though.
- if (reorderingAllowed) {
+ if (reorderingAllowed is Reordered) {
// reordering allowed fragment3 to get a transition so we should wait for it to finish
fragment3.waitForTransition()
fragment2.returnTransition.verifyAndClearTransition {
@@ -988,7 +988,7 @@
activityRule.executePendingTransactions()
// It does not transition properly for ordered transactions, though.
- if (reorderingAllowed) {
+ if (reorderingAllowed is Reordered) {
fragment1.returnTransition.verifyAndClearTransition {
exitingViews += startGreen
}
@@ -1038,7 +1038,7 @@
val midBlue = activityRule.findBlue()
val midRed = activityRule.findRed()
val midGreenBounds = midGreen.boundsOnScreen
- if (reorderingAllowed) {
+ if (reorderingAllowed is Reordered) {
fragment2.sharedElementEnter.verifyAndClearTransition {
epicenter = startGreenBounds
exitingViews += startGreen
@@ -1144,7 +1144,7 @@
from2: TransitionFragment
) {
val startNumOnBackStackChanged = onBackStackChangedTimes
- val changesPerOperation = if (reorderingAllowed) 1 else 2
+ val changesPerOperation = if (reorderingAllowed is Reordered) 1 else 2
val to1 = TransitionFragment(R.layout.fragment_scene2)
val to2 = TransitionFragment(R.layout.fragment_scene2)
@@ -1385,9 +1385,9 @@
companion object {
@JvmStatic
- @Parameterized.Parameters
- fun data(): Array<Boolean> {
- return arrayOf(false, true)
+ @Parameterized.Parameters(name = "ordering={0}")
+ fun data(): Array<ReorderingAllowed> {
+ return arrayOf(Ordered, Reordered)
}
}
}