User Screens Update#4
Merged
Merged
Conversation
I have added user interfaces for mobile app.
ahmetabdullahgultekin
added a commit
that referenced
this pull request
May 30, 2026
…le (#45) * feat(mobile): wire NFC card enrollment + CI unit tests + docs reconcile WS2 P0 slice of task #4 — the fully-unblocked, concrete work. NFC enroll wiring: - NfcReadScreen now offers a "Register this card" action on a successful read → EnrollNfcCardUseCase → POST /api/v1/nfc/enroll. There was NO shared NFC enrollment client before (only the push-approval API existed). - New shared client end-to-end: NfcEnrollmentApi(Impl), NfcEnrollmentRepository(Impl), NfcEnroll/Verify DTOs, EnrollNfcCardUseCase, DI in Network/Repository/UseCase modules. - Serial normalized to the API-canonical UPPERHEX-no-separators form (normalizeCardSerial), aligned with identity-core-api (agent-api contract) so a mobile-enrolled card matches a web verify and vice-versa. Android Tag.getId() already yields canonical UPPERHEX; the normalizer guards opaque UIDs and guarantees we never emit separators. - i18n EN+TR (NFC_REGISTER_CARD_* keys), no hardcoded UI strings. CI: android-build.yml now runs :shared:test + :androidApp:testDebugUnitTest before assembling (CI previously only assembled; the Kotlin unit tests never ran). Instrumented androidTest still needs an emulator — not run in CI. Docs: corrected README "thin OAuth client" → full native client framing; docs/TODO.md records enroll as done and passive-auth/CSCA/PACE as deferred (operator-blocked: needs ICAO-PKD CSCA roots + physical test cards). Tests: NfcSerialTest (canonicalization), EnrollNfcCardUseCaseTest (normalize + blank-fast-fail + failure propagation). ./gradlew :shared:test :androidApp:testDebugUnitTest green. Deferred to follow-ups (operator-blocked / large): passive auth SOD→server + CscaCertificateStore population, PACE, linkedAccounts/accountSwitcher parity, desktop installers. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test(android): add kotlin-test-junit to androidTest classpath The instrumented androidTest source set used kotlin.test.* assertions (TotpVaultTest, ThemePreferencesTest, LoginScreenTest) but only the JVM unit-test set had kotlin-test-junit — so androidTest never compiled. Add it to androidTestImplementation. compileDebugAndroidTestKotlin now succeeds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jun 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I have added some user screens for mobile app.