[INJIMOB-3188]: Compass changes (#1893)

* [INJIMOB-3188]: Auto Activation changes

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Intro slider customization and button/icon theme changes

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Splash screen and logo changes

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: App icon updates

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Icon backdrop and intro slider log fixes.

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Introslider logo changes and ios app icon changes

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Update individual ID.

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

---------

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>
This commit is contained in:
balachandarg-tw
2025-04-17 09:30:42 +05:30
committed by GitHub
parent 5d9ebd4d6a
commit 56867d12dd
71 changed files with 547 additions and 193 deletions

View File

@@ -198,9 +198,9 @@ fileignoreconfig:
- filename: screens/Home/MyVcs/GetIdInputModal.tsx
checksum: 1a15e4327b358ffee8bddfe412a38873ad6d4414d2b1d6bffd3c1782f5ec852f
- filename: screens/Home/IntroSlidersScreen.tsx
checksum: 9880724461b194db7651737576ad2fd2db9cf3b4e732747f59be422a7ff4e4a1
checksum: e893b77e3858b9bbe623c0bbdac99f05760fcf8196af5710be177509bb4c207d
- filename: .env
checksum: ac76b852842c44ff5dac96c1fa5061e569bea4f54b3080d869a9dc25abd17991
checksum: f8375c44b0e70e691f942ea3323a0bf12cb0e2a7653a5551b34e2403a47119a8
- filename: machines/VCItemMachine/VCItemMachine.typegen.ts
checksum: 850b5d02636bef9e286fc0fbc4ffffbd38068f332c319302a906496f4bc1c8a1
- filename: machines/VerifiableCredential/VCItemMachine/VCItemModel.ts
@@ -258,7 +258,7 @@ fileignoreconfig:
- filename: machines/Issuers/IssuersMachine.ts
checksum: 1eb1e912ea76c88a8d477cce9742da59b5bb41a2a39cc1dc67c5bca240c1553b
- filename: .github/scripts/set-google-clientid.sh
checksum: 013ef3b43f50ba05e18c9c83e89cc366c3f0d8ed4d931ce7daa19a757880419b
checksum: 04de37335d2efb014107db49c751ba04e5993ffa868ea5a4e3bca57a64b00fe6
- filename: screens/Issuers/CredentialTypeSelectionScreen.tsx
checksum: 144bbf59e86a89bf580ac7931645ca3eaed69a9409de36f6ce9f88a14091a9d3
- filename: components/QrCodeOverlay.tsx
@@ -268,11 +268,11 @@ fileignoreconfig:
- filename: machines/Issuers/IssuersGuards.ts
checksum: 21783a057207ad04facdb4c71884f49b0230490def04158419d730e0cc60eb83
- filename: machines/Issuers/IssuersActions.ts
checksum: 4414aa10588d2305293b1902982c5969895c858355e4b91d01dfaa8601c2dd62
checksum: 3cf962f1e803d24fcfb82e69d852dc85775191d325ec19de41712c8410486728
- filename: injitest/automation_trigger.sh
checksum: f2f34839c99cb1b871dde17aed8508a071345d22738796e005ff709d2dab8644
- filename: machines/Issuers/IssuersService.ts
checksum: e3832dff27687abc28609d2b281e570b4b0017995b7cfb56627a6b96949c469a
checksum: 79bb89fb0dd90f50a25b3cdecea0bda46b4fca46752db2254ac3b6ee552b207d
- filename: screens/Home/ViewVcModal.tsx
checksum: cfb25d562185488432b76287c4ef93359c1c64d8e29f5755d4c0a726c1485442
- filename: injitest/src/main/resources/TestData.json
@@ -310,7 +310,7 @@ fileignoreconfig:
- filename: machines/store.ts
checksum: 3fd2db0c41f8bd5f30ef922b856549cb5423997b2123c5364e643e47e5efd3cf
- filename: components/BannerNotificationContainer.tsx
checksum: 9e5b4a61b87e86666f0bee550d410df2b8576dfe5ec374de0ab139a468a234f7
checksum: 15bfe7b05ae7faa2a00f80a7efe35f7285b2178731908e80ac358cc5b3c740d0
- filename: injitest/src/test/java/iosTestCases/PinVcTest.java
checksum: 55098750062a199fdf1e33078acc50080dea12a885f934a7aa88411c06899cb7
- filename: injitest/src/test/java/androidTestCases/VcBackupAndRestoreTest.java
@@ -342,7 +342,7 @@ fileignoreconfig:
checksum: 17f55840bab193bc353034445ba4fce53e1ce466e95f616c15a1351f8d2f23bc
- filename: injitest/src/main/resources/Vids.json
checksum: 8bcffed7a6dd565ae695e1b29de0655e10bd5c5420af2718defd593a687b8817
- filename: injitest/src/main/java/inji/utils/UpdateNetworkSettings.java
- filename: injitest/src/main/java/inji/utils/UpdateNetworkSettings.java
checksum: e249ce3e6b7f47abc183fe5a3637bb39ccb06900ef75b9b2f08426d1535e22aa
- filename: App.tsx
checksum: d16d4a40b246abe25a5d2da7ec65163b5756fe8ba9390608a7fc7f8e721b2ed1
@@ -356,8 +356,8 @@ fileignoreconfig:
checksum: c91348eceec5edbffa03ba03f3f52a8e90ff7f942816c9609080d1647052fd66
- filename: ios/RNPixelpassModule.swift
checksum: 822a2421798d5c0669f4ab1b983194eb770cbef2aa30bf212d06bd959738c4ca
- filename: injitest/src/test/java/androidTestCases/VerifyHistoryTest.java
checksum: dffc4741b251b42c81d5bdac7d649c02b37bb9045285590b29f86c2d5f526fd1
- filename: injitest/src/test/java/androidTestCases/VerifyHistoryTest.java
checksum: dffc4741b251b42c81d5bdac7d649c02b37bb9045285590b29f86c2d5f526fd1
- filename: android/app/src/main/java/io/mosip/residentapp/RNPixelpassModule.java
checksum: cef9be4bfafb54e2c885b2459f2819554cad6448b5dc372976706894df704e5d
- filename: android/app/src/main/AndroidManifest.xml
@@ -372,7 +372,7 @@ fileignoreconfig:
checksum: 947b6d75543e2bf959ca2d95dd7224051e0b4ec2c28f7515f923701e22a932f0
- filename: components/FaceScanner/LivenessDetection.tsx
checksum: d4140a42ee9ca0f7c90e490f762d181a723fd9dd20db891cbbe53bfbd8f81632
- filename: machines/VerifiableCredential/VCItemMachine/VCItemActions.ts
- filename: machines/VerifiableCredential/VCItemMachine/VCItemActions.ts
checksum: bc11e275227ccf93c5e869b47bb2b63454758983b8fc0e105004fefa1b169091
- filename: machines/app.ts
checksum: 5da59bb384d04e29c7745d773108903fa144275c57edc1aca1898fcae7baea84
@@ -396,4 +396,6 @@ fileignoreconfig:
checksum: 9f29c9b0b91eba7fd7f5f4d1f78f9b6f96ef2c850c1346d712058a438d01036a
- filename: assets/InjiHomeLogo.svg
checksum: 6600a3d75033af4d702dd8c9663e12ad7c2c096a529bac2771bb856cc75a5ed0
- filename: locales/es.json
checksum: a03fae655b13342afb45ab2b79998f3e06afcb02346c2ddf6aaacacf3b027209
version: ""

View File

@@ -38,7 +38,6 @@
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="false"
tools:replace="usesCleartextTraffic">

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,20 +1,36 @@
<svg width="64" height="55" viewBox="0 0 64 55" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_17_6175" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="27" width="58" height="16">
<path d="M46.2199 29.1224L43.6606 33.542C43.1318 34.4553 42.125 35.0528 41.1181 35.0528L4.89385 35.0247L0.883301 42.4716L37.462 42.4997C38.4913 42.4997 39.5207 41.874 40.0382 40.9269L42.3781 36.6595C42.8956 35.7181 43.925 35.0867 44.9543 35.0867L53.0542 35.0979L57.0816 27.6229L48.7624 27.6116C47.7555 27.6116 46.7486 28.2091 46.2199 29.1224Z" fill="white"/>
</mask>
<g mask="url(#mask0_17_6175)">
<path d="M57.9701 42.3081L1.60872 54.5185L0 27.7976L56.3614 15.5872L57.9701 42.3081Z" fill="white"/>
</g>
<mask id="mask1_17_6175" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="6" y="16" width="58" height="16">
<path d="M46.8777 17.921L44.3184 22.3407C43.7896 23.2539 42.7828 23.8515 41.7759 23.8515L10.929 23.8289L6.91846 31.2758L38.1197 31.2984C39.1491 31.2984 40.1784 30.6727 40.6959 29.7256L43.0359 25.4581C43.5534 24.5167 44.5827 23.8853 45.6121 23.8853L59.0893 23.8966L63.1167 16.4215L49.4201 16.4102C48.4133 16.4102 47.4064 17.0078 46.8777 17.921Z" fill="white"/>
</mask>
<g mask="url(#mask1_17_6175)">
<path d="M63.9999 31.1067L7.6385 43.3172L6.02979 16.6019L62.3912 4.38583L63.9999 31.1067Z" fill="white"/>
</g>
<mask id="mask2_17_6175" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="12" y="12" width="34" height="9">
<path d="M16.9532 12.6445L12.9258 20.1196L38.8959 20.1365C40.3246 20.1365 41.7646 19.2853 42.5183 17.9887L45.6064 12.6671L16.9532 12.6445Z" fill="white"/>
</mask>
<g mask="url(#mask2_17_6175)">
<path d="M36.9779 32.7867L9.15723 18.1634L21.5489 0L49.3696 14.6232L36.9779 32.7867Z" fill="white"/>
<svg width="174" height="54" viewBox="0 0 174 54" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_409_826)">
<path d="M24.4117 3.76513V8.87602C21.4634 7.0916 18.4736 6.10536 15.2931 6.10536C8.96518 6.10536 5.34925 10.6604 5.34925 15.5749C5.34925 20.4894 8.96518 24.8857 15.2143 24.8857C18.5938 24.8857 21.6997 23.8577 24.6107 21.9144V26.9836C21.5463 28.6468 18.2414 29.3614 14.6254 29.3614C4.99264 29.3572 0 22.5037 0 15.529C0 7.29219 6.44813 1.62549 14.7001 1.62549C17.7645 1.62549 20.9906 2.2983 24.4117 3.76513Z" fill="white"/>
<path d="M57.0712 15.4496C57.0712 22.8171 51.7261 29.353 42.2923 29.353C32.8586 29.353 27.8286 22.8965 27.8286 15.529C27.8286 8.67543 32.5849 1.62549 42.4499 1.62549C51.2948 1.62549 57.0712 7.76441 57.0712 15.4496ZM33.1323 15.529C33.1323 20.9157 37.2209 24.6391 42.3297 24.6391C47.4384 24.6391 51.7634 21.4297 51.7634 15.4496C51.7634 10.9739 48.5414 6.33938 42.4872 6.33938C36.433 6.33938 33.1323 10.3011 33.1323 15.529Z" fill="white"/>
<path d="M66.5009 1.98047L75.1882 12.7539L83.8382 1.98047H88.5945V28.9976H83.407V9.70741L75.5075 19.691H74.7984L66.8202 9.70741V29.0018H61.7114V1.98047H66.505H66.5009Z" fill="white"/>
<path d="M104.078 1.98047C109.854 1.98047 113.317 4.90994 113.317 9.90382C113.317 14.8977 109.975 17.7854 103.883 17.7854H99.637V28.9976H94.4495V1.98047H104.078ZM99.637 13.7861H103.095C106.906 13.7861 108.009 12.2399 108.009 9.86621C108.009 7.32957 106.711 5.94214 102.979 5.94214H99.637V13.7861Z" fill="white"/>
<path d="M151.911 3.64394V8.67543C149.787 6.81161 147.507 5.78358 145.11 5.78358C142.713 5.78358 141.531 6.9328 141.531 8.55842C141.531 9.94584 142.041 11.0533 145.778 13.1135C150.849 15.926 153.009 17.8692 153.009 21.9479C153.009 26.2648 149.551 29.3572 144.521 29.3572C141.73 29.3572 138.977 28.4838 136.58 26.9794V21.5133C138.94 23.9287 141.494 25.1573 144.09 25.1573C146.408 25.1573 147.826 23.8117 147.826 22.1067C147.826 20.4017 147.316 19.4112 142.439 16.7576C138.981 14.7767 136.427 12.6789 136.427 8.71722C136.427 4.75555 139.69 1.62549 144.878 1.62549C147.474 1.62549 149.949 2.37771 151.915 3.64394H151.911Z" fill="white"/>
<path d="M172.901 3.64394V8.67543C170.778 6.81161 168.497 5.78358 166.1 5.78358C163.704 5.78358 162.522 6.9328 162.522 8.55842C162.522 9.94584 163.032 11.0533 166.768 13.1135C171.839 15.926 174 17.8692 174 21.9479C174 26.2648 170.542 29.3572 165.512 29.3572C162.721 29.3572 159.967 28.4838 157.571 26.9794V21.5133C159.93 23.9287 162.485 25.1573 165.08 25.1573C167.398 25.1573 168.817 23.8117 168.817 22.1067C168.817 20.4017 168.306 19.4112 163.43 16.7576C159.972 14.7767 157.417 12.6789 157.417 8.71722C157.417 4.75555 160.681 1.62549 165.868 1.62549C168.464 1.62549 170.94 2.37771 172.905 3.64394H172.901Z" fill="white"/>
<path d="M108.362 27.9281L122.071 23.8369L133.275 32.7883L125.994 0L108.362 27.9281Z" fill="white"/>
<path d="M30.4866 40.1141L30.2709 41.5892C29.6531 41.443 29.0228 41.3719 28.3634 41.3719C25.2037 41.3719 23.4123 43.2525 23.4123 45.5384C23.4123 47.2894 24.5319 48.5472 26.0703 48.5472C26.7006 48.5472 27.418 48.3592 27.9239 48.1294L28.152 46.5246H26.6592L26.8458 45.25H29.906L29.3462 49.1699C28.2142 49.7048 27.0365 50.0224 25.9874 50.0224C23.4745 50.0224 21.679 48.1837 21.679 45.6512C21.679 42.7594 23.6611 39.8926 28.4132 39.8926C29.3172 39.8926 30.0802 39.9929 30.4949 40.1099L30.4866 40.1141Z" fill="white"/>
<path d="M33.3311 43.1938L32.7712 47.143C32.7132 47.5483 32.6842 47.7364 32.6842 48.0122C32.6842 48.4761 32.9288 48.7937 33.3891 48.7937C33.8784 48.7937 34.3926 48.4468 35.2717 47.4606L35.873 43.1938H37.4073L36.4452 49.8928H34.911L35.0685 48.8522C34.1645 49.6922 33.4762 50.0098 32.8293 50.0098C31.6516 50.0098 31.1333 49.2158 31.1333 48.1292C31.1333 47.8994 31.1748 47.5233 31.2204 47.2182L31.7926 43.198H33.3269L33.3311 43.1938Z" fill="white"/>
<path d="M40.7495 43.1941L39.7999 49.893H38.249L39.2111 43.1941H40.7453H40.7495ZM41.0522 41.2258C41.0522 41.673 40.6914 42.0365 40.2477 42.0365C39.804 42.0365 39.4433 41.673 39.4433 41.2258C39.4433 40.7787 39.804 40.4443 40.2477 40.4443C40.6914 40.4443 41.0522 40.7912 41.0522 41.2258Z" fill="white"/>
<path d="M48.5744 40.0266L47.1811 49.864C46.4762 50.0102 45.9164 50.0813 45.2446 50.0813C42.7732 50.0813 41.6702 48.6771 41.6702 46.9846C41.6702 44.9746 43.221 43.0188 45.7464 43.0188C46.0325 43.0188 46.3642 43.0313 46.6213 43.0773L47.036 40.0225H48.5703L48.5744 40.0266ZM45.2861 48.7941C45.4727 48.7941 45.6303 48.7774 45.8044 48.7524L46.4347 44.3519C46.3186 44.3226 46.1486 44.2934 45.9164 44.2934C44.2784 44.2934 43.2749 45.4927 43.2749 46.9554C43.2749 48.1422 44.0628 48.7941 45.2861 48.7941Z" fill="white"/>
<path d="M51.4314 43.1941L50.4818 49.893H48.9309L49.8929 43.1941H51.4272H51.4314ZM51.7341 41.2258C51.7341 41.673 51.3733 42.0365 50.9296 42.0365C50.4859 42.0365 50.1252 41.673 50.1252 41.2258C50.1252 40.7787 50.4859 40.4443 50.9296 40.4443C51.3733 40.4443 51.7341 40.7912 51.7341 41.2258Z" fill="white"/>
<path d="M58.5679 45.0619C58.5679 45.2917 58.5099 45.8141 58.4808 46.0607L57.892 49.8928H56.3577L56.9465 46.0607C56.9756 45.7723 57.0336 45.3795 57.0336 45.1914C57.0336 44.6147 56.7475 44.3515 56.3453 44.3515C55.7689 44.3515 55.1096 44.8279 54.4378 45.6846L53.8199 49.897H52.2856L53.2601 43.1981H54.7944L54.6202 44.2679C55.4081 43.4572 56.1421 43.0811 56.847 43.0811C57.9542 43.0811 58.5679 43.8207 58.5679 45.0619Z" fill="white"/>
<path d="M66.0196 43.1938L65.8621 44.3514H64.6844C64.9581 44.786 65.0452 45.1747 65.0452 45.5675C65.0452 46.8254 64.2697 47.9119 62.5613 48.0833C61.3131 48.2588 61.1555 48.3591 61.1555 48.6892C61.1555 49.0193 61.6739 49.1071 62.5198 49.3411L63.0962 49.4874C64.4314 49.8217 64.9332 50.4444 64.9332 51.2969C64.9332 52.1494 64.1743 53.2652 62.0181 53.2652C60.0235 53.2652 58.9868 52.5715 58.9868 51.556C58.9868 50.9333 59.4595 50.4402 60.7823 50.1226C60.1064 49.8468 59.7208 49.4874 59.7208 48.9525C59.7208 48.2421 60.3677 47.9119 61.0685 47.7239C60.3635 47.4063 59.8493 46.6958 59.8493 45.7723C59.8493 44.3096 60.8528 43.198 62.5903 43.198H66.0196V43.1938ZM62.0429 52.2079C62.9759 52.2079 63.4487 51.8903 63.4487 51.4682C63.4487 51.0796 63.1335 50.8038 61.8563 50.5698C60.8528 50.8456 60.405 51.1047 60.405 51.51C60.405 51.9572 61.1514 52.2037 62.0429 52.2037V52.2079ZM62.3705 47.0134C63.1169 47.0134 63.5897 46.2905 63.5897 45.5215C63.5897 44.7526 63.1294 44.2929 62.5281 44.2929C61.7402 44.2929 61.309 45.0451 61.309 45.8099C61.309 46.4911 61.6988 47.0093 62.3705 47.0093V47.0134Z" fill="white"/>
<path d="M74.877 43.7412L74.6904 45.0576C73.8859 44.4934 73.2681 44.2761 72.7083 44.2761C72.2646 44.2761 72.0033 44.4809 72.0033 44.8528C72.0033 45.1411 72.1899 45.3585 72.8783 45.8641C73.6828 46.4408 74.4997 46.9799 74.4997 48.15C74.4997 49.3201 73.5667 50.0723 72.2604 50.0723C71.4726 50.0723 70.6805 49.784 69.9922 49.3201L70.2203 47.9912C70.9252 48.4969 71.626 48.8312 72.2604 48.8312C72.7497 48.8312 73.0068 48.5554 73.0068 48.196C73.0068 47.7321 72.5051 47.402 71.6592 46.7918C70.7967 46.1399 70.5105 45.5632 70.5105 44.9406C70.5105 43.854 71.344 43.0308 72.7083 43.0308C73.4257 43.0308 74.143 43.2481 74.877 43.7412Z" fill="white"/>
<path d="M82.1254 43.2067L81.1634 49.8931H79.6415L79.7411 49.1534C79.1813 49.705 78.6215 49.9934 77.9746 49.9934C76.7264 49.9934 75.7354 48.9069 75.7354 47.2144C75.7354 45.0288 77.1867 43.002 80.2304 43.002C80.9063 43.002 81.7108 43.119 82.1254 43.2067ZM78.4224 48.7063C78.9822 48.7063 79.5711 48.3427 79.9318 47.883L80.4626 44.2807C80.3465 44.2682 80.1889 44.2515 80.0189 44.2515C78.1819 44.2515 77.3194 45.8854 77.3194 47.2018C77.3194 48.1714 77.7921 48.7063 78.4266 48.7063H78.4224Z" fill="white"/>
<path d="M88.7313 40.185L88.5447 41.4889C88.13 41.2841 87.7112 41.2005 87.2965 41.2005C86.293 41.2005 85.8162 41.7229 85.6296 43.0811L85.6171 43.1981H87.309L87.1224 44.4267H85.4305L84.3233 52.6886H82.7891L83.8962 44.4267H82.8471L83.0337 43.1981H84.0828L84.1119 42.9683C84.4436 40.4358 85.8493 39.9009 87.1721 39.9009C87.7029 39.9009 88.2503 40.0012 88.7354 40.1892L88.7313 40.185Z" fill="white"/>
<path d="M93.1225 45.8687C93.1225 46.1738 93.0935 46.4204 93.0645 46.6209H88.8721C88.8597 46.8508 88.8597 46.9678 88.8597 47.0974C88.8597 48.1546 89.461 48.8901 90.394 48.8901C90.9953 48.8901 91.7002 48.6603 92.7493 47.9791L92.5212 49.4125C91.7873 49.8597 91.0865 50.077 90.2945 50.077C88.4284 50.077 87.3088 48.8316 87.3088 46.8926C87.3088 44.824 88.6855 43.002 90.5806 43.002C92.0154 43.002 93.1225 44.0718 93.1225 45.8687ZM91.6297 45.6514V45.5637C91.6297 44.7529 91.2565 44.1762 90.5516 44.1762C89.8922 44.1762 89.3739 44.6694 89.0712 45.6514H91.6256H91.6297Z" fill="white"/>
<path d="M104.149 44.4228C104.854 43.5703 105.687 43.0771 106.504 43.0771C107.653 43.0771 108.212 43.8879 108.212 44.9577C108.212 45.2753 108.154 45.7099 108.125 45.9272L107.566 49.8931H106.027L106.603 45.7977C106.632 45.5929 106.662 45.3338 106.662 45.175C106.662 44.5983 106.404 44.2765 106.015 44.2765C105.496 44.2765 104.808 44.7989 104.178 45.6096L103.56 49.8931H102.038L102.569 46.203C102.639 45.7559 102.668 45.3213 102.668 45.1332C102.668 44.5816 102.395 44.2932 101.98 44.2932C101.478 44.2932 100.86 44.7989 100.184 45.6389L99.5665 49.8931H98.0281L98.9901 43.1942H100.529L100.383 44.264C101.117 43.4533 101.847 43.0771 102.594 43.0771C103.381 43.0771 103.958 43.5703 104.144 44.4228H104.149Z" fill="white"/>
<path d="M111.775 43.1941L110.825 49.893H109.274L110.236 43.1941H111.775ZM112.073 41.2258C112.073 41.673 111.712 42.0365 111.269 42.0365C110.825 42.0365 110.464 41.673 110.464 41.2258C110.464 40.7787 110.825 40.4443 111.269 40.4443C111.712 40.4443 112.073 40.7912 112.073 41.2258Z" fill="white"/>
<path d="M118.994 43.1938L118.836 44.3514H117.659C117.932 44.786 118.019 45.1747 118.019 45.5675C118.019 46.8254 117.244 47.9119 115.535 48.0833C114.287 48.2588 114.13 48.3591 114.13 48.6892C114.13 49.0193 114.648 49.1071 115.494 49.3411L116.066 49.4874C117.401 49.8217 117.903 50.4444 117.903 51.2969C117.903 52.1494 117.144 53.2652 114.988 53.2652C112.993 53.2652 111.957 52.5715 111.957 51.556C111.957 50.9333 112.43 50.4402 113.752 50.1226C113.076 49.8468 112.691 49.4874 112.691 48.9525C112.691 48.2421 113.338 47.9119 114.038 47.7239C113.334 47.4063 112.819 46.6958 112.819 45.7723C112.819 44.3096 113.823 43.198 115.56 43.198H118.99L118.994 43.1938ZM115.017 52.2079C115.95 52.2079 116.423 51.8903 116.423 51.4682C116.423 51.0796 116.108 50.8038 114.83 50.5698C113.827 50.8456 113.379 51.1047 113.379 51.51C113.379 51.9572 114.126 52.2037 115.017 52.2037V52.2079ZM115.349 47.0134C116.095 47.0134 116.568 46.2905 116.568 45.5215C116.568 44.7526 116.108 44.2929 115.506 44.2929C114.718 44.2929 114.287 45.0451 114.287 45.8099C114.287 46.4911 114.673 47.0093 115.349 47.0093V47.0134Z" fill="white"/>
<path d="M124.277 43.4825L123.53 44.9869C123.302 44.7278 123.087 44.6108 122.796 44.6108C122.149 44.6108 121.706 45.292 121.275 46.1027L120.727 49.8931H119.205L120.167 43.1942H121.689L121.515 44.4813C122.191 43.47 122.722 43.0771 123.253 43.0771C123.655 43.0771 123.97 43.2652 124.273 43.4825H124.277Z" fill="white"/>
<path d="M130.596 43.2067L129.634 49.8931H128.112L128.212 49.1534C127.652 49.705 127.092 49.9934 126.445 49.9934C125.197 49.9934 124.206 48.9069 124.206 47.2144C124.206 45.0288 125.657 43.002 128.701 43.002C129.377 43.002 130.181 43.119 130.596 43.2067ZM126.889 48.7063C127.449 48.7063 128.038 48.3427 128.394 47.883L128.925 44.2807C128.809 44.2682 128.651 44.2515 128.481 44.2515C126.644 44.2515 125.782 45.8854 125.782 47.2018C125.782 48.1714 126.255 48.7063 126.889 48.7063Z" fill="white"/>
<path d="M134.573 41.8359L134.345 43.1941H136.037L135.85 44.4227H134.1L133.628 47.0555C133.557 47.4734 133.482 47.8662 133.482 48.0668C133.482 48.4847 133.682 48.702 134.042 48.702C134.457 48.702 135.062 48.4847 135.419 48.2256L135.191 49.7175C134.689 49.9766 134.171 50.0811 133.64 50.0811C132.504 50.0811 131.932 49.4291 131.932 48.4304C131.932 48.1713 131.973 47.7659 132.06 47.2853L132.562 44.4227H131.372L131.558 43.1941H132.794L133.039 41.8359H134.573Z" fill="white"/>
<path d="M138.819 43.1941L137.87 49.893H136.319L137.281 43.1941H138.819ZM139.122 41.2258C139.122 41.673 138.761 42.0365 138.318 42.0365C137.874 42.0365 137.513 41.673 137.513 41.2258C137.513 40.7787 137.874 40.4443 138.318 40.4443C138.761 40.4443 139.122 40.7912 139.122 41.2258Z" fill="white"/>
<path d="M145.84 46.0314C145.84 48.0708 144.604 50.0809 142.481 50.0809C140.744 50.0809 139.74 48.9233 139.74 47.1305C139.74 44.8571 141.088 43.0059 143.144 43.0059C144.695 43.0059 145.844 44.1216 145.844 46.0314H145.84ZM142.51 48.7478C143.659 48.7478 144.26 47.4021 144.26 45.9688C144.26 44.8697 143.787 44.3181 143.024 44.3181C141.677 44.3181 141.316 46.3449 141.316 47.1974C141.316 48.1794 141.747 48.7436 142.506 48.7436L142.51 48.7478Z" fill="white"/>
<path d="M153.034 45.0619C153.034 45.2917 152.976 45.8141 152.947 46.0607L152.358 49.8928H150.824L151.413 46.0607C151.442 45.7723 151.5 45.3795 151.5 45.1914C151.5 44.6147 151.214 44.3515 150.812 44.3515C150.239 44.3515 149.576 44.8279 148.904 45.6846L148.286 49.897H146.748L147.722 43.1981H149.257L149.082 44.2679C149.87 43.4572 150.604 43.0811 151.309 43.0811C152.416 43.0811 153.034 43.8207 153.034 45.0619Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_409_826">
<rect width="174" height="53.2653" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 94 KiB

