diff --git a/android/src/androidTest/java/com/formbricks/android/manager/SurveyManagerInstrumentedTest.kt b/android/src/androidTest/java/com/formbricks/android/manager/SurveyManagerInstrumentedTest.kt index bf6aec4..c27d2d0 100644 --- a/android/src/androidTest/java/com/formbricks/android/manager/SurveyManagerInstrumentedTest.kt +++ b/android/src/androidTest/java/com/formbricks/android/manager/SurveyManagerInstrumentedTest.kt @@ -432,103 +432,6 @@ class SurveyManagerInstrumentedTest { assertEquals(survey6.id, result5[0].id) } - // region resolveOverlay tests - - @Test - fun testResolveOverlay_nullSurvey_nullEnvironment_returnsNone() { - setBackingEnvironmentDataHolder(null) - val result = SurveyManager.resolveOverlay(null) - assertEquals(SurveyOverlay.NONE, result) - } - - @Test - fun testResolveOverlay_nullSurvey_projectOverlayDark_returnsDark() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = SurveyOverlay.DARK)) - val result = SurveyManager.resolveOverlay(null) - assertEquals(SurveyOverlay.DARK, result) - } - - @Test - fun testResolveOverlay_nullSurvey_projectOverlayLight_returnsLight() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = SurveyOverlay.LIGHT)) - val result = SurveyManager.resolveOverlay(null) - assertEquals(SurveyOverlay.LIGHT, result) - } - - @Test - fun testResolveOverlay_nullSurvey_projectOverlayNone_returnsNone() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = SurveyOverlay.NONE)) - val result = SurveyManager.resolveOverlay(null) - assertEquals(SurveyOverlay.NONE, result) - } - - @Test - fun testResolveOverlay_nullSurvey_projectOverlayNull_returnsNone() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = null)) - val result = SurveyManager.resolveOverlay(null) - assertEquals(SurveyOverlay.NONE, result) - } - - @Test - fun testResolveOverlay_surveyWithoutProjectOverwrites_fallsBackToProject() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = SurveyOverlay.DARK)) - val survey = createTestSurvey() // projectOverwrites defaults to null - val result = SurveyManager.resolveOverlay(survey) - assertEquals(SurveyOverlay.DARK, result) - } - - @Test - fun testResolveOverlay_surveyOverwritesOverlayNull_fallsBackToProject() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = SurveyOverlay.DARK)) - val survey = createSurveyWithOverwrites(overlay = null) - val result = SurveyManager.resolveOverlay(survey) - assertEquals(SurveyOverlay.DARK, result) - } - - @Test - fun testResolveOverlay_surveyOverwritesOverlayLight_overridesProjectDark() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = SurveyOverlay.DARK)) - val survey = createSurveyWithOverwrites(overlay = SurveyOverlay.LIGHT) - val result = SurveyManager.resolveOverlay(survey) - assertEquals(SurveyOverlay.LIGHT, result) - } - - @Test - fun testResolveOverlay_surveyOverwritesOverlayDark_overridesProjectNone() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = SurveyOverlay.NONE)) - val survey = createSurveyWithOverwrites(overlay = SurveyOverlay.DARK) - val result = SurveyManager.resolveOverlay(survey) - assertEquals(SurveyOverlay.DARK, result) - } - - @Test - fun testResolveOverlay_surveyOverwritesOverlayNone_overridesProjectDark() { - setBackingEnvironmentDataHolder(createEnvHolder(projectOverlay = SurveyOverlay.DARK)) - val survey = createSurveyWithOverwrites(overlay = SurveyOverlay.NONE) - val result = SurveyManager.resolveOverlay(survey) - assertEquals(SurveyOverlay.NONE, result) - } - - @Test - fun testResolveOverlay_environmentDataHolderDataNull_returnsNone() { - // data=null forces the ?.data?.project?.overlay chain to short-circuit at each null check - val envHolder = EnvironmentDataHolder(data = null, originalResponseMap = mapOf()) - setBackingEnvironmentDataHolder(envHolder) - val result = SurveyManager.resolveOverlay(null) - assertEquals(SurveyOverlay.NONE, result) - } - - @Test - fun testResolveOverlay_surveyWithOverwritesNoOverlay_environmentDataNull_returnsNone() { - val envHolder = EnvironmentDataHolder(data = null, originalResponseMap = mapOf()) - setBackingEnvironmentDataHolder(envHolder) - val survey = createSurveyWithOverwrites(overlay = null) - val result = SurveyManager.resolveOverlay(survey) - assertEquals(SurveyOverlay.NONE, result) - } - - // endregion - // region helper methods private fun setBackingEnvironmentDataHolder(value: EnvironmentDataHolder?) { @@ -537,50 +440,6 @@ class SurveyManagerInstrumentedTest { field.set(SurveyManager, value) } - private fun createEnvHolder(projectOverlay: SurveyOverlay?): EnvironmentDataHolder { - val project = Project( - id = "proj1", - recontactDays = null, - clickOutsideClose = null, - overlay = projectOverlay, - placement = null, - inAppSurveyBranding = null, - styling = null - ) - val envData = EnvironmentData( - surveys = emptyList(), - actionClasses = null, - project = project - ) - val envResponseData = EnvironmentResponseData( - data = envData, - expiresAt = null - ) - return EnvironmentDataHolder( - data = envResponseData, - originalResponseMap = mapOf() - ) - } - - private fun createSurveyWithOverwrites(overlay: SurveyOverlay?): Survey { - return Survey( - id = "test", - name = "Test Survey", - triggers = null, - recontactDays = null, - displayLimit = null, - delay = null, - displayPercentage = null, - displayOption = null, - segment = null, - styling = null, - languages = null, - projectOverwrites = SurveyProjectOverwrites(overlay = overlay) - ) - } - - // endregion - private fun createTestSurvey( id: String = "test", displayOption: String? = null, diff --git a/android/src/main/java/com/formbricks/android/Formbricks.kt b/android/src/main/java/com/formbricks/android/Formbricks.kt index f490359..3d3704e 100644 --- a/android/src/main/java/com/formbricks/android/Formbricks.kt +++ b/android/src/main/java/com/formbricks/android/Formbricks.kt @@ -10,7 +10,6 @@ import com.formbricks.android.helper.FormbricksConfig import com.formbricks.android.logger.Logger import com.formbricks.android.manager.SurveyManager import com.formbricks.android.manager.UserManager -import com.formbricks.android.model.environment.SurveyOverlay import com.formbricks.android.model.error.SDKError import com.formbricks.android.webview.FormbricksFragment import java.lang.RuntimeException @@ -217,7 +216,7 @@ object Formbricks { } /// Assembles the survey fragment and presents it - internal fun showSurvey(id: String, overlay: SurveyOverlay = SurveyOverlay.NONE) { + internal fun showSurvey(id: String) { if (fragmentManager == null) { val error = SDKError.fragmentManagerIsNotSet Logger.e(error) @@ -225,7 +224,7 @@ object Formbricks { } fragmentManager?.let { - FormbricksFragment.show(it, surveyId = id, overlay = overlay) + FormbricksFragment.show(it, surveyId = id) } } diff --git a/android/src/main/java/com/formbricks/android/manager/SurveyManager.kt b/android/src/main/java/com/formbricks/android/manager/SurveyManager.kt index 16e1a2b..d015508 100644 --- a/android/src/main/java/com/formbricks/android/manager/SurveyManager.kt +++ b/android/src/main/java/com/formbricks/android/manager/SurveyManager.kt @@ -10,7 +10,6 @@ import com.formbricks.android.model.environment.EnvironmentDataHolder import com.formbricks.android.model.environment.SegmentFilterResource import com.formbricks.android.model.environment.SegmentFilterResourceDeserializer import com.formbricks.android.model.environment.Survey -import com.formbricks.android.model.environment.SurveyOverlay import com.formbricks.android.model.error.SDKError import com.formbricks.android.model.user.Display import com.google.gson.Gson @@ -193,11 +192,10 @@ object SurveyManager { val surveyName = firstSurveyWithActionClass.name Logger.d("Delaying survey \"$surveyName\" by $timeout seconds") } - val overlay = resolveOverlay(firstSurveyWithActionClass) stopDisplayTimer() displayTimer.schedule(object : TimerTask() { override fun run() { - Formbricks.showSurvey(it, overlay) + Formbricks.showSurvey(it) } }, Date(System.currentTimeMillis() + timeout.toLong() * 1000)) @@ -394,12 +392,4 @@ object SurveyManager { return selected.language.code } - /** - * Resolves the overlay style for the given survey, falling back to the project-level default. - * Survey-level `projectOverwrites.overlay` takes precedence over `project.overlay`. - */ - fun resolveOverlay(survey: Survey?): SurveyOverlay { - survey?.projectOverwrites?.overlay?.let { return it } - return environmentDataHolder?.data?.data?.project?.overlay ?: SurveyOverlay.NONE - } } \ No newline at end of file diff --git a/android/src/main/java/com/formbricks/android/webview/FormbricksFragment.kt b/android/src/main/java/com/formbricks/android/webview/FormbricksFragment.kt index 5ee121e..ae95e57 100644 --- a/android/src/main/java/com/formbricks/android/webview/FormbricksFragment.kt +++ b/android/src/main/java/com/formbricks/android/webview/FormbricksFragment.kt @@ -29,7 +29,6 @@ import com.formbricks.android.R import com.formbricks.android.databinding.FragmentFormbricksBinding import com.formbricks.android.logger.Logger import com.formbricks.android.manager.SurveyManager -import com.formbricks.android.model.environment.SurveyOverlay import com.formbricks.android.model.error.SDKError import com.formbricks.android.model.javascript.FileUploadData import com.google.android.material.bottomsheet.BottomSheetBehavior @@ -41,7 +40,6 @@ import java.io.InputStream class FormbricksFragment : BottomSheetDialogFragment() { private lateinit var binding: FragmentFormbricksBinding private lateinit var surveyId: String - private var overlay: SurveyOverlay = SurveyOverlay.NONE private val viewModel: FormbricksViewModel by viewModels() private var isDismissing = false @@ -125,9 +123,6 @@ class FormbricksFragment : BottomSheetDialogFragment() { super.onCreate(savedInstanceState) arguments?.let { surveyId = it.getString(ARG_SURVEY_ID) ?: throw IllegalArgumentException("Survey ID is required") - overlay = it.getString(ARG_OVERLAY)?.let { name -> - try { SurveyOverlay.valueOf(name) } catch (_: Exception) { SurveyOverlay.NONE } - } ?: SurveyOverlay.NONE } } @@ -195,11 +190,6 @@ class FormbricksFragment : BottomSheetDialogFragment() { super.onReceivedError(view, request, error) Logger.d("WebView Error: ${error?.description}") } - - override fun onPageCommitVisible(view: WebView?, url: String?) { - dialog?.window?.setDimAmount(dimAmountFor(overlay)) - super.onPageCommitVisible(view, url) - } } it.setOnFocusChangeListener { _, hasFocus -> @@ -272,22 +262,11 @@ class FormbricksFragment : BottomSheetDialogFragment() { companion object { private val TAG: String by lazy { FormbricksFragment::class.java.simpleName } private const val ARG_SURVEY_ID = "survey_id" - private const val ARG_OVERLAY = "overlay" - - /// Returns the appropriate dim amount for the given overlay style. - fun dimAmountFor(overlay: SurveyOverlay): Float { - return when (overlay) { - SurveyOverlay.DARK -> 0.6f - SurveyOverlay.LIGHT -> 0.3f - SurveyOverlay.NONE -> 0.0f - } - } - fun show(childFragmentManager: FragmentManager, surveyId: String, overlay: SurveyOverlay = SurveyOverlay.NONE) { + fun show(childFragmentManager: FragmentManager, surveyId: String) { val fragment = FormbricksFragment().apply { arguments = Bundle().apply { putString(ARG_SURVEY_ID, surveyId) - putString(ARG_OVERLAY, overlay.name) } } fragment.show(childFragmentManager, TAG)