Skip to content

Commit 77edccd

Browse files
authored
[Paywall Experiment] - Tweaks for Explat (#3140)
1 parent 54d62f3 commit 77edccd

File tree

5 files changed

+24
-1
lines changed

5 files changed

+24
-1
lines changed

automotive/src/main/java/au/com/shiftyjelly/pocketcasts/AutomotiveApplication.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.core.content.getSystemService
88
import androidx.hilt.work.HiltWorkerFactory
99
import androidx.work.Configuration
1010
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsTracker
11+
import au.com.shiftyjelly.pocketcasts.analytics.experiments.ExperimentProvider
1112
import au.com.shiftyjelly.pocketcasts.crashlogging.InitializeRemoteLogging
1213
import au.com.shiftyjelly.pocketcasts.preferences.Settings
1314
import au.com.shiftyjelly.pocketcasts.repositories.di.ApplicationScope
@@ -60,6 +61,8 @@ class AutomotiveApplication : Application(), Configuration.Provider {
6061

6162
@Inject lateinit var analyticsTracker: AnalyticsTracker
6263

64+
@Inject lateinit var experimentProvider: ExperimentProvider
65+
6366
@Inject @ApplicationScope
6467
lateinit var applicationScope: CoroutineScope
6568

@@ -120,5 +123,6 @@ class AutomotiveApplication : Application(), Configuration.Provider {
120123

121124
private fun setupAnalytics() {
122125
analyticsTracker.clearAllData()
126+
experimentProvider.initialize()
123127
}
124128
}

modules/features/account/src/main/java/au/com/shiftyjelly/pocketcasts/account/viewmodel/OnboardingCreateAccountViewModel.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import androidx.lifecycle.AndroidViewModel
66
import androidx.lifecycle.viewModelScope
77
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsEvent
88
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsTracker
9+
import au.com.shiftyjelly.pocketcasts.analytics.experiments.ExperimentProvider
910
import au.com.shiftyjelly.pocketcasts.repositories.podcast.PodcastManager
1011
import au.com.shiftyjelly.pocketcasts.repositories.subscription.SubscriptionManager
1112
import au.com.shiftyjelly.pocketcasts.repositories.sync.LoginResult
@@ -29,6 +30,7 @@ class OnboardingCreateAccountViewModel @Inject constructor(
2930
private val analyticsTracker: AnalyticsTracker,
3031
private val subscriptionManager: SubscriptionManager,
3132
private val podcastManager: PodcastManager,
33+
private val experimentProvider: ExperimentProvider,
3234
@ApplicationContext context: Context,
3335
) : AndroidViewModel(context as Application), CoroutineScope {
3436
override val coroutineContext: CoroutineContext
@@ -82,6 +84,7 @@ class OnboardingCreateAccountViewModel @Inject constructor(
8284
when (result) {
8385
is LoginResult.Success -> {
8486
podcastManager.refreshPodcastsAfterSignIn()
87+
experimentProvider.refreshExperiments()
8588
analyticsTracker.refreshMetadata()
8689
onAccountCreated()
8790
}

modules/services/analytics/src/main/java/au/com/shiftyjelly/pocketcasts/analytics/experiments/ExperimentProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class ExperimentProvider @Inject constructor(
2626

2727
fun initialize() {
2828
if (FeatureFlag.isEnabled(Feature.EXPLAT_EXPERIMENT)) {
29-
val uuid = accountStatusInfo.getUuid() ?: UUID.randomUUID().toString().replace("-", "")
29+
val uuid = accountStatusInfo.getUuid().takeIf { !it.isNullOrBlank() } ?: UUID.randomUUID().toString().replace("-", "")
3030

3131
LogBuffer.i(TAG, "Initializing experiments with uuid: $uuid")
3232

modules/services/analytics/src/test/kotlin/au/com/shiftyjelly/pocketcasts/analytics/experiments/ExperimentProviderTest.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@ class ExperimentProviderTest {
7070
verify(accountStatusInfo).getUuid()
7171
}
7272

73+
@Test
74+
fun `should not initialize with empty uuid`() {
75+
FeatureFlag.setEnabled(Feature.EXPLAT_EXPERIMENT, true)
76+
77+
`when`(accountStatusInfo.getUuid()).thenReturn("")
78+
79+
experimentProvider.initialize()
80+
81+
verify(repository, never()).initialize(eq(""), eq(null))
82+
verify(accountStatusInfo).getUuid()
83+
}
84+
7385
@Test
7486
fun `getVariation should return Control when repository returns Control`() {
7587
FeatureFlag.setEnabled(Feature.EXPLAT_EXPERIMENT, true)

wear/src/main/kotlin/au/com/shiftyjelly/pocketcasts/wear/PocketCastsWearApplication.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.hilt.work.HiltWorkerFactory
55
import androidx.work.Configuration
66
import au.com.shiftyjelly.pocketcasts.BuildConfig
77
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsTracker
8+
import au.com.shiftyjelly.pocketcasts.analytics.experiments.ExperimentProvider
89
import au.com.shiftyjelly.pocketcasts.crashlogging.InitializeRemoteLogging
910
import au.com.shiftyjelly.pocketcasts.preferences.Settings
1011
import au.com.shiftyjelly.pocketcasts.repositories.download.DownloadManager
@@ -59,6 +60,8 @@ class PocketCastsWearApplication : Application(), Configuration.Provider {
5960

6061
@Inject lateinit var analyticsTracker: AnalyticsTracker
6162

63+
@Inject lateinit var experimentProvider: ExperimentProvider
64+
6265
@Inject lateinit var downloadStatisticsReporter: DownloadStatisticsReporter
6366

6467
@Inject lateinit var initializeRemoteLogging: InitializeRemoteLogging
@@ -122,6 +125,7 @@ class PocketCastsWearApplication : Application(), Configuration.Provider {
122125
private fun setupAnalytics() {
123126
analyticsTracker.clearAllData()
124127
analyticsTracker.refreshMetadata()
128+
experimentProvider.initialize()
125129
downloadStatisticsReporter.setup()
126130
}
127131

0 commit comments

Comments
 (0)