import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.asLiveData
import androidx.lifecycle.observe
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
lateinit var etName: EditText
lateinit var etAge: EditText
lateinit var tvName: TextView
lateinit var tvAge: TextView
lateinit var saveButton: Button
lateinit var userManager: UserManager
var age = 0
var name = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
etName = findViewById(R.id.et_name)
etAge = findViewById(R.id.et_age)
tvName = findViewById(R.id.tv_name)
tvAge = findViewById(R.id.tv_age)
saveButton = findViewById(R.id.btn_save)
userManager = UserManager(this)
buttonSave()
observeData()
}
private fun buttonSave() {
saveButton.setOnClickListener {
name = etName.text.toString()
age = etAge.text.toString().toInt()
GlobalScope.launch {
userManager.storeUser(age, name)
}
}
}
private fun observeData() {
this.userManager.userAgeFlow.asLiveData().observe(this) {
age = it
tvAge.text = it.toString()
}
userManager.userNameFlow.asLiveData().observe(this) {
name = it
tvName.text = it.toString()
}
}
}