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.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
|
||||
|
@ -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"
|
||||
|
@ -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>
|
@ -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>
|
@ -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>
|
Loading…
x
Reference in New Issue
Block a user