Skip to content

Commit 3088cab

Browse files
authored
Merge branch 'staging' into fix_anr_back
2 parents edb1d42 + 4a68b7c commit 3088cab

File tree

10 files changed

+180
-92
lines changed

10 files changed

+180
-92
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
## XX.XX.XX
2+
23
* Mitigated an ANR that occurred when the back button was pressed on the content activity.
34

5+
* Health check requests now include additional metrics.
6+
7+
* Mitigated an issue where behavior settings were not stored when only provided through configuration during initialization.
8+
* Mitigated an issue where, on the first run of the SDK, behavior settings returned null if none were previously stored.
9+
* Mitigated an issue where first behavior settings update calls sent twice.
10+
411
## 25.4.2
512
* Mitigated an issue where latest fetched behavior settings were replacing the current settings instead of merging.
613

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public void addBreadcrumb() {
2929
@Test(expected = AssertionError.class)
3030
public void addBreadcrumb_emptyString() {
3131
BreadcrumbHelper breadcrumbHelper = new BreadcrumbHelper(5, new ModuleLog());
32-
breadcrumbHelper.addBreadcrumb("", 10);
32+
breadcrumbHelper.addBreadcrumb("", 10, 5);
3333
}
3434

3535
/**
@@ -39,7 +39,7 @@ public void addBreadcrumb_emptyString() {
3939
@Test(expected = AssertionError.class)
4040
public void addBreadcrumb_null() {
4141
BreadcrumbHelper breadcrumbHelper = new BreadcrumbHelper(5, new ModuleLog());
42-
breadcrumbHelper.addBreadcrumb(null, 10);
42+
breadcrumbHelper.addBreadcrumb(null, 10, 5);
4343
}
4444

4545
/**
@@ -49,7 +49,7 @@ public void addBreadcrumb_null() {
4949
@Test
5050
public void addBreadcrumb_exceedsCharacterLimit() {
5151
BreadcrumbHelper breadcrumbHelper = new BreadcrumbHelper(5, new ModuleLog());
52-
breadcrumbHelper.addBreadcrumb("Test", 2);
52+
breadcrumbHelper.addBreadcrumb("Test", 2, 5);
5353
Assert.assertEquals(list("Te"), breadcrumbHelper.getBreadcrumbs());
5454
}
5555

@@ -60,11 +60,11 @@ public void addBreadcrumb_exceedsCharacterLimit() {
6060
@Test
6161
public void addBreadcrumb_exceedsLimit() {
6262
BreadcrumbHelper breadcrumbHelper = new BreadcrumbHelper(2, new ModuleLog());
63-
breadcrumbHelper.addBreadcrumb("Test", 3);
63+
breadcrumbHelper.addBreadcrumb("Test", 3, 2);
6464
Assert.assertEquals(list("Tes"), breadcrumbHelper.getBreadcrumbs());
65-
breadcrumbHelper.addBreadcrumb("Doggy", 3);
65+
breadcrumbHelper.addBreadcrumb("Doggy", 3, 2);
6666
Assert.assertEquals(list("Tes", "Dog"), breadcrumbHelper.getBreadcrumbs());
67-
breadcrumbHelper.addBreadcrumb("Geralt", 3);
67+
breadcrumbHelper.addBreadcrumb("Geralt", 3, 2);
6868
Assert.assertEquals(list("Dog", "Ger"), breadcrumbHelper.getBreadcrumbs());
6969
}
7070

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,17 @@
77
public class BreadcrumbHelper {
88

99
private final @NonNull LinkedList<String> logs = new LinkedList<>();
10-
private final int maxBreadcrumbs;
1110

1211
private final @NonNull ModuleLog L;
1312

1413
protected BreadcrumbHelper(int maxBreadcrumbs, @NonNull ModuleLog L) {
1514
assert maxBreadcrumbs > 0;
1615
assert L != null;
1716

18-
this.maxBreadcrumbs = maxBreadcrumbs;
1917
this.L = L;
2018
}
2119

22-
protected void addBreadcrumb(@NonNull String breadcrumb, int valueSize) {
20+
protected void addBreadcrumb(@NonNull String breadcrumb, int valueSize, int maxBreadcrumbs) {
2321
assert breadcrumb != null;
2422
assert !breadcrumb.isEmpty();
2523
assert valueSize > 0;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package ly.count.android.sdk;
2+
3+
interface ConfigurationValueValidator<T> {
4+
5+
Boolean validate(T value);
6+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ public void run() {
530530
// this one from the stored events collection
531531
storageProvider_.removeRequest(originalRequest);
532532

533-
if (configProvider_.getBOMEnabled() && backoff(setupServerRequestTime, storedRequestCount, requestData)) {
533+
if (configProvider_.getBOMEnabled() && backoff(setupServerRequestTime, storedRequestCount - 1, requestData)) {
534534
backoffCallback_.run();
535535
break;
536536
}

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -969,13 +969,15 @@ void onStartInternal(Activity activity) {
969969
}
970970

971971
++activityCount_;
972-
if (activityCount_ == 1 && !moduleSessions.manualSessionControlEnabled) {
972+
if (activityCount_ == 1) {
973+
// start the timer in the first activity
974+
moduleConfiguration.fetchIfTimeIsUpForFetchingServerConfig();
973975
//if we open the first activity
974976
//and we are not using manual session control,
975977
//begin a session
976-
977-
moduleSessions.beginSessionInternal();
978-
moduleConfiguration.fetchIfTimeIsUpForFetchingServerConfig();
978+
if (!moduleSessions.manualSessionControlEnabled) {
979+
moduleSessions.beginSessionInternal();
980+
}
979981
}
980982

981983
config_.deviceInfo.inForeground();

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

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -674,32 +674,6 @@ String getMetrics(@NonNull final Context context, @Nullable final Map<String, St
674674
return result;
675675
}
676676

677-
@NonNull
678-
String getMetricsHealthCheck(@NonNull final Context context, @Nullable final Map<String, String> metricOverride) {
679-
Map<String, Object> metrics = new ConcurrentHashMap<>();
680-
681-
String appVersion = mp.getAppVersion(context);
682-
683-
if (metricOverride != null) {
684-
if (metricOverride.containsKey("_app_version")) {
685-
appVersion = metricOverride.get("_app_version");
686-
}
687-
}
688-
689-
metrics.put("_app_version", appVersion);
690-
691-
String result = new JSONObject(metrics).toString();
692-
693-
try {
694-
result = java.net.URLEncoder.encode(result, "UTF-8");
695-
} catch (UnsupportedEncodingException ex) {
696-
// should never happen because Android guarantees UTF-8 support
697-
Countly.sharedInstance().L.e("[getMetrics] encode failed, [" + ex + "]");
698-
}
699-
700-
return result;
701-
}
702-
703677
/**
704678
* Returns a JSON object containing the device crash report
705679
*/

0 commit comments

Comments
 (0)