Skip to content

Commit 5c1f8b3

Browse files
committed
add header
1 parent b80257f commit 5c1f8b3

File tree

12 files changed

+44
-16
lines changed

12 files changed

+44
-16
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.github.jan.supabase
22

3-
internal actual val OSInformation: OSInformation = OSInformation(
3+
internal actual fun getOSInformation(): OSInformation = OSInformation(
44
name = "Android",
5-
version = android.os.Build.VERSION.SDK_INT.toString()
5+
version = android.os.Build.VERSION.RELEASE
66
)

Supabase/src/commonMain/kotlin/io/github/jan/supabase/PlatformTarget.kt

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
@file:Suppress("UndocumentedPublicProperty")
22
package io.github.jan.supabase
33

4+
import io.github.jan.supabase.logging.e
5+
46
/**
57
* Represents a target platform
68
*/
@@ -11,7 +13,22 @@ enum class PlatformTarget {
1113
internal data class OSInformation(
1214
val name: String,
1315
val version: String
14-
)
16+
) {
17+
18+
companion object {
19+
val CURRENT by lazy {
20+
try {
21+
getOSInformation()
22+
} catch (e: Exception) {
23+
SupabaseClient.LOGGER.e(e) {
24+
"Failed to get OS information, please report this issue"
25+
}
26+
null
27+
}
28+
}
29+
}
30+
31+
}
1532

1633
/**
1734
* The current target platform
@@ -21,4 +38,4 @@ expect val CurrentPlatformTarget: PlatformTarget
2138
/**
2239
* The current operating system information
2340
*/
24-
internal expect val OSInformation: OSInformation
41+
internal expect fun getOSInformation(): OSInformation

Supabase/src/commonMain/kotlin/io/github/jan/supabase/network/KtorSupabaseHttpClient.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package io.github.jan.supabase.network
33

44
import io.github.jan.supabase.BuildConfig
5+
import io.github.jan.supabase.OSInformation
56
import io.github.jan.supabase.SupabaseClient
67
import io.github.jan.supabase.annotations.SupabaseInternal
78
import io.github.jan.supabase.exceptions.HttpRequestException
@@ -111,6 +112,10 @@ class KtorSupabaseHttpClient @SupabaseInternal constructor(
111112
append("apikey", supabaseKey)
112113
}
113114
append("X-Client-Info", "supabase-kt/${BuildConfig.PROJECT_VERSION}")
115+
OSInformation.CURRENT?.let {
116+
append("X-Supabase-Client-Platform", it.name)
117+
append("X-Supabase-Client-Platform-Version", it.version)
118+
}
114119
}
115120
port = HTTPS_PORT
116121
}

Supabase/src/iosMain/kotlin/io/github/jan/supabase/PlatformTarget.ios.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.github.jan.supabase
22

33
import io.supabase.supabase.getOSVersion
44

5-
internal actual val OSInformation: OSInformation = OSInformation(
5+
internal actual fun getOSInformation(): OSInformation = OSInformation(
66
name = "iOS",
77
version = getOSVersion()
88
)
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
package io.github.jan.supabase
22

3-
internal actual val OSInformation: OSInformation
4-
get() = TODO("Not yet implemented")
3+
internal actual fun getOSInformation(): OSInformation = TODO("")
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.github.jan.supabase
22

3-
internal actual val OSInformation: OSInformation = OSInformation(
3+
internal actual fun getOSInformation(): OSInformation = OSInformation(
44
name = System.getProperty("os.name"),
55
version = System.getProperty("os.version")
66
)

Supabase/src/linuxMain/kotlin/io/github/jan/supabase/PlatformTarget.linux.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.github.jan.supabase
22

3-
actual val OSInformation: OSInformation = OSInformation(
3+
internal actual fun getOSInformation(): OSInformation = OSInformation(
44
name = "Linux",
55
version = getOSVersion()
66
)

Supabase/src/macosMain/kotlin/io/github/jan/supabase/PlatformTarget.macos.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.github.jan.supabase
22

33
import io.supabase.supabase.getOSVersion
44

5-
internal actual val OSInformation: OSInformation = OSInformation(
5+
internal actual fun getOSInformation(): OSInformation = OSInformation(
66
name = "macOS",
77
version = getOSVersion()
88
)
Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
package io.github.jan.supabase
22

3-
actual val OSInformation: OSInformation = OSInformation(
3+
import platform.windows.DWORD
4+
import platform.windows.GetVersion
5+
6+
internal actual fun getOSInformation(): OSInformation = OSInformation(
47
name = "Windows",
58
version = getOSVersion()
69
)
710

811
private fun getOSVersion(): String {
9-
TODO("Not yet implemented")
12+
val dwVersion: DWORD = GetVersion()
13+
14+
val dwMajorVersion = dwVersion and 255u
15+
val dwMinorVersion = (dwVersion shr 8) and 255u
16+
return "$dwMajorVersion.$dwMinorVersion"
1017
}

Supabase/src/tvosMain/kotlin/io/github/jan/supabase/PlatformTarget.tvos.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.github.jan.supabase
22

33
import io.supabase.supabase.getOSVersion
44

5-
internal actual val OSInformation: OSInformation = OSInformation(
5+
internal actual fun getOSInformation(): OSInformation = OSInformation(
66
name = "tvOS",
77
version = getOSVersion()
88
)

0 commit comments

Comments
 (0)