BIN
assets/shareQrCodeIntro.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

@@ -23,6 +23,8 @@ export const BannerNotificationContainer: React.FC<
const bannerNotificationController = UseBannerNotification();
const WalletBindingSuccess = bannerNotificationController.isBindingSuccess;
const autoWalletBindingSuccess =
bannerNotificationController.isAutoWalletBindingSuccess;
const {t} = useTranslation('BannerNotification');
const rt = useTranslation('RequestScreen').t;
const verificationStatus = bannerNotificationController.verificationStatus;
@@ -55,19 +57,20 @@ export const BannerNotificationContainer: React.FC<
</View>
)}
{WalletBindingSuccess && (
<View style={Theme.BannerStyles.topBanner}>
<BannerNotification
type={BannerStatusType.SUCCESS}
message={t('activated')}
onClosePress={
bannerNotificationController.RESET_WALLET_BINDING_SUCCESS
}
key={'activatedVcPopup'}
testId={'activatedVcPopup'}
/>
</View>
)}
{WalletBindingSuccess ||
(!autoWalletBindingSuccess && (
<View style={Theme.BannerStyles.topBanner}>
<BannerNotification
type={BannerStatusType.SUCCESS}
message={t('activated')}
onClosePress={
bannerNotificationController.RESET_WALLET_BINDING_SUCCESS
}
key={'activatedVcPopup'}
testId={'activatedVcPopup'}
/>
</View>
))}
{showQuickShareSuccessBanner && (
<View style={Theme.BannerStyles.topBanner}>

View File

@@ -8,6 +8,7 @@ import {useContext} from 'react';
import {GlobalContext} from '../shared/GlobalContext';
import {VcMetaEvents} from '../machines/VerifiableCredential/VCMetaMachine/VCMetaMachine';
import {
selectAutoWalletBindingSuccess,
selectIsDownloadingFailed,
selectIsDownloadingSuccess,
selectWalletBindingSuccess,
@@ -21,11 +22,18 @@ export const UseBannerNotification = () => {
return {
isBindingSuccess: useSelector(vcMetaService, selectWalletBindingSuccess),
isAutoWalletBindingSuccess: useSelector(
vcMetaService,
selectAutoWalletBindingSuccess,
),
verificationStatus: useSelector(vcMetaService, selectVerificationStatus),
isPasscodeUnlock: useSelector(settingsService, selectIsPasscodeUnlock),
isBiometricUnlock: useSelector(settingsService, selectIsBiometricUnlock),
isDownloadingSuccess: useSelector(vcMetaService, selectIsDownloadingSuccess),
isDownloadingSuccess: useSelector(
vcMetaService,
selectIsDownloadingSuccess,
),
isDownloadingFailed: useSelector(vcMetaService, selectIsDownloadingFailed),
DISMISS: () => {
settingsService.send(SettingsEvents.DISMISS());

View File

@@ -189,21 +189,6 @@ export const HelpScreen: React.FC<HelpScreenProps> = props => {
<React.Fragment>{getTextField(t('answers.inji.eight'))}</React.Fragment>
),
},
{
title: t('questions.inji.nine'),
data: (
<React.Fragment>
{getTextField(
t('answers.inji.nine'),
getLinkedText(
injiHelpUrl +
'/functional-overview/end-user-guide#activating-a-vc',
t('here'),
),
)}
</React.Fragment>
),
},
{
title: t('questions.inji.ten'),
data: (
@@ -220,14 +205,6 @@ export const HelpScreen: React.FC<HelpScreenProps> = props => {
</React.Fragment>
),
},
{
title: t('questions.inji.eleven'),
data: (
<React.Fragment>
{getTextField(t('answers.inji.eleven'))}
</React.Fragment>
),
},
{
title: t('questions.inji.twelve'),
data: (

View File

@@ -31,7 +31,7 @@ const Colors = {
DimGray: '#737373',
DarkGray: '#A5A5A5',
platinumGrey: '#EDEDED',
Orange: '#951F6F',
Orange: '#FF671F',
OrangeBrown: '#D9822B',
Blue: '#0000FF',
LightGrey: '#F8F8F8',
@@ -49,16 +49,16 @@ const Colors = {
plainText: '#FFFFFF',
walletbindingLabel: '#000000',
LightOrange: '#F7EDF3',
GradientColors: ['#FF5300', '#5B03AD'],
GradientColorsLight: ['#FF5300' + 14, '#5B03AD' + 14],
GradientColors: ['#FF671F', '#FF671F'],
GradientColorsLight: ['#FF671F' + 14, '#FF671F' + 14],
DisabledColors: ['#C7C7C7', '#C7C7C7'],
TimeoutHintBoxColor: '#FFF7E5',
TimeoutHintBoxBorder: '#FFF2D6',
TimeoutHintText: '#8B6105',
resendCodeTimer: '#555555',
uncheckedIcon: '#DBDBDB',
startColor: '#ff5300',
endColor: '#5b03ad',
startColor: '#FF671F',
endColor: '#FF671F',
stroke: '#ee8123',
iconBg: '#ffa85a',
warningLogoBg: '#FFF7E5',
@@ -120,7 +120,7 @@ export const DefaultTheme = {
DefaultToggle: Colors.LightOrange,
GrayText: Colors.GrayText,
errorGrayText: Colors.mediumDarkGrey,
gradientBtn: ['#FF5300', '#5B03AD'],
gradientBtn: [Colors.Orange, Colors.Orange],
dotColor: Colors.dorColor,
plainText: Colors.plainText,
IconBackground: Colors.LightOrange,
@@ -414,12 +414,12 @@ export const DefaultTheme = {
height: 100,
},
injiLogo: {
width: 191.58,
height: 84,
width: 100,
height: 40,
},
injiHomeLogo: {
marginLeft: -30,
marginTop: -12,
marginLeft: 5,
marginTop: isAndroid() ? -25 : -10,
marginBottom: isAndroid() ? -30 : 0,
},
logo: {
@@ -1825,6 +1825,8 @@ export const DefaultTheme = {
DigitalWallet: require('../../../assets/trustedDigitalWallet.png'),
IntroShare: require('../../../assets/quickAccess.png'),
IntroBackup: require('../../../assets/backupRestoreIntro.png'),
IntroShareWithSelfie: require('../../../assets/shareWithSelfieIntro.png'),
IntroShareQrCode: require('../../../assets/shareQrCodeIntro.png'),
IntroSliderbackground: require('../../../assets/IntroBg.png'),
HomeScreenLogo: HomeScreenLogo,
InjiLogoSmall: InjiLogoSmall,

View File

@@ -1829,6 +1829,8 @@ export const PurpleTheme = {
DigitalWallet: require('../../../assets/Intro_Wallet.png'),
IntroShare: require('../../../assets/Intro_Share.png'),
IntroBackup: require('../../../assets/Intro_Backup.png'),
IntroShareWithSelfie: require('../../../assets/shareWithSelfieIntro.png'),
IntroShareQrCode: require('../../../assets/shareQrCodeIntro.png'),
IntroSliderbackground: require('../../../assets/IntroSliderBackgroundPurple.png'),
HomeScreenLogo: HomeScreenLogo,
InjiLogoSmall: InjiLogoSmall,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -241,6 +241,10 @@
"ERR_INVALID_VALIDFROM": "التاريخ غير صالح أو تم تحديده في المستقبل. تحقق من وجود تاريخ صالح.",
"ERR_VALID_FROM_IS_FUTURE_DATE": "التاريخ غير صالح أو تم تحديده في المستقبل. تحقق من وجود تاريخ صالح.",
"ERR_INVALID_VALIDUNTIL": "التاريخ غير صالح. تحقق من وجود تاريخ صالح."
},
"autoWalletBindingError": {
"title": "حدث خطأ!",
"message": "حدث خطأ ما أثناء معالجة بيانات الاعتماد الخاصة بك. يرجى محاولة تنزيلها مرة أخرى. إذا استمرت المشكلة، فتواصل مع الدعم للحصول على المساعدة."
}
}
},
@@ -257,9 +261,7 @@
"six": "ما هي بيانات الاعتماد التي يمكن التحقق منها؟",
"seven": "كيفية إضافة البطاقة؟",
"eight": "هل يمكنني إضافة بطاقات متعددة؟",
"nine": "لماذا يقول VC الخاص بي أن التنشيط معلق؟",
"ten": "ماذا تقصد بتفعيل تسجيل الدخول عبر الإنترنت؟",
"eleven": "كيفية تفعيل البطاقة لتسجيل الدخول عبر الإنترنت؟",
"twelve": "كيفية مشاركة البطاقة؟",
"thirteen": "كيفية إزالة البطاقة من المحفظة؟",
"fourteen": "كيفية عرض سجلات النشاط؟",
@@ -298,10 +300,8 @@
"six": "بيانات الاعتماد التي يمكن التحقق منها عبارة عن معلومات موقعة رقميًا تمثل بيانًا أدلى به المُصدر حول موضوع ما ويتضمن عادةً تفاصيل ديموغرافية. ",
"seven": "يمكن تنزيل المعرفات إلى INJI Mobile Wallet كبيانات اعتماد يمكن التحقق منها. ",
"eight": "نعم، يمكنك إضافة بطاقات متعددة إلى المحفظة من خلال الضغط على زر ''' في الصفحة الرئيسية.",
"nine": "بمجرد تنزيل عملة VC إلى محفظتك، فهي غير مرتبطة بعد بهوية المستخدم ولهذا السبب يقول VC الخاص بك أن التنشيط معلق. ",
"ten-a": "1. بمجرد ربط VC بالمحفظة بنجاح، يمكنك أن ترى أنه تم تنشيطه لتسجيل الدخول عبر الإنترنت مما يعني أنه يمكن الآن استخدام VC هذا في عملية تسجيل الدخول QR. ",
"ten-b": "2. س",
"eleven": "بعد إضافة البطاقة إلى المحفظة بنجاح، انقر فوق \"التنشيط معلق لتسجيل الدخول عبر الإنترنت\" الموجود على البطاقة. ",
"twelve": "انقر على زر \"مشاركة\" وقم بمسح رمز الاستجابة السريعة من الجهة الطالبة. ",
"thirteen-a": "يمكنك الضغط على...(قائمة كرات اللحم) الموجودة على البطاقة في الصفحة الرئيسية واختيار خيار إزالة من المحفظة لإزالة البطاقة من المحفظة. ",
"thirteen-b": " يرجى ملاحظة أنه يمكن تنزيل نفس البطاقة مرة أخرى.",
@@ -472,6 +472,10 @@
"stepFourText": "قم بالمصادقة على نفسك بسهولة باستخدام بيانات الاعتماد الرقمية المخزنة.",
"stepFiveTitle": "دعم & يعيد",
"stepFiveText": "قم بحماية بياناتك بسهولة باستخدام النسخة الاحتياطية لدينا",
"stepSixTitle": "تتمحور حول المستخدم",
"stepSixText": "صُممت خصيصًا لتلبية احتياجاتك، مما يمنحك القدرة على اتخاذ القرار. أدر بياناتك بشفافية تامة.",
"stepSevenTitle": "شارك مع رمز الاستجابة السريعة",
"stepSevenText": "المشاركة الفورية في متناول يدك - سريعة وخالية من المتاعب",
"getStarted": "البدء",
"goBack": "عُد",
"back": "خلف",
@@ -1038,4 +1042,4 @@
"keyManagementTitle": "إدارة المفتاح",
"keyManagementDesc": "اختر طريقة إنشاء المفاتيح التي تتماشى مع تفضيلاتك، مما يمنحك السيطرة على أمان بيانات اعتمادك.\nاسحب ورتب المفاتيح، حيث يكون المفتاح العلوي هو الأعلى أولوية."
}
}
}

View File

@@ -258,9 +258,7 @@
"six": "What is a Verifiable Credential?",
"seven": "How to add a card?",
"eight": "Can I add multiple cards?",
"nine": "Why does my VC say Activation is pending?",
"ten": "What do you mean by Activated for Online login?",
"eleven": "How to activate a card for online login?",
"twelve": "How to share a card?",
"thirteen": "How to remove a card from the wallet?",
"fourteen": "How to view activity logs?",
@@ -299,10 +297,8 @@
"six": "A Verifiable Credential is a digitally signed piece of information that represents a statement made by the issuer about a subject and typically includes demographic details. VCs are secure and trustworthy in various online interactions.",
"seven": "IDs can be downloaded to INJI Mobile Wallet as Verifiable Credentials. To know how to download VCs with various IDs please read",
"eight": "Yes, you can add multiple cards to the wallet by clicking on '+' button on the Home page.",
"nine": "Once VC is downloaded to your wallet, it is not yet bound with the users identity which is why your VC says Activation Pending. Binding your VC to your wallet (with your passcode or biometrics) is crucial to ensure the highest level of security. To activate your VC, please follow the steps",
"ten-a": "1. Once the VC is successfully binded with the wallet, you can see that it is Activated for Online login which means this VC can now be used for the QR login process. To know more about QR code login, please read",
"ten-b": "2. The Q&A should be readable and understandable even when the user changes the language in the INJI app.",
"eleven": "After successfully adding a card to the wallet, click on 'Activation pending for Online login' on the card. On clicking on 'Activate', the card will be ready to be used for online login.",
"twelve": "Click on 'Share' button and scan the QR code from the requesting party. Once the connection is established, the card will be shared.",
"thirteen-a": "You can click on ...(meatballs menu) on a card in the Home page and choose Remove from Wallet option to remove a card from the wallet. To know more, please read",
"thirteen-b": " Please note that, the same card can be downloaded again.",
@@ -459,6 +455,10 @@
"ERR_INVALID_VALIDFROM": "Date is invalid or set in the future. Check for a valid date.",
"ERR_VALID_FROM_IS_FUTURE_DATE": "Date is invalid or set in the future. Check for a valid date.",
"ERR_INVALID_VALIDUNTIL": "Date is invalid. Check for a valid date."
},
"autoWalletBindingError": {
"title": "An Error Occurred!",
"message": "Something went wrong while processing your credential. Please try downloading it again. If the issue persists, reach out to support for help."
}
}
},
@@ -473,6 +473,10 @@
"stepFourText": "Authenticate yourself with ease using the stored digital credential.",
"stepFiveTitle": "Backup & Restore",
"stepFiveText": "Protect your data with ease using our Backup & Restore feature. Safely store your VCs against loss or accidents by creating regular backups and recover it effortlessly whenever needed for seamless continuity.",
"stepSixTitle": "User Centric",
"stepSixText": "Built around your needs giving you the power to decide. Manage your data with complete transparency.",
"stepSevenTitle": "Share With QR Code",
"stepSevenText": "Instant sharing at your fingertips - fast and hassle-free",
"getStarted": "Get Started",
"goBack": "Go Back",
"back": "Back",
@@ -1050,4 +1054,4 @@
"keyManagementTitle": "Key Management",
"keyManagementDesc": "Select the key generation method that aligns with your preference, putting you in control of your credential security.\nDrag and arrange the keys, with the top one being your highest priority."
}
}
}

View File

@@ -257,9 +257,7 @@
"six": "Ano ang isang Nabe-verify na Kredensyal?",
"seven": "Paano magdagdag ng card?",
"eight": "Maaari ba akong magdagdag ng maraming card?",
"nine": "Bakit sinasabi ng aking VC na nakabinbin ang Activation?",
"ten": "Ano ang ibig mong sabihin sa Activated for Online login?",
"eleven": "Paano i-activate ang isang card para sa online na pag-login?",
"twelve": "Paano magbahagi ng card?",
"thirteen": "Paano mag-alis ng card mula sa wallet?",
"fourteen": "Paano tingnan ang mga log ng aktibidad?",
@@ -298,10 +296,8 @@
"six": "Ang Nabe-verify na Kredensyal ay isang digitally signed na piraso ng impormasyon na kumakatawan sa isang pahayag na ginawa ng issuer tungkol sa isang paksa at karaniwang may kasamang mga detalye ng demograpiko. ",
"seven": "Maaaring ma-download ang mga ID sa INJI Mobile Wallet bilang Mga Nabe-verify na Kredensyal. ",
"eight": "Oo, maaari kang magdagdag ng maramihang mga card sa wallet sa pamamagitan ng pag-click sa pindutang ' ' sa Home page.",
"nine": "Kapag na-download na ang VC sa iyong wallet, hindi pa ito nakatali sa pagkakakilanlan ng user kung kaya't sinasabi ng iyong VC na Nakabinbin ang Aktibidad. ",
"ten-a": "1. Kapag matagumpay na na-binded ang VC sa wallet, makikita mo na ito ay Activated for Online login which means itong VC ay magagamit na para sa QR login process. ",
"ten-b": "2. Ang Q",
"eleven": "Pagkatapos matagumpay na magdagdag ng card sa wallet, mag-click sa 'Activation pending for Online login' sa card. ",
"twelve": "Mag-click sa pindutang 'Ibahagi' at i-scan ang QR code mula sa humihiling na partido. ",
"thirteen-a": "Maaari kang mag-click sa ...(meatballs menu) sa isang card sa Home page at piliin ang Remove from Wallet na opsyon upang alisin ang isang card mula sa wallet. ",
"thirteen-b": " Pakitandaan na, maaaring i-download muli ang parehong card.",
@@ -458,6 +454,10 @@
"ERR_INVALID_VALIDFROM": "Ang petsa ay hindi wasto o nakatakda sa hinaharap. Tingnan kung may wastong petsa.",
"ERR_VALID_FROM_IS_FUTURE_DATE": "Ang petsa ay hindi wasto o nakatakda sa hinaharap. Tingnan kung may wastong petsa.",
"ERR_INVALID_VALIDUNTIL": "Di-wasto ang petsa. Tingnan kung may wastong petsa."
},
"autoWalletBindingError": {
"title": "May pagkakamaling naganap!",
"message": "Nagkaproblema habang pinoproseso ang iyong kredensyal. Pakisubukang i-download itong muli. Kung magpapatuloy ang isyu, makipag-ugnayan sa suporta para sa tulong."
}
}
},
@@ -472,6 +472,10 @@
"stepFourText": "I-authenticate ang iyong sarili nang madali gamit ang nakaimbak na digital na kredensyal.",
"stepFiveTitle": "Backup & Ibalik",
"stepFiveText": "Protektahan ang iyong data nang madali gamit ang aming Backup",
"stepSixTitle": "Nakasentro ng Gumagamit",
"stepSixText": "Binuo sa paligid ng iyong mga pangangailangan nagbibigay sa iyo ng kapangyarihang magpasya. Pamahalaan ang iyong data nang may kumpletong transparency.",
"stepSevenTitle": "Ibahagi Sa QR Code",
"stepSevenText": "Instant na pagbabahagi sa iyong mga kamay - mabilis at walang problema",
"getStarted": "Magsimula",
"goBack": "Bumalik ka",
"back": "Bumalik",
@@ -500,7 +504,7 @@
"pending": {
"title": "Nakabinbing Katayuan:",
"description": "Kasalukuyang nakabinbin ang pag-verify dahil sa mga teknikal na isyu."
},
},
"expired": {
"title": "Nag-expire na Katayuan:",
"description": "Nag-expire na ang kredensyal."
@@ -1041,4 +1045,4 @@
"keyManagementTitle": "Pamamahala ng Key",
"keyManagementDesc": "Piliin ang paraan ng paggawa ng key na naaayon sa iyong kagustuhan, nagbibigay sa iyo ng kontrol sa seguridad ng iyong kredensyal.\nI-drag at ayusin ang mga key, kung saan ang nasa itaas ay ang may pinakamataas na priyoridad."
}
}
}

