Skip to content

Commit e1c328b

Browse files
Merge branch 'staging' into manual_metrics
2 parents 8ac5edf + 4a90ab4 commit e1c328b

File tree

6 files changed

+33
-8
lines changed

6 files changed

+33
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## 25.4.4
22
* Improved disk size calculation in crash reports.
33
* Added a new function "sendMetricsRequest(metricsOverride)" to send a manual metrics request, accessible through the requestQueue interface.
4+
* Added "setRequestTimeoutDuration(requestTimeoutDuration)" init config method configure request timeout in seconds.
45

56
* Mitigated an issue displaying Content on API level 35 and above.
67

sdk/src/androidTest/java/ly/count/android/sdk/ConnectionProcessorTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ public void setUp() {
126126
@Override public int getBOMDuration() {
127127
return 60;
128128
}
129+
130+
@Override public int getRequestTimeoutDurationMillis() {
131+
return 30_000;
132+
}
129133
};
130134

131135
Countly.sharedInstance().setLoggingEnabled(true);

sdk/src/main/java/ly/count/android/sdk/ConfigurationProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,6 @@ interface ConfigurationProvider {
2929
int getBOMRequestAge();
3030

3131
int getBOMDuration();
32+
33+
int getRequestTimeoutDurationMillis();
3234
}

sdk/src/main/java/ly/count/android/sdk/ConnectionProcessor.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ of this software and associated documentation files (the "Software"), to deal
4949
* of this bug in dexmaker: https://code.google.com/p/dexmaker/issues/detail?id=34
5050
*/
5151
public class ConnectionProcessor implements Runnable {
52-
private static final int CONNECT_TIMEOUT_IN_MILLISECONDS = 30_000;
53-
// used in backoff mechanism to accept half of the CONNECT_TIMEOUT_IN_MILLISECONDS
54-
private static final int READ_TIMEOUT_IN_MILLISECONDS = 30_000;
55-
5652
private static final String CRLF = "\r\n";
5753
private static final String charset = "UTF-8";
5854

@@ -148,8 +144,8 @@ private enum RequestResult {
148144
pccTsConfigureConnection = UtilsTime.getNanoTime();
149145
}
150146

151-
conn.setConnectTimeout(CONNECT_TIMEOUT_IN_MILLISECONDS);
152-
conn.setReadTimeout(READ_TIMEOUT_IN_MILLISECONDS);
147+
conn.setConnectTimeout(configProvider_.getRequestTimeoutDurationMillis());
148+
conn.setReadTimeout(configProvider_.getRequestTimeoutDurationMillis());
153149
conn.setUseCaches(false);
154150
conn.setDoInput(true);
155151
conn.setRequestMethod("GET");
@@ -264,8 +260,8 @@ private enum RequestResult {
264260
}
265261

266262
conn.setRequestMethod("HEAD");
267-
conn.setConnectTimeout(CONNECT_TIMEOUT_IN_MILLISECONDS);
268-
conn.setReadTimeout(READ_TIMEOUT_IN_MILLISECONDS);
263+
conn.setConnectTimeout(configProvider_.getRequestTimeoutDurationMillis());
264+
conn.setReadTimeout(configProvider_.getRequestTimeoutDurationMillis());
269265
conn.setUseCaches(false);
270266
conn.setDoInput(true);
271267
conn.setDoOutput(false);

sdk/src/main/java/ly/count/android/sdk/CountlyConfig.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ public class CountlyConfig {
204204
String sdkBehaviorSettings;
205205
boolean backOffMechanismEnabled = true;
206206
boolean sdkBehaviorSettingsRequestsDisabled = false;
207+
int requestTimeoutDuration = 30; // in seconds
207208

208209
/**
209210
* THIS VARIABLE SHOULD NOT BE USED
@@ -1034,6 +1035,23 @@ public synchronized CountlyConfig disableSDKBehaviorSettingsUpdates() {
10341035
return this;
10351036
}
10361037

1038+
/**
1039+
* Set the request timeout duration in seconds
1040+
* Minimum value is "1" second
1041+
* Default value is "30" seconds
1042+
*
1043+
* @param requestTimeoutDuration The request timeout duration in seconds
1044+
* @return Returns the same config object for convenient linking
1045+
*/
1046+
public synchronized CountlyConfig setRequestTimeoutDuration(int requestTimeoutDuration) {
1047+
int tempRequestTimeoutDuration = requestTimeoutDuration;
1048+
if (tempRequestTimeoutDuration <= 0) {
1049+
tempRequestTimeoutDuration = 1;
1050+
}
1051+
this.requestTimeoutDuration = tempRequestTimeoutDuration;
1052+
return this;
1053+
}
1054+
10371055
/**
10381056
* APM configuration interface to be used with CountlyConfig
10391057
*/

sdk/src/main/java/ly/count/android/sdk/ModuleConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,4 +494,8 @@ public boolean getTrackingEnabled() {
494494
@Override public int getBOMDuration() {
495495
return currentVBOMDuration;
496496
}
497+
498+
@Override public int getRequestTimeoutDurationMillis() {
499+
return _cly.config_.requestTimeoutDuration * 1000;
500+
}
497501
}

0 commit comments

Comments
 (0)