diff --git a/app/src/main/java/com/displaynone/acss/ui/scan/QrScanFragment.kt b/app/src/main/java/com/displaynone/acss/ui/scan/QrScanFragment.kt index 190afe9..4550fce 100644 --- a/app/src/main/java/com/displaynone/acss/ui/scan/QrScanFragment.kt +++ b/app/src/main/java/com/displaynone/acss/ui/scan/QrScanFragment.kt @@ -16,6 +16,8 @@ import androidx.fragment.app.viewModels import androidx.navigation.NavController import androidx.navigation.fragment.findNavController import com.displaynone.acss.R +import com.displaynone.acss.components.auth.models.user.UserServiceST +import com.displaynone.acss.components.auth.models.user.repository.dto.UserDTO import com.displaynone.acss.databinding.FragmentQrScanBinding import com.displaynone.acss.util.collectWhenStarted import com.displaynone.acss.util.visibleOrGone @@ -49,10 +51,25 @@ class QrScanFragment : Fragment(R.layout.fragment_qr_scan) { binding.close.setOnClickListener { viewModel.close() } } + private fun updateUIAccessDenied() { + binding.loading.visibleOrGone(false) + binding.viewFinder.visibleOrGone(false) + binding.close.visibleOrGone(false) + binding.error.visibleOrGone(true) + binding.error.text = requireContext().getString(R.string.access_denied) + } + private fun subscribe() { + val user: UserDTO? = UserServiceST.getInstance().getUserDTO() + if (user == null || user.isACSBlocked) { + updateUIAccessDenied() + return + } + viewModel.state.collectWhenStarted(this) { state -> binding.loading.visibleOrGone(state is QrScanViewModel.State.Loading) binding.viewFinder.visibleOrGone(state is QrScanViewModel.State.Scan) + if (!isCameraInit && state is QrScanViewModel.State.Scan) { startCamera() isCameraInit = true diff --git a/app/src/main/res/layout/fragment_qr_scan.xml b/app/src/main/res/layout/fragment_qr_scan.xml index a52eb71..95ed14b 100644 --- a/app/src/main/res/layout/fragment_qr_scan.xml +++ b/app/src/main/res/layout/fragment_qr_scan.xml @@ -4,6 +4,18 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + Error: Requested resource not found Server error: Try again later Неизвестная ошибка (%s) + Access denied \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings-ru.xml b/app/src/main/res/values-ru/strings-ru.xml index e9a5b1c..2f90354 100644 --- a/app/src/main/res/values-ru/strings-ru.xml +++ b/app/src/main/res/values-ru/strings-ru.xml @@ -36,7 +36,7 @@ Логин должен содержать не менее 3 символов Логин в систему не может начинаться с цифры Логин может содержать только буквы, цифры и символы подчеркивания - + Доступ запрещён \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index faa86ad..948f94d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -38,4 +38,5 @@ Error: Requested resource not found Server error: Try again later Неизвестная ошибка (%s) + Access denied \ No newline at end of file