diff --git a/.env b/.env index 07c36fda9b..d58987cb03 100644 --- a/.env +++ b/.env @@ -4,5 +4,7 @@ MIMOTO_HOST=https://api.qa-1201-b2.mosip.net #MIMOTO_HOST=http://mock.mimoto.newlogic.dev GOOGLE_NEARBY_MESSAGES_API_KEY= +#Application Theme can be ( orange | purple ) +APPLICATION_THEME=orange USE_BLE_SHARE=true diff --git a/.github/workflows/android-custom-build.yml b/.github/workflows/android-custom-build.yml index 23ac32a2db..a3cbad1ab8 100644 --- a/.github/workflows/android-custom-build.yml +++ b/.github/workflows/android-custom-build.yml @@ -11,6 +11,14 @@ on: required: true default: 'https://api.qa-121.mosip.net/residentmobileapp' type: string + theme: + description: 'Application Theme' + required: true + default: 'orange' + type: choice + options: + - orange + - purple jobs: build-android: @@ -44,13 +52,13 @@ jobs: run: | echo "${{ secrets.ENV_FILE }}" > .env.local > android/local.properties - - name: Setup branch and env + - name: Setup branch and env run: | # Strip git ref prefix from version echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - name: Setup branch and GPG public key + - name: Setup branch and GPG public key run: | # Strip git ref prefix from version @@ -69,6 +77,7 @@ jobs: env: MIMOTO_HOST: ${{ github.event.inputs.backendServiceUrl }} FIREBASE_SECRET: ${{ secrets.GPG_SECRET }} + APPLICATION_THEME: ${{ github.event.inputs.theme }} - name: Upload Artifact uses: actions/upload-artifact@v3.1.1 with: diff --git a/android/app/build.gradle b/android/app/build.gradle index cbebac64a3..a9f1aae3d6 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -252,6 +252,7 @@ dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+"// From node_modules + implementation 'com.facebook.soloader:soloader:0.10.1+' def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; diff --git a/android/build.gradle b/android/build.gradle index 902d3dbb7b..dd92068598 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -34,6 +34,11 @@ allprojects { // Android JSC is installed from npm url(new File(["node", "--print", "require.resolve('jsc-android/package.json')"].execute(null, rootDir).text.trim(), "../dist")) } + configurations.all { + resolutionStrategy { + force "com.facebook.soloader:soloader:0.10.1" + } + } google() gradlePluginPortal() diff --git a/android/gradle.properties b/android/gradle.properties index 16bffe9085..099c1dd0e3 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -38,4 +38,7 @@ expo.gif.enabled=true expo.webp.enabled=true # Enable animated webp support (~3.4 MB increase) # Disabled by default because iOS doesn't support animated webp -expo.webp.animated=false \ No newline at end of file +expo.webp.animated=false + +# If the AsyncStorage_db_size_in_MB is not configured, Default DB_MAX_SIZE is 6MB in Android +AsyncStorage_db_size_in_MB=30 diff --git a/components/EditableListItem.tsx b/components/EditableListItem.tsx index e50b628acf..550b8924af 100644 --- a/components/EditableListItem.tsx +++ b/components/EditableListItem.tsx @@ -11,7 +11,10 @@ export const EditableListItem: React.FC = (props) => { const [newValue, setNewValue] = useState(props.value); return ( - setIsEditing(true)}> + setIsEditing(true)} + style={{ display: props.display }}> void; + display?: 'none' | 'flex'; } diff --git a/components/SingleVcItem.tsx b/components/SingleVcItem.tsx index 1b241a8a8b..bcb3395107 100644 --- a/components/SingleVcItem.tsx +++ b/components/SingleVcItem.tsx @@ -1,6 +1,6 @@ import React, { useContext, useRef } from 'react'; import { useInterpret, useSelector } from '@xstate/react'; -import { Image, ImageBackground, Pressable } from 'react-native'; +import { Image, ImageBackground, Pressable, View } from 'react-native'; import { CheckBox, Icon } from 'react-native-elements'; import { ActorRefFrom } from 'xstate'; import { @@ -16,17 +16,7 @@ import { Theme } from './ui/styleUtils'; import { GlobalContext } from '../shared/GlobalContext'; import { RotatingIcon } from './RotatingIcon'; import { useTranslation } from 'react-i18next'; - -const VerifiedIcon: React.FC = () => { - return ( - - ); -}; +import VerifiedIcon from './VerifiedIcon'; const getDetails = (arg1, arg2, verifiableCredential) => { if (arg1 === 'Status') { diff --git a/components/VcDetails.tsx b/components/VcDetails.tsx index 32836fb2f6..4df855775a 100644 --- a/components/VcDetails.tsx +++ b/components/VcDetails.tsx @@ -2,24 +2,14 @@ import { formatDistanceToNow } from 'date-fns'; import React from 'react'; import * as DateFnsLocale from '../lib/date-fns/locale'; import { useTranslation } from 'react-i18next'; -import { Image, ImageBackground } from 'react-native'; +import { Image, ImageBackground, View } from 'react-native'; import { Icon } from 'react-native-elements'; import { VC, CredentialSubject, LocalizedField } from '../types/vc'; import { Button, Column, Row, Text } from './ui'; import { Theme } from './ui/styleUtils'; import { TextItem } from './ui/TextItem'; import { VcItemTags } from './VcItemTags'; - -const VerifiedIcon: React.FC = () => { - return ( - - ); -}; +import VerifiedIcon from './VerifiedIcon'; export const VcDetails: React.FC = (props) => { const { t, i18n } = useTranslation('VcDetails'); @@ -271,29 +261,28 @@ export const VcDetails: React.FC = (props) => { {props.activeTab !== 1 ? ( props.isBindingPending ? ( - + + + {t('offlineAuthDisabledHeader')} + - - - {t('offlineAuthDisabledHeader')} - + color={Theme.Colors.statusLabel}> {t('offlineAuthDisabledMessage')} @@ -314,7 +303,7 @@ export const VcDetails: React.FC = (props) => { /> { - return ( - - ); -}; import { LocalizedField } from '../types/vc'; import { VcItemTags } from './VcItemTags'; +import VerifiedIcon from './VerifiedIcon'; const getDetails = (arg1, arg2, verifiableCredential) => { if (arg1 === 'Status') { @@ -71,8 +67,9 @@ const getDetails = (arg1, arg2, verifiableCredential) => { ? Theme.Colors.LoadingDetailsLabel : Theme.Colors.DetailsLabel } - weight="bold" - size="smaller"> + size="smaller" + weight={'bold'} + style={Theme.Styles.vcItemLabelHeader}> {arg1} = (props) => { style={ !verifiableCredential ? Theme.Styles.loadingTitle - : Theme.Styles.subtitle + : Theme.Styles.statusLabel } children={t('offlineAuthDisabledHeader')}> @@ -264,7 +261,7 @@ export const VcItem: React.FC = (props) => { { + return ( + + + + + + ); +}; + +export default VerifiedIcon; diff --git a/components/ui/styleUtils.ts b/components/ui/styleUtils.ts index e158134c5a..391a8f708f 100644 --- a/components/ui/styleUtils.ts +++ b/components/ui/styleUtils.ts @@ -1,8 +1,10 @@ import { DefaultTheme } from './themes/DefaultTheme'; +import { PurpleTheme } from './themes/PurpleTheme'; +import { APPLICATION_THEME } from 'react-native-dotenv'; // To change the theme, CSS theme file has to import and assign it to Theme in line no 6 - -export const Theme = DefaultTheme; +export const Theme = + APPLICATION_THEME.toLowerCase() === 'purple' ? PurpleTheme : DefaultTheme; type SpacingXY = [number, number]; type SpacingFull = [number, number, number, number]; diff --git a/components/ui/themes/DefaultTheme.ts b/components/ui/themes/DefaultTheme.ts index 495bf1c78f..b8bd14bf08 100644 --- a/components/ui/themes/DefaultTheme.ts +++ b/components/ui/themes/DefaultTheme.ts @@ -78,6 +78,19 @@ export const DefaultTheme = { backgroundColor: Colors.Grey, borderRadius: 4, }, + statusLabel: { + color: Colors.Black, + }, + verifiedIconContainer: { + marginLeft: 5, + }, + verifiedIconInner: { + backgroundColor: 'white', + borderRadius: 10, + }, + vcItemLabelHeader: { + color: Colors.Orange, + }, closeDetails: { flex: 1, flexDirection: 'row', @@ -175,8 +188,6 @@ export const DefaultTheme = { backgroundImageContainer: { flex: 1, padding: 10, - borderBottomColor: Colors.Grey, - borderBottomWidth: 1, }, successTag: { backgroundColor: Colors.Green, diff --git a/components/ui/themes/PurpleTheme.ts b/components/ui/themes/PurpleTheme.ts index 23d23e9adf..c1eba4ed9a 100644 --- a/components/ui/themes/PurpleTheme.ts +++ b/components/ui/themes/PurpleTheme.ts @@ -13,6 +13,7 @@ const Colors = { Red: '#EB5757', Green: '#219653', Purple: '#70308C', + Purple2: '#AEA7FF', Transparent: 'transparent', Warning: '#f0ad4e', }; @@ -23,8 +24,9 @@ export const PurpleTheme = { Colors: { TabItemText: Colors.Purple, Details: Colors.White, - DetailsLabel: Colors.White, + DetailsLabel: Colors.Purple2, LoadingDetailsLabel: Colors.Black, + statusLabel: Colors.Black, AddIdBtnBg: Colors.Purple, AddIdBtnTxt: Colors.Purple, ClearAddIdBtnBg: 'transparent', @@ -77,6 +79,19 @@ export const PurpleTheme = { backgroundColor: Colors.Grey, borderRadius: 4, }, + statusLabel: { + color: Colors.Black, + }, + verifiedIconContainer: { + marginLeft: 5, + }, + verifiedIconInner: { + backgroundColor: 'white', + borderRadius: 10, + }, + vcItemLabelHeader: { + color: Colors.Purple2, + }, closeDetails: { flex: 1, flexDirection: 'row', @@ -136,8 +151,6 @@ export const PurpleTheme = { backgroundImageContainer: { flex: 1, padding: 10, - borderBottomColor: Colors.Grey, - borderBottomWidth: 1, }, successTag: { backgroundColor: Colors.Green, @@ -334,7 +347,7 @@ export const PurpleTheme = { radius: { flex: 1, borderRadius: 10, - backgroundColor: Colors.Orange, + backgroundColor: Colors.Purple, }, }), OIDCAuthStyles: StyleSheet.create({ diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b944ab9028..01699b4e00 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -274,7 +274,7 @@ PODS: - React-jsinspector (0.64.4) - react-native-netinfo (7.1.3): - React-Core - - react-native-openid4vp-ble (0.3.5): + - react-native-openid4vp-ble (0.3.7): - CrcSwift (~> 0.0.3) - GzipSwift - React-Core @@ -665,7 +665,7 @@ SPEC CHECKSUMS: React-jsiexecutor: 8c077bef1c64430b6034f27df1000d194551e2eb React-jsinspector: d4f6973dd474357dbaaf6f52f31ffc713bf3e766 react-native-netinfo: 42c0965fca99069b92e3f7360ab2d425985e5104 - react-native-openid4vp-ble: d689ca3519866229745df2148ce4f4e4c8f54dff + react-native-openid4vp-ble: b478fc7f3214e99aaf38e527390958ec0bd59876 react-native-restart: 45c8dca02491980f2958595333cbccd6877cb57e react-native-rsa-native: 12132eb627797529fdb1f0d22fd0f8f9678df64a react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057 diff --git a/locales/ara.json b/locales/ara.json index 2b9eb371a8..f66a526e3f 100644 --- a/locales/ara.json +++ b/locales/ara.json @@ -129,15 +129,15 @@ "backButton": "العودة إلى المنزل" }, "GetIdInputModal": { - "header": "لاسترداد UIN أو VID ، أدخل رقم التطبيق {{vcLabel}}", + "header": "أدخل معرف التطبيق الخاص بك للحصول على UIN الخاص بك", "getUIN": "احصل على UIN / VID", - "applicationId": "رقم التطبيق {{vcLabel}}", + "applicationId": "رقم الاستمارة", "requestingOTP": "طلب OTP...", - "qstnMarkToolTip": "تمت طباعة رقم التطبيق {{vcLabel}} على الإقرار المقدم بعد التسجيل" + "qstnMarkToolTip": "معرف التطبيق متاح في الإقرار الذي تم استلامه بعد التسجيل." }, "IdInputModal": { - "header": "أدخل UIN المقدم من MOSIP أو VID لـ {{vcLabel}} الذي تريد استرداده", - "generateVc": "إنشاء {{vcLabel}}", + "header": "أدخل UIN / VID لتنزيل {{vcLabel}}", + "generateVc": "يولد لي {{vcLabel}}", "enterId": "أدخل {{idType}}", "noUIN/VID": "ليس لديك UIN / VID الخاص بك؟ أحضره هنا", "requestingOTP": "طلب OTP..." @@ -186,7 +186,7 @@ "home": "المنزل", "scan": "مسح", "request": "طلب", - "profile": "الملف الشخصي" + "settings": "إعدادات" }, "PasscodeScreen": { "header": "تعيين رمز مرور لتأمين تطبيقك", @@ -201,17 +201,19 @@ "name": "اسم", "vcLabel": "تسمية VC", "language": "اللغة", - "bioUnlock": "فتح المقاييس الحيوية", + "bioUnlock":"افتح مع القياسات الحيوية", "authFactorUnlock": "إلغاء تأمين عامل المصادقة", "credits": "القانونية", - "logout": "تسجيل الخروج", + "logout": "تسجيل خروج", "revokeLabel": "إبطال VID", "revokeHeader": "إبطال VID", "revokingVids": "({{count}}) أنت على وشك إلغاء معرّفات VID.", "revokingVidsAfter": "هذا يعني أنك لن تكون قادرًا على استخدام أو عرض أي من المعرفات المرتبطة بمعرف (معرفات) VID هؤلاء. \nهل انت متأكد انك تريد المتابعة?", "empty": "فارغة", "revokeSuccessful": "تم إبطال VID بنجاح", - "version": "الإصدار" + "version": "الإصدار", + "useBle": "Powered by BLE", + "useGoogleNearby": "Powered by GoogleNearby" }, "QrScreen": { "title": "QR تسجيل الدخول", @@ -241,7 +243,7 @@ }, "RequestScreen": { "bluetoothDenied": "الرجاء تمكين Bluetooth لتتمكن من طلب{{vcLabel}}", - "showQrCode": "{{vcLabel}} أظهر رمز الاستجابة السريعة هذا لطلب ", + "showQrCode": "اعرض رمز الاستجابة السريعة هذا لطلب المقيم {{vcLabel}}", "incomingVc": "الوارد {{vcLabel}}", "request": "طلب", "status": { @@ -301,8 +303,8 @@ }, "SendVcScreen": { "reasonForSharing": "سبب المشاركة (اختياري)", - "acceptRequest": "اقبل الطلب واختر {{vcLabel}}", - "acceptRequestAndVerify": "قبول الطلب والتحقق", + "acceptRequest": "يشارك", + "acceptRequestAndVerify":"شارك مع Selfie", "reject": "رفض", "status": { "sharing": { diff --git a/locales/en.json b/locales/en.json index fe78483293..e33f57953d 100644 --- a/locales/en.json +++ b/locales/en.json @@ -129,15 +129,15 @@ "backButton": "Back home" }, "GetIdInputModal": { - "header": "To retrieve your UIN or VID, enter your application {{vcLabel}} number", + "header": "Enter your Application ID to get your UIN", "getUIN": "Get UIN/VID", - "applicationId": "Application {{vcLabel}} number", + "applicationId": "Application ID", "requestingOTP": "Requesting OTP...", - "qstnMarkToolTip": "Application {{vcLabel}} Number is printed on the acknowledgment provided after enrollment" + "qstnMarkToolTip": "Application ID is available in the acknowledgement received after enrolment." }, "IdInputModal": { - "header": "Enter the MOSIP-provided UIN or VID of the {{vcLabel}} you wish to retrieve", - "generateVc": "Generate {{vcLabel}}", + "header": "Enter your UIN/VID to download your {{vcLabel}}", + "generateVc": "Generate My {{vcLabel}}", "enterId": "Enter your {{idType}}", "noUIN/VID": "Don't have your UIN/VID? Get it here", "requestingOTP": "Requesting OTP..." @@ -186,7 +186,7 @@ "home": "Home", "scan": "Scan", "request": "Request", - "profile": "Profile" + "settings": "Settings" }, "PasscodeScreen": { "header": "Set a passcode to secure your application", @@ -201,10 +201,10 @@ "name": "Name", "vcLabel": "VC Label", "language": "Language", - "bioUnlock": "Biometric unlock", + "bioUnlock": "Unlock with biometrics", "authFactorUnlock": "Unlock auth factor", "credits": "Credits and legal notices", - "logout": "Log-out", + "logout": "Logout", "revokeLabel": "Revoke VID", "revokeHeader": "REVOKE VID", "revokingVids": "You are about to revoke ({{count}}) VIDs.", @@ -248,7 +248,7 @@ }, "RequestScreen": { "bluetoothDenied": "Please enable Bluetooth to be able to request {{vcLabel}}", - "showQrCode": "Show this QR code to request {{vcLabel}}", + "showQrCode": "Display this QR code to request resident {{vcLabel}}", "incomingVc": "Incoming {{vcLabel}}", "request": "Request", "status": { diff --git a/locales/fil.json b/locales/fil.json index dc3b442555..460deaa1a1 100644 --- a/locales/fil.json +++ b/locales/fil.json @@ -127,9 +127,16 @@ "bodyText": "Maaaring tumagal ito ng ilang oras, ipapaalam namin sayo kung pwede na kunin ang iyong {{vcLabel}}", "backButton": "Bumalik" }, + "GetIdInputModal": { + "header": "Ilagay ang iyong Application ID para makuha ang iyong UIN", + "getUIN": "Kumuha ng UIN/VID", + "applicationId": "Application ID", + "requestingOTP": "Humihiling ng OTP...", + "qstnMarkToolTip": "Available ang Application ID sa natanggap na acknowledgement pagkatapos ng enrollment." + }, "IdInputModal": { - "header": "Ilagay ang UIN o VID na ibinigay ng MOSIP upang matanggap ang iyong {{vcLabel}}", - "generateVc": "Gumawa ng {{vcLabel}}", + "header": "Ilagay ang iyong UIN/VID para i-download ang iyong {{vcLabel}}", + "generateVc": "Bumuo ng Aking {{vcLabel}}", "enterId": "Ilagay ang iyong {{idType}}" }, "OtpVerificationModal": { @@ -173,10 +180,10 @@ } }, "MainLayout": { - "home": "Home", + "home": "Bahay", "scan": "Scan", "request": "Request", - "profile": "Profile" + "settings": "mga setting" }, "PasscodeScreen": { "header": "Magtakda ng passcode upang masigurado ang iyong aplikasyon", @@ -191,17 +198,19 @@ "name": "Pangalan", "vcLabel": "Panawag sa VC", "language": "Wika", - "bioUnlock": "Pagbukas gamit Biometric", + "bioUnlock": "I-unlock gamit ang biometrics", "authFactorUnlock": "Pagbukas ng auth factor", "credits": "Mga kredito at legal na abiso", - "logout": "Mag log-out", + "logout": "Mag-logout", "revokeLabel": "Kanselahin ang VID", "revokeHeader": "KANSELAHIN ANG VID", "revokingVids": "Kakanselahin mo na ang ({{count}}) na mga VID.", "revokingVidsAfter": "Nangangahulugan ito na hindi mo na maa-access o matitingnan ang anumang mga ID na naka-link sa mga VID na ito. Sigurado ka bang gusto mong magpatuloy?", "empty": "Walang laman", "revokeSuccessful": "Matagumpay na nakansela ang VID", - "version": "Bersyon" + "version": "Bersyon", + "useBle": "Powered by BLE", + "useGoogleNearby": "Powered by GoogleNearby" }, "QrScreen": { "title": "QR Login", @@ -230,7 +239,7 @@ }, "RequestScreen": { "bluetoothDenied": "Mangyaring paganahin ang Bluetooth upang makahiling ng {{vcLabel}}", - "showQrCode": "Ipakita ang QR code na ito para makahiling ng {{vcLabel}}", + "showQrCode": "Ipakita ang QR code na ito para humiling ng resident {{vcLabel}}", "incomingVc": "Padating na {{vcLabel}}", "request": "Hilingin", "status": { @@ -293,7 +302,8 @@ }, "SendVcScreen": { "reasonForSharing": "Dahilan ng pagbabahagi (opsyonal)", - "acceptRequest": "Tanggapin ang kahilingan at piliin ang {{vcLabel}}", + "acceptRequest": "Ibahagi", + "acceptRequestAndVerify": "Ibahagi sa Selfie", "reject": "Tanggihan", "status": { "sharing": { @@ -336,4 +346,4 @@ "genericError": "Nagkaproblema. Pakisubukang muli pagkatapos ng ilang oras!" } } -} \ No newline at end of file +} diff --git a/locales/hin.json b/locales/hin.json index 3d998e23eb..d88e0b37fc 100644 --- a/locales/hin.json +++ b/locales/hin.json @@ -1,4 +1,4 @@ -{ +{ "ActivityLogText": { "VC_SHARED": "साझा", "VC_RECEIVED": "प्राप्त किया", @@ -129,15 +129,15 @@ "backButton": "बैक होम" }, "GetIdInputModal": { - "header": "अपना यूआईएन या वीआईडी पुनर्प्राप्त करने के लिए, अपना ऐप्लिकेशन {{vcLabel}} नंबर दर्ज करें", + "header": "अपना यूआईएन प्राप्त करने के लिए अपनी एप्लिकेशन ID दर्ज करें", "getUIN": "UIN/VID ​​प्राप्त करें", - "applicationId": "एप्लिकेशन {{vcLabel}} संख्या", + "applicationId": "आवेदन ID", "requestingOTP": "OTP का अनुरोध...", - "qstnMarkToolTip": "आवेदन {{vcLabel}} नंबर नामांकन के बाद प्रदान की गई पावती पर मुद्रित होता है" + "qstnMarkToolTip": "आवेदन ID नामांकन के बाद प्राप्त पावती में उपलब्ध है।" }, "IdInputModal": { - "header": "जिस {{vcLabel}} को आप पुनः प्राप्त करना चाहते हैं, उसका MOSIP- प्रदान किया गया UIN या VID दर्ज करें", - "generateVc": "जेनरेट {{vcLabel}}", + "header": "अपना {{vcLabel}} डाउनलोड करने के लिए अपना UIN/VID ​​दर्ज करें", + "generateVc": "मेरा {{vcLabel}} जनरेट करें", "enterId": "अपना {{idType}} दर्ज करें", "noUIN/VID": "आपका UIN/VID ​​नहीं है? इसे यहां लाओ", "requestingOTP": "OTP का अनुरोध..." @@ -186,7 +186,7 @@ "home": "घर", "scan": "स्कैन", "request": "अनुरोध", - "profile": "प्रोफाइल" + "settings": "सेटिंग्स" }, "PasscodeScreen": { "header": "अपना आवेदन सुरक्षित करने के लिए पासकोड सेट करें", @@ -201,7 +201,7 @@ "name": "नाम", "vcLabel": "वीसी लेबल", "language": "भाषा", - "bioUnlock": "बायोमेट्रिक अनलॉक", + "bioUnlock": "बायोमेट्रिक्स से अनलॉक करें", "authFactorUnlock": "अनलॉक ऑथ फैक्टर", "credits": "क्रेडिट और कानूनी नोटिस", "logout": "लॉग आउट", @@ -211,7 +211,9 @@ "revokingVidsAfter": "इसका अर्थ है कि अब आप उनसे लिंक की गई किसी भी आईडी का उपयोग या देखने में सक्षम नहीं होंगे VID(s). \nक्या आप सुनिश्चित रूप से आगे बढ़ना चाहते हैं?", "empty": "खाली", "revokeSuccessful": "VID को सफलतापूर्वक निरस्त कर दिया गया", - "version": "संस्करण" + "version": "संस्करण", + "useBle": "Powered by BLE", + "useGoogleNearby": "Powered by GoogleNearby" }, "QrScreen": { "title": "क्यूआर लॉगिन", @@ -241,7 +243,7 @@ }, "RequestScreen": { "bluetoothDenied": "कृपया ब्लूटूथ को सक्षम करें ताकि वह {{vcLabel}} का अनुरोध कर सके", - "showQrCode": "{{vcLabel}} का अनुरोध करने के लिए यह QR कोड दिखाएं", + "showQrCode": "निवासी {{vcLabel}} का अनुरोध करने के लिए यह क्यूआर कोड प्रदर्शित करें", "incomingVc": "इनकमिंग {{vcLabel}}", "request": "प्रार्थना", "status": { @@ -301,8 +303,8 @@ }, "SendVcScreen": { "reasonForSharing": "साझा करने का कारण (वैकल्पिक)", - "acceptRequest": "अनुरोध स्वीकार करें और चुनें {{vcLabel}}", - "acceptRequestAndVerify": "अनुरोध स्वीकार करें और सत्यापित करें", + "acceptRequest": "शेयर करना", + "acceptRequestAndVerify": "सेल्फी के साथ शेयर करें", "reject": "अस्वीकार", "status": { "sharing": { @@ -317,7 +319,7 @@ "rejected": { "title": "सूचना", "message": "आपके {{vcLabel}} को {{receiver}} ने अस्वीकार कर दिया था" - + } }, "consentToPhotoVerification": "मैं प्रमाणीकरण के लिए अपनी फोटो लेने की सहमति देता हूं" @@ -371,4 +373,4 @@ "genericError": "कुछ गलत हो गया। कृपया कुछ समय बाद पुन: प्रयास करें!" } } - } \ No newline at end of file + } diff --git a/locales/kan.json b/locales/kan.json index ffc92c62fa..0906d8450e 100644 --- a/locales/kan.json +++ b/locales/kan.json @@ -129,15 +129,15 @@ "backButton": "ಬ್ಯಾಕ್ ಹೋಮ್" }, "GetIdInputModal": { - "header": "ನಿಮ್ಮ UIN ಅಥವಾ VID ಅನ್ನು ಹಿಂಪಡೆಯಲು, ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ {{vcLabel}} ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ", + "header": "ನಿಮ್ಮ UIN ಪಡೆಯಲು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ID ನಮೂದಿಸಿ", "getUIN": "UIN/VID ಪಡೆಯಿರಿ", - "applicationId": "ಅಪ್ಲಿಕೇಶನ್ {{vcLabel}} ಸಂಖ್ಯೆ", + "applicationId": "ಅಪ್ಲಿಕೇಶನ್ ID", "requestingOTP": "OTP ಯನ್ನು ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ...", - "qstnMarkToolTip": "ಅರ್ಜಿ {{vcLabel}} ಸಂಖ್ಯೆಯನ್ನು ನೋಂದಣಿಯ ನಂತರ ಒದಗಿಸಲಾದ ಸ್ವೀಕೃತಿಯ ಮೇಲೆ ಮುದ್ರಿಸಲಾಗಿದೆ" + "qstnMarkToolTip": "ನೋಂದಣಿಯ ನಂತರ ಸ್ವೀಕರಿಸಿದ ಸ್ವೀಕೃತಿಯಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ID ಲಭ್ಯವಿದೆ." }, "IdInputModal": { - "header": "ನೀವು ಹಿಂಪಡೆಯಲು ಬಯಸುವ {{vcLabel}} ನ MOSIP-ಒದಗಿಸಿದ UIN ಅಥವಾ VID ಅನ್ನು ನಮೂದಿಸ", - "generateVc": "ರಚಿಸಿ {{vcLabel}}", + "header": "ನಿಮ್ಮ {{vcLabel}} ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ನಿಮ್ಮ UIN/VID ಅನ್ನು ನಮೂದಿಸಿ", + "generateVc": "ನನ್ನ {{vcLabel}} ಅನ್ನು ರಚಿಸಿ", "enterId": "ನಿಮ್ಮ {{idType}}ನಮೂದಿಸಿ", "noUIN/VID": "ನಿಮ್ಮ UIN/VID ಇಲ್ಲವೇ? ಇಲ್ಲಿ ಪಡೆಯಿರಿ", "requestingOTP": "OTP ಯನ್ನು ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ..." @@ -186,7 +186,7 @@ "home": "ಲೇಔಟ್", "scan": "ಮನೆ", "request": "ವಿನಂತಿ", - "profile": "ಪ್ರೊಫೈಲ್" + "settings": "ಸೆಟ್ಟಿಂಗ್‌ಗಳು" }, "PasscodeScreen": { "header": "ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು ಪಾಸ್ಕೋಡ್ ಅನ್ನು ಹೊಂದಿಸಿ", @@ -201,17 +201,19 @@ "name": "ಹೆಸರು", "vcLabel": "VC ಲೇಬಲ್", "language": "ಭಾಷೆ", - "bioUnlock": "ಬಯೋಮೆಟ್ರಿಕ್ ಅನ್‌ಲಾಕ್", + "bioUnlock": "ಬಯೋಮೆಟ್ರಿಕ್‌ಗಳೊಂದಿಗೆ ಅನ್‌ಲಾಕ್ ಮಾಡಿ", "authFactorUnlock": "ಅನ್ಲಾಕ್ ದೃಢೀಕರಣ ಅಂಶ", "credits": "ಕ್ರೆಡಿಟ್ಸ್ ಮತ್ತು ಲೀಗಲ್ ನೋಟಿಸ್", - "logout": "ಲಾಗ್-ಔಟ್", + "logout": "ಲಾಗ್ ಔಟ್", "revokeLabel": "ರದ್ದು VID", "revokeHeader": "ರದ್ದು VID", "revokingVids": "ನೀವು ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಿದ್ದೀರಿ ({{count}}) VIDs.", "revokingVidsAfter": "ಇದರರ್ಥ ನೀವು ಇನ್ನು ಮುಂದೆ ಅವುಗಳಿಗೆ ಲಿಂಕ್ ಮಾಡಲಾದ ಯಾವುದೇ ID ಗಳನ್ನು ಬಳಸಲು ಅಥವಾ ವೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ VID(s). \nನೀವು ಮುಂದುವರೆಯಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", "empty": "ಖಾಲಿ", "revokeSuccessful": "VID ಯಶಸ್ವಿಯಾಗಿ ಹಿಂಪಡೆಯಲಾಗಿದೆ", - "version": "ಆವೃತ್ತಿ" + "version": "ಆವೃತ್ತಿ", + "useBle": "Powered by BLE", + "useGoogleNearby": "Powered by GoogleNearby" }, "QrScreen": { "title": "QR ಲಾಗಿನ್", @@ -241,7 +243,7 @@ }, "RequestScreen": { "bluetoothDenied": "ವಿನಂತಿಸಲು ಬ್ಲೂಟೂತ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ{{vcLabel}}", - "showQrCode": "ವಿನಂತಿಸಲು ಈ QR ಕೋಡ್ ಅನ್ನು ತೋರಿಸಿ {{vcLabel}}", + "showQrCode": "ನಿವಾಸಿ {{vcLabel}} ಅನ್ನು ವಿನಂತಿಸಲು ಈ QR ಕೋಡ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಿ", "incomingVc": "ಒಳಬರುವ {{vcLabel}}", "request": "ವಿನಂತಿ", "status": { @@ -301,8 +303,8 @@ }, "SendVcScreen": { "reasonForSharing": "ಹಂಚಿಕೆಗೆ ಕಾರಣ (ಐಚ್ಛಿಕ)", - "acceptRequest": "ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ ಮತ್ತು ಆಯ್ಕೆಮಾಡಿ {{vcLabel}}", - "acceptRequestAndVerify": "ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ ಮತ್ತು ಪರಿಶೀಲಿಸಿ", + "acceptRequest": "ಹಂಚಿಕೊಳ್ಳಿ", + "acceptRequestAndVerify": "ಸೆಲ್ಫಿಯೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಿ", "reject": "ತಿರಸ್ಕರಿಸಿ", "status": { "sharing": { diff --git a/locales/tam.json b/locales/tam.json index 1cc70b5520..40d573343f 100644 --- a/locales/tam.json +++ b/locales/tam.json @@ -129,15 +129,15 @@ "backButton": "பேக் ஹோம்" }, "GetIdInputModal": { - "header": "உங்கள் UIN அல்லது VID ஐ மீட்டெடுக்க, உங்கள் விண்ணப்ப {{vcLabel}} எண்ணை உள்ளிடவும்", + "header": "உங்கள் UIN ஐப் பெற உங்கள் விண்ணப்ப ID ஐ உள்ளிடவும்", "getUIN": "UIN/VIDஐப் பெறுங்கள்", - "applicationId": "விண்ணப்பம் {{vcLabel}} எண்", + "applicationId": "விண்ணப்ப ID", "requestingOTP": "OTP ஐக் கோருகிறது...", - "qstnMarkToolTip": "விண்ணப்பம் {{vcLabel}} எண் பதிவுசெய்த பிறகு வழங்கப்படும் ஒப்புகையில் அச்சிடப்பட்டுள்ளது" + "qstnMarkToolTip": "விண்ணப்ப ID பதிவுசெய்த பிறகு பெறப்பட்ட ஒப்புகையில் கிடைக்கும்." }, "IdInputModal": { - "header": "நீங்கள் மீட்டெடுக்க விரும்பும் {{vcLabel}} இன் MOSIP வழங்கிய UIN அல்லது VID ஐ உள்ளிடவும்", - "generateVc": "உருவாக்கு {{vcLabel}}", + "header": "உங்கள் {{vcLabel}}ஐப் பதிவிறக்க உங்கள் UIN/VID ஐ உள்ளிடவும்", + "generateVc": "எனது {{vcLabel}}ஐ உருவாக்கவும்", "enterId": "உங்கள் {{idType}}ஐ உள்ளிடவும்", "noUIN/VID": "உங்கள் UIN/VID இல்லையா? இங்கே பெறுங்கள்", "requestingOTP": "OTP ஐக் கோருகிறது..." @@ -186,7 +186,7 @@ "home": "வீடு", "scan": "ஸ்கேன்", "request": "கோரிக்கை", - "profile": "சுயவிவரம்" + "settings": "செட்டிங்ஸ்" }, "PasscodeScreen": { "header": "உங்கள் விண்ணப்பத்தைப் பாதுகாக்க கடவுக்குறியீட்டை அமைக்கவும்", @@ -201,7 +201,7 @@ "name": "பெயர்", "vcLabel": "VC லேபிள்", "language": "மொழி", - "bioUnlock": "பயோமெட்ரிக் அன்லாக்", + "bioUnlock": "பயோமெட்ரிக்ஸ் மூலம் திறக்கவும்", "authFactorUnlock": "அங்கீகார காரணியைத் திற", "credits": "வரவுகள் மற்றும் சட்ட அறிவிப்புகள்", "logout": "வெளியேறு", @@ -211,7 +211,9 @@ "revokingVidsAfter": "அதாவது, அந்த VID(s) உடன் இணைக்கப்பட்ட எந்த ஐடியையும் நீங்கள் இனி பயன்படுத்தவோ பார்க்கவோ முடியாது. \nநீங்கள் நிச்சயமாக தொடர விரும்புகிறீர்களா?", "empty": "காலியாக", "revokeSuccessful": "VID வெற்றிகரமாக ரத்து செய்யப்பட்டது", - "version": "பதிப்பு" + "version": "பதிப்பு", + "useBle": "Powered by BLE", + "useGoogleNearby": "Powered by GoogleNearby" }, "QrScreen": { "title": "QR உள்நுழைவு", @@ -241,7 +243,7 @@ }, "RequestScreen": { "bluetoothDenied": "{{vcLabel}}ஐக் கோர புளூடூத்தை இயக்கவும்", - "showQrCode": "{{vcLabel}}ஐக் கோர இந்த QR குறியீட்டைக் காட்டு", + "showQrCode": "குடியுரிமை {{vcLabel}}ஐக் கோர இந்த QR குறியீட்டைக் காட்டு", "incomingVc": "உள்வரும் {{vcLabel}}", "request": "கோரிக்கை", "status": { @@ -301,8 +303,8 @@ }, "SendVcScreen": { "reasonForSharing": "பகிர்வதற்கான காரணம் (விரும்பினால்)", - "acceptRequest": "கோரிக்கையை ஏற்று {{vcLabel}}ஐத் தேர்வு செய்யவும்", - "acceptRequestAndVerify": "கோரிக்கையை ஏற்று சரிபார்க்கவும்", + "acceptRequest": "பகிர்", + "acceptRequestAndVerify": "செல்ஃபியுடன் பகிரவும்", "reject": "நிராகரிக்கவும்", "status": { "sharing": { diff --git a/machines/settings.ts b/machines/settings.ts index 84a21bcbcd..cf8d2949cd 100644 --- a/machines/settings.ts +++ b/machines/settings.ts @@ -10,8 +10,8 @@ const model = createModel( serviceRefs: {} as AppServices, name: '', vcLabel: { - singular: 'ID', - plural: 'IDs', + singular: 'Card', + plural: 'Cards', } as VCLabel, isBiometricUnlockEnabled: false, }, diff --git a/routes/main.ts b/routes/main.ts index e542b801a3..e50ea8f8e6 100644 --- a/routes/main.ts +++ b/routes/main.ts @@ -38,12 +38,12 @@ const request: TabScreen = { headerShown: false, }, }; -const profile: TabScreen = { - name: 'Profile', +const settings: TabScreen = { + name: 'Settings', component: ProfileScreen, - icon: 'person', + icon: 'settings', options: { - title: i18n.t('MainLayout:profile'), + title: i18n.t('MainLayout:Settings'), }, }; @@ -55,7 +55,7 @@ if (Platform.OS !== 'ios' || isGoogleNearbyEnabled) { mainRoutes.push(request); } -mainRoutes.push(profile); +mainRoutes.push(settings); export type MainBottomTabParamList = { Home: { @@ -63,7 +63,7 @@ export type MainBottomTabParamList = { }; Scan: undefined; Request: undefined; - Profile: undefined; + Settings: undefined; }; export interface TabScreen { diff --git a/screens/Home/MyVcs/GetIdInputModal.strings.json b/screens/Home/MyVcs/GetIdInputModal.strings.json index 08c3492959..62c76fa69b 100644 --- a/screens/Home/MyVcs/GetIdInputModal.strings.json +++ b/screens/Home/MyVcs/GetIdInputModal.strings.json @@ -1,7 +1,7 @@ { - "header": "To retrieve your UIN or VID, enter your application {{vcLabel}} number", + "header": "Enter your Application ID to get your UIN", "getUIN": "Get UIN/VID", - "applicationId": "Application {{vcLabel}} number", + "applicationId": "Application ID", "requestingOTP": "Requesting OTP...", - "qstnMarkToolTip": "Application {{vcLabel}} Number is printed on the acknowledgment provided after enrollment" + "qstnMarkToolTip": "Application ID is available in the acknowledgement received after enrolment." } \ No newline at end of file diff --git a/screens/Home/MyVcs/IdInputModal.strings.json b/screens/Home/MyVcs/IdInputModal.strings.json index deb7839066..c035538e2a 100644 --- a/screens/Home/MyVcs/IdInputModal.strings.json +++ b/screens/Home/MyVcs/IdInputModal.strings.json @@ -1,6 +1,6 @@ { - "header": "Enter the MOSIP-provided UIN or VID of the {{vcLabel}} you wish to retrieve", - "generateVc": "Generate {{vcLabel}}", + "header": "Enter your UIN/VID to download your {{vcLabel}}", + "generateVc": "Generate My {{vcLabel}}", "enterId": "Enter your {{idType}}", "noUIN/VID": "Don't have your UIN/VID? Get it here", "requestingOTP": "Requesting OTP..." diff --git a/screens/MainLayout.strings.json b/screens/MainLayout.strings.json index 7fd40a572d..520b6d868f 100644 --- a/screens/MainLayout.strings.json +++ b/screens/MainLayout.strings.json @@ -2,5 +2,5 @@ "home": "Home", "scan": "Scan", "request": "Request", - "profile": "Profile" + "settings": "Settings" } \ No newline at end of file diff --git a/screens/Profile/Credits.tsx b/screens/Profile/Credits.tsx index 08c96410ee..bf9a4f45c5 100644 --- a/screens/Profile/Credits.tsx +++ b/screens/Profile/Credits.tsx @@ -8,6 +8,7 @@ import { Button, Text, Row, Column } from '../../components/ui'; import { Theme } from '../../components/ui/styleUtils'; import creditsContent from '../../Credits.md'; +// Intentionally hidden using {display:'none'} - Refer mosip/inji/issue#607 export const Credits: React.FC = (props) => { const { t } = useTranslation('Credits'); const [isViewing, setIsViewing] = useState(false); @@ -46,7 +47,10 @@ export const Credits: React.FC = (props) => { }; return ( - setIsViewing(true)}> + setIsViewing(true)} + style={{ display: 'none' }}> = (props) => { onEdit={controller.UPDATE_NAME} Icon="user" /> + {/* Intentionally hidden using {display='none'} - Refer mosip/inji/issue#607 */} @@ -91,7 +93,7 @@ export const ProfileScreen: React.FC = (props) => { @@ -106,7 +108,8 @@ export const ProfileScreen: React.FC = (props) => { color={Theme.Colors.profileValue} /> - + {/* Intentionally hidden using {display:'none'} - Refer mosip/inji/issue#607 */} + = (props) => { - - - - - {isBLEEnabled ? t('useBle') : t('useGoogleNearby')} - - - - = (props) => { + + {isBLEEnabled ? t('useBle') : t('useGoogleNearby')} +