Skip to content

Commit 61eb7ee

Browse files
authored
fix: reformatting and warning fixes for upload ordering ticket (#257)
* various formatting and fixing of warnings prior to refactoring * fix warning for unclosed response body
1 parent c86ec8c commit 61eb7ee

File tree

4 files changed

+69
-69
lines changed

4 files changed

+69
-69
lines changed

core/src/main/java/com/amplitude/core/platform/EventPipeline.kt

+10-12
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class EventPipeline(
2525

2626
private val eventCount: AtomicInteger = AtomicInteger(0)
2727

28-
private val httpClient: HttpClientInterface = amplitude.configuration.httpClient ?: HttpClient(amplitude.configuration)
28+
private val httpClient: HttpClientInterface = amplitude.configuration.httpClient
29+
?: HttpClient(amplitude.configuration)
2930

3031
private val storage get() = amplitude.storage
3132

@@ -34,11 +35,9 @@ class EventPipeline(
3435
var flushInterval = amplitude.configuration.flushIntervalMillis.toLong()
3536
var flushQueueSize = amplitude.configuration.flushQueueSize
3637

37-
var running: Boolean
38-
private set
38+
private var running: Boolean
3939

40-
var scheduled: Boolean
41-
private set
40+
private var scheduled: Boolean
4241

4342
var flushSizeDivider: AtomicInteger = AtomicInteger(1)
4443

@@ -48,7 +47,7 @@ class EventPipeline(
4847
internal const val UPLOAD_SIG = "#!upload"
4948
}
5049

51-
val responseHandler: ResponseHandler
50+
private val responseHandler: ResponseHandler
5251

5352
init {
5453
running = false
@@ -98,7 +97,10 @@ class EventPipeline(
9897
try {
9998
storage.writeEvent(message.event)
10099
} catch (e: Exception) {
101-
e.logWithStackTrace(amplitude.logger, "Error when writing event to pipeline")
100+
e.logWithStackTrace(
101+
amplitude.logger,
102+
"Error when writing event to pipeline"
103+
)
102104
}
103105
}
104106

@@ -155,15 +157,11 @@ class EventPipeline(
155157
return count.takeUnless { it == 0 } ?: 1
156158
}
157159

158-
private fun getFlushIntervalInMillis(): Long {
159-
return flushInterval
160-
}
161-
162160
private fun schedule() =
163161
scope.launch(amplitude.storageIODispatcher) {
164162
if (isActive && running && !scheduled && !exceededRetries) {
165163
scheduled = true
166-
delay(getFlushIntervalInMillis())
164+
delay(flushInterval)
167165
flush()
168166
scheduled = false
169167
}

core/src/main/java/com/amplitude/core/utilities/http/AnalyticsResponse.kt

+47-49
Original file line numberDiff line numberDiff line change
@@ -9,30 +9,18 @@ import java.lang.Exception
99

1010
internal object HttpResponse {
1111
fun createHttpResponse(code: Int, responseBody: String?): AnalyticsResponse {
12-
when (code) {
13-
HttpStatus.SUCCESS.code -> {
14-
return SuccessResponse()
15-
}
16-
17-
HttpStatus.BAD_REQUEST.code -> {
18-
return BadRequestResponse(JSONObject(responseBody))
19-
}
20-
21-
HttpStatus.PAYLOAD_TOO_LARGE.code -> {
22-
return PayloadTooLargeResponse(JSONObject(responseBody))
23-
}
24-
25-
HttpStatus.TOO_MANY_REQUESTS.code -> {
26-
return TooManyRequestsResponse(JSONObject(responseBody))
27-
}
28-
29-
HttpStatus.TIMEOUT.code -> {
30-
return TimeoutResponse()
31-
}
32-
33-
else -> {
34-
return FailedResponse(parseResponseBodyOrGetDefault(responseBody))
35-
}
12+
return when (code) {
13+
HttpStatus.SUCCESS.code -> SuccessResponse()
14+
15+
HttpStatus.BAD_REQUEST.code -> BadRequestResponse(JSONObject(responseBody))
16+
17+
HttpStatus.PAYLOAD_TOO_LARGE.code -> PayloadTooLargeResponse(JSONObject(responseBody))
18+
19+
HttpStatus.TOO_MANY_REQUESTS.code -> TooManyRequestsResponse(JSONObject(responseBody))
20+
21+
HttpStatus.TIMEOUT.code -> TimeoutResponse()
22+
23+
else -> FailedResponse(parseResponseBodyOrGetDefault(responseBody))
3624
}
3725
}
3826

@@ -61,17 +49,17 @@ interface AnalyticsResponse {
6149
}
6250
}
6351

64-
class SuccessResponse() : AnalyticsResponse {
52+
class SuccessResponse : AnalyticsResponse {
6553
override val status: HttpStatus = HttpStatus.SUCCESS
6654
}
6755

6856
class BadRequestResponse(response: JSONObject) : AnalyticsResponse {
6957
override val status: HttpStatus = HttpStatus.BAD_REQUEST
7058
val error: String = response.getStringWithDefault("error", "")
71-
var eventsWithInvalidFields: Set<Int> = setOf()
72-
var eventsWithMissingFields: Set<Int> = setOf()
73-
var silencedEvents: Set<Int> = setOf()
74-
var silencedDevices: Set<String> = setOf()
59+
private var eventsWithInvalidFields: Set<Int> = setOf()
60+
private var eventsWithMissingFields: Set<Int> = setOf()
61+
private var silencedEvents: Set<Int> = setOf()
62+
private var silencedDevices: Set<String> = setOf()
7563

7664
init {
7765
if (response.has("events_with_invalid_fields")) {
@@ -99,10 +87,12 @@ class BadRequestResponse(response: JSONObject) : AnalyticsResponse {
9987
}
10088

10189
fun isEventSilenced(event: BaseEvent): Boolean {
102-
event.deviceId?.let {
103-
return silencedDevices.contains(it)
104-
} ?: let {
105-
return false
90+
val eventDeviceId = event.deviceId
91+
92+
return if (eventDeviceId != null) {
93+
silencedDevices.contains(eventDeviceId)
94+
} else {
95+
false
10696
}
10797
}
10898

@@ -150,7 +140,7 @@ class TooManyRequestsResponse(response: JSONObject) : AnalyticsResponse {
150140
}
151141
}
152142

153-
class TimeoutResponse() : AnalyticsResponse {
143+
class TimeoutResponse : AnalyticsResponse {
154144
override val status: HttpStatus = HttpStatus.TIMEOUT
155145
}
156146

@@ -162,33 +152,32 @@ class FailedResponse(response: JSONObject) : AnalyticsResponse {
162152
interface ResponseHandler {
163153
fun handle(response: AnalyticsResponse, events: Any, eventsString: String) {
164154
when (response) {
165-
is SuccessResponse -> {
155+
is SuccessResponse ->
166156
handleSuccessResponse(response, events, eventsString)
167-
}
168157

169-
is BadRequestResponse -> {
158+
is BadRequestResponse ->
170159
handleBadRequestResponse(response, events, eventsString)
171-
}
172160

173-
is PayloadTooLargeResponse -> {
161+
is PayloadTooLargeResponse ->
174162
handlePayloadTooLargeResponse(response, events, eventsString)
175-
}
176163

177-
is TooManyRequestsResponse -> {
164+
is TooManyRequestsResponse ->
178165
handleTooManyRequestsResponse(response, events, eventsString)
179-
}
180166

181-
is TimeoutResponse -> {
167+
is TimeoutResponse ->
182168
handleTimeoutResponse(response, events, eventsString)
183-
}
184169

185-
else -> {
170+
else ->
186171
handleFailedResponse(response as FailedResponse, events, eventsString)
187-
}
188172
}
189173
}
190174

191-
fun handleSuccessResponse(successResponse: SuccessResponse, events: Any, eventsString: String)
175+
fun handleSuccessResponse(
176+
successResponse: SuccessResponse,
177+
events: Any,
178+
eventsString: String
179+
)
180+
192181
fun handleBadRequestResponse(
193182
badRequestResponse: BadRequestResponse,
194183
events: Any,
@@ -207,6 +196,15 @@ interface ResponseHandler {
207196
eventsString: String
208197
)
209198

210-
fun handleTimeoutResponse(timeoutResponse: TimeoutResponse, events: Any, eventsString: String)
211-
fun handleFailedResponse(failedResponse: FailedResponse, events: Any, eventsString: String)
199+
fun handleTimeoutResponse(
200+
timeoutResponse: TimeoutResponse,
201+
events: Any,
202+
eventsString: String
203+
)
204+
205+
fun handleFailedResponse(
206+
failedResponse: FailedResponse,
207+
events: Any,
208+
eventsString: String
209+
)
212210
}

core/src/main/java/com/amplitude/core/utilities/http/HttpClient.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ internal class HttpClient(
3838
connection.outputStream.close()
3939

4040
val responseCode: Int = connection.responseCode
41-
var responseBody: String?
41+
val responseBody: String?
4242
var inputStream: InputStream? = null
4343
try {
4444
inputStream = getInputStream(connection)
@@ -52,7 +52,7 @@ internal class HttpClient(
5252
}
5353
}
5454

55-
internal fun getApiKey(): String {
55+
private fun getApiKey(): String {
5656
return configuration.apiKey
5757
}
5858

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

+10-6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import okhttp3.MediaType.Companion.toMediaTypeOrNull
88
import okhttp3.OkHttpClient
99
import okhttp3.Request
1010
import okhttp3.RequestBody
11+
import okhttp3.RequestBody.Companion.toRequestBody
1112
import java.io.IOException
1213

1314
class CustomOkHttpClient : HttpClientInterface {
@@ -26,14 +27,17 @@ class CustomOkHttpClient : HttpClientInterface {
2627
diagnostics = diagnostics,
2728
minIdLength = configuration.minIdLength
2829
)
29-
val formBody: RequestBody = RequestBody.create(mediaType, ampRequest.getBodyStr())
30-
val request: Request =
31-
Request.Builder().url(configuration.getApiHost()).post(formBody).build()
30+
val formBody: RequestBody = ampRequest.getBodyStr()
31+
.toRequestBody(mediaType)
32+
val request: Request = Request.Builder()
33+
.url(configuration.getApiHost())
34+
.post(formBody)
35+
.build()
3236

3337
try {
34-
val response = okHttpClient.newCall(request).execute()
35-
return AnalyticsResponse.create(response.code, response.body?.string())
36-
// Do something with the response.
38+
return okHttpClient.newCall(request).execute().use { response ->
39+
AnalyticsResponse.create(response.code, response.body?.string())
40+
}
3741
} catch (e: IOException) {
3842
e.printStackTrace()
3943
return AnalyticsResponse.create(500, null)

0 commit comments

Comments
 (0)