Skip to content

Commit d7dd084

Browse files
committed
remove kotlinx-datetime dependency
Signed-off-by: Adam Ratzman <[email protected]>
1 parent f72e016 commit d7dd084

File tree

14 files changed

+52
-18
lines changed

14 files changed

+52
-18
lines changed

build.gradle.kts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,14 +214,13 @@ kotlin {
214214
val coroutineVersion = "1.4.2-native-mt"
215215
val serializationVersion = "1.0.1"
216216
val ktorVersion = "1.5.0"
217-
val kotlinxDatetimeVersion = "0.1.1"
217+
val klockVersion = "2.0.3"
218218

219219
val commonMain by getting {
220220
dependencies {
221221
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutineVersion")
222222
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion")
223223
implementation("io.ktor:ktor-client-core:$ktorVersion")
224-
implementation("org.jetbrains.kotlinx:kotlinx-datetime:$kotlinxDatetimeVersion")
225224
}
226225
}
227226

@@ -291,6 +290,7 @@ kotlin {
291290
dependsOn(commonMain)
292291

293292
dependencies {
293+
implementation("com.soywiz.korlibs.klock:klock:$klockVersion")
294294
implementation("io.ktor:ktor-client-curl:$ktorVersion")
295295
}
296296
}
@@ -303,6 +303,10 @@ kotlin {
303303

304304
val linuxX64Main by getting {
305305
dependsOn(desktopMain)
306+
307+
dependencies {
308+
implementation("com.soywiz.korlibs.klock:klock-linuxx64:$klockVersion")
309+
}
306310
}
307311

308312
val linuxX64Test by getting {
@@ -311,6 +315,10 @@ kotlin {
311315

312316
val mingwX64Main by getting {
313317
dependsOn(desktopMain)
318+
319+
dependencies {
320+
implementation("com.soywiz.korlibs.klock:klock-mingwx64:$klockVersion")
321+
}
314322
}
315323

316324
val mingwX64Test by getting {
@@ -319,6 +327,10 @@ kotlin {
319327

320328
val macosX64Main by getting {
321329
dependsOn(desktopMain)
330+
331+
dependencies {
332+
implementation("com.soywiz.korlibs.klock:klock-macosx64:$klockVersion")
333+
}
322334
}
323335

324336
val macosX64Test by getting {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
/* Spotify Web API, Kotlin Wrapper; MIT License, 2017-2021; Original author: Adam Ratzman */
22
package com.adamratzman.spotify.utils
33

4+
import android.annotation.SuppressLint
5+
import java.text.SimpleDateFormat
6+
import java.util.Date
7+
48
/**
59
* The current time in milliseconds since UNIX epoch.
610
*/
711
public actual fun getCurrentTimeMs(): Long = System.currentTimeMillis()
12+
13+
@SuppressLint("SimpleDateFormat")
14+
internal actual fun formatDate(format: String, date: Long): String {
15+
return SimpleDateFormat(format).format(Date(date))
16+
}

src/androidMain/kotlin/com/adamratzman/spotify/utils/Platform.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ package com.adamratzman.spotify.utils
44
/**
55
* Actual platform that this program is run on.
66
*/
7-
public actual val platform: Platform = Platform.ANDROID
7+
public actual val currentApiPlatform: Platform = Platform.ANDROID

src/commonMain/kotlin/com.adamratzman.spotify/endpoints/public/BrowseApi.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public class BrowseApi(api: GenericSpotifyApi) : SpotifyEndpoint(api) {
101101
endpointBuilder("/browse/featured-playlists").with("limit", limit).with("offset", offset).with(
102102
"market",
103103
market?.name
104-
).with("locale", locale).with("timestamp", timestamp?.let { formatDate(it) }).toString()
104+
).with("locale", locale).with("timestamp", timestamp?.let { formatDate("yyyy-MM-dd'T'HH:mm:ss", it) }).toString()
105105
).toObject(FeaturedPlaylists.serializer(), api, json)
106106

107107
/**

src/commonMain/kotlin/com.adamratzman.spotify/utils/Platform.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ public enum class Platform {
1111
NATIVE
1212
}
1313

14-
public expect val platform: Platform
14+
public expect val currentApiPlatform: Platform

src/commonMain/kotlin/com.adamratzman.spotify/utils/Utils.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ package com.adamratzman.spotify.utils
33

44
import com.adamratzman.spotify.SpotifyException
55
import com.adamratzman.spotify.models.ResultEnum
6-
import kotlinx.datetime.Instant
7-
import kotlinx.datetime.TimeZone
8-
import kotlinx.datetime.toLocalDateTime
96
import kotlinx.serialization.json.JsonElement
107

118
/**
@@ -28,5 +25,4 @@ internal suspend inline fun <T> catch(crossinline function: suspend () -> T): T?
2825
internal fun <T : ResultEnum> Array<T>.match(identifier: String) =
2926
firstOrNull { it.retrieveIdentifier().toString().equals(identifier, true) }
3027

31-
internal fun formatDate(date: Long): String =
32-
Instant.fromEpochMilliseconds(date).toLocalDateTime(TimeZone.currentSystemDefault()).toString()
28+
internal expect fun formatDate(format: String, date: Long): String

src/commonTest/kotlin/com.adamratzman/spotify/priv/ClientPlaylistApiTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.adamratzman.spotify.models.Playlist
1010
import com.adamratzman.spotify.models.SimplePlaylist
1111
import com.adamratzman.spotify.runBlockingTest
1212
import com.adamratzman.spotify.utils.Platform
13-
import com.adamratzman.spotify.utils.platform
13+
import com.adamratzman.spotify.utils.currentApiPlatform
1414
import kotlin.test.Test
1515
import kotlin.test.assertEquals
1616
import kotlin.test.assertTrue
@@ -99,7 +99,7 @@ class ClientPlaylistApiTest {
9999

100100
@Test
101101
fun testEditPlaylists() {
102-
if (platform != Platform.NATIVE) {
102+
if (currentApiPlatform != Platform.NATIVE) {
103103
runBlockingTest {
104104
if (!testPrereq()) return@runBlockingTest
105105

@@ -114,7 +114,7 @@ class ClientPlaylistApiTest {
114114
"7FjZU7XFs7P9jHI9Z0yRhK"
115115
)
116116

117-
if (platform !in listOf(Platform.ANDROID, Platform.NATIVE)) {
117+
if (currentApiPlatform !in listOf(Platform.ANDROID, Platform.NATIVE)) {
118118
api.playlists.uploadClientPlaylistCover(
119119
createdPlaylist.id,
120120
imageUrl = "https://developer.spotify.com/assets/WebAPI_intro.png"
@@ -150,7 +150,7 @@ class ClientPlaylistApiTest {
150150

151151
@Test
152152
fun testRemovePlaylistTracks() {
153-
if (platform != Platform.NATIVE) {
153+
if (currentApiPlatform != Platform.NATIVE) {
154154
runBlockingTest {
155155
if (!testPrereq()) return@runBlockingTest
156156

src/desktopMain/kotlin/com/adamratzman/spotify/utils/Misc.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* Spotify Web API, Kotlin Wrapper; MIT License, 2017-2021; Original author: Adam Ratzman */
22
package com.adamratzman.spotify.utils
33

4+
import com.soywiz.klock.DateTime
45
import kotlin.system.getTimeMillis
56

67
/**
@@ -9,3 +10,7 @@ import kotlin.system.getTimeMillis
910
public actual fun getCurrentTimeMs(): Long {
1011
return getTimeMillis()
1112
}
13+
14+
internal actual fun formatDate(format: String, date: Long): String {
15+
return DateTime.now().toString("yyyy-MM-dd'T'HH:mm:ss")
16+
}

src/desktopMain/kotlin/com/adamratzman/spotify/utils/Platform.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ package com.adamratzman.spotify.utils
44
/**
55
* Actual platform that this program is run on.
66
*/
7-
public actual val platform: Platform = Platform.NATIVE
7+
public actual val currentApiPlatform: Platform = Platform.NATIVE

src/desktopTest/kotlin/com.adamratzman.spotify/CommonImpl.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
package com.adamratzman.spotify
33

44
import kotlin.coroutines.CoroutineContext
5-
import kotlinx.cinterop.toKString
65
import kotlinx.coroutines.CoroutineScope
76
import kotlinx.coroutines.MainScope
87
import kotlinx.coroutines.runBlocking

0 commit comments

Comments
 (0)