Skip to content

Commit

Permalink
[HotfixRelease 02-06-2023] UI improvements, device specific issue fix…
Browse files Browse the repository at this point in the history
…es, permissions enhancements, Storage Optimisation, iOS build automation (#736)

* feat(#656): [Pooja|Vijay] get demogarphic data for selected language

* feat(#656): [Pooja|Vijay] refactor to generate language code map for two letter lnaguage codes only

* feat(#656): [Pooja|Vijay] refactor to generate language code map

* fix(#675): [Bhargavi|Adityan] resolve the input focus issue and display AID screen when we close the otp screen

* fix(#490): [Vijay] show the same binded vc only once which is the recent one,  when IDP portal QRCode is scanned.

* fix(#490): [Vijay] refactor selectBindedVCs to get only myVCs which is recently added.

* fix(#490): [Vijay] refactor selectBindedVCs to get only myVCs which is recently added.

* fix(#490): [Vijay] refactor selectBindedVCs to get only myVCs which is recently added.

* chore: add steps to view the entire DB of inji in Readme

* fix(#675): [Bhargavi|Adityan] resolve the input focus issue and display AID screen when we close the otp screen

* feat(#656): [Pooja|Vijay] get demogarphic data for selected language

* feat(#656): [Pooja|Vijay] refactor to generate language code map for two letter lnaguage codes only

* feat(#656): [Pooja|Vijay] refactor to generate language code map

* feat(#26879): [Alka|Vijay] mmkv storage implementation for meta data and store vc data on file system

Issue Link: #618

* refactor(#618): [Vijay|Alka] refactor storage method and variable name to follow convention

* Update android-custom-build.yml

* refactor(#42): fixed duplicate symol issue on iOS by making changes in node_modules

* chore(#696): bump up tuvali version for windows build

* fix(#223): [Bhargavi|Pooja] add translations for missing fields in all languages

* feat(#26879): [Alka|Vijay] mmkv storage implementation for meta data and store vc data on file system

Issue Link: #618

* refactor(#26879): [Vijay|Alka] refactor storage method and variable name to follow convention

* refactor(#26879): fixed duplicate symol issue on iOS by making changes in node_modules

* chore(#26879): avoid any minor or patch update for react-native-mmkv-storage library

This will avoid conflicts with patch-packaging done to resolve same method name conflicts.

* chore(#26879): avoid any minor or patch update for react-native-mmkv-storage library

This will avoid conflicts with patch-packaging done to resolve same method name conflicts.

* fix(#223): [Bhargavi|Pooja] add filipino locale to date-fns using patch-package

* refactor(#26879): reformat storage.ts file to export class instead of all method

* refactor(#26879): reformat storage.ts file to export class instead of all method

* refactor(#26879): restructured directory path to save the VC and renamed some methods

* refactor(#26879): restructured directory path to save the VC and renamed some methods

* chore: bump up the tuvali version to v0.3.11 for release 19-04-2023

* fix(#26879): check for directory path existence before delete the entire folder of VC

* fix(#26879): check for directory path existence before delete the entire folder of VC

* fix(#490): [Vijay] refactor selectBindedVCs to get only myVCs which is recently added.

* fix(#490): [Vijay] refactor selectBindedVCs to get only myVCs which is recently added.

* chore: bump up faceauth-sdk in Podfile.lock

* fix(#223): [Bhargavi] remove indentation changes in hin.json

* fix(#223): [Bhargavi|Pooja] add translations for missing fields in all languages

* fix(#223): [Bhargavi|Pooja] add filipino locale to date-fns using patch-package

* fix(#223): [Bhargavi] remove indentation changes in hin.json

* fix(#INJI-80): [Vijay] use the recently generated thumbprint for all the binded vc's with same UIN

Issue Link: https://mosip.atlassian.net/browse/INJI-80

* fix(#INJI-80): [Vijay] use the recently generated thumbprint for all the binded vc's with same UIN

Issue Link: https://mosip.atlassian.net/browse/INJI-80

* fix(#INJI-80): [Vijay] encrypt the thumbprint before storing them in the Storage.

* fix(#INJI-80): [Vijay] update typegen for QRLoginMachine and remove unused imports

* feat(#695): show error code in ble error popup

* feat(#695): remove ble error handling form nearby scan machine

* feat(#695): change error code from int to string

* feat(#695): show error code in ble error popup

* feat(#695): remove ble error handling form nearby scan machine

* feat(#28): add translations for error code hint

* fix(#INJI-80): [Vijay] encrypt the thumbprint before storing them in the Storage.

* fix(#INJI-80): [Vijay] update typegen for QRLoginMachine and remove unused imports

* fix(#INJI-34): [Vijay] fix rtl missing tab indicator

Issue Link: https://mosip.atlassian.net/browse/INJI-34

* fix(#INJI-34): [Vijay] fix rtl missing tab indicator

Issue Link: https://mosip.atlassian.net/browse/INJI-34

* fix(#INJI-36): [Vijay] mention upstream pr in patch

Issue Link: https://mosip.atlassian.net/browse/INJI-36

* fix(#INJI-36): [Vijay] mention upstream pr in patch

Issue Link: https://mosip.atlassian.net/browse/INJI-36

* feat(#28):[Tilak] add missing translations

* fix(INJI-39): add new Bluetooth permission for Android12

Reason for adding BLUETOOTH_{SCAN,CONNECT,ADVERTISE}

- enables Android12(API level31 & above) devices to scan for BLE
  peripherals
  ref: https://developer.android.com/guide/topics/connectivity/bluetooth/permissions#declare-android12-or-higher
  without this changeset, an exception is thrown
- this permission was added in API level 31, hence bumped up
  compileSdkVersion

Co-authored-by: Alka Prasad <[email protected]>

* fix(INJI-39): assert that BLE scanning doesn't derive device location

* feat(#INJI-42): [Kiruthika/Bhargavi] show error overlay if saving fails while downloading VC

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* feat(#INJI-42): [Kiruthika/Bhargavi] add translations for storage full error message

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* feat(#INJI-42): [Kiruthika/Bhargavi] modify error message for handling diskfull error while receiving VC

mmkv storage or fs throws 'No space left on device' error message when the storing fails

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* chore: bump up the tuvali version to v0.3.12 for release 19-05-2023

* feat(#INJI-42): [Kiruthika/Bhargavi] show the card in loading state until vc details are successfully stored

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* refactor(#INJI-42): [Kiruthika/Bhargavi] add translations for diskfull error in VcDetails & MyVcsTab

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* feat(#71): [Tilak] Show error code hint only if code is available

* refactor(#INJI-42): [Kiruthika/Bhargavi] revert import optimizations

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* refactor(#INJI-42): [Kiruthika/Bhargavi] extract ErrorMessageOverlay component

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* refactor(#INJI-42): [Kiruthika/Bhargavi] change 'No space left on device' to 'ENOSPC' while checking disk full error

When writing to storage fails, this error 'write failed: ENOSPC (No space left on device)' is thrown by react-native-mmkv-storage & react-native-fs. This changes were made as error code (ENOSPC) has less chances of modification in the latest versions of library we use.

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* refactor(#INJI-42): [Kiruthika/Bhargavi] change the state to idle after dismissing saving failed overlay in MyVcs screen

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* refactor(#INJI-42): [Kiruthika/Bhargavi] add comment about ENOSPC error code

Issue Link: https://mosip.atlassian.net/browse/INJI-42

Co-authored-by: null <[email protected]>

* refactor(#INJI-42): [Kiruthika/Bhargavi] extract vc item contents & activation status into separate components

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* refactor(#INJI-42): [Kiruthika/Bhargavi] extract vc item wallet unverified & verified activation details into separate components

Issue Link: https://mosip.atlassian.net/browse/INJI-42

* fix(INJI-39): add new Bluetooth permission for Android12

Reason for adding BLUETOOTH_{SCAN,CONNECT,ADVERTISE}

- enables Android12(API level31 & above) devices to scan for BLE
  peripherals
  ref: https://developer.android.com/guide/topics/connectivity/bluetooth/permissions#declare-android12-or-higher
  without this changeset, an exception is thrown
- this permission was added in API level 31, hence bumped up
  compileSdkVersion

Co-authored-by: Alka Prasad <[email protected]>

* fix(INJI-39): assert that BLE scanning doesn't derive device location

* INJI-29 | 31 - iOS automation workflow and Android PR workflow (#725)

* Test update readme for read access

Signed-off-by: adityankannan-tw <[email protected]>

* iOS workflow added

* iOS slack webhook added

* Add a workflow file to build app for every push

* Add empty debug keystore file to populate it

* Add empty debug keystore file to populate it

* fastlane match file added

* modify api_key duration

* Remove keystore exemption from git ignore

* Check for debug keystore file in app directory

* Give permission for keystore file to access it

* Give permission for keystore file to access it

* Print the env variables for keystore

* Use same password for both store and key and build the app

* Use same password for both and generate in app and build the app

* Print debug keystore path and debug it

* Print debug keystore path and debug it in fastfile

* Export from the current folder and remove sudo

* Generate release keystore and build the app

* Generate release keystore and build the app try 2

* Generate release keystore and build the app try 3

* Add encoded api key

* fastlane match password added

* fastlane match key added

* Match file env modified

* set keystore env for specific tasks and build the app

* set keystore env for specific tasks and build the app try 2

* set keystore env for specific tasks and build the app try 3

* set keystore env for specific tasks and build the app try 4

* set keystore env for specific tasks and build the app try 5

* bumping version

* create a env file to store env variables and build the app

* create a env file in fastlane and load it to build the app

* create a env file in fastlane and load it to build the app try 2

* app id added

* signing identities added

* Pass env from workflow to fastfile and build

* Build app in workflow file only

* Update the version code in build.gradle and build the app

* Update the version code in build.gradle and confirm changes by logging

* Update the version code in build.gradle and confirm changes by logging 2

* Double check the version code changes and build the app

* Add logs to see version code is changes or not

* Add logs to see version code is changes or not try 2

* Add logs to see version code is changes or not try 3

* Add logs to see version code is changes and give execute permission

* Build app without exporting the keystore

* Build app without exporting the keystore and bump version

* Build app by exporting the keystore in a task

* Build the app without fastlane

* unlock keychain key added

* fastfile changes

* config modified

* xcode proj config added

* xcode proj config added

* fastfile config added

* fastfile config added

* modified cert

* Fastfile config added

* updated key to test workflow

* Fastfile config updated

* changed to manual match of provisioning profile

* Check for git tag

* Check for git tag and echo it

* Check for git tag using try catch

* Check for git tag and print it

* Add a tag and try to print it

* Add a tag and try to run the task

* Add a tag and try to run the task try 2

* Change keystore path and build the app

* Change keystore path in build.gradle and build the app

* fastfile configured

* match modified

* match modified

* Clean up the code base

* Clean up the code base

* Clean up the code base and give permission

* testers added

* Internal testers group

* Trigger on workflow push

* fastfile changes for testers

* fastfile changes for testers

* fastfile changes for testers

* fastfile changes for testers

* fastfile changes for testers

* Add a PR trigger for ci-publish

* Add a env for keystore job

* Added actual env for testers

* Add a env for keystore job and export job

* Adjust env variables for jobs

* Make env as global

* Refactor the code base and clear files

* [Dhivya|Adityan] feat(#INJI-29|31)[Android][iOS] PR trigger and automate build using fastlane and push iOS build to test flight

* [Dhivya|Adityan] refactor(#INJI-29|31)[Android][iOS] Change the backend url and add comments and rename apk output

* [Dhivya|Adityan] refactor(#INJI-29|31)[Android][iOS] Change the workflow name

---------

Signed-off-by: adityankannan-tw <[email protected]>
Co-authored-by: MOSIP <[email protected]>
Co-authored-by: Adityan Kannan <[email protected]>
Co-authored-by: Dhivya <[email protected]>

* INJI-29 Modified from self-hosted to mac-runner (#728)

* Update android-custom-build.yml

* Test update readme for read access

Signed-off-by: adityankannan-tw <[email protected]>

* iOS workflow added

* iOS slack webhook added

* Add a workflow file to build app for every push

* Add empty debug keystore file to populate it

* Add empty debug keystore file to populate it

* fastlane match file added

* modify api_key duration

* Remove keystore exemption from git ignore

* Check for debug keystore file in app directory

* Give permission for keystore file to access it

* Give permission for keystore file to access it

* Print the env variables for keystore

* Use same password for both store and key and build the app

* Use same password for both and generate in app and build the app

* Print debug keystore path and debug it

* Print debug keystore path and debug it in fastfile

* Export from the current folder and remove sudo

* Generate release keystore and build the app

* Generate release keystore and build the app try 2

* Generate release keystore and build the app try 3

* Add encoded api key

* fastlane match password added

* fastlane match key added

* Match file env modified

* set keystore env for specific tasks and build the app

* set keystore env for specific tasks and build the app try 2

* set keystore env for specific tasks and build the app try 3

* set keystore env for specific tasks and build the app try 4

* set keystore env for specific tasks and build the app try 5

* bumping version

* create a env file to store env variables and build the app

* create a env file in fastlane and load it to build the app

* create a env file in fastlane and load it to build the app try 2

* app id added

* signing identities added

* Pass env from workflow to fastfile and build

* Build app in workflow file only

* Update the version code in build.gradle and build the app

* Update the version code in build.gradle and confirm changes by logging

* Update the version code in build.gradle and confirm changes by logging 2

* Double check the version code changes and build the app

* Add logs to see version code is changes or not

* Add logs to see version code is changes or not try 2

* Add logs to see version code is changes or not try 3

* Add logs to see version code is changes and give execute permission

* Build app without exporting the keystore

* Build app without exporting the keystore and bump version

* Build app by exporting the keystore in a task

* Build the app without fastlane

* unlock keychain key added

* fastfile changes

* config modified

* xcode proj config added

* xcode proj config added

* fastfile config added

* fastfile config added

* modified cert

* Fastfile config added

* updated key to test workflow

* Fastfile config updated

* changed to manual match of provisioning profile

* Check for git tag

* Check for git tag and echo it

* Check for git tag using try catch

* Check for git tag and print it

* Add a tag and try to print it

* Add a tag and try to run the task

* Add a tag and try to run the task try 2

* Change keystore path and build the app

* Change keystore path in build.gradle and build the app

* fastfile configured

* match modified

* match modified

* Clean up the code base

* Clean up the code base

* Clean up the code base and give permission

* testers added

* Internal testers group

* Trigger on workflow push

* fastfile changes for testers

* fastfile changes for testers

* fastfile changes for testers

* fastfile changes for testers

* fastfile changes for testers

* Add a PR trigger for ci-publish

* Add a env for keystore job

* Added actual env for testers

* Add a env for keystore job and export job

* Adjust env variables for jobs

* Make env as global

* Refactor the code base and clear files

* [Dhivya|Adityan] feat(#INJI-29|31)[Android][iOS] PR trigger and automate build using fastlane and push iOS build to test flight

* [Dhivya|Adityan] refactor(#INJI-29|31)[Android][iOS] Change the backend url and add comments and rename apk output

* [Dhivya|Adityan] refactor(#INJI-29|31)[Android][iOS] Change the workflow name

* configure macos runner

* modify command for fastlane

---------

Signed-off-by: adityankannan-tw <[email protected]>
Co-authored-by: Keshav Mishra <[email protected]>
Co-authored-by: Monobikash Das <[email protected]>
Co-authored-by: adityankannan-tw <[email protected]>
Co-authored-by: MOSIP <[email protected]>
Co-authored-by: Adityan Kannan <[email protected]>
Co-authored-by: adityankannan-tw <[email protected]>

* Revert "INJI-29 Modified from self-hosted to mac-runner (#728)" (#729)

This reverts commit b35bfbc.

* modify from self-hosted runner to github runner (#730)

* chore: bump up the tuvali version to v0.4.0 for release 30-05-2023

* revert build.gradle changes

* fix:(#29) iOS build workflow fix

* chore: Add appstore connect groups in workflow

* chore: testers group order same as app store connect

---------

Signed-off-by: adityankannan-tw <[email protected]>
Co-authored-by: RAVI KUMAR PASUMARTHY <[email protected]>
Co-authored-by: Monobikash Das <[email protected]>
Co-authored-by: Pooja Babusing <[email protected]>
Co-authored-by: Tilak Puli <[email protected]>
Co-authored-by: PuBHARGAVI <[email protected]>
Co-authored-by: Vijay <[email protected]>
Co-authored-by: vijay151096 <[email protected]>
Co-authored-by: Alka Prasad <[email protected]>
Co-authored-by: Keshav Mishra <[email protected]>
Co-authored-by: Krishna Kumar Thokala <[email protected]>
Co-authored-by: Harsh Vardhan <[email protected]>
Co-authored-by: Tilak Puli <[email protected]>
Co-authored-by: KiruthikaJeyashankar <[email protected]>
Co-authored-by: null <[email protected]>
Co-authored-by: adityankannan-tw <[email protected]>
Co-authored-by: MOSIP <[email protected]>
Co-authored-by: Adityan Kannan <[email protected]>
Co-authored-by: adityankannan-tw <[email protected]>
  • Loading branch information
19 people authored Jun 2, 2023
1 parent c4d47b1 commit bd8517b
Show file tree
Hide file tree
Showing 88 changed files with 3,875 additions and 2,015 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/android-custom-build.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
name: ID PASS - MOSIP Resident Application Custom build
name: Android Custom Build

env:
backendServiceDefaultUrl: https://api.qa-121.mosip.net
backendServiceDefaultUrl: https://api.sandbox.mosip.net

on:
workflow_dispatch:
inputs:
backendServiceUrl:
description: 'Backend service URL'
required: true
default: 'https://api.qa-121.mosip.net'
default: 'https://api.sandbox.mosip.net'
type: string
theme:
description: 'Application Theme'
Expand Down Expand Up @@ -83,4 +83,4 @@ jobs:
with:
name: apk-output
path: android/app/build/outputs/apk/newlogic/release/
retention-days: 10
retention-days: 10
75 changes: 0 additions & 75 deletions .github/workflows/android.yml

This file was deleted.

79 changes: 79 additions & 0 deletions .github/workflows/ios-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Inji iOS build

on:
workflow_dispatch:
inputs:
backendServiceUrl:
description: 'Backend service URL'
required: true
default: 'https://api.sandbox.mosip.net'
type: string
theme:
description: 'Application Theme'
required: true
default: 'orange'
type: choice
options:
- orange
- purple
internal-testers:
description: 'Internal Testers Group'
required: true
default: 'QA-Triple'
type: choice
options:
- Dev-testing
- MEC
- QA
- MOSIP-Collab
- MOSIP-Dev-testing
buildDescription:
description: 'What to test'
required: true
default: 'QA-Triple environment build'
type: string

jobs:
build_ios:
name: Deploying to Testflight
runs-on: macos-13

steps:
- uses: actions/[email protected]
- uses: actions/setup-node@v3
with:
node-version: '16.x'

- name: Install npm dependencies
run: |
npm install
- name: Install Pod
run: |
cd ios
pod install
- name: Deploy iOS Beta to TestFlight
run: |
cd ios
fastlane beta
env:
APP_STORE_CONNECT_TEAM_ID: '${{ secrets.APP_STORE_CONNECT_TEAM_ID }}'
DEVELOPER_APP_ID: '${{ secrets.IOS_INJI_DEVELOPER_APP_ID }}'
INJI_IOS_DEVELOPER_APP_IDENTIFIER: '${{ secrets.INJI_IOS_DEVELOPER_APP_IDENTIFIER }}'
INJI_IOS_DEVELOPER_PORTAL_TEAM_ID: '${{ secrets.INJI_IOS_DEVELOPER_PORTAL_TEAM_ID }}'
INJI_IOS_FASTLANE_APPLE_ID: '${{ secrets.INJI_IOS_FASTLANE_APPLE_ID }}'
INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: '${{ secrets.INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}'
GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
INJI_IOS_PROVISIONING_PROFILE_SPECIFIER: '${{ secrets.INJI_IOS_PROVISIONING_PROFILE_SPECIFIER }}'
INJI_IOS_TEMP_KEYCHAIN_PASSWORD: '${{ secrets.INJI_IOS_TEMP_KEYCHAIN_PASSWORD }}'
INJI_IOS_TEMP_KEYCHAIN_USER: '${{ secrets.INJI_IOS_TEMP_KEYCHAIN_USER }}'
APPLE_KEY_ID: '${{ secrets.APPLE_KEY_ID }}'
APPLE_ISSUER_ID: '${{ secrets.APPLE_ISSUER_ID }}'
APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}'
SLACK_URL: '${{ secrets.SLACK_WEBHOOK_DEVOPS }}'
MATCH_PASSWORD: '${{ secrets.INJI_IOS_MATCH_PASSWORD }}'
APPLICATION_THEME: ${{ github.event.inputs.theme }}
MIMOTO_HOST: ${{ github.event.inputs.backendServiceUrl }}
TESTFLIGHT_INTERNAL_TESTERS_GROUP: ${{ github.event.inputs.internal-testers }}
TESTFLIGHT_BETA_APP_DESCRIPTION: ${{ github.event.inputs.buildDescription }}
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ yarn-error.log
# BUCK
buck-out/
\.buckd/
*.keystore
!debug.keystore

# Bundle artifacts
*.jsbundle
Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,14 @@ More info here:
- [React Native - Publishing to the App Store](https://reactnative.dev/docs/publishing-to-app-store)
- [Apple Developer - Distributing Your App for Beta Testing and Releases](https://developer.apple.com/documentation/xcode/distributing-your-app-for-beta-testing-and-releases)

## 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](https://sqlitebrowser.org/dl/) .
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](/Credits.md)
6 changes: 6 additions & 0 deletions android/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source "https://rubygems.org"

gem "fastlane"

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
Loading

0 comments on commit bd8517b

Please sign in to comment.