diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt index aec1e41..c3d65b4 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt +++ b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt @@ -2,22 +2,16 @@ package ru.myitschool.work.ui.profile import android.content.DialogInterface import android.content.res.ColorStateList -import android.content.res.TypedArray -import android.graphics.Color -import android.graphics.Typeface import android.os.Bundle -import android.util.Log import android.view.View import android.widget.TextView -import android.widget.Toast +import androidx.annotation.Nullable import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat -import androidx.core.content.res.ResourcesCompat import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import androidx.swiperefreshlayout.widget.SwipeRefreshLayout -import com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes import com.squareup.picasso.Picasso import dagger.hilt.android.AndroidEntryPoint import ru.myitschool.work.R @@ -27,10 +21,10 @@ import ru.myitschool.work.ui.login.LoginDestination import ru.myitschool.work.ui.qr.result.QrResultDestination import ru.myitschool.work.ui.qr.scan.QrScanDestination import ru.myitschool.work.ui.searchuser.SearchUserDestination -import ru.myitschool.work.ui.searchuser.SearchUserFragment import ru.myitschool.work.utils.collectWhenStarted import ru.myitschool.work.utils.visibleOrGone + @AndroidEntryPoint class ProfileFragment : Fragment(R.layout.fragment_profile) { private var _binding: FragmentProfileBinding? = null @@ -54,6 +48,7 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { } } + private fun subscribe() { viewModel.state.collectWhenStarted(this) { state -> binding.showState.visibleOrGone(state is ProfileViewModel.State.Show) @@ -74,7 +69,6 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { binding.lastEntry.text = state.lastEntry binding.fullname.text = state.fullname if (state.admin){ - Toast.makeText(requireContext(), "asdasd", Toast.LENGTH_SHORT).show() binding.admin.visibility = View.VISIBLE } else { binding.admin.visibility = View.GONE @@ -177,6 +171,18 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { binding.entryList.setOnClickListener{ viewModel.clickLog()} binding.admin.setOnClickListener { viewModel.clickSearch() } } + //Вызывается перед уничтожением фрагмента + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + // Сохранение состояния + viewModel.updateUserInfo() + } + //Когда востанавлиеваетсья + override fun onViewStateRestored(@Nullable savedInstanceState: Bundle?) { + super.onViewStateRestored(savedInstanceState) + // Восстановление состояния + viewModel.updateUserInfo() + } override fun onDestroyView() { _binding = null diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.kt index e63a0f7..c11efc7 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.kt @@ -96,6 +96,7 @@ class ProfileViewModel @Inject constructor( } } + sealed interface State { data object Loading : State data class Error(