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 
17   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