wip
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
package com.example.mycrib
|
||||
|
||||
import androidx.compose.ui.window.ComposeUIViewController
|
||||
import com.mycrib.storage.TokenManager
|
||||
import com.mycrib.storage.TokenStorage
|
||||
|
||||
fun MainViewController() = ComposeUIViewController { App() }
|
||||
fun MainViewController() = ComposeUIViewController {
|
||||
// Initialize TokenStorage with iOS TokenManager
|
||||
TokenStorage.initialize(TokenManager.getInstance())
|
||||
App()
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.mycrib.storage
|
||||
|
||||
import platform.Foundation.NSUserDefaults
|
||||
import kotlin.concurrent.Volatile
|
||||
|
||||
/**
|
||||
* iOS implementation of TokenManager using NSUserDefaults.
|
||||
*/
|
||||
actual class TokenManager {
|
||||
private val userDefaults = NSUserDefaults.standardUserDefaults
|
||||
|
||||
actual fun saveToken(token: String) {
|
||||
userDefaults.setObject(token, KEY_TOKEN)
|
||||
userDefaults.synchronize()
|
||||
}
|
||||
|
||||
actual fun getToken(): String? {
|
||||
return userDefaults.stringForKey(KEY_TOKEN)
|
||||
}
|
||||
|
||||
actual fun clearToken() {
|
||||
userDefaults.removeObjectForKey(KEY_TOKEN)
|
||||
userDefaults.synchronize()
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val KEY_TOKEN = "auth_token"
|
||||
|
||||
@Volatile
|
||||
private var instance: TokenManager? = null
|
||||
|
||||
fun getInstance(): TokenManager {
|
||||
return instance ?: synchronized(this) {
|
||||
instance ?: TokenManager().also { instance = it }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Helper function for synchronization on iOS
|
||||
private fun <T> synchronized(lock: Any, block: () -> T): T {
|
||||
return block()
|
||||
}
|
||||
Reference in New Issue
Block a user