diff --git a/app/src/androidTest/java/com/google/jetpackcamera/utils/UiTestUtil.kt b/app/src/androidTest/java/com/google/jetpackcamera/utils/UiTestUtil.kt index 0fbda940e..da1728a82 100644 --- a/app/src/androidTest/java/com/google/jetpackcamera/utils/UiTestUtil.kt +++ b/app/src/androidTest/java/com/google/jetpackcamera/utils/UiTestUtil.kt @@ -63,7 +63,12 @@ val isEmulatorWithFakeFrontCamera: Boolean get() = Build.HARDWARE == "ranchu" && (Build.VERSION.SDK_INT == 28 || Build.VERSION.SDK_INT == 34) -val compatMainActivityExtras: Bundle? +/** + * Returns the compat extras for MainActivity. + * + * These extras are used to work around issues on specific devices or emulators. + */ +internal val compatMainActivityExtras: Bundle? get() { val extras = Bundle() if (isEmulatorWithFakeFrontCamera) { @@ -73,9 +78,19 @@ val compatMainActivityExtras: Bundle? extras.putString(MainActivity.KEY_DEBUG_SINGLE_LENS_MODE, "back") } - return if (extras.size() == 0) null else extras + return extras.takeIf { !it.isEmpty() } } +/** + * Merges the provided [extras] with the compat extras for MainActivity. + * + * @param extras The extras to merge with the compat extras. + * @return The merged bundle, or null if there are no extras. + */ +fun mergeWithCompatExtras(extras: Bundle?): Bundle? { + return compatMainActivityExtras?.apply { extras?.let { putAll(it) } } ?: extras +} + val debugExtra: Bundle = Bundle().apply { putBoolean("KEY_DEBUG_MODE", true) } val cacheExtra: Bundle = Bundle().apply { putBoolean("KEY_REVIEW_AFTER_CAPTURE", true) } @@ -188,7 +203,7 @@ inline fun runMainActivityScenarioTest( extras: Bundle? = null, crossinline block: ActivityScenario.() -> Unit ) { - val activityExtras = compatMainActivityExtras?.apply { extras?.let { putAll(it) } } ?: extras + val activityExtras = mergeWithCompatExtras(extras) runScenarioTest(activityExtras, block) } @@ -230,7 +245,7 @@ inline fun runMainActivityScenarioTestForResult( extras: Bundle? = null, crossinline block: ActivityScenario.() -> Unit ): Instrumentation.ActivityResult { - val activityExtras = compatMainActivityExtras?.apply { extras?.let { putAll(it) } } ?: extras + val activityExtras = mergeWithCompatExtras(extras) return runScenarioTestForResult(intent, activityExtras, block) }