Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(Cross): [IOAPPX-346] Remove manually linked deps #5972

Merged
merged 305 commits into from
Jan 13, 2025

Conversation

LazyAfternoons
Copy link
Contributor

@LazyAfternoons LazyAfternoons commented Jul 15, 2024

Caution

Can cause runtime errors which crash the app, tests are very important.

Short description

This PR removes manually linked dependencies as they should support autolinking. Android only.

List of changes proposed in this pull request

  • Remove dependencies which are still declared in our codebase:
jail-monkey
react-native-linear-gradient
react-native-share
react-native-fingerprint-scanner
react-native-reanimated
react-native-cookies/cookies
react-native-flag-secure-android
react-native-fs
react-native-android-open-settings
react-native-calendar-events
react-native-background-timer
react-native-svg
react-native-splash-screen
react-native-exception-handler
react-native-push-notification
react-native-keychain
react-native-i18n
react-native-device-info
react-native-config
react-native-screen-brightness
  • Remove dependencies which are not declared in our codebase anymore:
react-native-mixpanel
react-native-lewin-qrcode
react-native-text-input-mask

How to test

To avoid runtime crashes due to improperly linked libraries, I'm adding a test for each removed dependency, unless not declared anymore, as an extra precaution. Tests are only required on Android. Clean the project before starting the tests:

cd android && ./gradlew clean && cd..
  • jail-monkey -> Test a complete an onboarding process;
  • react-native-linear-gradient -> Test IOScrollView.tsx by navigating to Profile -> Design System -> IOScrollView;
  • react-native-share -> Try to share a payment receipt. The system share menu should pop up and you should be able to share the document;
  • react-native-fingerprint-scanner -> Enable the fingering during the onboarding and test a login by using it;
  • react-native-reanimated -> Test animated pictograms by navigating to Profile -> Design System -> Animated Pictograms;
  • react-native-cookies/cookies -> Test a CIE login on Android;
  • react-native-flag-secure-android -> Wallet > Add Payment Method > Take a snapshot > The snapshot cannot be taken;
  • react-native-fs -> Test the download from a message with attachments or enable the FCI in io-dev-api-server with the flag fci: { fci: { waitForSignatureCount: 1 } } and try to open a document during the signing flow. The app should download it and show it;
  • react-native-android-open-settings -> Open Profile -> Preferences -> Favourite Calendar and deny the access to the calendar. Press again Favourite Calendar and then Enable access. The app should open the Android settings;
  • react-native-calendar-events -> With io-dev-api-server enable the flag messages: { paymentWithValidDueDateCount: 1 }, open the message and you should be able to add a reminder to your calendar;
  • react-native-background-timer -> Type the identification pin wrongly until a blocking timer is shown;
  • react-native-svg -> Open Profile -> Design System -> Loaders and check if the loaders are displayed;
  • react-native-splash-screen -> The app splash screen should be properly displayed;
  • react-native-exception-handler -> This can be tested by throwing an unhandled exception in bundle mode. An alert should be shown. This might be tricky to test.
  • react-native-push-notification -> Test a notification;
  • react-native-keychain -> Test the onboarding process as it's used to store the citizen PIN;
  • react-native-i18n -> Translation strings should work;
  • react-native-device-info -> The app version number in the Profile section should be shown;
  • react-native-config -> Start the app with the local/production environment;
  • react-native-screen-brightness -> Open Profile -> Your Data and press Shown in the fiscal code section. The brightness of the device should change;

Please test any critical flow which comes to your mind as well.

LazyAfternoons and others added 30 commits February 6, 2024 11:06
Copy link
Contributor

@CrisTofani CrisTofani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Tested on Android device, anything look perfectly working!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.