Qr scan access controll
This commit is contained in:
parent
c8de4bbfe4
commit
f84302e4a2
@ -16,6 +16,8 @@ import androidx.fragment.app.viewModels
|
|||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import com.displaynone.acss.R
|
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.databinding.FragmentQrScanBinding
|
||||||
import com.displaynone.acss.util.collectWhenStarted
|
import com.displaynone.acss.util.collectWhenStarted
|
||||||
import com.displaynone.acss.util.visibleOrGone
|
import com.displaynone.acss.util.visibleOrGone
|
||||||
@ -49,10 +51,25 @@ class QrScanFragment : Fragment(R.layout.fragment_qr_scan) {
|
|||||||
binding.close.setOnClickListener { viewModel.close() }
|
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() {
|
private fun subscribe() {
|
||||||
|
val user: UserDTO? = UserServiceST.getInstance().getUserDTO()
|
||||||
|
if (user == null || user.isACSBlocked) {
|
||||||
|
updateUIAccessDenied()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
viewModel.state.collectWhenStarted(this) { state ->
|
viewModel.state.collectWhenStarted(this) { state ->
|
||||||
binding.loading.visibleOrGone(state is QrScanViewModel.State.Loading)
|
binding.loading.visibleOrGone(state is QrScanViewModel.State.Loading)
|
||||||
binding.viewFinder.visibleOrGone(state is QrScanViewModel.State.Scan)
|
binding.viewFinder.visibleOrGone(state is QrScanViewModel.State.Scan)
|
||||||
|
|
||||||
if (!isCameraInit && state is QrScanViewModel.State.Scan) {
|
if (!isCameraInit && state is QrScanViewModel.State.Scan) {
|
||||||
startCamera()
|
startCamera()
|
||||||
isCameraInit = true
|
isCameraInit = true
|
||||||
|
@ -4,6 +4,18 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="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
|
<androidx.camera.view.PreviewView
|
||||||
android:id="@+id/viewFinder"
|
android:id="@+id/viewFinder"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -35,5 +35,6 @@
|
|||||||
<string name="error_404">Error: Requested resource not found</string>
|
<string name="error_404">Error: Requested resource not found</string>
|
||||||
<string name="error_500">Server error: Try again later</string>
|
<string name="error_500">Server error: Try again later</string>
|
||||||
<string name="error_unknown">Неизвестная ошибка (%s)</string>
|
<string name="error_unknown">Неизвестная ошибка (%s)</string>
|
||||||
|
<string name="access_denied">Access denied</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@ -36,7 +36,7 @@
|
|||||||
<string name="error_login_too_short">Логин должен содержать не менее 3 символов</string>
|
<string name="error_login_too_short">Логин должен содержать не менее 3 символов</string>
|
||||||
<string name="error_login_starts_with_digit">Логин в систему не может начинаться с цифры</string>
|
<string name="error_login_starts_with_digit">Логин в систему не может начинаться с цифры</string>
|
||||||
<string name="error_login_invalid_characters">Логин может содержать только буквы, цифры и символы подчеркивания</string>
|
<string name="error_login_invalid_characters">Логин может содержать только буквы, цифры и символы подчеркивания</string>
|
||||||
|
<string name="access_denied">Доступ запрещён</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@ -38,4 +38,5 @@
|
|||||||
<string name="error_404">Error: Requested resource not found</string>
|
<string name="error_404">Error: Requested resource not found</string>
|
||||||
<string name="error_500">Server error: Try again later</string>
|
<string name="error_500">Server error: Try again later</string>
|
||||||
<string name="error_unknown">Неизвестная ошибка (%s)</string>
|
<string name="error_unknown">Неизвестная ошибка (%s)</string>
|
||||||
|
<string name="access_denied">Access denied</string>
|
||||||
</resources>
|
</resources>
|
Loading…
x
Reference in New Issue
Block a user