Skip to content

Commit 60d3508

Browse files
authored
Update analytics token
1 parent d75afe9 commit 60d3508

File tree

2 files changed

+35
-11
lines changed

2 files changed

+35
-11
lines changed

url-gen/src/main/kotlin/com/cloudinary/Analytics.kt

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.cloudinary
22

33
import java.util.regex.Pattern
44

5-
private const val ALGO_VERSION = 'C'
5+
private const val ALGO_VERSION = 'D'
66
private const val PRODUCT = "A"
77
private const val SDK = 'H'
88
private const val ERROR_SIGNATURE = "E"
@@ -13,16 +13,19 @@ internal fun generateAnalyticsSignature(
1313
kotlinVersion: KotlinVersion = KotlinVersion.CURRENT,
1414
osType: String = "Z",
1515
osVersion: String = "AA"
16-
1716
): String {
1817
return try {
19-
val osType = generateOsTypeString();
20-
val osVersion = generateOsVersionString(osType);
18+
val osTypeString = with(osType) {
19+
generateOsTypeString(osType)
20+
}
21+
val osVersionString = with(osVersion) {
22+
generateOsVersionString(osTypeString, osVersion)
23+
}
2124
val kotlinVerString = with(kotlinVersion) {
2225
generateVersionString(major, minor) // ignore kotlin patch
2326
}
2427

25-
"$ALGO_VERSION$PRODUCT$SDK${generateVersionString(sdkVersion)}$kotlinVerString$osType$osVersion$NO_FEATURE_CHAR"
28+
"$ALGO_VERSION$PRODUCT$SDK${generateVersionString(sdkVersion)}$kotlinVerString$osTypeString$osVersionString$NO_FEATURE_CHAR"
2629
} catch (e: Exception) {
2730
ERROR_SIGNATURE
2831
}
@@ -50,7 +53,16 @@ private fun generateVersionString(major: Any, minor: Any, patch: Any? = null): S
5053
return patchStr + minorStr + majorStr
5154
}
5255

56+
private fun generateOSVersionString(major: Any, minor: Any? = "0", patch: Any? = null): String {
57+
val patchStr = if (patch != null) patch.toString().toAnalyticsVersionStr() else ""
58+
val minorStr = minor.toString().padStart(2, '0').toLong().toString(2).toAnalyticsVersionStr()
59+
val majorStr = major.toString().padStart(2, '0').toLong().toString(2).toAnalyticsVersionStr()
60+
61+
return "$majorStr$minorStr"
62+
}
63+
5364
private fun String.toAnalyticsVersionStr(): String {
65+
val num = this.toInt(2)
5466
return when (val num = this.toInt(2)) {
5567
in 0..25 -> {
5668
('A' + num).toString()
@@ -62,20 +74,29 @@ private fun String.toAnalyticsVersionStr(): String {
6274
}
6375
}
6476

65-
private fun generateOsTypeString() : String {
77+
private fun generateOsTypeString(osType: String? = null) : String {
78+
osType?.let{
79+
return osType
80+
}
6681
if(System.getProperty("java.runtime.name").equals("Android Runtime")) {
6782
return "A"
6883
}
6984
return "Z"
7085
}
7186

72-
private fun generateOsVersionString(osType: String) : String { //5.15.41-android13-8-00055-g4f5025129fe8-ab8949913 5.4.86-android11-2-00006-gae78026f427c-ab7595864
87+
private fun generateOsVersionString(osType: String, osVersion: String? = null) : String { //5.15.41-android13-8-00055-g4f5025129fe8-ab8949913 5.4.86-android11-2-00006-gae78026f427c-ab7595864
7388
if(osType == "A") {
74-
var version = System.getProperty("os.version");
89+
var version = osVersion
90+
if(version == null) {
91+
version = System.getProperty("os.version");
92+
}
93+
7594
val pattern = Pattern.compile("android(\\d+)")
7695
val matcher = pattern.matcher(version)
7796
if (matcher.find()) {
78-
return matcher.group(1);
97+
val versionArray = matcher.group(1).split(".")
98+
val versioString = generateOSVersionString(versionArray[0]);
99+
return versioString
79100
}
80101
}
81102
return "AA";

url-gen/src/test/kotlin/com/cloudinary/AnalyticsTest.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ class AnalyticsTest {
77
@Test
88
fun testAnalyticsStringGeneration() {
99
var s = generateAnalyticsSignature("1.24.0", KotlinVersion(12, 0))
10-
assertEquals("CAHAlhAMZAA0", s)
10+
assertEquals("DAHAlhAMZAA0", s)
1111

1212
s = generateAnalyticsSignature("1.24.0-beta.6", KotlinVersion(12, 0))
13-
assertEquals("CAHAlhAMZAA0", s)
13+
assertEquals("DAHAlhAMZAA0", s)
14+
15+
s = generateAnalyticsSignature("1.24.0-beta.6", KotlinVersion(12, 0), "A", "android13")
16+
assertEquals("DAHAlhAMANA0", s)
1417

1518
}
1619
}

0 commit comments

Comments
 (0)