From c21f4ee5827290ee61c72701751e69a6251f5552 Mon Sep 17 00:00:00 2001
From: Serafim_Pankin <serafimpankin@yandex.ru>
Date: Thu, 20 Feb 2025 16:09:27 +0300
Subject: [PATCH 1/3] redesign button

---
 app/src/main/res/layout/fragment_profile.xml | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml
index a2de7e5..ff5e9de 100644
--- a/app/src/main/res/layout/fragment_profile.xml
+++ b/app/src/main/res/layout/fragment_profile.xml
@@ -16,15 +16,16 @@
             android:layout_height="match_parent"
             android:background="?android:attr/colorBackground">
             <ImageButton
-                android:visibility="invisible"
                 android:id="@+id/back_to_search"
                 android:layout_width="50dp"
-                android:padding="10dp"
-                android:layout_marginTop="10dp"
-
-                android:src="@drawable/ic_back"
                 android:layout_height="50dp"
-                tools:ignore="MissingConstraints" />
+                android:padding="10dp"
+                android:backgroundTint="@color/primary"
+            android:src="@drawable/ic_back"
+            android:tint="@android:color/white"
+            android:layout_marginTop="10dp"
+            app:cornerRadius="25dp"
+            tools:ignore="MissingConstraints,UseAppTint" />
             <TextView
                 android:padding="15dp"
                 android:visibility="gone"

From 40ed5d595818c9e92f8a88aadb7d4af26993e994 Mon Sep 17 00:00:00 2001
From: Serafim_Pankin <serafimpankin@yandex.ru>
Date: Thu, 20 Feb 2025 16:16:12 +0300
Subject: [PATCH 2/3] redesign button

---
 app/src/main/res/layout/fragment_profile.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml
index ff5e9de..27439c0 100644
--- a/app/src/main/res/layout/fragment_profile.xml
+++ b/app/src/main/res/layout/fragment_profile.xml
@@ -25,6 +25,7 @@
             android:tint="@android:color/white"
             android:layout_marginTop="10dp"
             app:cornerRadius="25dp"
+                android:visibility="invisible"
             tools:ignore="MissingConstraints,UseAppTint" />
             <TextView
                 android:padding="15dp"

From f84302e4a2baaa533930d612f18662313e18d67b Mon Sep 17 00:00:00 2001
From: Universall <universall@server.com>
Date: Thu, 20 Feb 2025 16:17:24 +0300
Subject: [PATCH 3/3] Qr scan access controll

---
 .../displaynone/acss/ui/scan/QrScanFragment.kt  | 17 +++++++++++++++++
 app/src/main/res/layout/fragment_qr_scan.xml    | 12 ++++++++++++
 app/src/main/res/values-en/strings-en.xml       |  1 +
 app/src/main/res/values-ru/strings-ru.xml       |  2 +-
 app/src/main/res/values/strings.xml             |  1 +
 5 files changed, 32 insertions(+), 1 deletion(-)

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">
 
+    <TextView
+        android:id="@+id/error"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="15dp"
+        android:background="?android:attr/colorBackground"
+        android:gravity="center"
+        android:letterSpacing="0.05"
+        android:textColor="?attr/colorOnBackground"
+        android:textSize="24sp"
+        android:visibility="gone" />
+
     <androidx.camera.view.PreviewView
         android:id="@+id/viewFinder"
         android:layout_width="0dp"
diff --git a/app/src/main/res/values-en/strings-en.xml b/app/src/main/res/values-en/strings-en.xml
index f979947..c6cc7ff 100644
--- a/app/src/main/res/values-en/strings-en.xml
+++ b/app/src/main/res/values-en/strings-en.xml
@@ -35,5 +35,6 @@
     <string name="error_404">Error: Requested resource not found</string>
     <string name="error_500">Server error: Try again later</string>
     <string name="error_unknown">Неизвестная ошибка (%s)</string>
+    <string name="access_denied">Access denied</string>
 
 </resources>
\ 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 @@
  <string name="error_login_too_short">Логин должен содержать не менее 3 символов</string>
  <string name="error_login_starts_with_digit">Логин в систему не может начинаться с цифры</string>
  <string name="error_login_invalid_characters">Логин может содержать только буквы, цифры и символы подчеркивания</string>
-
+    <string name="access_denied">Доступ запрещён</string>
 
 
 </resources>
\ 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 @@
     <string name="error_404">Error: Requested resource not found</string>
     <string name="error_500">Server error: Try again later</string>
     <string name="error_unknown">Неизвестная ошибка (%s)</string>
+    <string name="access_denied">Access denied</string>
 </resources>
\ No newline at end of file