Skip to content

Commit e831d00

Browse files
authored
Merge pull request #488 from Countly/fix_sbs
feat: fix sbs bugs
2 parents 8a042c4 + 42508ed commit e831d00

File tree

8 files changed

+177
-65
lines changed

8 files changed

+177
-65
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## XX.XX.XX
2+
* Mitigated an issue where behavior settings were not stored when only provided through configuration during initialization.
3+
* Mitigated an issue where, on the first run of the SDK, behavior settings returned null if none were previously stored.
4+
* Mitigated an issue where first behavior settings update calls sent twice.
5+
16
## 25.4.2
27
* Mitigated an issue where latest fetched behavior settings were replacing the current settings instead of merging.
38

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();

0 commit comments

Comments
 (0)