View File

@@ -242,6 +242,10 @@
"ERR_INVALID_VALIDFROM": "दिनांक अमान्य है या भविष्य में सेट है. वैध तिथि की जांच करें.",
"ERR_VALID_FROM_IS_FUTURE_DATE": "दिनांक अमान्य है या भविष्य में सेट है. वैध तिथि की जांच करें.",
"ERR_INVALID_VALIDUNTIL": "दिनांक अमान्य है. वैध तिथि की जांच करें."
},
"autoWalletBindingError": {
"title": "एक त्रुटि पाई गई!",
"message": "आपके क्रेडेंशियल को प्रोसेस करते समय कुछ गड़बड़ हो गई। कृपया इसे फिर से डाउनलोड करने का प्रयास करें। अगर समस्या बनी रहती है, तो सहायता के लिए सहायता केंद्र से संपर्क करें।"
}
}
},
@@ -258,9 +262,7 @@
"six": "सत्यापन योग्य क्रेडेंशियल क्या है?",
"seven": "कार्ड कैसे जोड़ें?",
"eight": "क्या मैं एकाधिक कार्ड जोड़ सकता हूँ?",
"nine": "मेरा वीसी यह क्यों कहता है कि सक्रियण लंबित है?",
"ten": "ऑनलाइन लॉगिन के लिए सक्रिय से आपका क्या तात्पर्य है?",
"eleven": "ऑनलाइन लॉगिन के लिए कार्ड कैसे सक्रिय करें?",
"twelve": "कार्ड कैसे साझा करें?",
"thirteen": "वॉलेट से कार्ड कैसे निकालें?",
"fourteen": "गतिविधि लॉग कैसे देखें?",
@@ -299,10 +301,8 @@
"six": "सत्यापन योग्य क्रेडेंशियल डिजिटल रूप से हस्ताक्षरित जानकारी का एक टुकड़ा है जो किसी विषय के बारे में जारीकर्ता द्वारा दिए गए बयान का प्रतिनिधित्व करता है और इसमें आम तौर पर जनसांख्यिकीय विवरण शामिल होते हैं। ",
"seven": "आईडी को INJI मोबाइल वॉलेट में सत्यापन योग्य क्रेडेंशियल के रूप में डाउनलोड किया जा सकता है। ",
"eight": "हां, आप होम पेज पर '' बटन पर क्लिक करके वॉलेट में कई कार्ड जोड़ सकते हैं।",
"nine": "एक बार वीसी आपके वॉलेट में डाउनलोड हो जाने के बाद, यह अभी तक उपयोगकर्ता की पहचान से बंधा नहीं है, यही कारण है कि आपका वीसी सक्रियण लंबित कहता है। ",
"ten-a": "1. एक बार जब वीसी सफलतापूर्वक वॉलेट से जुड़ जाता है, तो आप देख सकते हैं कि यह ऑनलाइन लॉगिन के लिए सक्रिय है, जिसका अर्थ है कि इस वीसी का उपयोग अब क्यूआर लॉगिन प्रक्रिया के लिए किया जा सकता है। ",
"ten-b": "2. प्र",
"eleven": "वॉलेट में सफलतापूर्वक कार्ड जोड़ने के बाद, कार्ड पर 'ऑनलाइन लॉगिन के लिए सक्रियण लंबित' पर क्लिक करें। ",
"twelve": "'शेयर' बटन पर क्लिक करें और अनुरोध करने वाले पक्ष से क्यूआर कोड स्कैन करें। ",
"thirteen-a": "आप होम पेज में कार्ड पर ...(मीटबॉल मेनू) पर क्लिक कर सकते हैं और वॉलेट से कार्ड हटाने के लिए वॉलेट से निकालें विकल्प चुन सकते हैं। ",
"thirteen-b": " कृपया ध्यान दें कि, उसी कार्ड को दोबारा डाउनलोड किया जा सकता है।",
@@ -474,6 +474,10 @@
"stepFourText": "संग्रहीत डिजिटल क्रेडेंशियल का उपयोग करके आसानी से स्वयं को प्रमाणित करें।",
"stepFiveTitle": "बैकअप & पुनर्स्थापित करना",
"stepFiveText": "हमारे बैकअप का उपयोग करके आसानी से अपने डेटा को सुरक्षित रखें",
"stepSixTitle": "उपयोगकर्ता केंद्रित",
"stepSixText": "आपकी ज़रूरतों के हिसाब से बनाया गया - आपको निर्णय लेने की शक्ति देता है। अपने डेटा को पूरी पारदर्शिता के साथ प्रबंधित करें।",
"stepSevenTitle": "QR कोड के साथ साझा करें",
"stepSevenText": "आपकी उंगलियों पर त्वरित साझाकरण - तेज़ और परेशानी मुक्त",
"getStarted": "शुरू हो जाओ",
"goBack": "वापस जाओ",
"back": "पीछे",
@@ -502,7 +506,7 @@
"pending": {
"title": "लंबित स्थिति:",
"description": "तकनीकी समस्याओं के कारण सत्यापन फिलहाल लंबित है।"
},
},
"expired": {
"title": "समाप्त स्थिति:",
"description": "क्रेडेंशियल समाप्त हो गया है।"
@@ -1042,4 +1046,4 @@
"keyManagementTitle": "कुंजी प्रबंधन",
"keyManagementDesc": "अपनी पसंद के अनुसार कुंजी उत्पन्न करने की विधि का चयन करें, जो आपकी क्रेडेंशियल सुरक्षा पर नियंत्रण देती है।\nकुंजियों को खींचें और व्यवस्थित करें, जहाँ शीर्ष कुंजी आपकी उच्चतम प्राथमिकता होगी।"
}
}
}

