1 // Copyright 2015-present 650 Industries. All rights reserved. 2 package host.exp.exponent.referrer 3 4 import android.content.Context 5 import android.content.Intent 6 import com.google.android.gms.analytics.CampaignTrackingReceiver 7 import host.exp.exponent.ExpoApplication 8 import host.exp.exponent.analytics.EXL 9 import host.exp.exponent.di.NativeModuleDepsProvider 10 import host.exp.exponent.storage.ExponentSharedPreferences 11 import javax.inject.Inject 12 13 class InstallReferrerReceiver : CampaignTrackingReceiver() { 14 @Inject 15 lateinit var exponentSharedPreferences: ExponentSharedPreferences 16 onReceivenull17 override fun onReceive(context: Context, intent: Intent) { 18 super.onReceive(context, intent) 19 if (context.applicationContext !is ExpoApplication) { 20 EXL.e( 21 TAG, 22 "InstallReferrerReceiver.context.getApplicationContext() not an instance of ExpoApplication" 23 ) 24 return 25 } 26 NativeModuleDepsProvider.instance.inject(InstallReferrerReceiver::class.java, this) 27 28 val referrer = intent.getStringExtra("referrer") 29 EXL.d(TAG, "Referrer: $referrer") 30 if (referrer != null) { 31 exponentSharedPreferences.setString(ExponentSharedPreferences.ExponentSharedPreferencesKey.REFERRER_KEY, referrer) 32 } 33 } 34 35 companion object { 36 private val TAG = InstallReferrerReceiver::class.java.simpleName 37 } 38 } 39