From 0e426b3006806754c4f09a6c8c07be8692c1211f Mon Sep 17 00:00:00 2001 From: Bibash Shrestha Date: Fri, 6 Dec 2024 16:46:49 +0545 Subject: [PATCH] feat: Add domain name in the activity log of the issuance #3144 --- lib/credentials/cubit/credentials_cubit.dart | 10 +- .../activity_log/view/activity_log_page.dart | 2 +- lib/dashboard/home/home/cubit/home_cubit.dart | 1 + .../polygon_id_credential_offer_view.dart | 8 +- lib/enterprise/cubit/enterprise_cubit.dart | 1 + lib/l10n/arb/app_ca.arb | 296 +++++++++-------- lib/l10n/arb/app_en.arb | 27 +- lib/l10n/arb/app_es.arb | 298 +++++++++--------- lib/l10n/arb/app_fr.arb | 24 +- lib/l10n/untranslated.json | 10 +- lib/oidc4vc/add_credential_data.dart | 1 + lib/oidc4vc/add_oidc4vc_credential.dart | 1 + lib/polygon_id/cubit/polygon_id_cubit.dart | 9 +- lib/scan/cubit/scan_cubit.dart | 1 + lib/splash/bloclisteners/blocklisteners.dart | 11 +- 15 files changed, 373 insertions(+), 327 deletions(-) diff --git a/lib/credentials/cubit/credentials_cubit.dart b/lib/credentials/cubit/credentials_cubit.dart index 3dcd43833..4b861656f 100644 --- a/lib/credentials/cubit/credentials_cubit.dart +++ b/lib/credentials/cubit/credentials_cubit.dart @@ -131,6 +131,7 @@ class CredentialsCubit extends Cubit { Future addWalletCredential({ required BlockchainType? blockchainType, required QRCodeScanCubit qrCodeScanCubit, + required Uri uri, }) async { final log = getLogger('addRequiredCredentials'); @@ -195,6 +196,7 @@ class CredentialsCubit extends Cubit { credential: walletCredential, showMessage: false, blockchainType: blockchainType, + uri: uri, ); } } @@ -291,6 +293,7 @@ class CredentialsCubit extends Cubit { Future insertCredential({ required CredentialModel credential, + required Uri uri, required BlockchainType? blockchainType, bool showMessage = true, bool showStatus = true, @@ -356,7 +359,11 @@ class CredentialsCubit extends Cubit { await activityLogManager.saveLog( LogData( type: LogType.addVC, - vcInfo: VCInfo(id: credential.id, name: credential.getName), + vcInfo: VCInfo( + id: credential.id, + name: credential.getName, + domain: uri.host, + ), ), ); @@ -584,6 +591,7 @@ class CredentialsCubit extends Cubit { credential: credential, blockchainType: cryptoAccountData.blockchainType, showMessage: false, + uri: Uri.parse(Parameters.walletIssuer), ); } } diff --git a/lib/dashboard/drawer/activity_log/view/activity_log_page.dart b/lib/dashboard/drawer/activity_log/view/activity_log_page.dart index d9010ec34..a0b3ef8e7 100644 --- a/lib/dashboard/drawer/activity_log/view/activity_log_page.dart +++ b/lib/dashboard/drawer/activity_log/view/activity_log_page.dart @@ -90,7 +90,7 @@ class _ActivityLogViewState extends State { case LogType.restoreWallet: message = l10n.restoredCredentials; case LogType.addVC: - message = l10n.addedCredential(credentialName); + message = l10n.addedCredential(credentialName, domainName); case LogType.deleteVC: message = l10n.deletedCredential(credentialName); case LogType.presentVC: diff --git a/lib/dashboard/home/home/cubit/home_cubit.dart b/lib/dashboard/home/home/cubit/home_cubit.dart index dff287d54..098381872 100644 --- a/lib/dashboard/home/home/cubit/home_cubit.dart +++ b/lib/dashboard/home/home/cubit/home_cubit.dart @@ -222,6 +222,7 @@ class HomeCubit extends Cubit { credential: credentialModel, showMessage: true, blockchainType: blockchainType, + uri: Uri.parse(url), ); await cameraCubit.incrementAcquiredCredentialsQuantity(); emit(state.copyWith(status: AppStatus.success)); diff --git a/lib/dashboard/home/tab_bar/credentials/polygon_id/polygon_id_credential_offer/view/polygon_id_credential_offer_view.dart b/lib/dashboard/home/tab_bar/credentials/polygon_id/polygon_id_credential_offer/view/polygon_id_credential_offer_view.dart index 2943e0004..f078fe27d 100644 --- a/lib/dashboard/home/tab_bar/credentials/polygon_id/polygon_id_credential_offer/view/polygon_id_credential_offer_view.dart +++ b/lib/dashboard/home/tab_bar/credentials/polygon_id/polygon_id_credential_offer/view/polygon_id_credential_offer_view.dart @@ -10,10 +10,13 @@ import 'package:flutter_bloc/flutter_bloc.dart'; class PolygonIdCredentialOfferPage extends StatelessWidget { const PolygonIdCredentialOfferPage({ super.key, + required this.uri, }); - static Route route() => MaterialPageRoute( - builder: (context) => const PolygonIdCredentialOfferPage(), + final Uri uri; + + static Route route(Uri uri) => MaterialPageRoute( + builder: (context) => PolygonIdCredentialOfferPage(uri: uri), settings: const RouteSettings(name: '/PolygonIdCredentialOffer'), ); @@ -149,6 +152,7 @@ class PolygonIdCredentialOfferPage extends StatelessWidget { onSuccess: () { context.read().addPolygonIdCredentials( qrCodeScanCubit: context.read(), + uri: uri, ); }, ); diff --git a/lib/enterprise/cubit/enterprise_cubit.dart b/lib/enterprise/cubit/enterprise_cubit.dart index f468c30de..60459413c 100644 --- a/lib/enterprise/cubit/enterprise_cubit.dart +++ b/lib/enterprise/cubit/enterprise_cubit.dart @@ -205,6 +205,7 @@ class EnterpriseCubit extends Cubit { blockchainType: credentialsCubit.walletCubit.state.currentAccount?.blockchainType, qrCodeScanCubit: qrCodeScanCubit, + uri: Uri.parse(Parameters.walletIssuer), ); emit( diff --git a/lib/l10n/arb/app_ca.arb b/lib/l10n/arb/app_ca.arb index 9f6f3250f..6f5ca360d 100644 --- a/lib/l10n/arb/app_ca.arb +++ b/lib/l10n/arb/app_ca.arb @@ -1012,156 +1012,148 @@ "theWalletIsSuspended": "La cartera està suspesa.", "jwkThumbprintP256Key": "Empremta digital JWK P-256", "walletBlockedPopupTitle": "Bloquejat 10 minuts", -"walletBlockedPopupDescription": "Massa intents fallits, la teva cartera digital està bloquejada per seguretat.\nReinicia la teva cartera per utilitzar els serveis de nou.", -"deleteMyWalletForWrontPincodeTitle": "Compte bloquejat després de 3 intents fallits", -"deleteMyWalletForWrontPincodeDescription": "Per la teva seguretat, has de reiniciar la teva cartera digital per utilitzar els nostres serveis de nou.", -"walletBloced": "Compte bloquejat", -"deleteMyWallet": "Eliminar el meu compte", -"pincodeRules": "El teu codi secret no pot ser una seqüència ni tenir 4 dígits idèntics.", -"pincodeSerie": "No pots tenir 4 dígits idèntics.", -"pincodeSequence": "No pots tenir una seqüència de 4 dígits.", -"pincodeDifferent": "Codi incorrecte.\nEls codis no són iguals.", -"codeSecretIncorrectDescription": "Ves amb compte, et queden {count} intent{plural}.", -"@codeSecretIncorrectDescription": { - "description": "", - "placeholders": { - "count": {}, - "plural": {} - } -}, -"languageSettings": "Configuració d'idioma", -"languageSettingsDescription": "Escull el teu idioma", -"themeSettings": "Configuració de tema", -"themeSettingsDescription": "Escull el teu tema", -"couldNotFindTheAccountWithThisAddress": "No s'ha pogut trobar l'adreça {address} a la teva llista de comptes.", -"@couldNotFindTheAccountWithThisAddress": { - "description": "couldNotFindTheAccountWithThisAddress", - "type": "text", - "placeholders": { - "address": {} - } -}, -"deleteAccountMessage": "Estàs segur que vols eliminar {account}?", -"@deleteAccountMessage": { - "description": "Mesage to delete crypto account", - "type": "text", - "placeholders": { - "account": {} - } -}, -"cannotDeleteCurrentAccount": "Ho sento, no pots eliminar el compte actual", -"invalidClientErrorDescription": "client_id no compleix amb client_id_scheme", -"vpFormatsNotSupportedErrorDescription": "La cartera digital no admet cap dels formats sol·licitats pel Verificador, com els inclosos en el paràmetre de registre vp_formats.", -"invalidPresentationDefinitionUriErrorDescription": "No es pot accedir a la URL de 'Definició de Presentació'.", -"toStopDisplayingThisPopupDeactivateTheDeveloperModeInTheSettings": "Per deixar de mostrar aquesta finestra, desactiva el 'mode desenvolupador' a la configuració.", -"warningDialogSubtitle": "La pàgina de recuperació conté informació sensible. Si us plau, assegura't de mantenir-la privada.", -"accountPrivateKeyAlert": "La pàgina de recuperació conté informació sensible. Si us plau, assegura't de mantenir-la privada.", -"etherlinkNetwork": "Xarxa Etherlink", -"etherlinkAccount": "Compte Etherlink", -"etherlinkAccountDescription": "Crear una nova adreça blockchain Etherlink", -"etherlinkAccountCreationCongratulations": "El teu nou compte Etherlink ha estat creat amb èxit.", -"etherlinkProofMessage": "", -"notification": "Notificació", -"notifications": "Notificacions", -"notificationTitle": "¡Benvingut a les Notificacions!\nMantingueu-vos informat d'actualitzacions importants.", -"chatRoom": "Sala de xat", -"notificationRoom": "Sala de notificacions", -"notificationSubtitle": "Habilitar per rebre notificacions", -"header": "Encapçalament", -"data": "Dades", -"noNotificationsYet": "Encara no hi ha notificacions", -"activityLog": "Registre d'Activitat", -"activityLogDescription": "Veure les teves activitats", -"walletInitialized": "Cartera digital inicialitzada", -"backupCredentials": "Credencials de còpia de seguretat", -"restoredCredentials": "Credencials restaurades", -"addedCredential": "Credencial {credential} afegida", -"@addedCredentialDescription": { - "description": "Nom de la credencial afegida", - "type": "text", - "placeholders": { - "credential": {} - } -}, -"deletedCredential": "Credencial {credential} eliminada", -"@deletedCredentialDescription": { - "description": "Nom de la credencial eliminada", - "type": "text", - "placeholders": { - "credential": {} - } -}, -"presentedCredential": "Credencial {credential} presentada a {domain}", -"@presentedCredentialDescription": { - "description": "Nom de la credencial presentada", - "type": "text", - "placeholders": { - "credential": {} - } -}, -"@presentedCredentialDomain": { - "description": "Nom del domini de la credencial", - "type": "text", - "placeholders": { - "domain": {} - } -}, -"keysImported": "Claus importades", -"approveProfileTitle": "Instal·lar configuració", -"approveProfileDescription": "Autoritzes instal·lar la configuració de {company}?", -"@approveProfileDescription": { - "description": "Nom de l'empresa propietària de la configuració", - "type": "text", - "placeholders": { - "company": {} - } -}, -"updateProfileTitle": "Actualitzar configuració", -"updateProfileDescription": "Autoritzes actualitzar la configuració de {company}?", -"@updateProfileDescription": { - "description": "Nom de l'empresa propietària de la configuració", - "type": "text", - "placeholders": { - "company": {} - } -}, -"replaceProfileTitle": "Instal·lar una nova configuració", -"replaceProfileDescription": "Autoritzes reemplaçar la configuració actual amb la de {company}?", -"@replaceProfileDescription": { - "description": "Nom de l'empresa propietària de la configuració", - "type": "text", - "placeholders": { - "company": {} - } -}, -"saveBackupCredentialSubtitle2": "Per recuperar les teves credencials necessitaràs aquest fitxer de còpia de seguretat.", -"createWallet": "Crear cartera digital", -"restoreWallet": "Restaurar cartera digital", -"showWalletRecoveryPhraseSubtitle2": "Aquesta frase de recuperació serà requerida per restaurar una cartera digital a la instal·lació.", -"documentation": "Documentació", -"restoreACryptoWallet": "Restaurar una cripto cartera", -"restoreAnAppBackup": "Restaurar una còpia de seguretat de {appName}", -"@restoreAnAppBackup": { - "description": "Nom de l'aplicació", - "type": "text", - "placeholders": { - "appName": {} - } -}, -"credentialPickShare": "Compartir", -"credentialPickTitle": "Escull la(es) credencial(s) que vols obtenir", -"credentialShareTitle": "Escull la(es) credencial(s) per compartir", -"enterYourSecretCode": "Introdueix el teu codi secret.", -"jwk": "JWK", -"typeYourPINCodeToOpenTheWallet": "Introdueix el teu codi PIN per obrir la cartera", -"typeYourPINCodeToShareTheData": "Introdueix el teu codi PIN per compartir les dades", -"typeYourPINCodeToAuthenticate": "Introdueix el teu codi PIN per autenticar-te", -"credentialIssuanceIsStillPending": "L'emissió de la credencial està pendent", -"bakerFee": "Comissió de Baker", -"storageFee": "Comissió d'emmagatzematge", -"doYouWantToSetupTheProfile": "Vols configurar el perfil?", -"french": "Français", -"spanish": "Español", -"catalan": "Català", -"english": "English" + "walletBlockedPopupDescription": "Massa intents fallits, la teva cartera digital està bloquejada per seguretat.\nReinicia la teva cartera per utilitzar els serveis de nou.", + "deleteMyWalletForWrontPincodeTitle": "Compte bloquejat després de 3 intents fallits", + "deleteMyWalletForWrontPincodeDescription": "Per la teva seguretat, has de reiniciar la teva cartera digital per utilitzar els nostres serveis de nou.", + "walletBloced": "Compte bloquejat", + "deleteMyWallet": "Eliminar el meu compte", + "pincodeRules": "El teu codi secret no pot ser una seqüència ni tenir 4 dígits idèntics.", + "pincodeSerie": "No pots tenir 4 dígits idèntics.", + "pincodeSequence": "No pots tenir una seqüència de 4 dígits.", + "pincodeDifferent": "Codi incorrecte.\nEls codis no són iguals.", + "codeSecretIncorrectDescription": "Ves amb compte, et queden {count} intent{plural}.", + "@codeSecretIncorrectDescription": { + "description": "", + "placeholders": { + "count": {}, + "plural": {} + } + }, + "languageSettings": "Configuració d'idioma", + "languageSettingsDescription": "Escull el teu idioma", + "themeSettings": "Configuració de tema", + "themeSettingsDescription": "Escull el teu tema", + "couldNotFindTheAccountWithThisAddress": "No s'ha pogut trobar l'adreça {address} a la teva llista de comptes.", + "@couldNotFindTheAccountWithThisAddress": { + "description": "couldNotFindTheAccountWithThisAddress", + "type": "text", + "placeholders": { + "address": {} + } + }, + "deleteAccountMessage": "Estàs segur que vols eliminar {account}?", + "@deleteAccountMessage": { + "description": "Mesage to delete crypto account", + "type": "text", + "placeholders": { + "account": {} + } + }, + "cannotDeleteCurrentAccount": "Ho sento, no pots eliminar el compte actual", + "invalidClientErrorDescription": "client_id no compleix amb client_id_scheme", + "vpFormatsNotSupportedErrorDescription": "La cartera digital no admet cap dels formats sol·licitats pel Verificador, com els inclosos en el paràmetre de registre vp_formats.", + "invalidPresentationDefinitionUriErrorDescription": "No es pot accedir a la URL de 'Definició de Presentació'.", + "toStopDisplayingThisPopupDeactivateTheDeveloperModeInTheSettings": "Per deixar de mostrar aquesta finestra, desactiva el 'mode desenvolupador' a la configuració.", + "warningDialogSubtitle": "La pàgina de recuperació conté informació sensible. Si us plau, assegura't de mantenir-la privada.", + "accountPrivateKeyAlert": "La pàgina de recuperació conté informació sensible. Si us plau, assegura't de mantenir-la privada.", + "etherlinkNetwork": "Xarxa Etherlink", + "etherlinkAccount": "Compte Etherlink", + "etherlinkAccountDescription": "Crear una nova adreça blockchain Etherlink", + "etherlinkAccountCreationCongratulations": "El teu nou compte Etherlink ha estat creat amb èxit.", + "etherlinkProofMessage": "", + "notification": "Notificació", + "notifications": "Notificacions", + "notificationTitle": "¡Benvingut a les Notificacions!\nMantingueu-vos informat d'actualitzacions importants.", + "chatRoom": "Sala de xat", + "notificationRoom": "Sala de notificacions", + "notificationSubtitle": "Habilitar per rebre notificacions", + "header": "Encapçalament", + "data": "Dades", + "noNotificationsYet": "Encara no hi ha notificacions", + "activityLog": "Registre d'Activitat", + "activityLogDescription": "Veure les teves activitats", + "walletInitialized": "Cartera digital inicialitzada", + "backupCredentials": "Credencials de còpia de seguretat", + "restoredCredentials": "Credencials restaurades", + "deletedCredential": "Credencial {credential} eliminada", + "@deletedCredentialDescription": { + "description": "name of the credential", + "type": "text", + "placeholders": { + "credential": {} + } + }, + "presentedCredential": "Credencial {credential} presentada a {domain}", + "@presentedCredentialDescription": { + "description": "name of the credential", + "type": "text", + "placeholders": { + "credential": {} + } + }, + "@presentedCredentialDomain": { + "description": "domain of the credential", + "type": "text", + "placeholders": { + "domain": {} + } + }, + "keysImported": "Claus importades", + "approveProfileTitle": "Instal·lar configuració", + "approveProfileDescription": "Autoritzes instal·lar la configuració de {company}?", + "@approveProfileDescription": { + "description": "Nom de l'empresa propietària de la configuració", + "type": "text", + "placeholders": { + "company": {} + } + }, + "updateProfileTitle": "Actualitzar configuració", + "updateProfileDescription": "Autoritzes actualitzar la configuració de {company}?", + "@updateProfileDescription": { + "description": "Nom de l'empresa propietària de la configuració", + "type": "text", + "placeholders": { + "company": {} + } + }, + "replaceProfileTitle": "Instal·lar una nova configuració", + "replaceProfileDescription": "Autoritzes reemplaçar la configuració actual amb la de {company}?", + "@replaceProfileDescription": { + "description": "Nom de l'empresa propietària de la configuració", + "type": "text", + "placeholders": { + "company": {} + } + }, + "saveBackupCredentialSubtitle2": "Per recuperar les teves credencials necessitaràs aquest fitxer de còpia de seguretat.", + "createWallet": "Crear cartera digital", + "restoreWallet": "Restaurar cartera digital", + "showWalletRecoveryPhraseSubtitle2": "Aquesta frase de recuperació serà requerida per restaurar una cartera digital a la instal·lació.", + "documentation": "Documentació", + "restoreACryptoWallet": "Restaurar una cripto cartera", + "restoreAnAppBackup": "Restaurar una còpia de seguretat de {appName}", + "@restoreAnAppBackup": { + "description": "Nom de l'aplicació", + "type": "text", + "placeholders": { + "appName": {} + } + }, + "credentialPickShare": "Compartir", + "credentialPickTitle": "Escull la(es) credencial(s) que vols obtenir", + "credentialShareTitle": "Escull la(es) credencial(s) per compartir", + "enterYourSecretCode": "Introdueix el teu codi secret.", + "jwk": "JWK", + "typeYourPINCodeToOpenTheWallet": "Introdueix el teu codi PIN per obrir la cartera", + "typeYourPINCodeToShareTheData": "Introdueix el teu codi PIN per compartir les dades", + "typeYourPINCodeToAuthenticate": "Introdueix el teu codi PIN per autenticar-te", + "credentialIssuanceIsStillPending": "L'emissió de la credencial està pendent", + "bakerFee": "Comissió de Baker", + "storageFee": "Comissió d'emmagatzematge", + "doYouWantToSetupTheProfile": "Vols configurar el perfil?", + "french": "Français", + "spanish": "Español", + "catalan": "Català", + "english": "English" } \ No newline at end of file diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 8d9b7c4a3..d86fc95c4 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -1076,14 +1076,6 @@ "walletInitialized": "Wallet Initialized", "backupCredentials": "Backup Credentials", "restoredCredentials": "Restored Credentials", - "addedCredential": "Added credential {credential}", - "@addedCredentialDescription": { - "description": "name of the credential", - "type": "text", - "placeholders": { - "credential": {} - } - }, "deletedCredential": "Deleted credential {credential}", "@deletedCredentialDescription": { "description": "name of the credential", @@ -1101,7 +1093,7 @@ } }, "@presentedCredentialDomain": { - "description": "name of the credential", + "description": "domain of the credential", "type": "text", "placeholders": { "domain": {} @@ -1162,5 +1154,20 @@ "storageFee": "Storage Fee", "doYouWantToSetupTheProfile": "Do you want to setup the profile?", "thisFeatureIsNotSupportedYetForEtherlink": "This feature is not supported yet for Etherlink Chain.", - "walletSecurityAndBackup": "Wallet Security and Backup" + "walletSecurityAndBackup": "Wallet Security and Backup", + "addedCredential": "Added credential {credential} by {domain}", + "@addedCredentialDescription": { + "description": "name of the credential", + "type": "text", + "placeholders": { + "credential": {} + } + }, + "@addedCredentialDomain": { + "description": "domain of the credential", + "type": "text", + "placeholders": { + "domain": {} + } + } } diff --git a/lib/l10n/arb/app_es.arb b/lib/l10n/arb/app_es.arb index ac2454d43..7cccbcaf6 100644 --- a/lib/l10n/arb/app_es.arb +++ b/lib/l10n/arb/app_es.arb @@ -1011,157 +1011,149 @@ "statusListIndex": "Índice de lista de estados", "theWalletIsSuspended": "La cartera digital está suspendida.", "jwkThumbprintP256Key": "Huella digital JWK P-256", -"walletBlockedPopupTitle": "Bloqueado 10 minutos", -"walletBlockedPopupDescription": "Demasiados intentos fallidos, tu cartera digital está bloqueada por seguridad.\nReinicia tu cartera para usar los servicios nuevamente.", -"deleteMyWalletForWrontPincodeTitle": "Cuenta bloqueada después de 3 intentos fallidos", -"deleteMyWalletForWrontPincodeDescription": "Por tu seguridad debes reiniciar tu cartera digital para usar nuestros servicios nuevamente.", -"walletBloced": "Cuenta bloqueada", -"deleteMyWallet": "Eliminar mi cuenta", -"pincodeRules": "Tu código secreto no puede ser una secuencia ni tener 4 dígitos idénticos.", -"pincodeSerie": "No puedes tener 4 dígitos idénticos.", -"pincodeSequence": "No puedes tener una secuencia de 4 dígitos.", -"pincodeDifferent": "Código incorrecto.\nLos códigos no son iguales.", -"codeSecretIncorrectDescription": "Ten cuidado, te quedan {count} intento{plural}.", -"@codeSecretIncorrectDescription": { - "description": "", - "placeholders": { - "count": {}, - "plural": {} - } -}, -"languageSettings": "Configuración de idioma", -"languageSettingsDescription": "Elige tu idioma", -"themeSettings": "Configuración de tema", -"themeSettingsDescription": "Elige tu tema", -"couldNotFindTheAccountWithThisAddress": "No se pudo encontrar la dirección {address} en tu lista de cuentas.", -"@couldNotFindTheAccountWithThisAddress": { - "description": "couldNotFindTheAccountWithThisAddress", - "type": "text", - "placeholders": { - "address": {} - } -}, -"deleteAccountMessage": "¿Estás seguro de que quieres eliminar {account}?", -"@deleteAccountMessage": { - "description": "Mesage to delete crypto account", - "type": "text", - "placeholders": { - "account": {} - } -}, -"cannotDeleteCurrentAccount": "Lo siento, no puedes eliminar la cuenta actual", -"invalidClientErrorDescription": "client_id no cumple con client_id_scheme", -"vpFormatsNotSupportedErrorDescription": "La cartera digital no admite ninguno de los formatos solicitados por el Verificador, como los incluidos en el parámetro de registro vp_formats.", -"invalidPresentationDefinitionUriErrorDescription": "No se puede acceder a la URL de 'Definición de Presentación'.", -"toStopDisplayingThisPopupDeactivateTheDeveloperModeInTheSettings": "Para dejar de mostrar esta ventana, desactiva el 'modo desarrollador' en la configuración.", -"warningDialogSubtitle": "La página de recuperación contiene información sensible. Por favor, asegúrate de mantenerla privada.", -"accountPrivateKeyAlert": "La página de recuperación contiene información sensible. Por favor, asegúrate de mantenerla privada.", -"etherlinkNetwork": "Red Etherlink", -"etherlinkAccount": "Cuenta Etherlink", -"etherlinkAccountDescription": "Crear una nueva dirección blockchain Etherlink", -"etherlinkAccountCreationCongratulations": "Tu nueva cuenta Etherlink ha sido creada exitosamente.", -"etherlinkProofMessage": "", -"notification": "Notificación", -"notifications": "Notificaciones", -"notificationTitle": "¡Bienvenido a las Notificaciones!\nMantente informado de actualizaciones importantes.", -"chatRoom": "Sala de chat", -"notificationRoom": "Sala de notificaciones", -"notificationSubtitle": "Habilitar para recibir notificaciones", -"header": "Encabezado", -"data": "Datos", -"noNotificationsYet": "Aún no hay notificaciones", -"activityLog": "Registro de Actividad", -"activityLogDescription": "Ver tus actividades", -"walletInitialized": "Cartera digital inicializada", -"backupCredentials": "Credenciales de respaldo", -"restoredCredentials": "Credenciales restauradas", -"addedCredential": "Credencial {credential} agregada", -"@addedCredentialDescription": { - "description": "Nombre de la credencial agregada", - "type": "text", - "placeholders": { - "credential": {} - } -}, -"deletedCredential": "Credencial {credential} eliminada", -"@deletedCredentialDescription": { - "description": "Nombre de la credencial eliminada", - "type": "text", - "placeholders": { - "credential": {} - } -}, -"presentedCredential": "Credencial {credential} presentada a {domain}", -"@presentedCredentialDescription": { - "description": "Nombre de la credencial presentada", - "type": "text", - "placeholders": { - "credential": {} - } -}, -"@presentedCredentialDomain": { - "description": "Nombre del dominio de la credencial", - "type": "text", - "placeholders": { - "domain": {} - } -}, -"keysImported": "Claves importadas", -"approveProfileTitle": "Instalar configuración", -"approveProfileDescription": "¿Autorizas instalar la configuración de {company}?", -"@approveProfileDescription": { - "description": "Nombre de la empresa propietaria de la configuración", - "type": "text", - "placeholders": { - "company": {} - } -}, -"updateProfileTitle": "Actualizar configuración", -"updateProfileDescription": "¿Autorizas actualizar la configuración de {company}?", -"@updateProfileDescription": { - "description": "Nombre de la empresa propietaria de la configuración", - "type": "text", - "placeholders": { - "company": {} - } -}, -"replaceProfileTitle": "Instalar una nueva configuración", -"replaceProfileDescription": "¿Autorizas reemplazar la configuración actual con la de {company}?", -"@replaceProfileDescription": { - "description": "Nombre de la empresa propietaria de la configuración", - "type": "text", - "placeholders": { - "company": {} - } -}, -"saveBackupCredentialSubtitle2": "Para recuperar tus credenciales necesitarás este archivo de respaldo.", -"createWallet": "Crear cartera digital", -"restoreWallet": "Restaurar cartera digital", -"showWalletRecoveryPhraseSubtitle2": "Esta frase de recuperación será requerida para restaurar una cartera digital en la instalación.", -"documentation": "Documentación", -"restoreACryptoWallet": "Restaurar una cripto billetera", -"restoreAnAppBackup": "Restaurar un respaldo de {appName}", -"@restoreAnAppBackup": { - "description": "Nombre de la app", - "type": "text", - "placeholders": { - "appName": {} - } -}, -"credentialPickShare": "Compartir", -"credentialPickTitle": "Elige la(s) credencial(es) que quieres obtener", -"credentialShareTitle": "Elige la(s) credencial(es) para compartir", -"enterYourSecretCode": "Introduce tu código secreto.", -"jwk": "JWK", -"typeYourPINCodeToOpenTheWallet": "Introduce tu código PIN para abrir la billetera", -"typeYourPINCodeToShareTheData": "Introduce tu código PIN para compartir los datos", -"typeYourPINCodeToAuthenticate": "Introduce tu código PIN para autenticarte", -"credentialIssuanceIsStillPending": "La emisión de la credencial está pendiente", -"bakerFee": "Comisión de Baker", -"storageFee": "Comisión de almacenamiento", -"doYouWantToSetupTheProfile": "¿Quieres configurar el perfil?", -"french": "Français", -"spanish": "Español", -"catalan": "Català", -"english": "English" + "walletBlockedPopupTitle": "Bloqueado 10 minutos", + "walletBlockedPopupDescription": "Demasiados intentos fallidos, tu cartera digital está bloqueada por seguridad.\nReinicia tu cartera para usar los servicios nuevamente.", + "deleteMyWalletForWrontPincodeTitle": "Cuenta bloqueada después de 3 intentos fallidos", + "deleteMyWalletForWrontPincodeDescription": "Por tu seguridad debes reiniciar tu cartera digital para usar nuestros servicios nuevamente.", + "walletBloced": "Cuenta bloqueada", + "deleteMyWallet": "Eliminar mi cuenta", + "pincodeRules": "Tu código secreto no puede ser una secuencia ni tener 4 dígitos idénticos.", + "pincodeSerie": "No puedes tener 4 dígitos idénticos.", + "pincodeSequence": "No puedes tener una secuencia de 4 dígitos.", + "pincodeDifferent": "Código incorrecto.\nLos códigos no son iguales.", + "codeSecretIncorrectDescription": "Ten cuidado, te quedan {count} intento{plural}.", + "@codeSecretIncorrectDescription": { + "description": "", + "placeholders": { + "count": {}, + "plural": {} + } + }, + "languageSettings": "Configuración de idioma", + "languageSettingsDescription": "Elige tu idioma", + "themeSettings": "Configuración de tema", + "themeSettingsDescription": "Elige tu tema", + "couldNotFindTheAccountWithThisAddress": "No se pudo encontrar la dirección {address} en tu lista de cuentas.", + "@couldNotFindTheAccountWithThisAddress": { + "description": "couldNotFindTheAccountWithThisAddress", + "type": "text", + "placeholders": { + "address": {} + } + }, + "deleteAccountMessage": "¿Estás seguro de que quieres eliminar {account}?", + "@deleteAccountMessage": { + "description": "Mesage to delete crypto account", + "type": "text", + "placeholders": { + "account": {} + } + }, + "cannotDeleteCurrentAccount": "Lo siento, no puedes eliminar la cuenta actual", + "invalidClientErrorDescription": "client_id no cumple con client_id_scheme", + "vpFormatsNotSupportedErrorDescription": "La cartera digital no admite ninguno de los formatos solicitados por el Verificador, como los incluidos en el parámetro de registro vp_formats.", + "invalidPresentationDefinitionUriErrorDescription": "No se puede acceder a la URL de 'Definición de Presentación'.", + "toStopDisplayingThisPopupDeactivateTheDeveloperModeInTheSettings": "Para dejar de mostrar esta ventana, desactiva el 'modo desarrollador' en la configuración.", + "warningDialogSubtitle": "La página de recuperación contiene información sensible. Por favor, asegúrate de mantenerla privada.", + "accountPrivateKeyAlert": "La página de recuperación contiene información sensible. Por favor, asegúrate de mantenerla privada.", + "etherlinkNetwork": "Red Etherlink", + "etherlinkAccount": "Cuenta Etherlink", + "etherlinkAccountDescription": "Crear una nueva dirección blockchain Etherlink", + "etherlinkAccountCreationCongratulations": "Tu nueva cuenta Etherlink ha sido creada exitosamente.", + "etherlinkProofMessage": "", + "notification": "Notificación", + "notifications": "Notificaciones", + "notificationTitle": "¡Bienvenido a las Notificaciones!\nMantente informado de actualizaciones importantes.", + "chatRoom": "Sala de chat", + "notificationRoom": "Sala de notificaciones", + "notificationSubtitle": "Habilitar para recibir notificaciones", + "header": "Encabezado", + "data": "Datos", + "noNotificationsYet": "Aún no hay notificaciones", + "activityLog": "Registro de Actividad", + "activityLogDescription": "Ver tus actividades", + "walletInitialized": "Cartera digital inicializada", + "backupCredentials": "Credenciales de respaldo", + "restoredCredentials": "Credenciales restauradas", + "deletedCredential": "Credencial {credential} eliminada", + "@deletedCredentialDescription": { + "description": "name of the credential", + "type": "text", + "placeholders": { + "credential": {} + } + }, + "presentedCredential": "Credencial {credential} presentada a {domain}", + "@presentedCredentialDescription": { + "description": "name of the credential", + "type": "text", + "placeholders": { + "credential": {} + } + }, + "@presentedCredentialDomain": { + "description": "domain of the credential", + "type": "text", + "placeholders": { + "domain": {} + } + }, + "keysImported": "Claves importadas", + "approveProfileTitle": "Instalar configuración", + "approveProfileDescription": "¿Autorizas instalar la configuración de {company}?", + "@approveProfileDescription": { + "description": "Nombre de la empresa propietaria de la configuración", + "type": "text", + "placeholders": { + "company": {} + } + }, + "updateProfileTitle": "Actualizar configuración", + "updateProfileDescription": "¿Autorizas actualizar la configuración de {company}?", + "@updateProfileDescription": { + "description": "Nombre de la empresa propietaria de la configuración", + "type": "text", + "placeholders": { + "company": {} + } + }, + "replaceProfileTitle": "Instalar una nueva configuración", + "replaceProfileDescription": "¿Autorizas reemplazar la configuración actual con la de {company}?", + "@replaceProfileDescription": { + "description": "Nombre de la empresa propietaria de la configuración", + "type": "text", + "placeholders": { + "company": {} + } + }, + "saveBackupCredentialSubtitle2": "Para recuperar tus credenciales necesitarás este archivo de respaldo.", + "createWallet": "Crear cartera digital", + "restoreWallet": "Restaurar cartera digital", + "showWalletRecoveryPhraseSubtitle2": "Esta frase de recuperación será requerida para restaurar una cartera digital en la instalación.", + "documentation": "Documentación", + "restoreACryptoWallet": "Restaurar una cripto billetera", + "restoreAnAppBackup": "Restaurar un respaldo de {appName}", + "@restoreAnAppBackup": { + "description": "Nombre de la app", + "type": "text", + "placeholders": { + "appName": {} + } + }, + "credentialPickShare": "Compartir", + "credentialPickTitle": "Elige la(s) credencial(es) que quieres obtener", + "credentialShareTitle": "Elige la(s) credencial(es) para compartir", + "enterYourSecretCode": "Introduce tu código secreto.", + "jwk": "JWK", + "typeYourPINCodeToOpenTheWallet": "Introduce tu código PIN para abrir la billetera", + "typeYourPINCodeToShareTheData": "Introduce tu código PIN para compartir los datos", + "typeYourPINCodeToAuthenticate": "Introduce tu código PIN para autenticarte", + "credentialIssuanceIsStillPending": "La emisión de la credencial está pendiente", + "bakerFee": "Comisión de Baker", + "storageFee": "Comisión de almacenamiento", + "doYouWantToSetupTheProfile": "¿Quieres configurar el perfil?", + "french": "Français", + "spanish": "Español", + "catalan": "Català", + "english": "English" } \ No newline at end of file diff --git a/lib/l10n/arb/app_fr.arb b/lib/l10n/arb/app_fr.arb index d8603817e..36e475714 100644 --- a/lib/l10n/arb/app_fr.arb +++ b/lib/l10n/arb/app_fr.arb @@ -1059,10 +1059,30 @@ "activityLogDescription": "Consultez le journal des évènements", "walletInitialized": "Wallet initialisé", "backupCredentials": "Sauvegarde des attestations", - "restoredCredentials": "Restauration des attestations", - "addedCredential": "Attestation {credential} ajoutée", + "restoredCredentials": "Restauration des attestations", "deletedCredential": "Attestation {credential} effaçée", + "@deletedCredentialDescription": { + "description": "name of the credential", + "type": "text", + "placeholders": { + "credential": {} + } + }, "presentedCredential": "Attestation présentée {credential} à {domain}", + "@presentedCredentialDescription": { + "description": "name of the credential", + "type": "text", + "placeholders": { + "credential": {} + } + }, + "@presentedCredentialDomain": { + "description": "domain of the credential", + "type": "text", + "placeholders": { + "domain": {} + } + }, "keysImported": "Keys imported", "approveProfileTitle": "Installez la configuration", "approveProfileDescription": "Confirmez l'installation de la configuration de {company}?", diff --git a/lib/l10n/untranslated.json b/lib/l10n/untranslated.json index 8418c0232..c83226685 100644 --- a/lib/l10n/untranslated.json +++ b/lib/l10n/untranslated.json @@ -5,7 +5,8 @@ "keyBindingPayload", "ebsiV4DecentralizedId", "thisFeatureIsNotSupportedYetForEtherlink", - "walletSecurityAndBackup" + "walletSecurityAndBackup", + "addedCredential" ], "es": [ @@ -14,6 +15,11 @@ "keyBindingPayload", "ebsiV4DecentralizedId", "thisFeatureIsNotSupportedYetForEtherlink", - "walletSecurityAndBackup" + "walletSecurityAndBackup", + "addedCredential" + ], + + "fr": [ + "addedCredential" ] } diff --git a/lib/oidc4vc/add_credential_data.dart b/lib/oidc4vc/add_credential_data.dart index cdde91a43..28950acbc 100644 --- a/lib/oidc4vc/add_credential_data.dart +++ b/lib/oidc4vc/add_credential_data.dart @@ -94,6 +94,7 @@ Future addCredentialData({ isLastCall && i + 1 == encodedCredentialOrFutureTokens.length, isPendingCredential: true, blockchainType: blockchainType, + uri: Uri.parse(issuer), ); } else { await addOIDC4VCCredential( diff --git a/lib/oidc4vc/add_oidc4vc_credential.dart b/lib/oidc4vc/add_oidc4vc_credential.dart index d16c97386..ad7c03ff4 100644 --- a/lib/oidc4vc/add_oidc4vc_credential.dart +++ b/lib/oidc4vc/add_oidc4vc_credential.dart @@ -204,5 +204,6 @@ Future addOIDC4VCCredential({ showStatus: false, showMessage: isLastCall, blockchainType: blockchainType, + uri: Uri.parse(issuer ?? ''), ); } diff --git a/lib/polygon_id/cubit/polygon_id_cubit.dart b/lib/polygon_id/cubit/polygon_id_cubit.dart index 415487f0a..f13379c92 100644 --- a/lib/polygon_id/cubit/polygon_id_cubit.dart +++ b/lib/polygon_id/cubit/polygon_id_cubit.dart @@ -500,6 +500,7 @@ class PolygonIdCubit extends Cubit { Future addPolygonIdCredentials({ required QRCodeScanCubit qrCodeScanCubit, + required Uri uri, }) async { try { log.i('add Claims'); @@ -509,6 +510,7 @@ class PolygonIdCubit extends Cubit { claimEntity: state.claims![i], credentialManifest: state.credentialManifests![i], qrCodeScanCubit: qrCodeScanCubit, + uri: uri, ); } emit(state.copyWith(status: AppStatus.goBack)); @@ -535,6 +537,7 @@ class PolygonIdCubit extends Cubit { required ClaimEntity claimEntity, required CredentialManifest credentialManifest, required QRCodeScanCubit qrCodeScanCubit, + required Uri uri, }) async { final jsonCredential = claimEntity.info; final credentialPreview = Credential.fromJson(jsonCredential); @@ -554,9 +557,9 @@ class PolygonIdCubit extends Cubit { ); // insert the credential in the wallet await credentialsCubit.insertCredential( - credential: credentialModel, - blockchainType: walletCubit.state.currentAccount!.blockchainType, - ); + credential: credentialModel, + blockchainType: walletCubit.state.currentAccount!.blockchainType, + uri: uri); } /// getSchemas diff --git a/lib/scan/cubit/scan_cubit.dart b/lib/scan/cubit/scan_cubit.dart index d3a30e1d1..60cdff339 100644 --- a/lib/scan/cubit/scan_cubit.dart +++ b/lib/scan/cubit/scan_cubit.dart @@ -284,6 +284,7 @@ class ScanCubit extends Cubit { credentialManifest: credentialManifest, profileType: qrCodeScanCubit.profileCubit.state.model.profileType, ), + uri: uri, ); if (credentialsToBePresented != null) { diff --git a/lib/splash/bloclisteners/blocklisteners.dart b/lib/splash/bloclisteners/blocklisteners.dart index 453b419b8..3da095811 100644 --- a/lib/splash/bloclisteners/blocklisteners.dart +++ b/lib/splash/bloclisteners/blocklisteners.dart @@ -797,8 +797,17 @@ final polygonIdBlocListener = BlocListener( if (state.polygonAction == PolygonIdAction.offer) { try { LoadingView().hide(); + + var uri = Uri.parse(''); + + try { + uri = Uri.parse(state.scannedResponse!); + } catch (e) { + // + } + await Navigator.of(context) - .push(PolygonIdCredentialOfferPage.route()); + .push(PolygonIdCredentialOfferPage.route(uri)); } catch (e) { final l10n = context.l10n; LoadingView().hide();