Files
rider-pro-android-app/app/src/main/java/com/aiosman/ravenow/store.kt

55 lines
1.7 KiB
Kotlin
Raw Normal View History

2024-11-17 20:07:42 +08:00
package com.aiosman.ravenow
2024-07-30 16:57:25 +08:00
import android.content.Context
import android.content.SharedPreferences
2024-08-03 15:58:19 +08:00
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
2024-07-30 16:57:25 +08:00
/**
* 持久化本地数据
*/
object AppStore {
private const val STORE_VERSION = 1
private const val PREFS_NAME = "app_prefs_$STORE_VERSION"
var token: String? = null
var rememberMe: Boolean = false
private lateinit var sharedPreferences: SharedPreferences
2024-08-03 15:58:19 +08:00
lateinit var googleSignInOptions: GoogleSignInOptions
2024-07-30 16:57:25 +08:00
fun init(context: Context) {
sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
this.loadData()
2024-08-03 15:58:19 +08:00
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken("754277015802-uarf8br8k8gkpbj0t9g65bvkvit630q5.apps.googleusercontent.com") // Replace with your server's client ID
.requestEmail()
.build()
googleSignInOptions = gso
2024-10-24 23:53:51 +08:00
// apply dark mode
if (sharedPreferences.getBoolean("darkMode", false)) {
AppState.darkMode = true
2024-10-26 19:05:52 +08:00
AppState.appTheme = DarkThemeColors()
2024-10-24 23:53:51 +08:00
}
2024-10-26 19:05:52 +08:00
2024-07-30 16:57:25 +08:00
}
suspend fun saveData() {
// shared preferences
sharedPreferences.edit().apply {
putString("token", token)
putBoolean("rememberMe", rememberMe)
}.apply()
}
fun loadData() {
// shared preferences
token = sharedPreferences.getString("token", null)
rememberMe = sharedPreferences.getBoolean("rememberMe", false)
}
2024-10-24 23:53:51 +08:00
fun saveDarkMode(darkMode: Boolean) {
sharedPreferences.edit().apply {
putBoolean("darkMode", darkMode)
}.apply()
}
2024-07-30 16:57:25 +08:00
}