From 123e35aaf3899aafc7c1ee93426784d6374023f2 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 22 May 2026 10:13:04 -0300 Subject: [PATCH 1/2] Version 5.5.1 --- CHANGES.txt | 3 +++ build.gradle | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 86aee3a0e..c7d61fdd9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,6 @@ +5.5.1 (May 22, 2026) +- Fixed race condition in which killing the SDK process during first initialization could leave cache in an inconsistent state. + 5.5.0 (Jan 28, 2026) - Added functionality to provide metadata alongside SDK update, ready and ready from cache events. Read more in our docs. - Fixed issue in which TLS 1.2 was being forced for new connections. diff --git a/build.gradle b/build.gradle index 93f80cf53..537a7ae0c 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ if (rootProject.name == 'android-client') { } ext { - splitVersion = '5.5.0' + splitVersion = '5.5.1' jacocoVersion = '0.8.8' } From e2b3066f4c30225c782f612c0ccb818cf44552ef Mon Sep 17 00:00:00 2001 From: gthea Date: Fri, 22 May 2026 10:14:04 -0300 Subject: [PATCH 2/2] Centralize version header value (#877) --- .../android/client/SplitClientConfig.java | 4 ++-- .../client/network/SdkVersionProvider.java | 10 +++++++++ .../workmanager/HttpClientProvider.java | 4 ++-- .../network/SdkVersionProviderTest.java | 21 +++++++++++++++++++ 4 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 main/src/main/java/io/split/android/client/network/SdkVersionProvider.java create mode 100644 main/src/test/java/io/split/android/client/network/SdkVersionProviderTest.java diff --git a/main/src/main/java/io/split/android/client/SplitClientConfig.java b/main/src/main/java/io/split/android/client/SplitClientConfig.java index 0d5b0ecc8..3fd0a845d 100644 --- a/main/src/main/java/io/split/android/client/SplitClientConfig.java +++ b/main/src/main/java/io/split/android/client/SplitClientConfig.java @@ -13,9 +13,9 @@ import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.X509TrustManager; -import io.split.android.client.main.BuildConfig; import io.split.android.client.impressions.ImpressionListener; import io.split.android.client.network.CertificatePinningConfiguration; +import io.split.android.client.network.SdkVersionProvider; import io.split.android.client.network.DevelopmentSslConfig; import io.split.android.client.network.HttpProxy; import io.split.android.client.network.ProxyConfiguration; @@ -242,7 +242,7 @@ private SplitClientConfig(String endpoint, mUserConsent = userConsent; - splitSdkVersion = "Android-" + BuildConfig.SPLIT_VERSION_NAME; + splitSdkVersion = SdkVersionProvider.getSdkVersion(); mShouldRecordTelemetry = shouldRecordTelemetry; diff --git a/main/src/main/java/io/split/android/client/network/SdkVersionProvider.java b/main/src/main/java/io/split/android/client/network/SdkVersionProvider.java new file mode 100644 index 000000000..9198e60fd --- /dev/null +++ b/main/src/main/java/io/split/android/client/network/SdkVersionProvider.java @@ -0,0 +1,10 @@ +package io.split.android.client.network; + +import io.split.android.client.main.BuildConfig; + +public class SdkVersionProvider { + + public static String getSdkVersion() { + return "Android-" + BuildConfig.SPLIT_VERSION_NAME; + } +} diff --git a/main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java b/main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java index 2d7e7119d..6d235ef88 100644 --- a/main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java +++ b/main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java @@ -6,7 +6,6 @@ import java.io.InputStream; import java.nio.charset.StandardCharsets; -import io.split.android.client.main.BuildConfig; import io.split.android.client.dtos.HttpProxyDto; import io.split.android.client.network.BasicCredentialsProvider; import io.split.android.client.network.BearerCredentialsProvider; @@ -14,6 +13,7 @@ import io.split.android.client.network.CertificatePinningConfigurationProvider; import io.split.android.client.network.HttpClient; import io.split.android.client.network.HttpClientImpl; +import io.split.android.client.network.SdkVersionProvider; import io.split.android.client.network.HttpProxy; import io.split.android.client.network.SplitHttpHeadersBuilder; import io.split.android.client.storage.cipher.SplitCipherFactory; @@ -43,7 +43,7 @@ private static HttpClient buildHttpClient(String apiKey, @Nullable CertificatePi .build(); SplitHttpHeadersBuilder headersBuilder = new SplitHttpHeadersBuilder(); - headersBuilder.setClientVersion(BuildConfig.SPLIT_VERSION_NAME); + headersBuilder.setClientVersion(SdkVersionProvider.getSdkVersion()); headersBuilder.setApiToken(apiKey); headersBuilder.addJsonTypeHeaders(); httpClient.addHeaders(headersBuilder.build()); diff --git a/main/src/test/java/io/split/android/client/network/SdkVersionProviderTest.java b/main/src/test/java/io/split/android/client/network/SdkVersionProviderTest.java new file mode 100644 index 000000000..505c514ee --- /dev/null +++ b/main/src/test/java/io/split/android/client/network/SdkVersionProviderTest.java @@ -0,0 +1,21 @@ +package io.split.android.client.network; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class SdkVersionProviderTest { + + @Test + public void getSdkVersionStartsWithAndroidPrefix() { + assertTrue(SdkVersionProvider.getSdkVersion().startsWith("Android-")); + } + + @Test + public void getSdkVersionContainsNonEmptyVersionAfterPrefix() { + String version = SdkVersionProvider.getSdkVersion(); + String suffix = version.substring("Android-".length()); + assertFalse(suffix.isEmpty()); + } +}