package com.suno.android.analytics import android.content.Context import com.singular.sdk.Singular import com.singular.sdk.SingularConfig import com.suno.android.common_core_utils.SunoLogger import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject interface MobileMeasurementPartnerManager { fun initialize() fun setCustomerIdAndLogSession( userId: String, ) fun unsetCustomerUserId() fun linkToRevenueCat() fun logRegistrationCompleted() } class MobileMeasurementPartnerManagerImpl @Inject constructor( loggerFactory: SunoLogger.Factory, @ApplicationContext private val context: Context, ) : MobileMeasurementPartnerManager { private val logger = loggerFactory.create(this@MobileMeasurementPartnerManagerImpl) override fun initialize() { try { Singular.init( context, SingularConfig( "suno_47466688", "96c86b12d6c6918a4a317fd29da36cf5", ), ) } catch (exception: Exception) { logger.e(exception) } } override fun setCustomerIdAndLogSession( userId: String, ) { Singular.setCustomUserId(userId) } override fun unsetCustomerUserId() { Singular.unsetCustomUserId() } override fun linkToRevenueCat() { // todo, probably link things here } override fun logRegistrationCompleted() { Singular.event("sng_complete_registration") } }