Skip to content
Merged
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 @@ -108,7 +108,7 @@ fun AuthenticatorScreen(
val result = viewModel.addFromUri(uri)
showQrScanner = false
if (result.isFailure) {
// TODO(i18n): promote to StringKey.OTP_SCAN_UNSUPPORTED once string table is updated.
// TODO(#101)(i18n): promote to StringKey.OTP_SCAN_UNSUPPORTED once string table is updated.
// Tracked in /tmp/i18n_agent_20E.txt (agent 20E).
Toast.makeText(
context,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ fun ExportDataRow(
val context = LocalContext.current
val state by viewModel.state.collectAsState()

// TODO(i18n): DATA_EXPORT_* keys in /tmp/i18n_agent_20B.txt
// TODO(#100)(i18n): DATA_EXPORT_* keys in /tmp/i18n_agent_20B.txt
val titleText = "Export my data"
val descriptionText =
"Download a JSON copy of all personal data we store about you (GDPR Art. 20 / KVKK)."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ fun DashboardScreen(
// Notifications bell hidden: there is no backend notifications
// feed yet, so the screen was permanently "No notifications yet".
// onNavigateToNotifications stays wired — restore the bell once a
// feed endpoint exists (see NotificationsScreen TODO).
// feed endpoint exists (see NotificationsScreen TODO(#103)).
IconButton(onClick = onNavigateToProfile) {
Icon(
imageVector = Icons.Default.Person,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class AndroidCameraService(
}
}

// TODO(camera-x): migrate from setTargetResolution(Size) to
// TODO(#107)(camera-x): migrate from setTargetResolution(Size) to
// ResolutionSelector + ResolutionStrategy (CameraX 1.3+). Requires
// picking aspect-ratio strategy and verifying biometric capture
// quality on the new path. Tracked separately from this polish sweep.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class BiometricApiImpl(
imageBytes: ByteArray,
imageName: String
): LivenessResponseDto {
// TODO(biometric-liveness): The Identity Core API exposes NO standalone
// TODO(#105)(biometric-liveness): The Identity Core API exposes NO standalone
// liveness endpoint. Server-side passive liveness is folded into
// /biometric/verify (LIVENESS_BACKEND=uniface, LIVENESS_MODE=passive on
// the processor). There is therefore nothing for a client-only liveness
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable
/**
* 1:N face-search response.
*
* TODO(biometric-search): the Identity `/biometric/search` endpoint returns an
* TODO(#104)(biometric-search): the Identity `/biometric/search` endpoint returns an
* opaque processor map ({matches:[{user_id, similarity}], ...}) rather than this
* flat shape. All fields default so deserialization never throws on the real
* payload; remap to the processor's `matches` array once the search UI needs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.fivucsas.authenticator.totp

actual fun hmacSha1(key: ByteArray, message: ByteArray): ByteArray =
TODO("iOS HMAC via CommonCrypto — tracked in docs/plans/CLIENT_APPS_PARITY.md")
TODO(#106)("iOS HMAC via CommonCrypto — tracked in docs/plans/CLIENT_APPS_PARITY.md")

actual fun hmacSha256(key: ByteArray, message: ByteArray): ByteArray =
TODO("iOS HMAC via CommonCrypto — tracked in docs/plans/CLIENT_APPS_PARITY.md")
Expand Down
Loading