Add experiment for rating threshold

This commit is contained in:
Moez Bhatti
2018-09-05 14:48:14 -04:00
parent e285892424
commit b8117bb1b7
@@ -18,7 +18,10 @@
*/
package com.moez.QKSMS.mapper
import android.content.Context
import com.f2prateek.rx.preferences2.RxSharedPreferences
import com.moez.QKSMS.experiment.Experiment
import com.moez.QKSMS.experiment.Variant
import com.moez.QKSMS.manager.AnalyticsManager
import com.moez.QKSMS.manager.RatingManager
import io.reactivex.rxkotlin.Observables
@@ -26,13 +29,10 @@ import javax.inject.Inject
class RatingManagerImpl @Inject constructor(
rxPrefs: RxSharedPreferences,
private val analyticsManager: AnalyticsManager
private val analyticsManager: AnalyticsManager,
private val ratingThresholdExperiment: RatingThresholdExperiment
) : RatingManager {
companion object {
private const val SESSION_THRESHOLD = 100
}
private val sessions = rxPrefs.getInteger("sessions", 0)
private val rated = rxPrefs.getBoolean("rated", false)
private val dismissed = rxPrefs.getBoolean("dismissed", false)
@@ -42,7 +42,7 @@ class RatingManagerImpl @Inject constructor(
rated.asObservable(),
dismissed.asObservable()) { sessions, rated, dismissed ->
sessions > SESSION_THRESHOLD && !rated && !dismissed
sessions > ratingThresholdExperiment.variant && !rated && !dismissed
}
override fun addSession() {
@@ -59,4 +59,21 @@ class RatingManagerImpl @Inject constructor(
dismissed.set(true)
}
}
class RatingThresholdExperiment @Inject constructor(
context: Context,
analytics: AnalyticsManager
) : Experiment<Int>(context, analytics) {
override val key: String = "Rating Threshold"
override val variants: List<Variant<Int>> = listOf(
Variant("variant_a", 100),
Variant("variant_b", 10))
override val default: Int = 100
override val qualifies: Boolean = true
}