View File

@@ -241,6 +241,10 @@
"ERR_INVALID_VALIDFROM": "ದಿನಾಂಕ ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಭವಿಷ್ಯದಲ್ಲಿ ಹೊಂದಿಸಲಾಗಿದೆ. ಮಾನ್ಯವಾದ ದಿನಾಂಕವನ್ನು ಪರಿಶೀಲಿಸಿ.",
"ERR_VALID_FROM_IS_FUTURE_DATE": "ದಿನಾಂಕ ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಭವಿಷ್ಯದಲ್ಲಿ ಹೊಂದಿಸಲಾಗಿದೆ. ಮಾನ್ಯವಾದ ದಿನಾಂಕವನ್ನು ಪರಿಶೀಲಿಸಿ.",
"ERR_INVALID_VALIDUNTIL": "ದಿನಾಂಕ ಅಮಾನ್ಯವಾಗಿದೆ. ಮಾನ್ಯವಾದ ದಿನಾಂಕವನ್ನು ಪರಿಶೀಲಿಸಿ."
},
"autoWalletBindingError": {
"title": "ಒಂದು ತಪ್ಪು ನಡೆದಿದೆ!",
"message": "ನಿಮ್ಮ ರುಜುವಾತುಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ದಯವಿಟ್ಟು ಅದನ್ನು ಮತ್ತೊಮ್ಮೆ ಡೌನ್\u200Cಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ, ಸಹಾಯಕ್ಕಾಗಿ ಬೆಂಬಲವನ್ನು ಸಂಪರ್ಕಿಸಿ."
}
}
},
@@ -257,9 +261,7 @@
"six": "ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತು ಎಂದರೇನು?",
"seven": "ಕಾರ್ಡ್ ಅನ್ನು ಹೇಗೆ ಸೇರಿಸುವುದು?",
"eight": "ನಾನು ಬಹು ಕಾರ್ಡ್‌ಗಳನ್ನು ಸೇರಿಸಬಹುದೇ?",
"nine": "ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಬಾಕಿಯಿದೆ ಎಂದು ನನ್ನ VC ಏಕೆ ಹೇಳುತ್ತಾರೆ?",
"ten": "ಆನ್‌ಲೈನ್ ಲಾಗಿನ್‌ಗಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂಬುದರ ಅರ್ಥವೇನು?",
"eleven": "ಆನ್‌ಲೈನ್ ಲಾಗಿನ್‌ಗಾಗಿ ಕಾರ್ಡ್ ಅನ್ನು ಹೇಗೆ ಸಕ್ರಿಯಗೊಳಿಸುವುದು?",
"twelve": "ಕಾರ್ಡ್ ಹಂಚಿಕೊಳ್ಳುವುದು ಹೇಗೆ?",
"thirteen": "ವ್ಯಾಲೆಟ್ನಿಂದ ಕಾರ್ಡ್ ಅನ್ನು ಹೇಗೆ ತೆಗೆದುಹಾಕುವುದು?",
"fourteen": "ಚಟುವಟಿಕೆ ಲಾಗ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸುವುದು ಹೇಗೆ?",
@@ -298,10 +300,8 @@
"six": "ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತು ಎನ್ನುವುದು ಡಿಜಿಟಲ್ ಸಹಿ ಮಾಡಿದ ಮಾಹಿತಿಯ ತುಣುಕು, ಇದು ವಿಷಯದ ಬಗ್ಗೆ ನೀಡುವವರು ಮಾಡಿದ ಹೇಳಿಕೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಜನಸಂಖ್ಯಾ ವಿವರಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ",
"seven": "ಐಡಿಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತುಗಳಂತೆ INJI ಮೊಬೈಲ್ ವಾಲೆಟ್‌ಗೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು. ",
"eight": "ಹೌದು, ಮುಖಪುಟದಲ್ಲಿ ' ' ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡುವ ಮೂಲಕ ನೀವು ಬಹು ಕಾರ್ಡ್‌ಗಳನ್ನು ವ್ಯಾಲೆಟ್‌ಗೆ ಸೇರಿಸಬಹುದು.",
"nine": "ಒಮ್ಮೆ VC ಅನ್ನು ನಿಮ್ಮ ವ್ಯಾಲೆಟ್‌ಗೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದರೆ, ಅದು ಇನ್ನೂ ಬಳಕೆದಾರರ ಗುರುತಿನೊಂದಿಗೆ ಬದ್ಧವಾಗಿಲ್ಲ, ಅದಕ್ಕಾಗಿಯೇ ನಿಮ್ಮ VC ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಬಾಕಿಯಿದೆ ಎಂದು ಹೇಳುತ್ತದೆ. ",
"ten-a": "1. VC ಅನ್ನು ವ್ಯಾಲೆಟ್‌ನೊಂದಿಗೆ ಯಶಸ್ವಿಯಾಗಿ ಬಂಧಿಸಿದ ನಂತರ, ಅದನ್ನು ಆನ್‌ಲೈನ್ ಲಾಗಿನ್‌ಗಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ನೀವು ನೋಡಬಹುದು ಅಂದರೆ ಈ VC ಅನ್ನು ಈಗ QR ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಗೆ ಬಳಸಬಹುದು. ",
"ten-b": "2. ಪ್ರಶ್ನೆ",
"eleven": "ವ್ಯಾಲೆಟ್‌ಗೆ ಕಾರ್ಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸೇರಿಸಿದ ನಂತರ, ಕಾರ್ಡ್‌ನಲ್ಲಿರುವ 'ಆನ್‌ಲೈನ್ ಲಾಗಿನ್‌ಗಾಗಿ ಆಕ್ಟಿವೇಶನ್ ಪೆಂಡಿಂಗ್' ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ. ",
"twelve": "'ಹಂಚಿಕೊಳ್ಳಿ' ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ವಿನಂತಿಸಿದ ಪಕ್ಷದಿಂದ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ. ",
"thirteen-a": "ನೀವು ಮುಖಪುಟದಲ್ಲಿ ಕಾರ್ಡ್‌ನಲ್ಲಿ ...(ಮೀಟ್‌ಬಾಲ್ಸ್ ಮೆನು) ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಬಹುದು ಮತ್ತು ವ್ಯಾಲೆಟ್‌ನಿಂದ ಕಾರ್ಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲು ವಾಲೆಟ್‌ನಿಂದ ತೆಗೆದುಹಾಕಿ ಆಯ್ಕೆಯನ್ನು ಆರಿಸಿ. ",
"thirteen-b": " ಅದೇ ಕಾರ್ಡ್ ಅನ್ನು ಮತ್ತೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ.",
@@ -472,6 +472,10 @@
"stepFourText": "ಸಂಗ್ರಹಿಸಿದ ಡಿಜಿಟಲ್ ರುಜುವಾತುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸುಲಭವಾಗಿ ನಿಮ್ಮನ್ನು ದೃಢೀಕರಿಸಿ.",
"stepFiveTitle": "ಬ್ಯಾಕಪ್ & ಮರುಸ್ಥಾಪಿಸಿ",
"stepFiveText": "ನಮ್ಮ ಬ್ಯಾಕಪ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸುಲಭವಾಗಿ ರಕ್ಷಿಸಿ",
"stepSixTitle": "ಬಳಕೆದಾರ ಕೇಂದ್ರಿತ",
"stepSixText": "ನಿಮ್ಮ ಅಗತ್ಯಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ನಿರ್ಮಿಸಲಾಗಿದೆ - ನಿಮಗೆ ನಿರ್ಧರಿಸುವ ಶಕ್ತಿಯನ್ನು ನೀಡುತ್ತದೆ. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಂಪೂರ್ಣ ಪಾರದರ್ಶಕತೆಯೊಂದಿಗೆ ನಿರ್ವಹಿಸಿ.",
"stepSevenTitle": "QR ಕೋಡ್\u200Cನೊದಿಗೆ ಹಂಚಿಕೊಳ್ಳಿ",
"stepSevenText": "ನಿಮ್ಮ ಬೆರಳ ತುದಿಯಲ್ಲಿ ತತ್\u200Cಕ್ಷಣ ಹಂಚಿಕೆ - ವೇಗ ಮತ್ತು ತೊಂದರೆ-ಮುಕ್ತ",
"getStarted": "ಪ್ರಾರಂಭಿಸಿ",
"goBack": "ಹಿಂದೆ ಹೋಗು",
"back": "ಹಿಂದೆ",
@@ -1042,4 +1046,4 @@
"keyManagementTitle": "ಕೀ ನಿರ್ವಹಣೆ",
"keyManagementDesc": "ನಿಮ್ಮ ಆಸ್ತಿಕತೆಗಳಿಗೆ ಸರಿಹೊಂದುವ ಕೀ ಜನನ ವಿಧಾನವನ್ನು ಆಯ್ಕೆಮಾಡಿ, ಇದು ನಿಮ್ಮ ಆಧಾರ ಭದ್ರತೆಯ ಮೇಲೆ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತದೆ.\nಕೀಗಳನ್ನು ಎಳೆಯಿರಿ ಮತ್ತು ಜೋಡಿಸಿ, ಮೇಲಿನದು ನಿಮ್ಮ ಅತ್ಯುತ್ತಮ ಆದ್ಯತೆಯಾಗಿ ಇರುತ್ತದೆ."
}
}
}

