Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -124,13 +124,13 @@ fun MyEidPinScreen(

val content by sharedMyEidViewModel.pinScreenContent.collectAsState()

val currentPinState = remember { mutableStateOf(byteArrayOf()) }
val newPinState = remember { mutableStateOf(byteArrayOf()) }
val newPinRepeatedState = remember { mutableStateOf(byteArrayOf()) }
val currentPinState = sharedMyEidViewModel.currentPinState
val newPinState = sharedMyEidViewModel.newPinState
val newPinRepeatedState = sharedMyEidViewModel.newPinRepeatedState

val showCurrentPinField = rememberSaveable { mutableStateOf(true) }
val showNewPinField = rememberSaveable { mutableStateOf(false) }
val showNewRepeatPinField = rememberSaveable { mutableStateOf(false) }
val showCurrentPinField = sharedMyEidViewModel.showCurrentPinField
val showNewPinField = sharedMyEidViewModel.showNewPinField
val showNewRepeatPinField = sharedMyEidViewModel.showNewRepeatPinField

val pinErrorText = rememberSaveable { mutableStateOf("") }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ fun NFCView(
}
val canNumberWithInvisibleSpaces = talkBackTextFieldValue(canNumber.text)

val pinCode = remember { mutableStateOf(byteArrayOf()) }
val pinCode = nfcViewModel.pinCode

val pinType =
if (identityAction == IdentityAction.SIGN) {
Expand Down Expand Up @@ -445,8 +445,13 @@ fun NFCView(
}
}

val isPinReset = rememberSaveable { mutableStateOf(false) }

LaunchedEffect(Unit) {
pinCode.value = byteArrayOf()
if (!isPinReset.value) {
nfcViewModel.resetPinCode()
isPinReset.value = true
}
nfcViewModel.checkNFCStatus(nfcViewModel.getNFCStatus(activity))
}

Expand Down
9 changes: 9 additions & 0 deletions app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/NFCViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ import android.content.Context
import android.content.pm.ActivityInfo
import android.os.Handler
import android.os.Looper.getMainLooper
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
Expand Down Expand Up @@ -122,6 +124,13 @@ class NFCViewModel
private val _courierCardDetected = MutableLiveData<Boolean?>(null)
val courierCardDetected: LiveData<Boolean?> = _courierCardDetected

val pinCode: MutableState<ByteArray> = mutableStateOf(byteArrayOf())

fun resetPinCode() {
pinCode.value.fill(0)
pinCode.value = byteArrayOf()
}

private val dialogMessages: ImmutableMap<SessionStatusResponseProcessStatus, Int> =
ImmutableMap
.builder<SessionStatusResponseProcessStatus, Int>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
package ee.ria.DigiDoc.viewmodel.shared

import android.app.Activity
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
Expand Down Expand Up @@ -79,6 +81,26 @@ class SharedMyEidViewModel
private val _isPinBlocked = MutableLiveData<Boolean>(false)
val isPinBlocked: LiveData<Boolean> = _isPinBlocked

val currentPinState: MutableState<ByteArray> = mutableStateOf(byteArrayOf())
val newPinState: MutableState<ByteArray> = mutableStateOf(byteArrayOf())
val newPinRepeatedState: MutableState<ByteArray> = mutableStateOf(byteArrayOf())

val showCurrentPinField: MutableState<Boolean> = mutableStateOf(true)
val showNewPinField: MutableState<Boolean> = mutableStateOf(false)
val showNewRepeatPinField: MutableState<Boolean> = mutableStateOf(false)

fun resetPinEntryState() {
currentPinState.value.fill(0.toByte())
newPinState.value.fill(0.toByte())
newPinRepeatedState.value.fill(0.toByte())
currentPinState.value = byteArrayOf()
newPinState.value = byteArrayOf()
newPinRepeatedState.value = byteArrayOf()
showCurrentPinField.value = true
showNewPinField.value = false
showNewRepeatPinField.value = false
}

fun setIdCardData(idCardData: IdCardData) {
_idCardData.postValue(idCardData)
}
Expand Down Expand Up @@ -213,6 +235,7 @@ class SharedMyEidViewModel
}

fun setScreenContent(pinVariant: PinChangeVariant) {
resetPinEntryState()
_pinScreenContent.value =
when (pinVariant) {
PinChangeVariant.ChangePin1 ->
Expand Down Expand Up @@ -388,6 +411,7 @@ class SharedMyEidViewModel
resetIsPinBlocked()
resetScreenContent()
resetPinChangingState()
resetPinEntryState()
}

fun handleBackButton() {
Expand Down
Loading