Skip to content

Commit

Permalink
RMET-3341 ::: Prepare main for Release 2.1.0 (#92)
Browse files Browse the repository at this point in the history
* chore: Add Unreleased Tag to CHANGELOG

* RMET-2036 :: Updated jcenter to mavenCentral (#40)

* RMET-2045 - Firebase Cloud Messaging Plugin - Use fixed versions (#39)

* fix: use fixed versions

References: https://outsystemsrd.atlassian.net/browse/RMET-2045

* chore: update changelog

* refactor: remove jcenter

References: https://outsystemsrd.atlassian.net/browse/RMET-2036

* chore: update changelog

* feat: iOS | Add Get APNs Token (#41)

Update iOS lib files in order to include the new Get APNs Token method.
Delegate the app's `application:didRegisterForRemoteNotificationWithDeviceToken:` to Cloud Messaging's delegate extension.

* RMET-2114 FB Cloud Messaging - Android - Fix click notification without deeplink (#42)

* tentativefix: added pending intent to every notification

* chore: update lib for testing

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* chore: update lib

* feat: update messaging library to version 1.0.1

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* refactor: remove new line

* chore: update changelog

Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>

* RMET-2045 - Firebase Cloud Messaging Plugin - Use fixed versions (#39)

* fix: use fixed versions

References: https://outsystemsrd.atlassian.net/browse/RMET-2045

* chore: update changelog

* Fix: Silent Notifications issue (#44)

The method `application:didReceiveRemoteNotification:fetchCompletionHandler:` is not being triggered by apps that use the plugin, so it's not possible to trigger silent notifications.
The same fix was applied for the `application:didRegisterForRemoteNotificationsWithDeviceToken:` as the method suffered from the same issue.

* fix: Replace iOS code for library (#45)

Remove the iOS code and replace it for the xcframework.

* RMET-2312 :: Empty silent notification crash fix (#46)

* chrore: bump patch version to 1.0.6. Changed lib version to new patch vesion 1.0.2

* chrore: bump patch version to 1.0.6

* Merge development into main (#43)

* chore: Add Unreleased Tag to CHANGELOG

* RMET-2036 :: Updated jcenter to mavenCentral (#40)

* RMET-2045 - Firebase Cloud Messaging Plugin - Use fixed versions (#39)

* fix: use fixed versions

References: https://outsystemsrd.atlassian.net/browse/RMET-2045

* chore: update changelog

* refactor: remove jcenter

References: https://outsystemsrd.atlassian.net/browse/RMET-2036

* chore: update changelog

* feat: iOS | Add Get APNs Token (#41)

Update iOS lib files in order to include the new Get APNs Token method.
Delegate the app's `application:didRegisterForRemoteNotificationWithDeviceToken:` to Cloud Messaging's delegate extension.

* RMET-2114 FB Cloud Messaging - Android - Fix click notification without deeplink (#42)

* tentativefix: added pending intent to every notification

* chore: update lib for testing

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* chore: update lib

* feat: update messaging library to version 1.0.1

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* refactor: remove new line

* chore: update changelog

Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>

Co-authored-by: OS-ricardomoreirasilva <ricardo.moreira.silva@outsystems.com>
Co-authored-by: Ricardo Silva <97543217+OS-ricardomoreirasilva@users.noreply.github.com>
Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>

* chore(release): raise to version 1.1.0

* feat: iOS | Use Local Notifications library (#48)

Update the iOS xcframework that already includes the Local Notifications library.
Add the local notifications library.
Remove unnecessary files introduced on conflict fix.

* RMET-2310 FB Cloud Messaging - Update FCM lib and add Local Notifications Lib (#49)

* feat: update osfirebasemessaging-android

References: https://outsystemsrd.atlassian.net/browse/RMET-2310

* fix: include local notifications lib in build.gradle

* chore: update changelog

* feat: React to "Push" Data Message (#51)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib in order to allow the trigger of Local Notifications when a Data Message with a Notification structure is received.

* RMET-2378 Cloud Messaging Plugin - Hook for sound files (#52)

* feat: first version of hook to copy sound files

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: save current progress

* refactor: remove comment

* refactor: remove unnecessary code from hook

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* refactor: remove unnecessary functions

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: update libs

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: update changelog

* refactor: replace var with let

* refactor: replace var with let

* refactor: use let instead of var

* chore: update lib version

* RMET-2421 FCM Plugin  - Fix click notification crash (#53)

* chore: update lib version

* chore: update lib version

* chore: update lib

* chore: update changelog

* chore: update lib version

* chore: update lib versions

* feat: Add Actions to "Push" Data Messages (#55)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib to add reaction to a Push Data Message with Actions configured.

Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>

* RMET-2387 FCM Plugin - Android - Add action buttons (#57)

* chore: update libs

* chore: update libs

* feat: handle action button clicks

References: https://outsystemsrd.atlassian.net/browse/RMET-2387

* chore: update changelog

* feat: iOS | Click on Notification Action (#56)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib to add reaction to a Notification Action click.

* Feat: iOS | React to the Internal Route Event (#58)

Update both OSFirebaseMessagingLib and OSLocalNotificationsLib to the latest versions.
Add "internalRouteActionClick" to the list of possible events can be triggered.

* RMET-2215 FCM Plugin - Fix on hook for sound files (#61)

* test: test build without hook

* test: include hook

* test: change hook name

* test: remove defer.promise

* chore: update changelog

* Feat: iOS | React to the Web Route Event (#60)

Update OSLocalNotificationLib.xcframework and OSFirebaseMessagingLib.xcframework to the latest versions so that it can deal with Actions defined with a web route event.

* current implementation (#62)

Add to plugin.xml a new hook that reads Extensibility Configurations' APPLICATION_SCHEMES preference value, and adds it to Info.plist's LSApplicationQueriesSchemes property.

* RMET-2391 FCM Plugin - Notification action buttons (#64)

* chore: update lib versions

* chore: update lib version

* chore: update lib version

* chore: update gradle dependency

* feat: iOS | React to the App Route Event (#63)

Update OSLocalNotificationLib.xcframework and OSFirebaseMessagingLib.xcframework to the latest versions so that it can deal with Actions defined with a app route event.

* RMET-2555 :: Update error codes (#65)

* feat: update error codes

* chore: update changelog

* chore: Set Tag and Update iOS libraries

Set tag on the `CHANGELOG.md` file.
Update `OSFirebaseMessagingLib.xcframework` and `OSLocalNotificationsLib.xcframework` to the latest versions.

* chore: set missing Tags

Set Tags to `package.json` and `plugin.xml` files.

* chore: use correct OSFirebaseMessagingLib.xcframework

* chore: update android libraries

* Development (#47)

* chore: Add Unreleased Tag to CHANGELOG

* RMET-2036 :: Updated jcenter to mavenCentral (#40)

* RMET-2045 - Firebase Cloud Messaging Plugin - Use fixed versions (#39)

* fix: use fixed versions

References: https://outsystemsrd.atlassian.net/browse/RMET-2045

* chore: update changelog

* refactor: remove jcenter

References: https://outsystemsrd.atlassian.net/browse/RMET-2036

* chore: update changelog

* feat: iOS | Add Get APNs Token (#41)

Update iOS lib files in order to include the new Get APNs Token method.
Delegate the app's `application:didRegisterForRemoteNotificationWithDeviceToken:` to Cloud Messaging's delegate extension.

* RMET-2114 FB Cloud Messaging - Android - Fix click notification without deeplink (#42)

* tentativefix: added pending intent to every notification

* chore: update lib for testing

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* chore: update lib

* feat: update messaging library to version 1.0.1

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* refactor: remove new line

* chore: update changelog

Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>

* Fix: Silent Notifications issue (#44)

The method `application:didReceiveRemoteNotification:fetchCompletionHandler:` is not being triggered by apps that use the plugin, so it's not possible to trigger silent notifications.
The same fix was applied for the `application:didRegisterForRemoteNotificationsWithDeviceToken:` as the method suffered from the same issue.

* fix: Replace iOS code for library (#45)

Remove the iOS code and replace it for the xcframework.

* RMET-2312 :: Empty silent notification crash fix (#46)

* chrore: bump patch version to 1.0.6. Changed lib version to new patch vesion 1.0.2

* chrore: bump patch version to 1.0.6

---------

Co-authored-by: OS-ricardomoreirasilva <ricardo.moreira.silva@outsystems.com>
Co-authored-by: Alexandre Jacinto <alexandre.jacinto@outsystems.com>
Co-authored-by: Ricardo Silva <97543217+OS-ricardomoreirasilva@users.noreply.github.com>

* chore: updated lib version. updated CHANGELOG (#50)

* RMET-2424 ::: android ::: Android 13 POST_NOTIFICATION permission (#54)

* fix: added permission request for android api >= 33

* removed unnecessary coroutine

* chore: updated CHANGELOG

* fix: asks for permission when app starts

* fix: added POST_NOTIFICATIONS permission in AndroidManifest plugin.xml

* fix: plugin.xml typo

* chore: bumped version to 1.1.3

* feat: update firebase-core version (#67)

* RMET-2464 :: account for sound zip (#68)

* feat: update hook to unzip files

* RMET-2464 :: one file unzipping (#69)

* feat: update hook to unzip files

* fix: add case for zip with only one file

* fix: remove zip file and folder

* fix: typo

* fix: add recursive delete

* refactor: to follow CR advice

* RMET-2695 :: fix hook execution (#70)

* fix: change hook execution

* remove changelog entry + use remove deprecated function

* feat: add case for zip of sounds folder instead of just files

* feat: add verification of sound file to better abstract where it should be saved

* deleting unnecessary files

* refactor

* try: removing the deletion of zip file

* fix: iOS | Trigger "NotificationClickV2" (#71)

Update the iOS library to use the latest version that enables the correct triggering of the new NotificationClick event.
Update the implementation of the "FirebaseMessagingEventProtocol" to trigger multiple events simultaneously, including the new NotificationClick event.
Extend OSFCMClickableType and FirebaseNotificationType to implement the CustomStringConvertible protocol, applying the correct value to the description property.

* fix: typo in internalRouteActionClick

* chore: Raise Tag Version (#72)

Raise tag version to "2.0.0".
Update iOS and Android libraries to the latest versions.

* Prepare Release of Version 1.2.0 (#66)

* chore: Add Unreleased Tag to CHANGELOG

* RMET-2036 :: Updated jcenter to mavenCentral (#40)

* RMET-2045 - Firebase Cloud Messaging Plugin - Use fixed versions (#39)

* fix: use fixed versions

References: https://outsystemsrd.atlassian.net/browse/RMET-2045

* chore: update changelog

* refactor: remove jcenter

References: https://outsystemsrd.atlassian.net/browse/RMET-2036

* chore: update changelog

* feat: iOS | Add Get APNs Token (#41)

Update iOS lib files in order to include the new Get APNs Token method.
Delegate the app's `application:didRegisterForRemoteNotificationWithDeviceToken:` to Cloud Messaging's delegate extension.

* RMET-2114 FB Cloud Messaging - Android - Fix click notification without deeplink (#42)

* tentativefix: added pending intent to every notification

* chore: update lib for testing

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* chore: update lib

* feat: update messaging library to version 1.0.1

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* refactor: remove new line

* chore: update changelog

Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>

* Fix: Silent Notifications issue (#44)

The method `application:didReceiveRemoteNotification:fetchCompletionHandler:` is not being triggered by apps that use the plugin, so it's not possible to trigger silent notifications.
The same fix was applied for the `application:didRegisterForRemoteNotificationsWithDeviceToken:` as the method suffered from the same issue.

* fix: Replace iOS code for library (#45)

Remove the iOS code and replace it for the xcframework.

* RMET-2312 :: Empty silent notification crash fix (#46)

* chrore: bump patch version to 1.0.6. Changed lib version to new patch vesion 1.0.2

* chrore: bump patch version to 1.0.6

* feat: iOS | Use Local Notifications library (#48)

Update the iOS xcframework that already includes the Local Notifications library.
Add the local notifications library.
Remove unnecessary files introduced on conflict fix.

* RMET-2310 FB Cloud Messaging - Update FCM lib and add Local Notifications Lib (#49)

* feat: update osfirebasemessaging-android

References: https://outsystemsrd.atlassian.net/browse/RMET-2310

* fix: include local notifications lib in build.gradle

* chore: update changelog

* feat: React to "Push" Data Message (#51)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib in order to allow the trigger of Local Notifications when a Data Message with a Notification structure is received.

* RMET-2378 Cloud Messaging Plugin - Hook for sound files (#52)

* feat: first version of hook to copy sound files

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: save current progress

* refactor: remove comment

* refactor: remove unnecessary code from hook

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* refactor: remove unnecessary functions

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: update libs

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: update changelog

* refactor: replace var with let

* refactor: replace var with let

* refactor: use let instead of var

* chore: update lib version

* RMET-2421 FCM Plugin  - Fix click notification crash (#53)

* chore: update lib version

* chore: update lib version

* chore: update lib

* chore: update changelog

* chore: update lib version

* chore: update lib versions

* feat: Add Actions to "Push" Data Messages (#55)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib to add reaction to a Push Data Message with Actions configured.

Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>

* RMET-2387 FCM Plugin - Android - Add action buttons (#57)

* chore: update libs

* chore: update libs

* feat: handle action button clicks

References: https://outsystemsrd.atlassian.net/browse/RMET-2387

* chore: update changelog

* feat: iOS | Click on Notification Action (#56)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib to add reaction to a Notification Action click.

* Feat: iOS | React to the Internal Route Event (#58)

Update both OSFirebaseMessagingLib and OSLocalNotificationsLib to the latest versions.
Add "internalRouteActionClick" to the list of possible events can be triggered.

* RMET-2215 FCM Plugin - Fix on hook for sound files (#61)

* test: test build without hook

* test: include hook

* test: change hook name

* test: remove defer.promise

* chore: update changelog

* Feat: iOS | React to the Web Route Event (#60)

Update OSLocalNotificationLib.xcframework and OSFirebaseMessagingLib.xcframework to the latest versions so that it can deal with Actions defined with a web route event.

* current implementation (#62)

Add to plugin.xml a new hook that reads Extensibility Configurations' APPLICATION_SCHEMES preference value, and adds it to Info.plist's LSApplicationQueriesSchemes property.

* RMET-2391 FCM Plugin - Notification action buttons (#64)

* chore: update lib versions

* chore: update lib version

* chore: update lib version

* chore: update gradle dependency

* feat: iOS | React to the App Route Event (#63)

Update OSLocalNotificationLib.xcframework and OSFirebaseMessagingLib.xcframework to the latest versions so that it can deal with Actions defined with a app route event.

* RMET-2555 :: Update error codes (#65)

* feat: update error codes

* chore: update changelog

* chore: Set Tag and Update iOS libraries

Set tag on the `CHANGELOG.md` file.
Update `OSFirebaseMessagingLib.xcframework` and `OSLocalNotificationsLib.xcframework` to the latest versions.

* chore: set missing Tags

Set Tags to `package.json` and `plugin.xml` files.

* chore: use correct OSFirebaseMessagingLib.xcframework

* chore: update android libraries

---------

Co-authored-by: Alexandre Jacinto <alexandre.jacinto@outsystems.com>
Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>
Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>
Co-authored-by: Marta Carlos <101343976+OS-martacarlos@users.noreply.github.com>

* fix: unzip sound file

* fix: last commit

* fix: add project root to destination folder when unzipping

* chore: raise adm zip version bc snyk

* RMET-3013 FCM Plugin - Anroid - Only handle FCM intents (#77)

* fix: only deal with intents from FCM

Context: In the FCM plugin and library, we only want to deal with intents that come from the plugin. To do that, we are including this extra every time the plugin sends a notification with an intent.

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* fix: get extra as String instead of Boolean

References: https://outsystemsrd.atlassian.net/browse/RMET-3006

* refactor: use more unique string for extra

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* chore: update changelog

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* chore: update dependency version

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* RMET-3013 FCM Plugin - Prepare release 2.0.1 (#78)

* fix: only deal with intents from FCM

Context: In the FCM plugin and library, we only want to deal with intents that come from the plugin. To do that, we are including this extra every time the plugin sends a notification with an intent.

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* fix: get extra as String instead of Boolean

References: https://outsystemsrd.atlassian.net/browse/RMET-3006

* refactor: use more unique string for extra

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* chore: update changelog

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* chore: update dependency version

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* chore(release): raise to version 2.0.1

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* RMET-3141 ::: iOS ::: Raise Pod Version to 8.15.0 (#82)

* RMET-2739 ::: Prepare Release 2.0.0 (#73)

* chore: Add Unreleased Tag to CHANGELOG

* RMET-2036 :: Updated jcenter to mavenCentral (#40)

* RMET-2045 - Firebase Cloud Messaging Plugin - Use fixed versions (#39)

* fix: use fixed versions

References: https://outsystemsrd.atlassian.net/browse/RMET-2045

* chore: update changelog

* refactor: remove jcenter

References: https://outsystemsrd.atlassian.net/browse/RMET-2036

* chore: update changelog

* feat: iOS | Add Get APNs Token (#41)

Update iOS lib files in order to include the new Get APNs Token method.
Delegate the app's `application:didRegisterForRemoteNotificationWithDeviceToken:` to Cloud Messaging's delegate extension.

* RMET-2114 FB Cloud Messaging - Android - Fix click notification without deeplink (#42)

* tentativefix: added pending intent to every notification

* chore: update lib for testing

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* chore: update lib

* feat: update messaging library to version 1.0.1

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* refactor: remove new line

* chore: update changelog

Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>

* Fix: Silent Notifications issue (#44)

The method `application:didReceiveRemoteNotification:fetchCompletionHandler:` is not being triggered by apps that use the plugin, so it's not possible to trigger silent notifications.
The same fix was applied for the `application:didRegisterForRemoteNotificationsWithDeviceToken:` as the method suffered from the same issue.

* fix: Replace iOS code for library (#45)

Remove the iOS code and replace it for the xcframework.

* RMET-2312 :: Empty silent notification crash fix (#46)

* chrore: bump patch version to 1.0.6. Changed lib version to new patch vesion 1.0.2

* chrore: bump patch version to 1.0.6

* feat: iOS | Use Local Notifications library (#48)

Update the iOS xcframework that already includes the Local Notifications library.
Add the local notifications library.
Remove unnecessary files introduced on conflict fix.

* RMET-2310 FB Cloud Messaging - Update FCM lib and add Local Notifications Lib (#49)

* feat: update osfirebasemessaging-android

References: https://outsystemsrd.atlassian.net/browse/RMET-2310

* fix: include local notifications lib in build.gradle

* chore: update changelog

* feat: React to "Push" Data Message (#51)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib in order to allow the trigger of Local Notifications when a Data Message with a Notification structure is received.

* RMET-2378 Cloud Messaging Plugin - Hook for sound files (#52)

* feat: first version of hook to copy sound files

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: save current progress

* refactor: remove comment

* refactor: remove unnecessary code from hook

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* refactor: remove unnecessary functions

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: update libs

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: update changelog

* refactor: replace var with let

* refactor: replace var with let

* refactor: use let instead of var

* chore: update lib version

* RMET-2421 FCM Plugin  - Fix click notification crash (#53)

* chore: update lib version

* chore: update lib version

* chore: update lib

* chore: update changelog

* chore: update lib version

* chore: update lib versions

* feat: Add Actions to "Push" Data Messages (#55)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib to add reaction to a Push Data Message with Actions configured.

Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>

* RMET-2387 FCM Plugin - Android - Add action buttons (#57)

* chore: update libs

* chore: update libs

* feat: handle action button clicks

References: https://outsystemsrd.atlassian.net/browse/RMET-2387

* chore: update changelog

* feat: iOS | Click on Notification Action (#56)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib to add reaction to a Notification Action click.

* Feat: iOS | React to the Internal Route Event (#58)

Update both OSFirebaseMessagingLib and OSLocalNotificationsLib to the latest versions.
Add "internalRouteActionClick" to the list of possible events can be triggered.

* RMET-2215 FCM Plugin - Fix on hook for sound files (#61)

* test: test build without hook

* test: include hook

* test: change hook name

* test: remove defer.promise

* chore: update changelog

* Feat: iOS | React to the Web Route Event (#60)

Update OSLocalNotificationLib.xcframework and OSFirebaseMessagingLib.xcframework to the latest versions so that it can deal with Actions defined with a web route event.

* current implementation (#62)

Add to plugin.xml a new hook that reads Extensibility Configurations' APPLICATION_SCHEMES preference value, and adds it to Info.plist's LSApplicationQueriesSchemes property.

* RMET-2391 FCM Plugin - Notification action buttons (#64)

* chore: update lib versions

* chore: update lib version

* chore: update lib version

* chore: update gradle dependency

* feat: iOS | React to the App Route Event (#63)

Update OSLocalNotificationLib.xcframework and OSFirebaseMessagingLib.xcframework to the latest versions so that it can deal with Actions defined with a app route event.

* RMET-2555 :: Update error codes (#65)

* feat: update error codes

* chore: update changelog

* chore: Set Tag and Update iOS libraries

Set tag on the `CHANGELOG.md` file.
Update `OSFirebaseMessagingLib.xcframework` and `OSLocalNotificationsLib.xcframework` to the latest versions.

* chore: set missing Tags

Set Tags to `package.json` and `plugin.xml` files.

* chore: use correct OSFirebaseMessagingLib.xcframework

* chore: update android libraries

* feat: update firebase-core version (#67)

* RMET-2464 :: account for sound zip (#68)

* feat: update hook to unzip files

* RMET-2464 :: one file unzipping (#69)

* feat: update hook to unzip files

* fix: add case for zip with only one file

* fix: remove zip file and folder

* fix: typo

* fix: add recursive delete

* refactor: to follow CR advice

* RMET-2695 :: fix hook execution (#70)

* fix: change hook execution

* remove changelog entry + use remove deprecated function

* feat: add case for zip of sounds folder instead of just files

* feat: add verification of sound file to better abstract where it should be saved

* deleting unnecessary files

* refactor

* try: removing the deletion of zip file

* fix: iOS | Trigger "NotificationClickV2" (#71)

Update the iOS library to use the latest version that enables the correct triggering of the new NotificationClick event.
Update the implementation of the "FirebaseMessagingEventProtocol" to trigger multiple events simultaneously, including the new NotificationClick event.
Extend OSFCMClickableType and FirebaseNotificationType to implement the CustomStringConvertible protocol, applying the correct value to the description property.

* fix: typo in internalRouteActionClick

* chore: Raise Tag Version (#72)

Raise tag version to "2.0.0".
Update iOS and Android libraries to the latest versions.

* fix: unzip sound file

* fix: last commit

* fix: add project root to destination folder when unzipping

* chore: raise adm zip version bc snyk

---------

Co-authored-by: Alexandre Jacinto <alexandre.jacinto@outsystems.com>
Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>
Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>
Co-authored-by: Marta Carlos <101343976+OS-martacarlos@users.noreply.github.com>

* fix: check if intent comes from FCM (#81)

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* chore: Raise Pod Version

Raises Pod version to 8.15.0.
Update OSFirebaseMessagingLib to latest version.

References: https://outsystemsrd.atlassian.net/browse/RMET-3141

---------

Co-authored-by: Alexandre Jacinto <alexandre.jacinto@outsystems.com>
Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>
Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>
Co-authored-by: Marta Carlos <101343976+OS-martacarlos@users.noreply.github.com>

* RMET-3274 ::: iOS ::: Update 3rd Party that Adds Privacy Manifest (#85)

* RMET-2739 ::: Prepare Release 2.0.0 (#73)

* chore: Add Unreleased Tag to CHANGELOG

* RMET-2036 :: Updated jcenter to mavenCentral (#40)

* RMET-2045 - Firebase Cloud Messaging Plugin - Use fixed versions (#39)

* fix: use fixed versions

References: https://outsystemsrd.atlassian.net/browse/RMET-2045

* chore: update changelog

* refactor: remove jcenter

References: https://outsystemsrd.atlassian.net/browse/RMET-2036

* chore: update changelog

* feat: iOS | Add Get APNs Token (#41)

Update iOS lib files in order to include the new Get APNs Token method.
Delegate the app's `application:didRegisterForRemoteNotificationWithDeviceToken:` to Cloud Messaging's delegate extension.

* RMET-2114 FB Cloud Messaging - Android - Fix click notification without deeplink (#42)

* tentativefix: added pending intent to every notification

* chore: update lib for testing

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* chore: update lib

* feat: update messaging library to version 1.0.1

References: https://outsystemsrd.atlassian.net/browse/RMET-2114

* refactor: remove new line

* chore: update changelog

Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>

* Fix: Silent Notifications issue (#44)

The method `application:didReceiveRemoteNotification:fetchCompletionHandler:` is not being triggered by apps that use the plugin, so it's not possible to trigger silent notifications.
The same fix was applied for the `application:didRegisterForRemoteNotificationsWithDeviceToken:` as the method suffered from the same issue.

* fix: Replace iOS code for library (#45)

Remove the iOS code and replace it for the xcframework.

* RMET-2312 :: Empty silent notification crash fix (#46)

* chrore: bump patch version to 1.0.6. Changed lib version to new patch vesion 1.0.2

* chrore: bump patch version to 1.0.6

* feat: iOS | Use Local Notifications library (#48)

Update the iOS xcframework that already includes the Local Notifications library.
Add the local notifications library.
Remove unnecessary files introduced on conflict fix.

* RMET-2310 FB Cloud Messaging - Update FCM lib and add Local Notifications Lib (#49)

* feat: update osfirebasemessaging-android

References: https://outsystemsrd.atlassian.net/browse/RMET-2310

* fix: include local notifications lib in build.gradle

* chore: update changelog

* feat: React to "Push" Data Message (#51)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib in order to allow the trigger of Local Notifications when a Data Message with a Notification structure is received.

* RMET-2378 Cloud Messaging Plugin - Hook for sound files (#52)

* feat: first version of hook to copy sound files

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: save current progress

* refactor: remove comment

* refactor: remove unnecessary code from hook

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* refactor: remove unnecessary functions

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: update libs

References: https://outsystemsrd.atlassian.net/browse/RMET-2378

* chore: update changelog

* refactor: replace var with let

* refactor: replace var with let

* refactor: use let instead of var

* chore: update lib version

* RMET-2421 FCM Plugin  - Fix click notification crash (#53)

* chore: update lib version

* chore: update lib version

* chore: update lib

* chore: update changelog

* chore: update lib version

* chore: update lib versions

* feat: Add Actions to "Push" Data Messages (#55)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib to add reaction to a Push Data Message with Actions configured.

Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>

* RMET-2387 FCM Plugin - Android - Add action buttons (#57)

* chore: update libs

* chore: update libs

* feat: handle action button clicks

References: https://outsystemsrd.atlassian.net/browse/RMET-2387

* chore: update changelog

* feat: iOS | Click on Notification Action (#56)

Update the OSFirebaseMessagingLib and OSLocalNotificationsLib to add reaction to a Notification Action click.

* Feat: iOS | React to the Internal Route Event (#58)

Update both OSFirebaseMessagingLib and OSLocalNotificationsLib to the latest versions.
Add "internalRouteActionClick" to the list of possible events can be triggered.

* RMET-2215 FCM Plugin - Fix on hook for sound files (#61)

* test: test build without hook

* test: include hook

* test: change hook name

* test: remove defer.promise

* chore: update changelog

* Feat: iOS | React to the Web Route Event (#60)

Update OSLocalNotificationLib.xcframework and OSFirebaseMessagingLib.xcframework to the latest versions so that it can deal with Actions defined with a web route event.

* current implementation (#62)

Add to plugin.xml a new hook that reads Extensibility Configurations' APPLICATION_SCHEMES preference value, and adds it to Info.plist's LSApplicationQueriesSchemes property.

* RMET-2391 FCM Plugin - Notification action buttons (#64)

* chore: update lib versions

* chore: update lib version

* chore: update lib version

* chore: update gradle dependency

* feat: iOS | React to the App Route Event (#63)

Update OSLocalNotificationLib.xcframework and OSFirebaseMessagingLib.xcframework to the latest versions so that it can deal with Actions defined with a app route event.

* RMET-2555 :: Update error codes (#65)

* feat: update error codes

* chore: update changelog

* chore: Set Tag and Update iOS libraries

Set tag on the `CHANGELOG.md` file.
Update `OSFirebaseMessagingLib.xcframework` and `OSLocalNotificationsLib.xcframework` to the latest versions.

* chore: set missing Tags

Set Tags to `package.json` and `plugin.xml` files.

* chore: use correct OSFirebaseMessagingLib.xcframework

* chore: update android libraries

* feat: update firebase-core version (#67)

* RMET-2464 :: account for sound zip (#68)

* feat: update hook to unzip files

* RMET-2464 :: one file unzipping (#69)

* feat: update hook to unzip files

* fix: add case for zip with only one file

* fix: remove zip file and folder

* fix: typo

* fix: add recursive delete

* refactor: to follow CR advice

* RMET-2695 :: fix hook execution (#70)

* fix: change hook execution

* remove changelog entry + use remove deprecated function

* feat: add case for zip of sounds folder instead of just files

* feat: add verification of sound file to better abstract where it should be saved

* deleting unnecessary files

* refactor

* try: removing the deletion of zip file

* fix: iOS | Trigger "NotificationClickV2" (#71)

Update the iOS library to use the latest version that enables the correct triggering of the new NotificationClick event.
Update the implementation of the "FirebaseMessagingEventProtocol" to trigger multiple events simultaneously, including the new NotificationClick event.
Extend OSFCMClickableType and FirebaseNotificationType to implement the CustomStringConvertible protocol, applying the correct value to the description property.

* fix: typo in internalRouteActionClick

* chore: Raise Tag Version (#72)

Raise tag version to "2.0.0".
Update iOS and Android libraries to the latest versions.

* fix: unzip sound file

* fix: last commit

* fix: add project root to destination folder when unzipping

* chore: raise adm zip version bc snyk

---------

Co-authored-by: Alexandre Jacinto <alexandre.jacinto@outsystems.com>
Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>
Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>
Co-authored-by: Marta Carlos <101343976+OS-martacarlos@users.noreply.github.com>

* fix: check if intent comes from FCM (#81)

References: https://outsystemsrd.atlassian.net/browse/RMET-3013

* chore: add CODEOWNERS (#84)

Signed-off-by: IT-MikeS <20338451+IT-MikeS@users.noreply.github.com>

* chore: Update iOS SDK version

Update iOS' 3rd party SDK version to `10.23.0`.
Update iOS' `xcFramework` to the latest version.

References: https://outsystemsrd.atlassian.net/browse/RMET-3274

---------

Signed-off-by: IT-MikeS <20338451+IT-MikeS@users.noreply.github.com>
Co-authored-by: Alexandre Jacinto <alexandre.jacinto@outsystems.com>
Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>
Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>
Co-authored-by: Marta Carlos <101343976+OS-martacarlos@users.noreply.github.com>
Co-authored-by: Mike Summerfeldt <20338451+IT-MikeS@users.noreply.github.com>

* RMET-3302 :: Hooks :: Update Error Flow (#86)

* feat: update hooks' error flow

- from MABS 10+, it's possible to customise the error message in order to appear on Service Studio
- deleted unused hook files

https://outsystemsrd.atlassian.net/browse/RMET-3302

* fix: apply PR suggestions

https://outsystemsrd.atlassian.net/browse/RMET-3302

* fix: remove cleanUp hook + delete file after copying it (#87)

- adds a promise array. this way, it waits for all promises to be resolved before running the next hook
- adds logs for easier future troubleshooting

https://outsystemsrd.atlassian.net/browse/RMET-3326

* RMET-3315 :: Hook :: ODC :: Sound as a resource (#88)

* feat: assume sound file is a resource

- for ODC, this means the name won't be exact so we need filter the files by a search string
- unzipping files always to a specific folder name (sounds)

* refactor: remove unnecessary commented code

* Prepare Release of `2.1.0` (#89)

* chore: update iOS library

Update with version `1.3.0`.

References: https://outsystemsrd.atlassian.net/browse/RMET-3341

* chore: Set Release Version

Set to version `2.1.0`.
Arrange `CHANGELOG` accordingly.

References: https://outsystemsrd.atlassian.net/browse/RMET-3341

* Revert "RMET-3315 :: Hook :: ODC :: Sound as a resource (#88)"

This reverts commit eaa56cf.

# Conflicts:
#	CHANGELOG.md

---------

Signed-off-by: IT-MikeS <20338451+IT-MikeS@users.noreply.github.com>
Co-authored-by: Alexandre Jacinto <alexandre.jacinto@outsystems.com>
Co-authored-by: Nelson Lopes Silva <5671236+nflsilva@users.noreply.github.com>
Co-authored-by: Marta Carlos <marta.carlos@outsystems.com>
Co-authored-by: Marta Carlos <101343976+OS-martacarlos@users.noreply.github.com>
Co-authored-by: Mike Summerfeldt <20338451+IT-MikeS@users.noreply.github.com>
  • Loading branch information
6 people committed May 21, 2024
1 parent bdce27f commit 3c66bc1
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 45 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

The changes documented here do not include those from the original repository.

## 2.1.0

- Fix: Make `cleanUp` hook only run after all sound files are copied successfully. (https://outsystemsrd.atlassian.net/browse/RMET-3326)
- Chore: Update cordova hooks with new OutSystems specific errors. (https://outsystemsrd.atlassian.net/browse/RMET-3302)
- Chore: Update `FirebaseMessaging` iOS pod to version `10.23.0`. This includes the Privacy Manifest (https://outsystemsrd.atlassian.net/browse/RMET-3274).

## [Version 2.0.1]
- Fix: Only deal with intents from the plugin (https://outsystemsrd.atlassian.net/browse/RMET-3013)

Expand Down
4 changes: 3 additions & 1 deletion hooks/cleanUp.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@ module.exports = function(context) {
let platformConfig = utils.getPlatformConfigs(platform);

if (!platformConfig) {
utils.handleError("Invalid platform", defer);
throw new Error (`OUTSYSTEMS_PLUGIN_ERROR: Error occurred on ${context.hook} because there was a problem
detecting the platform configuration.`)
}

let sourcePath = utils.getPlatformSoundPath(context, platformConfig)
let soundFolderPath = path.join(sourcePath, constants.soundFolder);

if(utils.checkIfFileOrFolderExists(soundFolderPath)){
console.log(`FCM_LOG: Deleting sounds folder @ ${soundFolderPath} `)
utils.removeFolder(soundFolderPath);
}

Expand Down
56 changes: 35 additions & 21 deletions hooks/unzipSound.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
let path = require("path");
let utils = require("./utilities");
let AdmZip = require("adm-zip");
var q;

let constants = {
soundZipFile: "sounds.zip"
Expand All @@ -12,71 +13,84 @@ function copyWavFiles(platformConfig, source, dest, defer) {
let files = utils.getFilesFromPath(source);

let filteredFiles = files.filter(function(file){
return file.endsWith(platformConfig.soundFileExtension) == true;
return file.endsWith(platformConfig.soundFileExtension);
});

copyFiles(filteredFiles, source, dest, defer)

console.log(`FCM_LOG: Found ${filteredFiles.length} sound files!`);
return copyFiles(filteredFiles, source, dest, defer)
}

function copyFiles(files, source, dest, defer){
if(!files){
utils.handleError("Something went wrong when trying to unzip sounds.zip, no files were found", defer);
return
throw new Error (`OUTSYSTEMS_PLUGIN_ERROR: Something went wrong when trying to unzip sounds.zip - no files were found`);
}

if(!utils.checkIfFileOrFolderExists(dest)) {
utils.createOrCheckIfFolderExists(dest);
}

let promiseArray = []
for(const element of files) {
let filePath = path.join(source, element);
let destFilePath = path.join(dest, element);
utils.copyFromSourceToDestPath(defer, filePath, destFilePath);
console.log(`FCM_LOG: Copying [${filePath}] to [${destFilePath}]`);

let copyDefer = q.defer();
promiseArray.push(copyDefer);
utils.copyFromSourceToDestPath(copyDefer, filePath, destFilePath);
}

return promiseArray;
}

module.exports = function(context) {
let cordovaAbove8 = utils.isCordovaAbove(context, 8);
let defer;

if (cordovaAbove8) {
defer = require("q").defer();
q = require('q');
} else {
defer = context.requireCordovaModule("q").defer();
q = context.requireCordovaModule("q");
}

let defer = q.defer();

let platform = context.opts.platforms[0];
let platformConfig = utils.getPlatformConfigs(platform);
if (!platformConfig) {
utils.handleError("Invalid platform", defer);
throw new Error (`OUTSYSTEMS_PLUGIN_ERROR: Error occurred on ${context.hook} because there was a problem detecting the platform configuration.`)
}

let sourcePath = utils.getPlatformSoundPath(context, platformConfig)
let soundFolderPath = platformConfig.getSoundDestinationFolder();
soundFolderPath = path.join(context.opts.projectRoot, soundFolderPath);

let soundZipFile = path.join(sourcePath, constants.soundZipFile);

let promises = [];
if(utils.checkIfFileOrFolderExists(soundZipFile)){
let zip = new AdmZip(soundZipFile);
zip.extractAllTo(sourcePath, true);

let entriesNr = zip.getEntries().length;

console.log(`FCM_LOG: Sound zip file has ${entriesNr} entries`);
if(entriesNr == 0) {
utils.handleError("Sound zip file is empty, either delete it or add one or more files", defer);
return
throw new Error (`OUTSYSTEMS_PLUGIN_ERROR: Sound zip file is empty, either delete it or add one or more files.`)
}

let zipFolder = sourcePath + "/sounds"

if(!utils.checkIfFileOrFolderExists(zipFolder)){
/**to deal with the following case:
console.log(`FCM_LOG: No new folder unzipping.`)
/**
* to deal with the following case:
* iOS + one file in zip + O11
**/
if(sourcePath != soundFolderPath)
copyWavFiles(platformConfig, sourcePath, soundFolderPath, defer)
if(sourcePath != soundFolderPath){
console.log(`FCM_LOG: ${sourcePath} != ${soundFolderPath} so we need to copy files.`)
promises = copyWavFiles(platformConfig, sourcePath, soundFolderPath, defer)
} else {
console.log(`FCM_LOG: ${sourcePath} == ${soundFolderPath} so we don't need to copy files.`)
}
} else {
copyWavFiles(platformConfig, zipFolder, soundFolderPath, defer)
promises = copyWavFiles(platformConfig, zipFolder, soundFolderPath, defer)
}
}
return promises.length > 0 ? q.all(promises) : defer.resolve();
}
21 changes: 7 additions & 14 deletions hooks/utilities.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,6 @@ var constants = {
}
};

function handleError(errorMessage, defer) {
console.log(errorMessage);
defer.reject();
}


function checkIfFileOrFolderExists(path) {
return fs.existsSync(path);
}
Expand Down Expand Up @@ -70,14 +64,14 @@ function getPlatformSoundPath(context, platformConfig){
let platformPath;

if(platformConfig === constants.android){
platformPath = path.join(projectRoot, `platforms/android/www`);
platformPath = path.join(projectRoot, `platforms/android/www`);
} else {
let appName = getAppName(context)
platformPath = path.join(projectRoot, `platforms/ios/${appName}/Resources/www`);
let appName = getAppName(context)
platformPath = path.join(projectRoot, `platforms/ios/${appName}/Resources/www`);
}

if(!fs.existsSync(platformPath)){
platformPath = path.join(projectRoot, platformConfig.getWWWFolder());
platformPath = path.join(projectRoot, platformConfig.getWWWFolder());
}

return platformPath
Expand All @@ -89,15 +83,15 @@ function isCordovaAbove(context, version) {
return parseInt(sp[0]) >= version;
}


function copyFromSourceToDestPath(defer, sourcePath, destPath) {
fs.createReadStream(sourcePath).pipe(fs.createWriteStream(destPath))
.on("close", function (err) {
.on("close", function () {
console.log(`Finished copying ${sourcePath}.`);
defer.resolve();
})
.on("error", function (err) {
console.log(err);
defer.reject();
throw new Error (`OUTSYSTEMS_PLUGIN_ERROR: Something went wrong when trying to copy sounds files. Please check the logs for more information.`);
});
}

Expand All @@ -113,7 +107,6 @@ function getAppName(context) {

module.exports = {
isCordovaAbove,
handleError,
getPlatformConfigs,
copyFromSourceToDestPath,
getFilesFromPath,
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "com.outsystems.firebase.cloudmessaging",
"version": "2.0.1",
"version": "2.1.0",
"description": "Outsystems plugin for Firebase Cloud Messaging",
"keywords": [
"ecosystem:cordova",
Expand All @@ -16,6 +16,6 @@
},
"engines": [],
"dependencies": {
"adm-zip": "0.5.2"
"adm-zip": "0.5.12"
}
}
4 changes: 2 additions & 2 deletions plugin.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plugin id="com.outsystems.firebase.cloudmessaging" version="2.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<plugin id="com.outsystems.firebase.cloudmessaging" version="2.1.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>OSFirebaseCloudMessaging</name>
<description>Outsystems plugin for Firebase Cloud Messaging</description>
<author>OutSystems Inc</author>
Expand Down Expand Up @@ -55,7 +55,7 @@
<source url="https://cdn.cocoapods.org/"/>
</config>
<pods use-frameworks="true">
<pod name="Firebase/Messaging" spec="8.6.1" />
<pod name="FirebaseMessaging" spec="10.23.0" />
<pod name="OSCommonPluginLib" spec="1.0.0" />
</pods>
</podspec>
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
</data>
<key>Info.plist</key>
<data>
AvTQnF9OrzZFoCts4GDWx0poCvk=
BOtC744yMtPUNi8N/z0OXqK+Em0=
</data>
<key>Modules/OSFirebaseMessagingLib.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
<data>
Expand All @@ -30,7 +30,7 @@
</data>
<key>Modules/OSFirebaseMessagingLib.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<data>
K9K5UnnHqm1ZsfScekwRDVKMHRE=
SkSBY+QMV22owU0HDw6b0CZnv00=
</data>
<key>Modules/OSFirebaseMessagingLib.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<data>
Expand All @@ -50,7 +50,7 @@
</data>
<key>Modules/OSFirebaseMessagingLib.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<data>
YGWlAD+4hM7edzrj5ebwIJzHo54=
AaOZiNzb28w6KUoB5mAZQHWgx3I=
</data>
<key>Modules/module.modulemap</key>
<data>
Expand Down Expand Up @@ -114,7 +114,7 @@
<dict>
<key>hash2</key>
<data>
fWFpr41W6kUdLZ+wbseOZGLcA6eODTEhYXNdiuVotkg=
PYxp6BGDZzZcT+opQHDsn51uI1Rd2ezuYnvV7gaJn3o=
</data>
</dict>
<key>Modules/OSFirebaseMessagingLib.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
Expand Down Expand Up @@ -149,7 +149,7 @@
<dict>
<key>hash2</key>
<data>
yeWh5v677L/dhOp+CWFWYfKcSZcoLkQ1BAidMx8TPAw=
jLShZXvWHGOHwN0miIyTFNt++E0sUAw42h42FSfeqsw=
</data>
</dict>
<key>Modules/module.modulemap</key>
Expand Down

0 comments on commit 3c66bc1

Please sign in to comment.