diff --git a/app/src/main/java/gq/kirmanak/mealient/MainActivity.kt b/app/src/main/java/gq/kirmanak/mealient/MainActivity.kt index 33ef85e..b0ba7fd 100644 --- a/app/src/main/java/gq/kirmanak/mealient/MainActivity.kt +++ b/app/src/main/java/gq/kirmanak/mealient/MainActivity.kt @@ -5,11 +5,9 @@ import android.view.Menu import android.view.MenuItem import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.lifecycle.lifecycleScope import dagger.hilt.android.AndroidEntryPoint import gq.kirmanak.mealient.databinding.MainActivityBinding import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel -import kotlinx.coroutines.flow.collectLatest import timber.log.Timber @AndroidEntryPoint @@ -29,10 +27,8 @@ class MainActivity : AppCompatActivity() { private fun listenToAuthStatuses() { Timber.v("listenToAuthStatuses() called") - lifecycleScope.launchWhenCreated { - authViewModel.authenticationStatuses().collectLatest { - changeAuthStatus(it) - } + authViewModel.authenticationStatuses().observe(this) { + changeAuthStatus(it) } } diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationFragment.kt index 9866880..bfc8106 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationFragment.kt @@ -12,7 +12,6 @@ import androidx.navigation.fragment.findNavController import com.google.android.material.textfield.TextInputLayout import dagger.hilt.android.AndroidEntryPoint import gq.kirmanak.mealient.databinding.FragmentAuthenticationBinding -import kotlinx.coroutines.flow.collectLatest import timber.log.Timber @AndroidEntryPoint @@ -30,11 +29,9 @@ class AuthenticationFragment : Fragment() { private fun listenToAuthenticationStatuses() { Timber.d("listenToAuthenticationStatuses() called") - lifecycleScope.launchWhenCreated { - viewModel.authenticationStatuses().collectLatest { - Timber.d("listenToAuthenticationStatuses: new status = $it") - if (it) navigateToRecipes() - } + viewModel.authenticationStatuses().observe(this) { + Timber.d("listenToAuthenticationStatuses: new status = $it") + if (it) navigateToRecipes() } } diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationViewModel.kt b/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationViewModel.kt index de03fad..9849100 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationViewModel.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationViewModel.kt @@ -1,11 +1,12 @@ package gq.kirmanak.mealient.ui.auth +import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel +import androidx.lifecycle.asLiveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import gq.kirmanak.mealient.data.auth.AuthRepo import gq.kirmanak.mealient.data.recipes.RecipeRepo -import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.launch import timber.log.Timber import javax.inject.Inject @@ -24,9 +25,9 @@ class AuthenticationViewModel @Inject constructor( authRepo.authenticate(username, password, baseUrl) } - fun authenticationStatuses(): Flow { + fun authenticationStatuses(): LiveData { Timber.v("authenticationStatuses() called") - return authRepo.authenticationStatuses() + return authRepo.authenticationStatuses().asLiveData() } fun logout() { diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesFragment.kt index 917ea66..b5b27c6 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesFragment.kt @@ -16,7 +16,6 @@ import gq.kirmanak.mealient.ui.SwipeRefreshLayoutHelper.listenToRefreshRequests import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.collect -import kotlinx.coroutines.flow.collectLatest import timber.log.Timber @ExperimentalCoroutinesApi @@ -56,11 +55,9 @@ class RecipesFragment : Fragment() { private fun listenToAuthStatuses() { Timber.v("listenToAuthStatuses() called") - lifecycleScope.launchWhenCreated { - authViewModel.authenticationStatuses().collectLatest { - Timber.v("listenToAuthStatuses: new auth status = $it") - if (!it) navigateToAuthFragment() - } + authViewModel.authenticationStatuses().observe(this) { + Timber.v("listenToAuthStatuses: new auth status = $it") + if (!it) navigateToAuthFragment() } } diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoFragment.kt index 26a2cc4..4374989 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoFragment.kt @@ -6,14 +6,12 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels -import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.LinearLayoutManager import dagger.hilt.android.AndroidEntryPoint import gq.kirmanak.mealient.databinding.FragmentRecipeInfoBinding import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel -import kotlinx.coroutines.flow.collectLatest import timber.log.Timber @AndroidEntryPoint @@ -59,11 +57,9 @@ class RecipeInfoFragment : Fragment() { private fun listenToAuthStatuses() { Timber.v("listenToAuthStatuses() called") - lifecycleScope.launchWhenCreated { - authViewModel.authenticationStatuses().collectLatest { - Timber.v("listenToAuthStatuses: new auth status = $it") - if (!it) navigateToAuthFragment() - } + authViewModel.authenticationStatuses().observe(this) { + Timber.v("listenToAuthStatuses: new auth status = $it") + if (!it) navigateToAuthFragment() } }