dhivya0413 07efb42a2b [INJI-372] UI/UX enhancements on sharing flow (#856)
* chore(INJI-372): fix animator for sharing flow

* chore(INJI-372): sharing in progress copy modified

* Add a job to upload apk to Github Actions (#836)

* feat(INJI-333): Add a job to upload apk to Github actions in internal build

* fix(INJI-333): Add a job to upload to Github actions

* Add support to change mimoto and esignet host url under credential registry (#837)

* feat(INJI-360): Add esignet host as env variable and use in QR login flow.

* feat(INJI-360): Fix compile error.

* chore(INJI-360): support esignet and mimoto base url in workflows for Android and iOS

* chore(INJI-360): add ESIGNET_HOST in Fastfile for android.

* chore(INJI-360): remove unnecessary env variables from ios build workflow.

* feat(INJI-360): Add setting to change esignet host url under credetntial registry.

---------

Signed-off-by: Swati Goel <meet2swati@gmail.com>

* chore(INJI-372): update podfile

* chore(INJI-372): vc sharing in progress stay on screen and retry added

* chore(INJI-372): vc sharing failed for sender copy changed

* [Inji 267] sunbird telemetry configuration (#838)

* feat(INJI-267): add and export deviceId constant in constants file

Use react-native-device-info library to get the unique identifier for each and every device

* refactor(INJI-267): extracts AppId global variable into a global variable file and renames it to __AppId

* refactor(INJI-267): extracts inji version and tuvali version handling into global variable file

* feat(INJI-267): add telemetry configuration in the application

* feat(INJI-267): generate unique session id for every session of the app

After launching the app until we kill the app we consider it as a single session

* feat(INJI-267): add start and end telemetry events for the QR login success flow

* feat(INJI-267): pass session id value in sunbird config

* feat(INJI-267): add start and end telemetry events for the VC sharing success flow

* feat(INJI-267): add start and end telemetry events for the VC activation success flow

* refactor(INJI-267): change QR login, VC share telemetry events type

* refactor(INJI-267): extract generateSessionId function, deviceId into global variables file

* feat(INJI-267): adds device related information in the config value

* feat(INJI-267): add and export deviceId constant in constants file

Use react-native-device-info library to get the unique identifier for each and every device

* refactor(INJI-267): extracts AppId global variable into a global variable file and renames it to __AppId

* refactor(INJI-267): extracts inji version and tuvali version handling into global variable file

* feat(INJI-267): add telemetry configuration in the application

* feat(INJI-267): generate unique session id for every session of the app

After launching the app until we kill the app we consider it as a single session

* feat(INJI-267): add start and end telemetry events for the QR login success flow

* feat(INJI-267): pass session id value in sunbird config

* feat(INJI-267): add start and end telemetry events for the VC sharing success flow

* feat(INJI-267): add start and end telemetry events for the VC activation success flow

* refactor(INJI-267): change QR login, VC share telemetry events type

* refactor(INJI-267): extract generateSessionId function, deviceId into global variables file

* feat(INJI-267): adds device related information in the config value

* feat(INJI-267): add selected language in global variables file to pass it into sunbird config

* feat(INJI-267): updates config structure and add AppInfo event

* feat(INJI-267): create dummy end event data to make the schema and send AppInfo Event on app launch

* feat(INJI-267): add and export deviceId constant in constants file

Use react-native-device-info library to get the unique identifier for each and every device

* refactor(INJI-267): extracts AppId global variable into a global variable file and renames it to __AppId

* refactor(INJI-267): extracts inji version and tuvali version handling into global variable file

* feat(INJI-267): add telemetry configuration in the application

* feat(INJI-267): generate unique session id for every session of the app

After launching the app until we kill the app we consider it as a single session

* feat(INJI-267): add start and end telemetry events for the QR login success flow

* feat(INJI-267): pass session id value in sunbird config

* feat(INJI-267): add start and end telemetry events for the VC sharing success flow

* feat(INJI-267): add start and end telemetry events for the VC activation success flow

* refactor(INJI-267): change QR login, VC share telemetry events type

* refactor(INJI-267): extract generateSessionId function, deviceId into global variables file

* feat(INJI-267): adds device related information in the config value

* feat(INJI-267): add and export deviceId constant in constants file

Use react-native-device-info library to get the unique identifier for each and every device

* feat(INJI-267): add telemetry configuration in the application

* feat(INJI-267): pass session id value in sunbird config

* refactor(INJI-267): change QR login, VC share telemetry events type

* refactor(INJI-267): extract generateSessionId function, deviceId into global variables file

* feat(INJI-267): adds device related information in the config value

* feat(INJI-267): add selected language in global variables file to pass it into sunbird config

* feat(INJI-267): updates config structure and add AppInfo event

* feat(INJI-267): create dummy end event data to make the schema and send AppInfo Event on app launch

* feat(INJI-267): bump up react-native-localize and remove unnecessary code

* feat(INJI-267): remove some unused imports and unnecessary formattings

* feat(INJI-267): remove unnecessary formattings

* feat(INJI-267): extracts obsrv host in an env variable

* feat(INJI-267): add env variable in react-native-dot-env index file

* feat(INJI-267): bump up react-native-localize

---------

Signed-off-by: Swati Goel <meet2swati@gmail.com>
Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>
Co-authored-by: Swati Goel <meet2swati@gmail.com>

* [Inji 267] sunbird telemetry configuration (#843)

* feat(INJI-267): add and export deviceId constant in constants file

Use react-native-device-info library to get the unique identifier for each and every device

* refactor(INJI-267): extracts AppId global variable into a global variable file and renames it to __AppId

* refactor(INJI-267): extracts inji version and tuvali version handling into global variable file

* feat(INJI-267): add telemetry configuration in the application

* feat(INJI-267): generate unique session id for every session of the app

After launching the app until we kill the app we consider it as a single session

* feat(INJI-267): add start and end telemetry events for the QR login success flow

* feat(INJI-267): pass session id value in sunbird config

* feat(INJI-267): add start and end telemetry events for the VC sharing success flow

* feat(INJI-267): add start and end telemetry events for the VC activation success flow

* refactor(INJI-267): change QR login, VC share telemetry events type

* refactor(INJI-267): extract generateSessionId function, deviceId into global variables file

* feat(INJI-267): adds device related information in the config value

* feat(INJI-267): add and export deviceId constant in constants file

Use react-native-device-info library to get the unique identifier for each and every device

* refactor(INJI-267): extracts AppId global variable into a global variable file and renames it to __AppId

* refactor(INJI-267): extracts inji version and tuvali version handling into global variable file

* feat(INJI-267): add telemetry configuration in the application

* feat(INJI-267): generate unique session id for every session of the app

After launching the app until we kill the app we consider it as a single session

* feat(INJI-267): add start and end telemetry events for the QR login success flow

* feat(INJI-267): pass session id value in sunbird config

* feat(INJI-267): add start and end telemetry events for the VC sharing success flow

* feat(INJI-267): add start and end telemetry events for the VC activation success flow

* refactor(INJI-267): change QR login, VC share telemetry events type

* refactor(INJI-267): extract generateSessionId function, deviceId into global variables file

* feat(INJI-267): adds device related information in the config value

* feat(INJI-267): add selected language in global variables file to pass it into sunbird config

* feat(INJI-267): updates config structure and add AppInfo event

* feat(INJI-267): create dummy end event data to make the schema and send AppInfo Event on app launch

* feat(INJI-267): add and export deviceId constant in constants file

Use react-native-device-info library to get the unique identifier for each and every device

* refactor(INJI-267): extracts AppId global variable into a global variable file and renames it to __AppId

* refactor(INJI-267): extracts inji version and tuvali version handling into global variable file

* feat(INJI-267): add telemetry configuration in the application

* feat(INJI-267): generate unique session id for every session of the app

After launching the app until we kill the app we consider it as a single session

* feat(INJI-267): add start and end telemetry events for the QR login success flow

* feat(INJI-267): pass session id value in sunbird config

* feat(INJI-267): add start and end telemetry events for the VC sharing success flow

* feat(INJI-267): add start and end telemetry events for the VC activation success flow

* refactor(INJI-267): change QR login, VC share telemetry events type

* refactor(INJI-267): extract generateSessionId function, deviceId into global variables file

* feat(INJI-267): adds device related information in the config value

* feat(INJI-267): add and export deviceId constant in constants file

Use react-native-device-info library to get the unique identifier for each and every device

* feat(INJI-267): add telemetry configuration in the application

* feat(INJI-267): pass session id value in sunbird config

* refactor(INJI-267): change QR login, VC share telemetry events type

* refactor(INJI-267): extract generateSessionId function, deviceId into global variables file

* feat(INJI-267): adds device related information in the config value

* feat(INJI-267): add selected language in global variables file to pass it into sunbird config

* feat(INJI-267): updates config structure and add AppInfo event

* feat(INJI-267): create dummy end event data to make the schema and send AppInfo Event on app launch

* feat(INJI-267): bump up react-native-localize and remove unnecessary code

* feat(INJI-267): remove some unused imports and unnecessary formattings

* feat(INJI-267): remove unnecessary formattings

* feat(INJI-267): extracts obsrv host in an env variable

* feat(INJI-267): add env variable in react-native-dot-env index file

* feat(INJI-267): bump up react-native-localize

* feat(INJI-267): add telemetry sdk dependency in package.json

---------

Signed-off-by: Swati Goel <meet2swati@gmail.com>
Signed-off-by: Alka Prasad <Alka1703@users.noreply.github.com>
Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>
Co-authored-by: Swati Goel <meet2swati@gmail.com>

* style vcDetails page  (#841)

* feat(INJI-351): style vcDetails page

* feat(INJI-351): add translations to fil lang and remove QRcode style

---------

Co-authored-by: Pooja Babusingh <68894211+PoojaBabusingh@users.noreply.github.com>

* Inji-344: Refactoring VC Key (#798)

* feat(inji-344): Use VC Key class instead of separate functions for managing vc key

* feat(inji-344): Use properties from VcKey Class instead of reading from vckey string

* feat(inji-344): Rename vcKey to vcMetadata

* feat(inji-344): Use vc's unique id or vckey instead of joined string of vc metadata

* feat(inji-344): Use vc key instead of unique id to avoid confusion. Fix issues reg parsing vc metadata

* feat(inji-344):fix redownloading issue

Co-authored-by: Tilak <tilakpuli15@gmail.com>

* feat(inji-344): Remove vc getting stored on update of pin status

* feat(inji-344): update other vc's pin status to false when any vc is pinned

* feat(inji-344): remove hash ID for UIN

* feat(inji-344): revert google services json

* feat(inji-344): remove mmkv logs added for debugging

* feat(inji-344): fix received vcs not getting displayed on reopen of app

* feat(inji-344): fix id not shown in revoke component

---------

Co-authored-by: Sri Kanth Kola <srikanthsri7447@gmail.com>

* chore(INJI-372): podfile lock changes

* chore(INJI-372): vc sharing flow in progress for verifier

* chore(INJI-372): vc sharing flow failed for verifier

* chore(INJI-372): fix close button for vc sharing failed verifier

* fix(INJI-372): package lock fix

* fix(INJI-372): connection failed for sender

* fix(INJI-372): connection failed for verifier

* chore(INJI-372): add style props to modal

---------

Signed-off-by: Swati Goel <meet2swati@gmail.com>
Signed-off-by: Alka Prasad <Alka1703@users.noreply.github.com>
Co-authored-by: adityankannan-tw <109274996+adityankannan-tw@users.noreply.github.com>
Co-authored-by: Swati Goel <meet2swati@gmail.com>
Co-authored-by: Alka Prasad <Alka1703@users.noreply.github.com>
Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>
Co-authored-by: PoojaBabusing <115976560+PoojaBabusing@users.noreply.github.com>
Co-authored-by: Pooja Babusingh <68894211+PoojaBabusingh@users.noreply.github.com>
Co-authored-by: Tilak Puli <34330361+tilak-puli@users.noreply.github.com>
Co-authored-by: Sri Kanth Kola <srikanthsri7447@gmail.com>
2023-09-25 14:35:22 +05:30
2022-02-15 10:26:25 +07:00
2022-04-08 14:21:37 +08:00
2022-04-25 15:38:58 +08:00
2022-02-28 13:39:10 +08:00
2022-02-15 10:26:25 +07:00
2023-09-20 16:51:59 +05:30
2022-02-15 10:26:25 +07:00
2022-02-04 11:00:45 +05:30

inji

MOSIP citizen app.

Dependencies

Be sure to have the following build tools installed before proceeding:

Generate keystore for APK signing

 # Generate and use Debug keystore for development and testing purposes
keytool \
 -genkey -v \
 -storetype PKCS12 \
 -keyalg RSA \
 -keysize 2048 \
 -validity 10000 \
 -storepass 'android' \
 -keypass 'android' \
 -alias androiddebugkey \
 -keystore android/app/debug.keystore \
 -dname "CN=io.mosip.residentapp,OU=,O=,L=,S=,C=US"
 # Generate and use Release keystore for Publishing to Play store
 keytool \
 -genkey -v \
 -storetype PKCS12 \
 -keyalg RSA \
 -keysize 2048 \
 -validity 10000 \
 -storepass '<USE-YOUR-RELEASE-PASSWORD-HERE>' \
 -keypass '<USE-YOUR-RELEASE-PASSWORD-HERE>' \
 -alias androidreleasekey \
 -keystore android/app/release.keystore \
 -dname "CN=io.mosip.residentapp,OU=,O=,L=,S=,C=US"

Running the app

Prepare environment

Create a .env.local file using .env as your template:

MIMOTO_HOST=
GOOGLE_NEARBY_MESSAGES_API_KEY=

And android/local.properties:

GOOGLE_NEARBY_MESSAGES_API_KEY=

More info here: Setup Google Nearby Messages in React

Android

# install all dependencies
npm install

# run Inji Newlogic directly to connected emulator or device (Default)
npm run android:newlogic

# run Inji Mosip directly to connected emulator or device
npm run android:mosip

# run Inji Philippines directly to connected emulator or device
npm run android:ph

iOS

# install all dependencies
npm install
npx pod-install

# run Metro bundler in the background
npm start

# run Inji app directly to a connected device
npm run ios -- --device

Developing Android

Build via Android Studio

The app is available in this repository's frontend/android directory. Open this directory in Android Studio (version 4.1 and above) and the app can be built and run from there.

More info here: Build your app using Android Studio

Build via command line

You need Android SDK CLI to build APK.

# 1. Install dependencies
npm install

# 2. Setup the environment variables for the keystore

# Debug keystore
export DEBUG_KEYSTORE_ALIAS=androiddebugkey
export DEBUG_KEYSTORE_PASSWORD=android

# Release keystore
export RELEASE_KEYSTORE_ALIAS=androidreleasekey
export RELEASE_KEYSTORE_PASSWORD=<USE-YOUR-RELEASE-PASSWORD-HERE>

# https://hostname/residentmobileapp is the Mimoto service url
export BACKEND_SERVICE_URL=https://hostname/residentmobileapp

# Use one of following command to build the flavor you need.
# Build for Mosip Philippines test
npm run build:android:ph

# Build for Newlogic test
npm run build:android:newlogic

# Build for MOSIP test
npm run build:android:mosip

More info here: Build your app from the command line

Developing iOS

Build for TestFlight

  1. Install all dependencies
    • npm install
    • npx pod-install
  2. Open the ios/ directory in XCode
  3. Set the build target to "Any iOS device (arm64)"
  4. Use an Apple Developer account that can provision builds for release/TestFlight

Screen Shot 2022-09-01 at 10 34 45 AM

  1. Don't forget to bump the version number when creating an archive

  2. Open the Product menu and from there click Archive

  3. Once done you can follow the dialog wizard to distribute the app to TestFlight

Screen Shot 2022-09-01 at 1 08 34 PM

  1. Go to your App Store Connect dashboard to manage the newly-uploaded build.

More info here:

View the complete DB :

  1. Connect your phone to the laptop and open Android Studio.
  2. On the bottom right vertical tab you will find a Device File Explorer button. Click on it and select you phone.
  3. Navigate to data -> data -> io.mosip.residentapp ->databases. You will find a file named RKStorage in it. Download it.
  4. Download DB Browser for SQLite .
  5. Open the file in this application. Click on Browse Data button and select catalystLocalStorage table. Now you should be able to view the entire DB of Inji.

Credits

Credits listed here

Congratulations! 🎉

You've successfully run and modified your React Native App. 🥳

Now what?

Troubleshooting

If you can't get this to work, see the Troubleshooting page.

Learn More

To learn more about React Native, take a look at the following resources:

Description
No description provided
Readme MIT 299 MiB
Languages
TypeScript 86.6%
Kotlin 5.2%
Swift 2.7%
Java 2.6%
JavaScript 1.4%
Other 1.4%