Repository: Automattic/pocket-casts-android
File: modules/services/analytics/src/main/java/au/com/shiftyjelly/pocketcasts/analytics/di/AnalyticsModule.kt (Kotlin)

Code before:
import au.com.shiftyjelly.pocketcasts.analytics.experiments.Experiment
import au.com.shiftyjelly.pocketcasts.analytics.experiments.ExperimentProvider
import au.com.shiftyjelly.pocketcasts.servers.di.Cached
import au.com.shiftyjelly.pocketcasts.utils.log.LogBuffer
import com.automattic.android.experimentation.ExperimentLogger
import com.automattic.android.experimentation.VariationsRepository
import com.google.firebase.analytics.FirebaseAnalytics
import dagger.Lazy
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import dagger.multibindings.IntoSet
import java.io.File
import javax.inject.Singleton
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import okhttp3.OkHttpClient

@Module
@InstallIn(SingletonComponent::class)
object AnalyticsModule {
    @Provides
    @IntoSet
    fun provideNoOpTracker(): Tracker = NoOpTracker

    @Provides
    @Singleton
    fun provideAnalyticsTracker(
        trackers: Set<@JvmSuppressWildcards Tracker>,
        listeners: Set<@JvmSuppressWildcards AnalyticsTracker.Listener>,
    ): AnalyticsTracker = AnalyticsTracker(trackers, listeners)

    @Provides
    @Singleton
    fun provideFirebaseAnalytics(@ApplicationContext context: Context): FirebaseAnalyticsWrapper {
        return FirebaseAnalyticsWrapper(FirebaseAnalytics.getInstance(context))
    }

    @Provides
    @IntoSet
    fun provideLoggingListener(): AnalyticsTracker.Listener {
        return AnalyticsLoggingListener()
    }

    @Provides
    @Singleton
    fun provideExperimentProvider(
        repository: VariationsRepository,

Review comment (security):
```suggestion
    // Necessary to satisfy Dagger injection
    @Provides
```

Code after:
import au.com.shiftyjelly.pocketcasts.analytics.experiments.Experiment
import au.com.shiftyjelly.pocketcasts.analytics.experiments.ExperimentProvider
import au.com.shiftyjelly.pocketcasts.servers.di.Cached
import au.com.shiftyjelly.pocketcasts.utils.log.LogBuffer
import com.automattic.android.experimentation.ExperimentLogger
import com.automattic.android.experimentation.VariationsRepository
import com.google.firebase.analytics.FirebaseAnalytics
import dagger.Lazy
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import dagger.multibindings.IntoSet
import java.io.File
import javax.inject.Singleton
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import okhttp3.OkHttpClient

@Module
@InstallIn(SingletonComponent::class)
object AnalyticsModule {
    // Necessary to satisfy Dagger injection
    @Provides
    @IntoSet
    fun provideNoOpTracker(): Tracker = NoOpTracker

    @Provides
    @Singleton
    fun provideAnalyticsTracker(
        trackers: Set<@JvmSuppressWildcards Tracker>,
        listeners: Set<@JvmSuppressWildcards AnalyticsTracker.Listener>,
    ): AnalyticsTracker = AnalyticsTracker(trackers, listeners)

    @Provides
    @Singleton
    fun provideFirebaseAnalytics(@ApplicationContext context: Context): FirebaseAnalyticsWrapper {
        return FirebaseAnalyticsWrapper(FirebaseAnalytics.getInstance(context))
    }

    @Provides
    @IntoSet
    fun provideLoggingListener(): AnalyticsTracker.Listener {
        return AnalyticsLoggingListener()
    }

    @Provides
    @Singleton
    fun provideExperimentProvider(