diff --git a/CHANGELOG.md b/CHANGELOG.md index 6eefe2ee64..0af308027d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog All notable changes to this project will be documented in this file. +## [0.68.4] + +- Fixed a rare formatting bug in AcceptedLanguageInterceptor + ## [0.68.3] - Fixed a regression when pre-weighed products to the shopping cart diff --git a/build.gradle b/build.gradle index 440d9b3628..76b904cafb 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,7 @@ allprojects { } project.ext { - sdkVersion='0.68.3' + sdkVersion='0.68.4' versionCode=1 compileSdkVersion=31 diff --git a/core/src/main/java/io/snabble/sdk/AcceptedLanguageInterceptor.kt b/core/src/main/java/io/snabble/sdk/AcceptedLanguageInterceptor.kt index 6490fbaccd..0987ef5a23 100644 --- a/core/src/main/java/io/snabble/sdk/AcceptedLanguageInterceptor.kt +++ b/core/src/main/java/io/snabble/sdk/AcceptedLanguageInterceptor.kt @@ -6,10 +6,14 @@ import androidx.annotation.RestrictTo import okhttp3.Interceptor import okhttp3.Request import okhttp3.Response +import java.text.DecimalFormat +import java.text.DecimalFormatSymbols import java.util.* @RestrictTo(RestrictTo.Scope.LIBRARY) internal class AcceptedLanguageInterceptor : Interceptor { + private val formatter = DecimalFormat("#.##", DecimalFormatSymbols(Locale.US)) + private val acceptedLanguagesHeader: String get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { val list = LocaleList.getDefault() @@ -17,12 +21,8 @@ internal class AcceptedLanguageInterceptor : Interceptor { val simplified = (all.map { it.toLanguageTag() } + all.map { it.language }).distinct() var str = simplified.first() for (i in 1 until simplified.size) { - str += ",${simplified[i]};q=${ - "%.1f".format( - Locale.US, - 1 - (1 / simplified.size.toFloat()) * i - ) - }" + val weight = formatter.format(1 - (1 / simplified.size.toFloat()) * i) + str += ",${simplified[i]};q=$weight" } str } else Locale.getDefault().language