Skip to content

Commit 1173728

Browse files
authored
fix: initialize custom http client with configuration (#240)
1 parent 864cbc4 commit 1173728

File tree

3 files changed

+30
-17
lines changed

3 files changed

+30
-17
lines changed

core/src/main/java/com/amplitude/core/Configuration.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ open class Configuration @JvmOverloads constructor(
5757
}
5858
}
5959

60-
internal fun getApiHost(): String {
60+
fun getApiHost(): String {
6161
return this.serverUrl ?: with(this) {
6262
when {
6363
serverZone == ServerZone.EU && useBatch -> Constants.EU_BATCH_API_HOST

samples/kotlin-android-app/src/main/java/com/amplitude/android/sample/CustomOkHttpClient.kt

+14-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.amplitude.android.sample
22

3+
import com.amplitude.android.Configuration
34
import com.amplitude.core.utilities.http.AnalyticsRequest
45
import com.amplitude.core.utilities.http.AnalyticsResponse
56
import com.amplitude.core.utilities.http.HttpClientInterface
@@ -9,15 +10,25 @@ import okhttp3.Request
910
import okhttp3.RequestBody
1011
import java.io.IOException
1112

12-
class CustomOkHttpClient(val apiKey: String) : HttpClientInterface {
13+
class CustomOkHttpClient : HttpClientInterface {
1314
private val okHttpClient = OkHttpClient()
15+
private lateinit var configuration: Configuration
16+
17+
fun initialize(configuration: Configuration) {
18+
this.configuration = configuration
19+
}
1420

1521
override fun upload(events: String, diagnostics: String?): AnalyticsResponse {
1622
val mediaType = "application/json; charset=utf-8".toMediaTypeOrNull()
17-
val ampRequest = AnalyticsRequest(apiKey, events, diagnostics = diagnostics)
23+
val ampRequest = AnalyticsRequest(
24+
configuration.apiKey,
25+
events,
26+
diagnostics = diagnostics,
27+
minIdLength = configuration.minIdLength
28+
)
1829
val formBody: RequestBody = RequestBody.create(mediaType, ampRequest.getBodyStr())
1930
val request: Request =
20-
Request.Builder().url("https://api.amplitude.com/2/httpapi").post(formBody).build()
31+
Request.Builder().url(configuration.getApiHost()).post(formBody).build()
2132

2233
try {
2334
val response = okHttpClient.newCall(request).execute()

samples/kotlin-android-app/src/main/java/com/amplitude/android/sample/MainApplication.kt

+15-13
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,22 @@ class MainApplication : Application() {
2020
override fun onCreate() {
2121
super.onCreate()
2222

23-
// init instance
24-
amplitude = Amplitude(
25-
Configuration(
26-
apiKey = AMPLITUDE_API_KEY,
27-
context = applicationContext,
28-
autocapture = autocaptureOptions {
29-
+sessions
30-
+appLifecycles
31-
+deepLinks
32-
+screenViews
33-
},
34-
httpClient = CustomOkHttpClient(AMPLITUDE_API_KEY),
35-
)
23+
val httpClient = CustomOkHttpClient()
24+
val configuration = Configuration(
25+
apiKey = AMPLITUDE_API_KEY,
26+
context = applicationContext,
27+
autocapture = autocaptureOptions {
28+
+sessions
29+
+appLifecycles
30+
+deepLinks
31+
+screenViews
32+
},
33+
httpClient = httpClient,
3634
)
35+
httpClient.initialize(configuration)
36+
37+
// init instance
38+
amplitude = Amplitude(configuration)
3739

3840
// Sample for Experiment Integration
3941
val experimentConfig = ExperimentConfig.builder()

0 commit comments

Comments
 (0)