Skip to content

Commit

Permalink
Merge branch 'master' into IOPID-2579-add-portal-links
Browse files Browse the repository at this point in the history
  • Loading branch information
Ladirico authored Jan 10, 2025
2 parents 01c184c + 4c8f237 commit 971f2c8
Show file tree
Hide file tree
Showing 27 changed files with 444 additions and 172 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

## [2.80.0-rc.10](https://github.com/pagopa/io-app/compare/2.80.0-rc.9...2.80.0-rc.10) (2025-01-09)


### Chores

* **IT Wallet:** [[SIW-1933](https://pagopa.atlassian.net/browse/SIW-1933)] Handle Trustmark QR code generation failures ([#6558](https://github.com/pagopa/io-app/issues/6558)) ([b207270](https://github.com/pagopa/io-app/commit/b207270adeb6b14bee81ee1e5a02344ff1b98aca))
* **IT Wallet:** [[SIW-1949](https://pagopa.atlassian.net/browse/SIW-1949)] Display email address in the same line in issuance failure screen ([#6589](https://github.com/pagopa/io-app/issues/6589)) ([22ca3e6](https://github.com/pagopa/io-app/commit/22ca3e692394a3d5395646f6f299293e4f62f480))

## [2.80.0-rc.9](https://github.com/pagopa/io-app/compare/2.80.0-rc.8...2.80.0-rc.9) (2025-01-08)


Expand Down
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@ android {
applicationId "it.pagopa.io.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 100154904
versionName "2.80.0.9"
versionCode 100154905
versionName "2.80.0.10"
multiDexEnabled true
// The resConfigs attribute will remove all not required localized resources while building the application,
// including the localized resources from libraries.
Expand Down
6 changes: 3 additions & 3 deletions ios/ItaliaApp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -802,7 +802,7 @@
CODE_SIGN_ENTITLEMENTS = ItaliaApp/ItaliaApp.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 9;
CURRENT_PROJECT_VERSION = 10;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = M2X5YQ4BJ7;
ENABLE_BITCODE = NO;
Expand Down Expand Up @@ -839,7 +839,7 @@
CODE_SIGN_ENTITLEMENTS = ItaliaApp/ItaliaApp.entitlements;
CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CURRENT_PROJECT_VERSION = 9;
CURRENT_PROJECT_VERSION = 10;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = M2X5YQ4BJ7;
ENABLE_BITCODE = NO;
Expand Down Expand Up @@ -1081,7 +1081,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 9;
CURRENT_PROJECT_VERSION = 10;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = M2X5YQ4BJ7;
Expand Down
2 changes: 1 addition & 1 deletion ios/ItaliaApp/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>9</string>
<string>10</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>
Expand Down
2 changes: 1 addition & 1 deletion ios/ItaliaAppTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>9</string>
<string>10</string>
</dict>
</plist>
17 changes: 8 additions & 9 deletions locales/de/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,8 +277,8 @@ inbox:
enableButton: "Posteingang aktivieren"
disableButton: "Posteingang deaktivieren"
enableCallToActionDescription: "Aktiviere den Posteingang, um Mitteilungen anzusehen"
settings:
informativeBanner:
settings:
informativeBanner:
content: "Suchst du dein Profil? Wir haben es verschoben, es befindet sich jetzt in der oberen rechten Ecke!"
action: "Geh zu den Einstellungen"
profile:
Expand Down Expand Up @@ -442,7 +442,7 @@ profile:
body: "Wenn du dies bestätigst, können wir dir nicht gezielt helfen, da uns möglicherweise die notwendigen Daten zur Lösung des Problems fehlen."
whyBottomSheet:
title: "Warum wir Daten erfassen"
body: "Wir sammeln keine Daten für Marketingzwecke. \n\nWir verwenden Tools, die es uns ermöglichen, Daten darüber aufzuzeichnen, wie du die App nutzt, um **dir einen besseren Service zu bieten** und **dich bei Bedarf zu unterstützen**."
body: "Wir sammeln keine Daten für Marketingzwecke. \n\nWir verwenden Tools, die es uns ermöglichen, Daten darüber aufzuzeichnen, wie du die App nutzt, um **dir einen besseren Service zu bieten** und **dich bei Bedarf zu unterstützen**."
securityBottomSheet:
title: "Was ist eine Pseudonymisierung?"
body: "Sie ist die Verarbeitung personenbezogener Daten in einer Weise, dass die personenbezogener Daten ohne Hinzuziehung zusätzlicher Informationen nicht mehr einer bestimmten betroffenen Person zugeordnet werden können, sofern diese zusätzlichen Informationen gesondert aufbewahrt werden und technischen und organisatorischen Maßnahmen unterliegen, die gewährleisten, dass diese personenbezogener Daten nicht einer identifizierten oder identifizierbaren natürlichen Person zugewiesen werden können."
Expand Down Expand Up @@ -2710,9 +2710,9 @@ features:
delete:
successful: "Die Quittung wurde ausgeblendet"
failed: "Es ist ein Fehler aufgetreten, bitte versuche es erneut"
hideBanner:
hideBanner:
title: "Möchtest du diese Quittung aus deiner Liste ausblenden?"
content: "Dieser Vorgang ist unwiderruflich. Die Quittung wird nicht mehr in deiner Quittungsliste angezeigt."
content: "Dieser Vorgang ist unwiderruflich. Die Quittung wird nicht mehr in deiner Quittungsliste angezeigt."
accept: "Ja, ausblenden"
details:
totalFeeUnknown: "Der Gesamtbetrag enthält keine Provisionskosten: du findest diese in dem Dokument, das du von {{pspName}} erhalten hast."
Expand All @@ -2730,7 +2730,7 @@ features:
empty:
title: "Keine Quittung gefunden"
subtitle: "Wenn du eine Quittung für eine pagoPA-Zahlungsmitteilung suchst, die du in der Vergangenheit bezahlt hast, wende dich an den Gläubiger."
emptyPayer:
emptyPayer:
title: "Hier findest du Quittungen für Zahlungen, die mit der App getätigt wurden."
details:
payPal:
Expand Down Expand Up @@ -3022,13 +3022,12 @@ features:
content: "Dies ist ein notwendiger Sicherheitsschritt, um das Dokument '{{credentialName}}' in IO weiter zu verwenden."
primaryAction: "Start"
ctas:
trustmark: "Echtheitszertifikat anzeigen"
openPdf: "Dokument anzeigen"
shareButton: "Speichern oder freigeben"
fiscalCode: "Deine Steuernummer"
trustmark:
cta: "Echtheitszertifikat anzeigen"
description: "Zeige den QR-Code vor, um die Echtheit des Dokuments zu bestätigen, wenn du dazu aufgefordert wirst."
expiration: "Der QR-Code erneuert sich in"
qrCode: "QR-Code zur Authentizität von Dokumenten"
walletRevocation:
cta: "Dokumente in IO deaktivieren"
Expand All @@ -3052,7 +3051,7 @@ features:
cta: "Mehr erfahren"
closeButton: "Schließen"
closeButtonAlt: "Verstanden"
revokedByWalletProvider:
revokedByWalletProvider:
title: "Dokumente in IO wurde deaktiviert"
content: "Um die Voraussetzungen für die weitere Nutzung der Funktionen auf deinem Gerät zu prüfen, tippe auf 'Mehr erfahren'."
newWalletInstanceCreated:
Expand Down
25 changes: 20 additions & 5 deletions locales/en/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,15 @@ date:
meridian:
- "am"
- "pm"
time:
minutes:
zero: "0 minutes"
one: "1 minute"
other: "{{count}} minutes"
seconds:
zero: "0 seconds"
one: "1 second"
other: "{{count}} seconds"
global:
why: "Perché?"
you: "YOU"
Expand Down Expand Up @@ -3239,7 +3248,7 @@ features:
empty:
title: Nessuna ricevuta trovata
subtitle: Se stai cercando la ricevuta di un avviso pagoPA che hai pagato in passato, rivolgiti all’ente creditore.
emptyPayer:
emptyPayer:
title: Qui vedrai le ricevute dei pagamenti fatti in app
details:
payPal:
Expand Down Expand Up @@ -3535,18 +3544,24 @@ features:
content: È un passaggio di sicurezza necessario per continuare ad usare la tua {{credentialName}} su IO.
primaryAction: Inizia
ctas:
openPdf: "Show document"
trustmark: Mostra certificato di autenticità
openPdf: Show document
shareButton: Save or share
fiscalCode: Your Fiscal Code
statusAttestationUnknown:
title: Non siamo riusciti a caricare {{credentialName}}
content: Chiudi e riapri l'app per riprovare.
primaryAction: Ho capito
trustmark:
cta: Mostra certificato di autenticità
description: Mostra il QR Code per attestare l’autenticità del documento quando ti viene richiesto.
expiration: Il QR Code si rinnova tra
qrCode: QR code autenticità credenziale
timer:
expiresIn: Il QR Code si rinnova tra **{{time}}**
expired: Il QR Code è scaduto
failure:
description: Abbiamo avuto un problema nel generare il nuovo QR Code.
action: Riprova
toast: "Puoi riprovare tra {{time}}"
walletRevocation:
cta: Disattiva Documenti su IO
confirmScreen:
Expand All @@ -3569,7 +3584,7 @@ features:
cta: Scopri di più
closeButton: Chiudi
closeButtonAlt: Ho capito
revokedByWalletProvider:
revokedByWalletProvider:
title: Documenti su IO è stata disattivata
content: Per verificare i requisiti richiesti per continuare a usare la funzionalità sul tuo dispositivo, premi "Scopri di più".
newWalletInstanceCreated:
Expand Down
23 changes: 19 additions & 4 deletions locales/it/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,15 @@ date:
meridian:
- "am"
- "pm"
time:
minutes:
zero: "0 minuti"
one: "1 minuto"
other: "{{count}} minuti"
seconds:
zero: "0 secondi"
one: "1 secondo"
other: "{{count}} secondi"
global:
why: "Perché?"
you: "TU"
Expand Down Expand Up @@ -3239,7 +3248,7 @@ features:
empty:
title: Nessuna ricevuta trovata
subtitle: Se stai cercando la ricevuta di un avviso pagoPA che hai pagato in passato, rivolgiti all’ente creditore.
emptyPayer:
emptyPayer:
title: Qui vedrai le ricevute dei pagamenti fatti in app
details:
payPal:
Expand Down Expand Up @@ -3535,6 +3544,7 @@ features:
content: È un passaggio di sicurezza necessario per continuare ad usare la tua {{credentialName}} su IO.
primaryAction: Inizia
ctas:
trustmark: Mostra certificato di autenticità
openPdf: "Mostra documento"
shareButton: Salva o condividi
fiscalCode: Il tuo Codice Fiscale
Expand All @@ -3543,10 +3553,15 @@ features:
content: Chiudi e riapri l'app per riprovare.
primaryAction: Ho capito
trustmark:
cta: Mostra certificato di autenticità
description: Mostra il QR Code per attestare l’autenticità del documento quando ti viene richiesto.
expiration: Il QR Code si rinnova tra
qrCode: QR code autenticità credenziale
timer:
expiresIn: Il QR Code si rinnova tra **{{time}}**
expired: Il QR Code è scaduto
failure:
description: Abbiamo avuto un problema nel generare il nuovo QR Code.
action: Riprova
toast: "Puoi riprovare tra {{time}}"
walletRevocation:
cta: Disattiva Documenti su IO
confirmScreen:
Expand All @@ -3569,7 +3584,7 @@ features:
cta: Scopri di più
closeButton: Chiudi
closeButtonAlt: Ho capito
revokedByWalletProvider:
revokedByWalletProvider:
title: Documenti su IO è stata disattivata
content: Per verificare i requisiti richiesti per continuare a usare la funzionalità sul tuo dispositivo, premi "Scopri di più".
newWalletInstanceCreated:
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "italia-app",
"version": "2.80.0-rc.9",
"version": "2.80.0-rc.10",
"private": true,
"scripts": {
"start": "react-native start",
Expand Down
2 changes: 1 addition & 1 deletion publiccode.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ releaseDate: "2024-11-21"
url: "https://github.com/pagopa/io-app"
applicationSuite: IO
landingURL: "https://io.italia.it/"
softwareVersion: 2.80.0-rc.9
softwareVersion: 2.80.0-rc.10
developmentStatus: beta
softwareType: standalone/mobile
roadmap: "https://io.italia.it/"
Expand Down
6 changes: 5 additions & 1 deletion ts/components/QrCodeImage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ export type QrCodeImageProps = {
correctionLevel?: QRCodeProps["ecl"];
// Accessibility
accessibilityLabel?: string;
// Callback to handle the error if the QR Code generation fails
onError?: (error: Error) => void;
};

const defaultAccessibilityLabel = "QR Code";
Expand All @@ -27,7 +29,8 @@ const QrCodeImage = ({
size = 200,
backgroundColor,
correctionLevel = "H",
accessibilityLabel = defaultAccessibilityLabel
accessibilityLabel = defaultAccessibilityLabel,
onError
}: QrCodeImageProps) => {
const { width } = useWindowDimensions();
const realSize = React.useMemo<number>(() => {
Expand All @@ -49,6 +52,7 @@ const QrCodeImage = ({
size={realSize}
ecl={correctionLevel}
backgroundColor={backgroundColor}
onError={onError}
/>
</View>
) : (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,9 @@ export const ItwCredentialTrustmark = ({
onPress={onPressWithTrackEvent}
testID={testID}
accessible={true}
accessibilityLabel={I18n.t("features.itWallet.trustmark.cta")}
accessibilityLabel={I18n.t(
"features.itWallet.presentation.ctas.trustmark"
)}
accessibilityRole="button"
onPressIn={onPressIn}
onPressOut={onPressOut}
Expand All @@ -321,7 +323,9 @@ export const ItwCredentialTrustmark = ({
<View style={styles.buttonInnerBorder} />
<View style={styles.content}>
<Caption>
{I18n.t("features.itWallet.trustmark.cta").toUpperCase()}
{I18n.t(
"features.itWallet.presentation.ctas.trustmark"
).toUpperCase()}
</Caption>
{!enableIridescence && (
<Image
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { Body, HSpacer, Icon, IOStyles } from "@pagopa/io-app-design-system";
import { format } from "date-fns";
import React, { useMemo } from "react";
import { View } from "react-native";
import Placeholder from "rn-placeholder";
import { useDebugInfo } from "../../../../hooks/useDebugInfo";
import I18n from "../../../../i18n";
import { ItwTrustmarkMachineContext } from "../machine/provider";
import { selectExpirationSeconds, selectFailure } from "../machine/selectors";
import IOMarkdown from "../../../../components/IOMarkdown";

/**
* Timer that shows the remaining time before the trustmark expires
*/
const ItwTrustmarkExpirationTimer = () => {
const expirationSeconds = ItwTrustmarkMachineContext.useSelector(
selectExpirationSeconds
);
const failure = ItwTrustmarkMachineContext.useSelector(selectFailure);

useDebugInfo({ expirationSeconds, failure });

const content = useMemo(() => {
if (failure) {
return <Body>{I18n.t("features.itWallet.trustmark.timer.expired")}</Body>;
}

if (expirationSeconds === undefined) {
return (
<Placeholder.Box height={18} width={200} animate="fade" radius={4} />
);
}

return (
<IOMarkdown
content={I18n.t("features.itWallet.trustmark.timer.expiresIn", {
time: format(new Date(expirationSeconds * 1000), "mm:ss")
})}
/>
);
}, [failure, expirationSeconds]);

return (
<View style={[IOStyles.row, IOStyles.alignCenter]}>
<Icon name="history" size={24} color="grey-300" />
<HSpacer size={24} />
{content}
</View>
);
};

export { ItwTrustmarkExpirationTimer };
Loading

0 comments on commit 971f2c8

Please sign in to comment.