Skip to content

Commit f495832

Browse files
NFC-150 Update Web eID card mismatch error wording
1 parent a10b5a3 commit f495832

8 files changed

Lines changed: 42 additions & 16 deletions

File tree

app/src/androidTest/kotlin/ee/ria/DigiDoc/domain/preferences/DataStoreTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ import ee.ria.DigiDoc.network.siva.SivaSetting
4040
import kotlinx.coroutines.runBlocking
4141
import org.junit.Assert.assertEquals
4242
import org.junit.Assert.assertFalse
43-
import org.junit.Assert.assertNull
4443
import org.junit.Assert.assertTrue
4544
import org.junit.Before
4645
import org.junit.BeforeClass

app/src/main/kotlin/ee/ria/DigiDoc/MainActivity.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import androidx.activity.ComponentActivity
2929
import androidx.activity.compose.setContent
3030
import androidx.activity.enableEdgeToEdge
3131
import androidx.core.app.ActivityCompat
32+
import androidx.core.net.toUri
3233
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
3334
import androidx.lifecycle.DefaultLifecycleObserver
3435
import androidx.lifecycle.LifecycleOwner
@@ -58,7 +59,6 @@ import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil
5859
import kotlinx.coroutines.launch
5960
import java.util.logging.Logger
6061
import javax.inject.Inject
61-
import androidx.core.net.toUri
6262

6363
@AndroidEntryPoint
6464
class MainActivity :
@@ -204,14 +204,17 @@ class MainActivity :
204204
private fun isDarkModeEnabled(dataStore: DataStore): Boolean = dataStore.getThemeSetting() == ThemeSetting.DARK
205205

206206
private fun resolveBrowserPackage(intent: Intent): String? =
207-
(intent
208-
.getStringExtra("com.android.browser.application_id")
209-
?.takeIf { it.isNotEmpty() }
210-
?: ActivityCompat.getReferrer(this)?.host) // TODO: This needs testing with App Link
207+
(
208+
intent
209+
.getStringExtra("com.android.browser.application_id")
210+
?.takeIf { it.isNotEmpty() }
211+
?: ActivityCompat.getReferrer(this)?.host
212+
) // TODO: This needs testing with App Link
211213
?.takeIf { pkg ->
212-
val browseIntent = Intent(Intent.ACTION_VIEW, "https://".toUri()).apply {
213-
setPackage(pkg)
214-
}
214+
val browseIntent =
215+
Intent(Intent.ACTION_VIEW, "https://".toUri()).apply {
216+
setPackage(pkg)
217+
}
215218
@Suppress("QueryPermissionsNeeded")
216219
packageManager.resolveActivity(browseIntent, PackageManager.MATCH_DEFAULT_ONLY) != null
217220
}

app/src/main/kotlin/ee/ria/DigiDoc/utils/WebEidUriUtil.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,16 @@ package ee.ria.DigiDoc.utils
2323

2424
import android.net.Uri
2525

26-
enum class WebEidOperation(val operation: String) {
26+
enum class WebEidOperation(
27+
val operation: String,
28+
) {
2729
AUTH("auth"),
2830
CERT("cert"),
29-
SIGN("sign");
31+
SIGN("sign"),
32+
;
3033

3134
companion object {
32-
fun fromOperation(operation: String): WebEidOperation? =
33-
entries.find { it.operation == operation }
35+
fun fromOperation(operation: String): WebEidOperation? = entries.find { it.operation == operation }
3436
}
3537
}
3638

app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/NFCViewModel.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,9 @@ class NFCViewModel
657657

658658
if (!expectedCert.contentEquals(signerCert)) {
659659
_certMismatch.postValue(true)
660-
throw IllegalStateException("Web eID signing certificate mismatch")
660+
throw IllegalStateException(
661+
"Web eID card does not match the card used for authentication",
662+
)
661663
}
662664
}
663665

@@ -773,6 +775,15 @@ class NFCViewModel
773775
)
774776
}
775777

778+
private fun showWebEidAuthenticationCardMismatchError(e: Exception) {
779+
_errorState.postValue(Triple(R.string.web_eid_signing_card_mismatch, null, null))
780+
errorLog(
781+
logTag,
782+
"Web eID signing failed - selected ID card does not match the card used for authentication",
783+
e,
784+
)
785+
}
786+
776787
private fun showTechnicalError(e: Exception) {
777788
_errorState.postValue(Triple(R.string.signature_update_nfc_technical_error, null, null))
778789
errorLog(logTag, "Unable to perform with NFC: ${e.message}", e)
@@ -863,6 +874,11 @@ class NFCViewModel
863874
true
864875
}
865876

877+
message.contains("Web eID card does not match the card used for authentication") -> {
878+
showWebEidAuthenticationCardMismatchError(ex)
879+
true
880+
}
881+
866882
else -> false
867883
}.also {
868884
errorLog(logTag, "Exception: ${ex.message}", ex)

app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/WebEidViewModel.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import android.net.Uri
2525
import androidx.lifecycle.ViewModel
2626
import dagger.hilt.android.lifecycle.HiltViewModel
2727
import ee.ria.DigiDoc.R
28-
import ee.ria.DigiDoc.domain.preferences.DataStore
2928
import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil.Companion.errorLog
3029
import ee.ria.DigiDoc.webEid.WebEidAuthService
3130
import ee.ria.DigiDoc.webEid.WebEidSignService

app/src/main/res/values-et/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,4 +683,5 @@
683683
<string name="web_eid_request_error">Päringu viga</string>
684684
<string name="web_eid_invalid_auth_request_error">Vigane autentimispäring</string>
685685
<string name="signature_update_nfc_detection_timeout">Kaarti ei tuvastatud. Palun alusta uuesti.</string>
686+
<string name="web_eid_signing_card_mismatch">Valitud ID-kaart ei ühti autentimisel kasutatud kaardiga. Palun kasuta sama ID-kaarti.</string>
686687
</resources>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,4 +683,5 @@
683683
<string name="web_eid_request_error">Request error</string>
684684
<string name="web_eid_invalid_auth_request_error">Invalid authentication request</string>
685685
<string name="signature_update_nfc_detection_timeout">Card not detected. Please start again.</string>
686+
<string name="web_eid_signing_card_mismatch">The selected ID card does not match the card used for authentication. Please use the same ID card.</string>
686687
</resources>

utils-lib/src/main/kotlin/ee/ria/DigiDoc/utilsLib/file/FileUtil.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,12 @@ object FileUtil {
475475
intent.data?.takeIf { it.scheme in ALLOWED_FILE_SCHEMES }?.let { externalFileUris.add(it) }
476476
intent.clipData?.let { clipData ->
477477
for (i in 0 until clipData.itemCount) {
478-
clipData.getItemAt(i)?.uri?.takeIf { it.scheme in ALLOWED_FILE_SCHEMES }?.let { externalFileUris.add(it) }
478+
clipData
479+
.getItemAt(
480+
i,
481+
)?.uri
482+
?.takeIf { it.scheme in ALLOWED_FILE_SCHEMES }
483+
?.let { externalFileUris.add(it) }
479484
}
480485
}
481486
return externalFileUris

0 commit comments

Comments
 (0)