import android.annotation.SuppressLint import android.app.Application import android.content.Context import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.preferencesDataStore import androidx.room.Room.databaseBuilder import com.dklaw.memorize.database.DataStoreMemorize import com.dklaw.memorize.database.ScoreDatabase class MainApplication : Application() { init { instance = this } companion object { private var instance: MainApplication? = null fun applicationContext() : Context { return instance!!.applicationContext } lateinit var scoreDatabase: ScoreDatabase // Datastore 변수 @SuppressLint("StaticFieldLeak") private lateinit var dataStore: DataStoreMemorize fun getThis() : MainApplication { return instance!! } fun getDateStore() : DataStoreMemorize = dataStore } override fun onCreate() { super.onCreate() // initialize for any // Use ApplicationContext. val context: Context = MainApplication.applicationContext() // Datastore single Instance dataStore = DataStoreMemorize(this) // Database Initialize scoreDatabase = databaseBuilder( applicationContext, ScoreDatabase::class.java, ScoreDatabase.NAME ).build() } }