Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions app/src/main/java/com/duckduckgo/app/di/NetworkModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import com.duckduckgo.app.feedback.api.FeedbackSubmitter
import com.duckduckgo.app.feedback.api.FireAndForgetFeedbackSubmitter
import com.duckduckgo.app.feedback.api.SubReasonApiMapper
import com.duckduckgo.app.global.api.*
import com.duckduckgo.app.onboardingdesignexperiment.OnboardingDesignExperimentManager
import com.duckduckgo.app.statistics.pixels.Pixel
import com.duckduckgo.app.statistics.store.StatisticsDataStore
import com.duckduckgo.appbuildconfig.api.AppBuildConfig
Expand Down Expand Up @@ -172,6 +173,7 @@ class NetworkModule {
@AppCoroutineScope appCoroutineScope: CoroutineScope,
appBuildConfig: AppBuildConfig,
dispatcherProvider: DispatcherProvider,
onboardingDesignExperimentManager: OnboardingDesignExperimentManager,
): FeedbackSubmitter =
FireAndForgetFeedbackSubmitter(
feedbackService,
Expand All @@ -182,6 +184,7 @@ class NetworkModule {
appCoroutineScope,
appBuildConfig,
dispatcherProvider,
onboardingDesignExperimentManager,
)

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import com.duckduckgo.app.feedback.ui.negative.FeedbackType.MainReason.OTHER
import com.duckduckgo.app.feedback.ui.negative.FeedbackType.MainReason.SEARCH_NOT_GOOD_ENOUGH
import com.duckduckgo.app.feedback.ui.negative.FeedbackType.MainReason.WEBSITES_NOT_LOADING
import com.duckduckgo.app.feedback.ui.negative.FeedbackType.SubReason
import com.duckduckgo.app.onboardingdesignexperiment.OnboardingDesignExperimentManager
import com.duckduckgo.app.pixels.AppPixelName
import com.duckduckgo.app.pixels.AppPixelName.FEEDBACK_NEGATIVE_SUBMISSION
import com.duckduckgo.app.statistics.pixels.Pixel
Expand Down Expand Up @@ -65,6 +66,7 @@ class FireAndForgetFeedbackSubmitter(
private val appCoroutineScope: CoroutineScope,
private val appBuildConfig: AppBuildConfig,
private val dispatcherProvider: DispatcherProvider,
private val onboardingDesignExperimentManager: OnboardingDesignExperimentManager,
) : FeedbackSubmitter {
override suspend fun sendNegativeFeedback(
mainReason: MainReason,
Expand Down Expand Up @@ -148,6 +150,13 @@ class FireAndForgetFeedbackSubmitter(
url: String? = null,
reason: String = FeedbackService.REASON_GENERAL,
) {
// Delete after the experiment has finished and go back to always return atbWithVariant()
val atb = if (onboardingDesignExperimentManager.isAnyExperimentEnrolledAndEnabled()) {
atbWithVariant() + "_${onboardingDesignExperimentManager.getCohort()}"
} else {
atbWithVariant()
}

feedbackService.submitFeedback(
reason = reason,
category = category,
Expand All @@ -159,7 +168,7 @@ class FireAndForgetFeedbackSubmitter(
manufacturer = Build.MANUFACTURER,
model = Build.MODEL,
api = appBuildConfig.sdkInt,
atb = atbWithVariant(),
atb = atb,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ interface OnboardingDesignExperimentManager {
suspend fun fireOptionSelectedPixel(cta: Cta, index: Int)
suspend fun fireSiteSuggestionOptionSelectedPixel(index: Int)
suspend fun onWebPageFinishedLoading(url: String?)
fun getCohort(): String?
}

@ContributesMultibinding(
Expand Down Expand Up @@ -105,6 +106,10 @@ class RealOnboardingDesignExperimentManager @Inject constructor(
}
}

override fun getCohort(): String? {
return onboardingDesignExperimentCohort?.cohortName
}

/**
* Enrolls the user in the onboarding design experiment if they are eligible.
* Eligibility is determined by the device's Android version, form factor, and whether the user is a returning user.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ class OnboardingExperimentFireAnimationHelperTest {
var buckEnabled = false
var modifiedControlEnabled = false

override fun getCohort(): String? {
TODO("Not yet implemented")
}

override suspend fun enroll() {
TODO("Not yet implemented")
}
Expand Down
Loading