View File

@@ -241,6 +241,10 @@
"ERR_INVALID_VALIDFROM": "தேதி தவறானது அல்லது எதிர்காலத்தில் அமைக்கப்படும். சரியான தேதியைச் சரிபார்க்கவும்.",
"ERR_VALID_FROM_IS_FUTURE_DATE": "தேதி தவறானது அல்லது எதிர்காலத்தில் அமைக்கப்படும். சரியான தேதியைச் சரிபார்க்கவும்.",
"ERR_INVALID_VALIDUNTIL": "தேதி தவறானது. சரியான தேதியைச் சரிபார்க்கவும்."
},
"autoWalletBindingError": {
"title": "ஒரு பிழை ஏற்பட்டது!",
"message": "உங்கள் நற்சான்றிதழைச் செயலாக்கும்போது ஏதோ தவறு ஏற்பட்டது. தயவு செய்து மீண்டும் பதிவிறக்க முயற்சிக்கவும். சிக்கல் தொடர்ந்தால், உதவிக்கு ஆதரவை அணுகவும்."
}
}
},
@@ -257,9 +261,7 @@
"six": "சரிபார்க்கக்கூடிய நற்சான்றிதழ் என்றால் என்ன?",
"seven": "அட்டையை எவ்வாறு சேர்ப்பது?",
"eight": "நான் பல அட்டைகளைச் சேர்க்கலாமா?",
"nine": "செயல்படுத்தல் நிலுவையில் இருப்பதாக எனது VC ஏன் கூறுகிறார்?",
"ten": "ஆன்லைன் உள்நுழைவுக்காக செயல்படுத்தப்பட்டது என்பதன் அர்த்தம் என்ன?",
"eleven": "ஆன்லைன் உள்நுழைவுக்கான அட்டையை எவ்வாறு செயல்படுத்துவது?",
"twelve": "ஒரு அட்டையை எவ்வாறு பகிர்வது?",
"thirteen": "பணப்பையில் இருந்து அட்டையை எவ்வாறு அகற்றுவது?",
"fourteen": "செயல்பாட்டுப் பதிவுகளை எவ்வாறு பார்ப்பது?",
@@ -298,10 +300,8 @@
"six": "சரிபார்க்கக்கூடிய நற்சான்றிதழ் என்பது டிஜிட்டல் கையொப்பமிடப்பட்ட தகவலாகும், இது ஒரு விஷயத்தைப் பற்றி வழங்குபவரின் அறிக்கையைப் பிரதிபலிக்கிறது மற்றும் பொதுவாக மக்கள்தொகை விவரங்களை உள்ளடக்கியது. ",
"seven": "ஐடிகளை சரிபார்க்கக்கூடிய சான்றுகளாக INJI மொபைல் வாலட்டில் பதிவிறக்கம் செய்யலாம். ",
"eight": "ஆம், முகப்புப் பக்கத்தில் உள்ள ' ' பொத்தானைக் கிளிக் செய்வதன் மூலம் பணப்பையில் பல கார்டுகளைச் சேர்க்கலாம்.",
"nine": "உங்கள் வாலட்டில் VC பதிவிறக்கம் செய்யப்பட்டவுடன், அது இன்னும் பயனரின் அடையாளத்துடன் பிணைக்கப்படவில்லை, அதனால்தான் உங்கள் VC செயல்படுத்தல் நிலுவையில் உள்ளது எனக் கூறுகிறது. ",
"ten-a": "1. VC வெற்றிகரமாக வாலட்டுடன் பிணைக்கப்பட்டவுடன், அது ஆன்லைன் உள்நுழைவுக்காக செயல்படுத்தப்பட்டிருப்பதைக் காணலாம், அதாவது இந்த VC இப்போது QR உள்நுழைவு செயல்முறைக்கு பயன்படுத்தப்படலாம். ",
"ten-b": "2. கே",
"eleven": "வாலட்டில் கார்டை வெற்றிகரமாகச் சேர்த்த பிறகு, கார்டில் உள்ள 'ஆன்லைன் உள்நுழைவுக்கான ஆக்டிவேஷன் பெண்டிங்' என்பதைக் கிளிக் செய்யவும். ",
"twelve": "'பகிர்' பொத்தானைக் கிளிக் செய்து, கோரும் தரப்பினரிடமிருந்து QR குறியீட்டை ஸ்கேன் செய்யவும். ",
"thirteen-a": "முகப்புப் பக்கத்தில் உள்ள கார்டில் ...(மீட்பால்ஸ் மெனு) என்பதைக் கிளிக் செய்து, பணப்பையிலிருந்து அட்டையை அகற்ற, வாலட்டில் இருந்து அகற்று விருப்பத்தைத் தேர்வுசெய்யலாம். ",
"thirteen-b": " அதே அட்டையை மீண்டும் பதிவிறக்கம் செய்யலாம் என்பதை நினைவில் கொள்ளவும்.",
@@ -472,6 +472,10 @@
"stepFourText": "சேமிக்கப்பட்ட டிஜிட்டல் நற்சான்றிதழைப் பயன்படுத்தி உங்களை எளிதாக அங்கீகரிக்கவும்.",
"stepFiveTitle": "காப்புப்பிரதி மற்றும் மீட்டமை",
"stepFiveText": "எங்கள் காப்புப்பிரதியைப் பயன்படுத்தி உங்கள் தரவை எளிதாகப் பாதுகாக்கவும்",
"stepSixTitle": "பயனர் மையமானது",
"stepSixText": "உங்கள் தேவைகளைச் சுற்றி கட்டமைக்கப்பட்டுள்ளது - முடிவெடுக்கும் சக்தியை உங்களுக்கு வழங்குகிறது. உங்கள் தரவை முழுமையான வெளிப்படைத்தன்மையுடன் நிர்வகிக்கவும்.",
"stepSevenTitle": "QR குறியீட்டுடன் பகிரவும்",
"stepSevenText": "உங்கள் விரல் நுனியில் உடனடிப் பகிர்வு - வேகமானது மற்றும் தொந்தரவு இல்லாதது",
"getStarted": "தொடங்குங்கள்",
"goBack": "திரும்பி செல்",
"back": "மீண்டும்",
@@ -1042,4 +1046,4 @@
"keyManagementTitle": "முக்கிய மேலாண்மை",
"keyManagementDesc": "உங்கள் விருப்பத்திற்கு ஏற்ப முக்கிய உருவாக்க முறையைத் தேர்ந்தெடுக்கவும், உங்கள் சான்றுத் தனி பாதுகாப்பை நீங்கள் கட்டுப்படுத்துகின்றீர்கள்.\nமேலுள்ள முக்கியம் உங்களின் மிக முக்கிய முன்னுரிமையாக இருக்கும் வகையில், முக்கியங்களை இழுத்து மறு வரிசைப்படுத்தவும்."
}
}
}

