package com.aiosman.ravenow

import android.content.Context
import android.content.SharedPreferences
import com.google.android.gms.auth.api.signin.GoogleSignInOptions

/**
 * 持久化本地数据
 */
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
    var isGuest: Boolean = false
    private lateinit var sharedPreferences: SharedPreferences
    lateinit var googleSignInOptions: GoogleSignInOptions
    fun init(context: Context) {
        sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
        this.loadData()

        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
        // apply dark mode
        if (sharedPreferences.getBoolean("darkMode", false)) {
            AppState.darkMode = true
            AppState.appTheme = DarkThemeColors()
        }

    }

    suspend fun saveData() {
        // shared preferences
        sharedPreferences.edit().apply {
            putString("token", token)
            putBoolean("rememberMe", rememberMe)
            putBoolean("isGuest", isGuest)
        }.apply()
    }

    fun loadData() {
        // shared preferences
        token = sharedPreferences.getString("token", null)
        rememberMe = sharedPreferences.getBoolean("rememberMe", false)
        isGuest = sharedPreferences.getBoolean("isGuest", false)
    }

    fun saveDarkMode(darkMode: Boolean) {
        sharedPreferences.edit().apply {
            putBoolean("darkMode", darkMode)
        }.apply()
    }


}