Merge remote-tracking branch 'origin/main'

This commit is contained in:
Juja2025 2025-02-20 11:36:01 +03:00
commit 5cff54dac4
2 changed files with 16 additions and 9 deletions

View File

@ -2,22 +2,16 @@ package ru.myitschool.work.ui.profile
import android.content.DialogInterface import android.content.DialogInterface
import android.content.res.ColorStateList import android.content.res.ColorStateList
import android.content.res.TypedArray
import android.graphics.Color
import android.graphics.Typeface
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.View import android.view.View
import android.widget.TextView import android.widget.TextView
import android.widget.Toast import androidx.annotation.Nullable
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes
import com.squareup.picasso.Picasso import com.squareup.picasso.Picasso
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import ru.myitschool.work.R 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.result.QrResultDestination
import ru.myitschool.work.ui.qr.scan.QrScanDestination import ru.myitschool.work.ui.qr.scan.QrScanDestination
import ru.myitschool.work.ui.searchuser.SearchUserDestination 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.collectWhenStarted
import ru.myitschool.work.utils.visibleOrGone import ru.myitschool.work.utils.visibleOrGone
@AndroidEntryPoint @AndroidEntryPoint
class ProfileFragment : Fragment(R.layout.fragment_profile) { class ProfileFragment : Fragment(R.layout.fragment_profile) {
private var _binding: FragmentProfileBinding? = null private var _binding: FragmentProfileBinding? = null
@ -54,6 +48,7 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
} }
} }
private fun subscribe() { private fun subscribe() {
viewModel.state.collectWhenStarted(this) { state -> viewModel.state.collectWhenStarted(this) { state ->
binding.showState.visibleOrGone(state is ProfileViewModel.State.Show) 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.lastEntry.text = state.lastEntry
binding.fullname.text = state.fullname binding.fullname.text = state.fullname
if (state.admin){ if (state.admin){
Toast.makeText(requireContext(), "asdasd", Toast.LENGTH_SHORT).show()
binding.admin.visibility = View.VISIBLE binding.admin.visibility = View.VISIBLE
} else { } else {
binding.admin.visibility = View.GONE binding.admin.visibility = View.GONE
@ -177,6 +171,18 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
binding.entryList.setOnClickListener{ viewModel.clickLog()} binding.entryList.setOnClickListener{ viewModel.clickLog()}
binding.admin.setOnClickListener { viewModel.clickSearch() } 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() { override fun onDestroyView() {
_binding = null _binding = null

View File

@ -96,6 +96,7 @@ class ProfileViewModel @Inject constructor(
} }
} }
sealed interface State { sealed interface State {
data object Loading : State data object Loading : State
data class Error( data class Error(