Implement login/logout functionality

This commit is contained in:
Kirill Kamakin
2022-04-04 16:42:22 +05:00
parent f44f54522d
commit 468aa8c02a
26 changed files with 248 additions and 184 deletions

View File

@@ -20,16 +20,12 @@ class DisclaimerFragment : Fragment(R.layout.fragment_disclaimer) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Timber.v("onCreate() called with: savedInstanceState = $savedInstanceState")
listenToAcceptStatus()
viewModel.isAccepted.observe(this, ::onAcceptStateChange)
}
private fun listenToAcceptStatus() {
Timber.v("listenToAcceptStatus() called")
viewModel.isAccepted.observe(this) {
Timber.d("listenToAcceptStatus: new status = $it")
if (it) navigateNext()
}
viewModel.checkIsAccepted()
private fun onAcceptStateChange(isAccepted: Boolean) {
Timber.v("onAcceptStateChange() called with: isAccepted = $isAccepted")
if (isAccepted) navigateNext()
}
private fun navigateNext() {

View File

@@ -1,10 +1,7 @@
package gq.kirmanak.mealient.ui.disclaimer
import androidx.annotation.VisibleForTesting
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.*
import dagger.hilt.android.lifecycle.HiltViewModel
import gq.kirmanak.mealient.data.disclaimer.DisclaimerStorage
import kotlinx.coroutines.delay
@@ -21,25 +18,15 @@ import javax.inject.Inject
class DisclaimerViewModel @Inject constructor(
private val disclaimerStorage: DisclaimerStorage
) : ViewModel() {
private val _isAccepted = MutableLiveData(false)
val isAccepted: LiveData<Boolean> = _isAccepted
val isAccepted: LiveData<Boolean>
get() = disclaimerStorage.isDisclaimerAcceptedFlow.asLiveData()
private val _okayCountDown = MutableLiveData(FULL_COUNT_DOWN_SEC)
val okayCountDown: LiveData<Int> = _okayCountDown
fun checkIsAccepted() {
Timber.v("checkIsAccepted() called")
viewModelScope.launch {
_isAccepted.value = disclaimerStorage.isDisclaimerAccepted()
}
}
fun acceptDisclaimer() {
Timber.v("acceptDisclaimer() called")
viewModelScope.launch {
disclaimerStorage.acceptDisclaimer()
_isAccepted.value = true
}
viewModelScope.launch { disclaimerStorage.acceptDisclaimer() }
}
fun startCountDown() {