-
Notifications
You must be signed in to change notification settings - Fork 2
/
App.kt
61 lines (44 loc) · 1.49 KB
/
App.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.crazzyghost.stockmonitor.app
import android.app.Application
import com.crazzyghost.alphavantage.AlphaVantage
import com.crazzyghost.alphavantage.Config
import com.crazzyghost.stockmonitor.data.DatabaseManager
import com.crazzyghost.stockmonitor.di.DaggerAppComponent
import dagger.android.AndroidInjector
import dagger.android.DispatchingAndroidInjector
import dagger.android.HasAndroidInjector
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import javax.inject.Inject
class App : Application(), HasAndroidInjector {
@Inject
lateinit var injector: DispatchingAndroidInjector<Any>
@Inject
lateinit var appDatabase: DatabaseManager
override fun onCreate() {
super.onCreate()
DaggerAppComponent.builder()
.appModule(AppModule(this))
.build()
.inject(this)
appDatabase.setupCompanyList()
setupAlphavantage()
}
override fun androidInjector(): AndroidInjector<Any?>? {
return injector
}
private fun setupAlphavantage(){
val throttlingInterceptor : Interceptor = Interceptor.invoke {
Thread.sleep(1000)
it.proceed(it.request())
}
val client = OkHttpClient.Builder()
.addInterceptor(interceptor = throttlingInterceptor)
.build()
val config = Config.Builder()
.httpClient(client)
.key("DEMOAPIK3Y")
.build()
AlphaVantage.api().init(config)
}
}