From 1d4689145610d510672fd82dd86d148f61735a85 Mon Sep 17 00:00:00 2001 From: DKaverznev Date: Wed, 19 Feb 2025 10:33:08 +0300 Subject: [PATCH] =?UTF-8?q?code:=20=D0=92=D1=80=D0=BE=D0=B4=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=B0=D0=BA=20=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=203=20?= =?UTF-8?q?=D1=8D=D0=BA=D1=80=D0=B0=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work/ui/result/ResultFragment.kt | 35 +++++++++++-------- app/src/main/res/values/strings.xml | 10 +++--- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/ru/myitschool/work/ui/result/ResultFragment.kt b/app/src/main/java/ru/myitschool/work/ui/result/ResultFragment.kt index 6b77e50..7032f34 100644 --- a/app/src/main/java/ru/myitschool/work/ui/result/ResultFragment.kt +++ b/app/src/main/java/ru/myitschool/work/ui/result/ResultFragment.kt @@ -6,13 +6,13 @@ import android.view.View import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import androidx.navigation.fragment.findNavController import dagger.hilt.android.AndroidEntryPoint import ru.myitschool.work.R -import androidx.navigation.fragment.findNavController -import androidx.transition.Visibility +import ru.myitschool.work.api.scan.CodeJson import ru.myitschool.work.databinding.FragmentScanResultBinding -import ru.myitschool.work.ui.login.LoginViewModel import ru.myitschool.work.ui.main.MainDestination +import ru.myitschool.work.ui.qr.scan.QrScanDestination import ru.myitschool.work.utils.AuthPreferences import ru.myitschool.work.utils.collectWhenStarted import ru.myitschool.work.utils.visibleOrGone @@ -22,40 +22,47 @@ class ResultFragment : Fragment(R.layout.fragment_scan_result) { private var _binding: FragmentScanResultBinding? = null private val binding: FragmentScanResultBinding get() = _binding!! private val viewModel: ResultViewModel by viewModels() + private lateinit var authPreferences: AuthPreferences override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + authPreferences = AuthPreferences(requireContext()) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentScanResultBinding.bind(view) - setupLoginComponents() + setupOpenComponents() + observeOpenState() } - private fun setupLoginComponents() { + private fun setupOpenComponents() { binding.apply { result.visibleOrGone(false) successIcon.visibleOrGone(false) + + close.setOnClickListener { + navigateToMainScreen() + } } + + val qrData = QrScanDestination.getDataIfExist(arguments ?: Bundle()) + authPreferences.getLogin()?.let { viewModel.open(it, CodeJson(qrData)) } } - private fun observeLoginState() { + private fun observeOpenState() { viewModel.state.collectWhenStarted(this) { state -> when (state) { is ResultViewModel.ResultState.Loading -> { binding.result.visibleOrGone(false) binding.successIcon.visibleOrGone(false) binding.error.visibleOrGone(false) - binding.loading.visibleOrGone(true) } is ResultViewModel.ResultState.Success -> { binding.result.visibleOrGone(true) binding.successIcon.visibleOrGone(true) - binding.error.visibleOrGone(false) binding.loading.visibleOrGone(false) } @@ -63,19 +70,17 @@ class ResultFragment : Fragment(R.layout.fragment_scan_result) { binding.result.visibleOrGone(false) binding.successIcon.visibleOrGone(false) binding.loading.visibleOrGone(false) - binding.error.visibleOrGone(true) } is ResultViewModel.ResultState.Error -> { binding.loading.visibleOrGone(false) binding.result.apply { visibleOrGone(true) - text = RiootoString(R.string.userNotFing) + text = getText(R.string.userNotFing) } - Log.d("Authentication", "Ошибка сканирования") + Log.d("Authentication", getText(R.string.userNotFing).toString()) } - - LoginViewModel.LoginState.Initial -> binding.loading.visibleOrGone(false) + ResultViewModel.ResultState.Initial -> binding.loading.visibleOrGone(false) } } } @@ -88,7 +93,7 @@ class ResultFragment : Fragment(R.layout.fragment_scan_result) { } } catch (e: Exception) { Log.e("ResultFragment", "Navigation error", e) - Toast.makeText(context, "Ошибка перехода", Toast.LENGTH_SHORT).show() + Toast.makeText(context, getText(R.string.errorGoText).toString(), Toast.LENGTH_SHORT).show() } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 72ca2f9..1ec586d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ NTO Pass - логин + Логин Добро пожаловать! Введите свой логин для авторизации в приложении @@ -17,10 +17,10 @@ photo Вход выполнен успешно Закрыть/Close + Ошибка перехода Ошибка входа Последний вход 12.12.1212 - Время сканирования 12:12 - Идентификатор - Тип прохода - пароль + Ошибка сервера + Пользователь не найден + Пароль \ No newline at end of file