View File

@@ -9,6 +9,7 @@ import {
REQUEST_TIMEOUT,
isIOS,
EXPIRED_VC_ERROR_CODE,
DEFAULT_OTP,
} from '../../shared/constants';
import {assign, send} from 'xstate';
import {StoreEvents} from '../store';
@@ -20,6 +21,8 @@ import {
getEndEventData,
getImpressionEventData,
sendEndEvent,
getStartEventData,
sendStartEvent,
sendImpressionEvent,
} from '../../shared/telemetry/TelemetryUtils';
import {TelemetryConstants} from '../../shared/telemetry/TelemetryConstants';
@@ -27,6 +30,8 @@ import {NativeModules} from 'react-native';
import {KeyTypes} from '../../shared/cryptoutil/KeyTypes';
import {VCActivityLog} from '../../components/ActivityLogEvent';
import {isNetworkError} from '../../shared/Utils';
import {WalletBindingResponse} from '../VerifiableCredential/VCMetaMachine/vc';
import {getBindingCertificateConstant} from '../../shared/keystore/SecureKeystore';
const {RNSecureKeystoreModule} = NativeModules;
export const IssuersActions = (model: any) => {
@@ -347,6 +352,14 @@ export const IssuersActions = (model: any) => {
verificationErrorMessage: () => '',
}),
setAutoWalletBindingFailure: assign({
isAutoWalletBindingFailed: () => true,
}),
resetAutoWalletBindingFailure: model.assign({
isAutoWalletBindingFailed: () => false,
}),
sendDownloadingFailedToVcMeta: send(
(_: any) => ({
type: 'VC_DOWNLOADING_FAILED',
@@ -355,5 +368,64 @@ export const IssuersActions = (model: any) => {
to: context => context.serviceRefs.vcMeta,
},
),
unsetOTP: model.assign({OTP: () => ''}),
setOTP: model.assign({
OTP: (_, event) => {
return DEFAULT_OTP;
},
}),
setWalletBindingResponse: (context: any, event: any) => {
context.credentialWrapper = {
...context.credentialWrapper,
walletBindingResponse: event.data as WalletBindingResponse,
};
},
sendActivationStartEvent: context => {
sendStartEvent(
getStartEventData(
context.isMachineInKebabPopupState
? TelemetryConstants.FlowType.vcActivationFromKebab
: TelemetryConstants.FlowType.vcActivation,
),
);
},
setThumbprintForWalletBindingId: send(
(context: any) => {
const {credentialWrapper} = context;
const walletBindingIdKey = getBindingCertificateConstant(
credentialWrapper.walletBindingResponse.walletBindingId,
);
return StoreEvents.SET(
walletBindingIdKey,
credentialWrapper.walletBindingResponse.thumbprint,
);
},
{
to: context => context.serviceRefs.store,
},
),
resetPrivateKey: assign({
privateKey: () => '',
}),
sendActivationSuccessEvent: context =>
sendEndEvent(
getEndEventData(
context.isMachineInKebabPopupState
? TelemetryConstants.FlowType.vcActivationFromKebab
: TelemetryConstants.FlowType.vcActivation,
TelemetryConstants.EndEventStatus.success,
{'Activation key': context.vcMetadata?.downloadKeyType},
),
),
sendWalletBindingSuccess: send(
context => {
return {
type: 'AUTO_WALLET_BINDING_SUCCESS',
};
},
{
to: (context: any) => context.serviceRefs.vcMeta,
},
),
};
};

View File

@@ -11,6 +11,7 @@ export const IssuersEvents = {
CANCEL: () => ({}),
STORE_RESPONSE: (response?: unknown) => ({response}),
STORE_ERROR: (error: Error, requester?: string) => ({error, requester}),
RESET_VERIFY_ERROR: () => ({}),
RESET_ERROR_SCREEN: () => ({}),
SELECTED_CREDENTIAL_TYPE: (credType: CredentialTypes) => ({credType}),
SHOW_BINDING_STATUS: () => ({}),
};

View File

@@ -3,6 +3,7 @@ import {ErrorMessage, OIDCErrors} from '../../shared/openId4VCI/Utils';
import {isHardwareKeystoreExists} from '../../shared/cryptoutil/cryptoUtil';
import {BiometricCancellationError} from '../../shared/error/BiometricCancellationError';
import {VerificationErrorType} from '../../shared/vcjs/verifyCredential';
import {DEFAULT_OTP} from '../../shared/constants';
export const IssuersGuards = () => {
return {
@@ -57,5 +58,7 @@ export const IssuersGuards = () => {
const errorMessage = event.data.message;
return errorMessage === ErrorMessage.GENERIC;
},
isAutoWalletBindingFlow: (context: any, event: any) =>
context?.OTP === DEFAULT_OTP,
};
};

View File

@@ -358,6 +358,16 @@ export const IssuersMachine = model.createMachine(
cond: 'isCustomSecureKeystore',
target: 'downloadCredentials',
},
{
cond: 'isAutoWalletBindingFlow',
actions: [
'setPublicKey',
'setPrivateKey',
'setLoadingReasonAsDownloadingCredentials',
'storeKeyPair',
],
target: 'addingWalletBindingId',
},
{
actions: [
// to be decided
@@ -369,6 +379,13 @@ export const IssuersMachine = model.createMachine(
target: 'downloadCredentials',
},
],
onError: [
{
cond: 'isAutoWalletBindingFlow',
actions: 'setAutoWalletBindingFailure',
target: 'handleVCAutoWalletBindingFailure',
},
],
},
},
downloadCredentials: {
@@ -432,8 +449,12 @@ export const IssuersMachine = model.createMachine(
src: 'verifyCredential',
onDone: [
{
actions: ['sendSuccessEndEvent', 'setVerificationResult'],
target: 'storing',
actions: [
'sendSuccessEndEvent',
'setVerificationResult',
'setVCMetadata',
],
target: 'requestingBindingOTP',
},
],
onError: [
@@ -454,14 +475,94 @@ export const IssuersMachine = model.createMachine(
},
},
requestingBindingOTP: {
entry: 'sendActivationStartEvent',
invoke: {
src: 'requestBindingOTP',
onDone: [
{
target: 'addKeyPair',
actions: ['unsetOTP', 'setOTP'],
},
],
onError: [
{
actions: 'setAutoWalletBindingFailure',
target: 'handleVCAutoWalletBindingFailure',
},
],
},
},
addKeyPair: {
invoke: {
src: 'fetchKeyPair',
onDone: [
{
cond: 'hasKeyPair',
actions: ['setPublicKey'],
target: 'addingWalletBindingId',
},
{
target: 'generateKeyPair',
},
],
onError: [
{
actions: 'setAutoWalletBindingFailure',
target: 'handleVCAutoWalletBindingFailure',
},
],
},
},
addingWalletBindingId: {
invoke: {
src: 'addWalletBindingId',
onDone: [
{
cond: 'isCustomSecureKeystore',
actions: ['setWalletBindingResponse'],
target: 'updatingContextVariables',
},
],
onError: [
{
actions: 'setAutoWalletBindingFailure',
target: 'handleVCAutoWalletBindingFailure',
},
],
},
},
updatingContextVariables: {
entry: [
'setThumbprintForWalletBindingId',
'resetPrivateKey',
send('SHOW_BINDING_STATUS'),
],
on: {
SHOW_BINDING_STATUS: [
{
actions: 'sendWalletBindingSuccess',
target: 'storing',
},
],
},
},
handleVCVerificationFailure: {
on: {
RESET_VERIFY_ERROR: {
RESET_ERROR_SCREEN: {
actions: ['resetVerificationErrorMessage'],
},
},
},
handleVCAutoWalletBindingFailure: {
on: {
RESET_ERROR_SCREEN: {
actions: ['resetAutoWalletBindingFailure'],
},
},
},
storing: {
description: 'all the verified credential is stored.',
entry: [

View File

@@ -10,6 +10,7 @@ import {AppServices} from '../../shared/GlobalContext';
import {VCMetadata} from '../../shared/VCMetadata';
import {IssuersEvents} from './IssuersEvents';
import {issuerType} from './IssuersMachine';
import {CommunicationDetails} from '../../shared/Utils';
export const IssuersModel = createModel(
{
@@ -31,6 +32,8 @@ export const IssuersModel = createModel(
vcMetadata: {} as VCMetadata,
keyType: 'RS256' as string,
wellknownKeyTypes: [] as string[],
OTP: '',
isAutoWalletBindingFailed: false,
},
{
events: IssuersEvents,

View File

@@ -58,6 +58,10 @@ export function selectVerificationErrorMessage(state: State) {
return state.context.verificationErrorMessage;
}
export function selectAutoWalletBindingFailure(state: State) {
return state.context.isAutoWalletBindingFailed;
}
export function selectSelectingCredentialType(state: State) {
return state.matches('selectingCredentialType');
}

View File

@@ -1,5 +1,5 @@
import Cloud from '../../shared/CloudBackupAndRestoreUtils';
import {CACHED_API} from '../../shared/api';
import {API_URLS, CACHED_API} from '../../shared/api';
import NetInfo from '@react-native-community/netinfo';
import {
constructAuthorizationConfiguration,
@@ -29,6 +29,8 @@ import {TelemetryConstants} from '../../shared/telemetry/TelemetryConstants';
import {VciClient} from '../../shared/vciClient/VciClient';
import {isMockVC} from '../../shared/Utils';
import {VCFormat} from '../../shared/VCFormat';
import {request} from '../../shared/request';
import {WalletBindingResponse} from '../VerifiableCredential/VCMetaMachine/vc';
export const IssuersService = () => {
return {
@@ -172,5 +174,60 @@ export const IssuersService = () => {
};
}
},
requestBindingOTP: async (context: any) => {
const response = await request(
API_URLS.bindingOtp.method,
API_URLS.bindingOtp.buildURL(),
{
requestTime: String(new Date().toISOString()),
request: {
individualId: context.vcMetadata.individualId,
otpChannels: ['EMAIL', 'PHONE'],
},
},
);
if (response.response == null) {
throw new Error('Could not process request');
}
return response;
},
fetchKeyPair: async context => {
const keyType = context.vcMetadata?.downloadKeyType;
return await fetchKeyPair(keyType);
},
addWalletBindingId: async context => {
const response = await request(
API_URLS.walletBinding.method,
API_URLS.walletBinding.buildURL(),
{
requestTime: String(new Date().toISOString()),
request: {
authFactorType: 'WLA',
format: 'jwt',
individualId: context.vcMetadata.individualId,
transactionId: context.bindingTransactionId,
publicKey: context.publicKey,
challengeList: [
{
authFactorType: 'OTP',
challenge: context.OTP,
format: 'alpha-numeric',
},
],
},
},
);
const walletResponse: WalletBindingResponse = {
walletBindingId: response.response.encryptedWalletBindingId,
keyId: response.response.keyId,
thumbprint: response.response.thumbprint,
expireDateTime: response.response.expireDateTime,
};
return walletResponse;
},
};
};

View File

@@ -26,7 +26,7 @@ export const QrLoginServices = {
sendAuthenticate: async context => {
let privateKey;
const individualId = context.selectedVc.vcMetadata.mosipIndividualId;
const individualId = context.selectedVc.vcMetadata.individualId;
const keyType = context.selectedVc.vcMetadata.downloadKeyType;
if (!isHardwareKeystoreExists) {
privateKey = await getPrivateKey(

View File

@@ -59,7 +59,7 @@ export const VCItemServices = model => {
request: {
authFactorType: 'WLA',
format: 'jwt',
individualId: context.vcMetadata.mosipIndividualId,
individualId: context.vcMetadata.individualId,
transactionId: context.bindingTransactionId,
publicKey: context.publicKey,
challengeList: [
@@ -103,7 +103,7 @@ export const VCItemServices = model => {
{
requestTime: String(new Date().toISOString()),
request: {
individualId: context.vcMetadata.mosipIndividualId,
individualId: context.vcMetadata.individualId,
otpChannels: ['EMAIL', 'PHONE'],
},
},
@@ -175,7 +175,7 @@ export const VCItemServices = model => {
API_URLS.credentialDownload.method,
API_URLS.credentialDownload.buildURL(),
{
individualId: context.vcMetadata.mosipIndividualId,
individualId: context.vcMetadata.individualId,
requestId: context.vcMetadata.requestId,
},
);

View File

@@ -218,6 +218,12 @@ export const VCMetaActions = (model: any) => {
...getUpdatedVCMetadatas(context.myVcsMetadata, event.vcMetadata),
],
}),
setAutoWalletBindingSuccess: model.assign({
autoWalletBindingSuccess: true,
}),
resetAutoWalletBindingSuccess: model.assign({
autoWalletBindingSuccess: false,
}),
setWalletBindingSuccess: model.assign({
walletBindingSuccess: true,

View File

@@ -18,6 +18,7 @@ export const VcMetaEvents = {
REFRESH_MY_VCS_TWO: (vc: VC) => ({vc}),
REFRESH_RECEIVED_VCS: () => ({}),
WALLET_BINDING_SUCCESS: () => ({}),
AUTO_WALLET_BINDING_SUCCESS: () => ({}),
RESET_WALLET_BINDING_SUCCESS: () => ({}),
ADD_VC_TO_IN_PROGRESS_DOWNLOADS: (requestId: string) => ({requestId}),
REMOVE_VC_FROM_IN_PROGRESS_DOWNLOADS: (vcMetadata: VCMetadata) => ({
@@ -31,7 +32,7 @@ export const VcMetaEvents = {
errorMessage,
vcMetadata,
}),
RESET_VERIFY_ERROR: () => ({}),
RESET_ERROR_SCREEN: () => ({}),
REFRESH_VCS_METADATA: () => ({}),
SHOW_TAMPERED_POPUP: () => ({}),
SET_VERIFICATION_STATUS: (verificationStatus: unknown) => ({

View File

@@ -25,8 +25,8 @@ export const vcMetaMachine =
VC_DOWNLOADING_FAILED: {
actions: 'setDownloadCreadentialsFailed',
},
RESET_DOWNLOADING_SUCCESS:{
actions: 'resetDownloadCredentialsSuccess'
RESET_DOWNLOADING_SUCCESS: {
actions: 'resetDownloadCredentialsSuccess',
},
RESET_DOWNLOADING_FAILED: {
actions: 'resetDownloadCreadentialsFailed',
@@ -105,6 +105,9 @@ export const vcMetaMachine =
WALLET_BINDING_SUCCESS: {
actions: 'setWalletBindingSuccess',
},
AUTO_WALLET_BINDING_SUCCESS: {
actions: 'setAutoWalletBindingSuccess',
},
GET_VC_ITEM: {
actions: 'getVcItemResponse',
},
@@ -118,7 +121,7 @@ export const vcMetaMachine =
actions: ['updateMyVcsMetadata', 'setUpdatedVcMetadatas'],
},
VC_DOWNLOADED: {
actions: ['setDownloadCredentialsSuccess','setDownloadedVc',]
actions: ['setDownloadCredentialsSuccess', 'setDownloadedVc'],
},
ADD_VC_TO_IN_PROGRESS_DOWNLOADS: {
actions: 'addVcToInProgressDownloads',
@@ -151,7 +154,7 @@ export const vcMetaMachine =
],
target: '#vcMeta.ready',
},
RESET_VERIFY_ERROR: {
RESET_ERROR_SCREEN: {
actions: 'resetVerificationErrorMessage',
},
SET_VERIFICATION_STATUS: {

View File

@@ -15,12 +15,13 @@ export const VCMetamodel = createModel(
inProgressVcDownloads: new Set<string>(), //VCDownloadInProgress
areAllVcsDownloaded: false as boolean,
walletBindingSuccess: false,
autoWalletBindingSuccess: true,
tamperedVcs: [] as VCMetadata[],
downloadingFailedVcs: [] as VCMetadata[], //VCDownloadFailed
verificationErrorMessage: '' as string,
verificationStatus: null as vcVerificationBannerDetails | null,
DownloadingCredentialsFailed: false,
DownloadingCredentialsSuccess: false
DownloadingCredentialsSuccess: false,
},
{
events: VcMetaEvents,

View File

@@ -68,6 +68,10 @@ export function selectWalletBindingSuccess(state: State) {
return state.context.walletBindingSuccess;
}
export function selectAutoWalletBindingSuccess(state: State) {
return state.context.autoWalletBindingSuccess;
}
export function selectIsTampered(state: State) {
return state.matches('ready.tamperedVCs');
}

View File

@@ -43,22 +43,24 @@ export interface CredentialSubject {
type VCContext = (string | Record<string, unknown>)[];
export type Credential = {
credentialConfigurationId: any;
'@context': VCContext;
credentialSubject: CredentialSubject;
id: string;
issuanceDate: string;
issuer: string;
proof: {
created: string;
jws: string;
proofPurpose: 'assertionMethod' | string;
type: 'RsaSignature2018' | string;
verificationMethod: string;
};
type: string[];
} | string
export type Credential =
| {
credentialConfigurationId: any;
'@context': VCContext;
credentialSubject: CredentialSubject;
id: string;
issuanceDate: string;
issuer: string;
proof: {
created: string;
jws: string;
proofPurpose: 'assertionMethod' | string;
type: 'RsaSignature2018' | string;
verificationMethod: string;
};
type: string[];
}
| string;
export interface VerifiableCredential {
issuerLogo: logoType;
@@ -84,6 +86,7 @@ export interface CredentialWrapper {
identifier: string;
generatedOn: Date;
vcMetadata: VCMetadata;
walletBindingResponse: WalletBindingResponse;
}
export interface CredentialTypes {

View File

@@ -30,12 +30,6 @@ export const IntroSlidersScreen: React.FC<RootRouteProps> = props => {
text: t('stepOneText'),
image: Theme.IntroWelcome,
},
{
key: 'two',
title: t('stepTwoTitle'),
text: t('stepTwoText'),
image: Theme.SecureSharing,
},
{
key: 'three',
title: t('stepThreeTitle'),
@@ -48,6 +42,24 @@ export const IntroSlidersScreen: React.FC<RootRouteProps> = props => {
text: t('stepFourText'),
image: Theme.IntroShare,
},
{
key: 'two',
title: t('stepTwoTitle'),
text: t('stepTwoText'),
image: Theme.SecureSharing,
},
{
key: 'six',
title: t('stepSixTitle'),
text: t('stepSixText'),
image: Theme.IntroShareWithSelfie,
},
{
key: 'seven',
title: t('stepSevenTitle'),
text: t('stepSevenText'),
image: Theme.IntroShareQrCode,
},
{
key: 'five',
title: t('stepFiveTitle'),

View File

@@ -84,8 +84,8 @@ export const MyVcsTab: React.FC<HomeScreenTabProps> = props => {
const credentialSubject =
vc.verifiableCredential.credentialSubject ||
vc.verifiableCredential.credential.credentialSubject;
if(isStringAndContains(searchText,vc['vcMetadata'].credentialType))
isVcFound=true
if (isStringAndContains(searchText, vc['vcMetadata'].credentialType))
isVcFound = true;
else if (credentialSubject) {
isVcFound = searchNestedCredentialFields(
searchTextLower,
@@ -449,7 +449,7 @@ export const MyVcsTab: React.FC<HomeScreenTabProps> = props => {
image={SvgImage.PermissionDenied()}
showClose={false}
primaryButtonText="goBack"
primaryButtonEvent={controller.RESET_VERIFY_ERROR}
primaryButtonEvent={controller.RESET_ERROR_SCREEN}
primaryButtonTestID="goBack"
customStyles={{marginTop: '30%'}}
/>

View File

@@ -107,8 +107,8 @@ export function useMyVcsTab(props: HomeScreenTabProps) {
DELETE_VC: () => vcMetaService?.send(VcMetaEvents.DELETE_VC()),
RESET_VERIFY_ERROR: () => {
vcMetaService?.send(VcMetaEvents.RESET_VERIFY_ERROR());
RESET_ERROR_SCREEN: () => {
vcMetaService?.send(VcMetaEvents.RESET_ERROR_SCREEN());
},
SET_TOUR_GUIDE: set => {
authService?.send(AuthEvents.SET_TOUR_GUIDE(set));

View File

@@ -14,6 +14,7 @@ import {
selectStoring,
selectVerificationErrorMessage,
selectIsNonGenericError,
selectAutoWalletBindingFailure,
} from '../../machines/Issuers/IssuersSelectors';
import {ActorRefFrom} from 'xstate';
import {BOTTOM_TAB_ROUTES} from '../../routes/routesConstants';
@@ -52,6 +53,10 @@ export function useIssuerScreenController({route, navigation}) {
service,
selectVerificationErrorMessage,
),
isAutoWalletBindingFailed: useSelector(
service,
selectAutoWalletBindingFailure,
),
isError: useSelector(service, selectIsError),
CANCEL: () => service.send(IssuerScreenTabEvents.CANCEL()),
@@ -65,8 +70,8 @@ export function useIssuerScreenController({route, navigation}) {
},
SELECTED_CREDENTIAL_TYPE: (credType: CredentialTypes) =>
service.send(IssuerScreenTabEvents.SELECTED_CREDENTIAL_TYPE(credType)),
RESET_VERIFY_ERROR: () => {
service.send(IssuerScreenTabEvents.RESET_VERIFY_ERROR());
RESET_ERROR_SCREEN: () => {
service.send(IssuerScreenTabEvents.RESET_ERROR_SCREEN());
if (isAndroid()) {
navigation.navigate(BOTTOM_TAB_ROUTES.home, {screen: 'HomeScreen'});
} else {

View File

@@ -51,6 +51,8 @@ export const IssuersScreen: React.FC<
? t(translationKey)
: t(`errors.verificationFailed.ERR_GENERIC`);
const isAutoWalletBindingFailed = controller.isAutoWalletBindingFailed;
useLayoutEffect(() => {
if (controller.loadingReason || showFullScreenError) {
props.navigation.setOptions({
@@ -170,7 +172,26 @@ export const IssuersScreen: React.FC<
image={SvgImage.PermissionDenied()}
showClose={false}
primaryButtonText="goBack"
primaryButtonEvent={controller.RESET_VERIFY_ERROR}
primaryButtonEvent={controller.RESET_ERROR_SCREEN}
primaryButtonTestID="goBack"
customStyles={{marginTop: '30%'}}
/>
);
}
if (isAutoWalletBindingFailed) {
return (
<Error
testID="autoWalletBindingError"
isVisible={isAutoWalletBindingFailed}
isModal={true}
alignActionsOnEnd
title={t('MyVcsTab:errors.autoWalletBindingError.title')}
message={t(`MyVcsTab:errors.autoWalletBindingError.message`)}
image={SvgImage.PermissionDenied()}
showClose={false}
primaryButtonText="goBack"
primaryButtonEvent={controller.RESET_ERROR_SCREEN}
primaryButtonTestID="goBack"
customStyles={{marginTop: '30%'}}
/>

View File

@@ -6,10 +6,10 @@ import {
VerifiableCredential,
} from '../machines/VerifiableCredential/VCMetaMachine/vc';
import {Protocols} from './openId4VCI/Utils';
import {getMosipIdentifier} from './commonUtil';
import {getIdentifier} from './commonUtil';
import {VCFormat} from './VCFormat';
import {isMosipVC} from './Utils';
import { getCredentialType } from '../components/VC/common/VCUtils';
import {getCredentialType} from '../components/VC/common/VCUtils';
const VC_KEY_PREFIX = 'VC';
const VC_ITEM_STORE_KEY_REGEX = '^VC_[a-zA-Z0-9_-]+$';
@@ -24,7 +24,7 @@ export class VCMetadata {
protocol?: string = '';
timestamp?: string = '';
isVerified: boolean = false;
mosipIndividualId: string = '';
individualId: string = '';
format: string = '';
isExpired: boolean = false;
@@ -39,7 +39,7 @@ export class VCMetadata {
protocol = '',
timestamp = '',
isVerified = false,
mosipIndividualId = '',
individualId = '',
format = '',
downloadKeyType = '',
isExpired = false,
@@ -53,11 +53,11 @@ export class VCMetadata {
this.issuer = issuer;
this.timestamp = timestamp;
this.isVerified = isVerified;
this.mosipIndividualId = mosipIndividualId;
this.individualId = individualId;
this.format = format;
this.downloadKeyType = downloadKeyType;
this.isExpired = isExpired;
this.credentialType = credentialType
this.credentialType = credentialType;
}
//TODO: Remove any typing and use appropriate typing
@@ -73,13 +73,13 @@ export class VCMetadata {
timestamp: vc.vcMetadata ? vc.vcMetadata.timestamp : vc.timestamp,
isVerified: vc.isVerified,
isExpired: vc.isExpired,
mosipIndividualId: vc.mosipIndividualId
? vc.mosipIndividualId
individualId: vc.individualId
? vc.individualId
: vc.vcMetadata
? vc.vcMetadata.mosipIndividualId
: getMosipIndividualId(vc.verifiableCredential, vc.issuer),
? vc.vcMetadata.individualId
: getIndividualId(vc.verifiableCredential),
downloadKeyType: vc.downloadKeyType,
credentialType: vc.credentialType
credentialType: vc.credentialType,
});
}
@@ -119,7 +119,11 @@ export function parseMetadatas(metadataStrings: object[]) {
return metadataStrings.map(o => new VCMetadata(o));
}
export const getVCMetadata = (context: object, keyType: string, credType: CredentialTypes) => {
export const getVCMetadata = (
context: object,
keyType: string,
credType: CredentialTypes,
) => {
const [issuer, protocol, credentialId] =
context.credentialWrapper?.identifier.split(':');
@@ -131,29 +135,24 @@ export const getVCMetadata = (context: object, keyType: string, credType: Creden
timestamp: context.timestamp ?? '',
isVerified: context.vcMetadata.isVerified ?? false,
isExpired: context.vcMetadata.isExpired ?? false,
mosipIndividualId: getMosipIndividualId(
individualId: getIndividualId(
context['verifiableCredential'] as VerifiableCredential,
issuer,
),
format: context['credentialWrapper'].format,
downloadKeyType: keyType,
credentialType: getCredentialType(context.selectedCredentialType)
credentialType: getCredentialType(context.selectedCredentialType),
});
};
const getMosipIndividualId = (
const getIndividualId = (
verifiableCredential: VerifiableCredential | Credential,
issuer: string,
) => {
try {
const credential = verifiableCredential?.credential
? verifiableCredential.credential
: verifiableCredential;
const credentialSubject = credential?.credentialSubject;
if (isMosipVC(issuer)) {
return credentialSubject ? getMosipIdentifier(credentialSubject) : '';
}
return '';
return credentialSubject ? getIdentifier(credentialSubject) : '';
} catch (error) {
console.error('Error getting the display ID:', error);
return null;

View File

@@ -158,8 +158,8 @@ export const getScreenHeight = () => {
return {isSmallScreen, screenHeight};
};
export const getMosipIdentifier = (credentialSubject: CredentialSubject) => {
return credentialSubject.UIN ? credentialSubject.UIN : credentialSubject.VID;
export const getIdentifier = (credentialSubject: CredentialSubject) => {
return credentialSubject.nationalIDNumber;
};
export const isTranslationKeyFound = (

View File

@@ -70,7 +70,7 @@ export const API_CACHED_STORAGE_KEYS = {
fetchIssuerWellknownConfig: (issuerId: string) =>
`CACHE_FETCH_ISSUER_WELLKNOWN_CONFIG_${issuerId}`,
fetchIssuerAuthorizationServerMetadata: (authorizationServerUrl: string) =>
`CACHE_FETCH_ISSUER_AUTHORIZATION_SERVER_METADATA_${authorizationServerUrl}`,
`CACHE_FETCH_ISSUER_AUTHORIZATION_SERVER_METADATA_${authorizationServerUrl}`,
fetchTrustedVerifiers: 'CACHE_FETCH_TRUSTED_VERIFIERS',
};
@@ -146,7 +146,7 @@ export const DEFAULT_ECL = 'L';
export const DEFAULT_QR_HEADER = 'INJIQUICKSHARE://';
export const MAX_QR_DATA_LENGTH = 4296;
export const INTRO_SLIDER_LOGO_MARGIN = Dimensions.get('screen').width * 0.45;
export const INTRO_SLIDER_LOGO_MARGIN = Dimensions.get('screen').width * 0.28;
export const COPILOT_PRE_FINAL_STEP: number = 5;
export const COPILOT_FINAL_STEP: number = 6;
@@ -170,3 +170,5 @@ export const FACE_SDK_MODEL_CHECKSUM =
export const EXPIRED_VC_ERROR_CODE = 'ERR_VC_EXPIRED';
export const BASE_36 = 36;
export const DEFAULT_OTP = '111111';

View File

@@ -10,7 +10,7 @@ import {
} from '../../machines/VerifiableCredential/VCMetaMachine/vc';
import {getErrorEventData, sendErrorEvent} from '../telemetry/TelemetryUtils';
import {TelemetryConstants} from '../telemetry/TelemetryConstants';
import {getMosipIdentifier} from '../commonUtil';
import {getIdentifier} from '../commonUtil';
import {NativeModules} from 'react-native';
import {isAndroid} from '../constants';
import {VCFormat} from '../VCFormat';
@@ -198,7 +198,7 @@ function sendVerificationErrorEvent(
//Add only UIN / VID in the credential into telemetry error message and not document_number or other identifiers to avoid sensitivity issues
let detailedError = errorMessage;
if (verifiableCredential.credentialSubject)
detailedError += `-${getMosipIdentifier(
detailedError += `-${getIdentifier(
verifiableCredential.credentialSubject,
)}`;