@tyrads.com/tyrads-sdk 3.3.4 → 4.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/tyradssdk/TyradsSdkModule.kt +161 -19
- package/ios/Tyrads/AcmoConfig.swift +1 -1
- package/ios/Tyrads/InitModel.swift +29 -15
- package/ios/Tyrads/Tyrads.swift +332 -274
- package/ios/Tyrads/WebViewController.swift +10 -17
- package/ios/Tyrads/core/models/TyradsUserInfo.swift +2 -0
- package/ios/Tyrads/core/utils/AcmoKeyNames.swift +1 -0
- package/ios/Tyrads/helpers/device_details.swift +122 -2
- package/ios/Tyrads/pushNotifications/APNsAppDelegateProxy.swift +37 -0
- package/ios/Tyrads/pushNotifications/APNsNotificationListener.swift +14 -0
- package/ios/Tyrads/pushNotifications/APNsNotificationManager.swift +68 -0
- package/ios/Tyrads/pushNotifications/APNsNotificationReceiver.swift +77 -0
- package/ios/Tyrads/pushNotifications/TyradsAPNsSwizzler.mm +179 -0
- package/ios/TyradsSdk-Bridging-Header.h +3 -0
- package/ios/TyradsSdk.mm +12 -1
- package/ios/TyradsSdk.swift +121 -4
- package/lib/commonjs/acmo/core/components/countdown-timer.js +48 -0
- package/lib/commonjs/acmo/core/components/countdown-timer.js.map +1 -0
- package/lib/commonjs/acmo/core/components/snap-carousel.js +86 -0
- package/lib/commonjs/acmo/core/components/snap-carousel.js.map +1 -0
- package/lib/commonjs/acmo/core/constants/api-endpoints.js +18 -0
- package/lib/commonjs/acmo/core/constants/api-endpoints.js.map +1 -0
- package/lib/commonjs/acmo/core/helpers/colors.js +20 -0
- package/lib/commonjs/acmo/core/helpers/colors.js.map +1 -0
- package/lib/commonjs/acmo/core/helpers/logger.js +18 -0
- package/lib/commonjs/acmo/core/helpers/logger.js.map +1 -0
- package/lib/commonjs/acmo/core/helpers/patches.js +7 -0
- package/lib/commonjs/acmo/core/helpers/patches.js.map +1 -0
- package/lib/commonjs/acmo/core/network/http-client.js +91 -0
- package/lib/commonjs/acmo/core/network/http-client.js.map +1 -0
- package/lib/commonjs/acmo/core/network/network-common.js +111 -0
- package/lib/commonjs/acmo/core/network/network-common.js.map +1 -0
- package/lib/commonjs/acmo/core/services/localization_service.js +7 -13
- package/lib/commonjs/acmo/core/services/localization_service.js.map +1 -1
- package/lib/commonjs/acmo/core/types/activated-campaings.d.js +2 -0
- package/lib/commonjs/acmo/core/types/activated-campaings.d.js.map +1 -0
- package/lib/commonjs/acmo/core/tyrads-sdk-core.js +203 -0
- package/lib/commonjs/acmo/core/tyrads-sdk-core.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/components/gradient_card.js +98 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/components/gradient_card.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/components/modal-wrapper.js +55 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/components/modal-wrapper.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/controller.js +141 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/controller.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.js +183 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/inapp-notification-host.js +37 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/inapp-notification-host.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/inapp-notification-manager.js +39 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/inapp-notification-manager.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.js +206 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.js +155 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/repository.js +52 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/repository.js.map +1 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/tyrads-global-host.js +37 -0
- package/lib/commonjs/acmo/modules/inapp-notifications/tyrads-global-host.js.map +1 -0
- package/lib/commonjs/acmo/modules/premium-widgets/components/active_offers_button.js.map +1 -0
- package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/custom_card.js +1 -2
- package/lib/commonjs/acmo/modules/premium-widgets/components/custom_card.js.map +1 -0
- package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/custom_scroller.js +20 -11
- package/lib/commonjs/acmo/modules/premium-widgets/components/custom_scroller.js.map +1 -0
- package/lib/commonjs/acmo/modules/premium-widgets/components/custom_shimmer.js.map +1 -0
- package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/offer_card.js +12 -12
- package/lib/commonjs/acmo/modules/premium-widgets/components/offer_card.js.map +1 -0
- package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.js +3 -3
- package/lib/commonjs/acmo/modules/premium-widgets/components/offer_list_item.js.map +1 -0
- package/lib/commonjs/acmo/modules/premium-widgets/components/premium_empty_widget.js.map +1 -0
- package/lib/commonjs/acmo/modules/premium-widgets/components/premium_header.js.map +1 -0
- package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/premium_loading.js +3 -3
- package/lib/commonjs/acmo/modules/premium-widgets/components/premium_loading.js.map +1 -0
- package/lib/commonjs/acmo/modules/premium-widgets/controller.js +30 -0
- package/lib/commonjs/acmo/modules/premium-widgets/controller.js.map +1 -0
- package/lib/commonjs/acmo/modules/{dashboard/top_offers.js → premium-widgets/premium_offers_widget.js} +67 -30
- package/lib/commonjs/acmo/modules/premium-widgets/premium_offers_widget.js.map +1 -0
- package/lib/commonjs/acmo/modules/premium-widgets/premium_offers_widget_wrapper.js +49 -0
- package/lib/commonjs/acmo/modules/premium-widgets/premium_offers_widget_wrapper.js.map +1 -0
- package/lib/commonjs/acmo/modules/premium-widgets/repository.js +103 -0
- package/lib/commonjs/acmo/modules/premium-widgets/repository.js.map +1 -0
- package/lib/commonjs/acmo/modules/push-notifications/apns-manager.js +227 -0
- package/lib/commonjs/acmo/modules/push-notifications/apns-manager.js.map +1 -0
- package/lib/commonjs/acmo/modules/push-notifications/fcm-manager.js +148 -0
- package/lib/commonjs/acmo/modules/push-notifications/fcm-manager.js.map +1 -0
- package/lib/commonjs/acmo_config.js +6 -5
- package/lib/commonjs/acmo_config.js.map +1 -1
- package/lib/commonjs/assets/images/alarm-clock.png +0 -0
- package/lib/commonjs/assets/images/circle-x.png +0 -0
- package/lib/commonjs/assets/images/coin.png +0 -0
- package/lib/commonjs/index.js +33 -106
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/acmo/core/components/countdown-timer.js +42 -0
- package/lib/module/acmo/core/components/countdown-timer.js.map +1 -0
- package/lib/module/acmo/core/components/snap-carousel.js +81 -0
- package/lib/module/acmo/core/components/snap-carousel.js.map +1 -0
- package/lib/module/acmo/core/constants/api-endpoints.js +14 -0
- package/lib/module/acmo/core/constants/api-endpoints.js.map +1 -0
- package/lib/module/acmo/core/helpers/colors.js +15 -0
- package/lib/module/acmo/core/helpers/colors.js.map +1 -0
- package/lib/module/acmo/core/helpers/logger.js +14 -0
- package/lib/module/acmo/core/helpers/logger.js.map +1 -0
- package/lib/module/acmo/core/helpers/patches.js +7 -0
- package/lib/module/acmo/core/helpers/patches.js.map +1 -0
- package/lib/module/acmo/core/network/http-client.js +86 -0
- package/lib/module/acmo/core/network/http-client.js.map +1 -0
- package/lib/module/acmo/core/network/network-common.js +106 -0
- package/lib/module/acmo/core/network/network-common.js.map +1 -0
- package/lib/module/acmo/core/services/localization_service.js +7 -13
- package/lib/module/acmo/core/services/localization_service.js.map +1 -1
- package/lib/module/acmo/core/types/activated-campaings.d.js +2 -0
- package/lib/module/acmo/core/types/activated-campaings.d.js.map +1 -0
- package/lib/module/acmo/core/tyrads-sdk-core.js +197 -0
- package/lib/module/acmo/core/tyrads-sdk-core.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/components/gradient_card.js +92 -0
- package/lib/module/acmo/modules/inapp-notifications/components/gradient_card.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/components/modal-wrapper.js +49 -0
- package/lib/module/acmo/modules/inapp-notifications/components/modal-wrapper.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/controller.js +136 -0
- package/lib/module/acmo/modules/inapp-notifications/controller.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.js +176 -0
- package/lib/module/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/inapp-notification-host.js +32 -0
- package/lib/module/acmo/modules/inapp-notifications/inapp-notification-host.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/inapp-notification-manager.js +35 -0
- package/lib/module/acmo/modules/inapp-notifications/inapp-notification-manager.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.js +200 -0
- package/lib/module/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.js +149 -0
- package/lib/module/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/repository.js +47 -0
- package/lib/module/acmo/modules/inapp-notifications/repository.js.map +1 -0
- package/lib/module/acmo/modules/inapp-notifications/tyrads-global-host.js +32 -0
- package/lib/module/acmo/modules/inapp-notifications/tyrads-global-host.js.map +1 -0
- package/lib/module/acmo/modules/premium-widgets/components/active_offers_button.js.map +1 -0
- package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/custom_card.js +1 -2
- package/lib/module/acmo/modules/premium-widgets/components/custom_card.js.map +1 -0
- package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/custom_scroller.js +20 -11
- package/lib/module/acmo/modules/premium-widgets/components/custom_scroller.js.map +1 -0
- package/lib/module/acmo/modules/premium-widgets/components/custom_shimmer.js.map +1 -0
- package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/offer_card.js +12 -12
- package/lib/module/acmo/modules/premium-widgets/components/offer_card.js.map +1 -0
- package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.js +3 -3
- package/lib/module/acmo/modules/premium-widgets/components/offer_list_item.js.map +1 -0
- package/lib/module/acmo/modules/premium-widgets/components/premium_empty_widget.js.map +1 -0
- package/lib/module/acmo/modules/premium-widgets/components/premium_header.js.map +1 -0
- package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/premium_loading.js +1 -1
- package/lib/module/acmo/modules/premium-widgets/components/premium_loading.js.map +1 -0
- package/lib/module/acmo/modules/premium-widgets/controller.js +25 -0
- package/lib/module/acmo/modules/premium-widgets/controller.js.map +1 -0
- package/lib/module/acmo/modules/{dashboard/top_offers.js → premium-widgets/premium_offers_widget.js} +69 -32
- package/lib/module/acmo/modules/premium-widgets/premium_offers_widget.js.map +1 -0
- package/lib/module/acmo/modules/premium-widgets/premium_offers_widget_wrapper.js +41 -0
- package/lib/module/acmo/modules/premium-widgets/premium_offers_widget_wrapper.js.map +1 -0
- package/lib/module/acmo/modules/premium-widgets/repository.js +98 -0
- package/lib/module/acmo/modules/premium-widgets/repository.js.map +1 -0
- package/lib/module/acmo/modules/push-notifications/apns-manager.js +222 -0
- package/lib/module/acmo/modules/push-notifications/apns-manager.js.map +1 -0
- package/lib/module/acmo/modules/push-notifications/fcm-manager.js +143 -0
- package/lib/module/acmo/modules/push-notifications/fcm-manager.js.map +1 -0
- package/lib/module/acmo_config.js +6 -5
- package/lib/module/acmo_config.js.map +1 -1
- package/lib/module/assets/images/alarm-clock.png +0 -0
- package/lib/module/assets/images/circle-x.png +0 -0
- package/lib/module/assets/images/coin.png +0 -0
- package/lib/module/index.js +16 -106
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/src/acmo/core/components/countdown-timer.d.ts +8 -0
- package/lib/typescript/commonjs/src/acmo/core/components/countdown-timer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/core/components/snap-carousel.d.ts +26 -0
- package/lib/typescript/commonjs/src/acmo/core/components/snap-carousel.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/core/constants/api-endpoints.d.ts +12 -0
- package/lib/typescript/commonjs/src/acmo/core/constants/api-endpoints.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/core/helpers/colors.d.ts +2 -0
- package/lib/typescript/commonjs/src/acmo/core/helpers/colors.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/core/helpers/logger.d.ts +6 -0
- package/lib/typescript/commonjs/src/acmo/core/helpers/logger.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/core/network/http-client.d.ts +28 -0
- package/lib/typescript/commonjs/src/acmo/core/network/http-client.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/core/network/network-common.d.ts +13 -0
- package/lib/typescript/commonjs/src/acmo/core/network/network-common.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/core/services/localization_service.d.ts +0 -1
- package/lib/typescript/commonjs/src/acmo/core/services/localization_service.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/acmo/core/types/external_types.d.ts +5 -0
- package/lib/typescript/commonjs/src/acmo/core/types/external_types.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/acmo/core/tyrads-sdk-core.d.ts +46 -0
- package/lib/typescript/commonjs/src/acmo/core/tyrads-sdk-core.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/components/gradient_card.d.ts +17 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/components/gradient_card.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/components/modal-wrapper.d.ts +10 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/components/modal-wrapper.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/controller.d.ts +22 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.d.ts +6 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/inapp-notification-host.d.ts +7 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/inapp-notification-host.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/inapp-notification-manager.d.ts +14 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/inapp-notification-manager.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.d.ts +4 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.d.ts +7 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/repository.d.ts +8 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/repository.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/tyrads-global-host.d.ts +6 -0
- package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/tyrads-global-host.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/active_offers_button.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/custom_card.d.ts.map +1 -0
- package/lib/typescript/{module/src/acmo/modules/dashboard → commonjs/src/acmo/modules/premium-widgets}/components/custom_scroller.d.ts +3 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/custom_scroller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/custom_shimmer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/offer_card.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/offer_list_item.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/premium_empty_widget.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/premium_header.d.ts.map +1 -0
- package/lib/typescript/{module/src/acmo/modules/dashboard → commonjs/src/acmo/modules/premium-widgets}/components/premium_loading.d.ts +1 -1
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/premium_loading.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/controller.d.ts +14 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/{dashboard/top_offers.d.ts → premium-widgets/premium_offers_widget.d.ts} +3 -3
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/premium_offers_widget.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.d.ts +9 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/repository.d.ts +13 -0
- package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/repository.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/push-notifications/apns-manager.d.ts +40 -0
- package/lib/typescript/commonjs/src/acmo/modules/push-notifications/apns-manager.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo/modules/push-notifications/fcm-manager.d.ts +32 -0
- package/lib/typescript/commonjs/src/acmo/modules/push-notifications/fcm-manager.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/acmo_config.d.ts +1 -0
- package/lib/typescript/commonjs/src/acmo_config.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +5 -11
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/acmo/core/components/countdown-timer.d.ts +8 -0
- package/lib/typescript/module/src/acmo/core/components/countdown-timer.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/core/components/snap-carousel.d.ts +26 -0
- package/lib/typescript/module/src/acmo/core/components/snap-carousel.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/core/constants/api-endpoints.d.ts +12 -0
- package/lib/typescript/module/src/acmo/core/constants/api-endpoints.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/core/helpers/colors.d.ts +2 -0
- package/lib/typescript/module/src/acmo/core/helpers/colors.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/core/helpers/logger.d.ts +6 -0
- package/lib/typescript/module/src/acmo/core/helpers/logger.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/core/network/http-client.d.ts +28 -0
- package/lib/typescript/module/src/acmo/core/network/http-client.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/core/network/network-common.d.ts +13 -0
- package/lib/typescript/module/src/acmo/core/network/network-common.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/core/services/localization_service.d.ts +0 -1
- package/lib/typescript/module/src/acmo/core/services/localization_service.d.ts.map +1 -1
- package/lib/typescript/module/src/acmo/core/types/external_types.d.ts +5 -0
- package/lib/typescript/module/src/acmo/core/types/external_types.d.ts.map +1 -1
- package/lib/typescript/module/src/acmo/core/tyrads-sdk-core.d.ts +46 -0
- package/lib/typescript/module/src/acmo/core/tyrads-sdk-core.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/components/gradient_card.d.ts +17 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/components/gradient_card.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/components/modal-wrapper.d.ts +10 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/components/modal-wrapper.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/controller.d.ts +22 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/controller.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.d.ts +6 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/inapp-notification-host.d.ts +7 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/inapp-notification-host.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/inapp-notification-manager.d.ts +14 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/inapp-notification-manager.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.d.ts +4 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.d.ts +7 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/repository.d.ts +8 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/repository.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/tyrads-global-host.d.ts +6 -0
- package/lib/typescript/module/src/acmo/modules/inapp-notifications/tyrads-global-host.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/active_offers_button.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/custom_card.d.ts.map +1 -0
- package/lib/typescript/{commonjs/src/acmo/modules/dashboard → module/src/acmo/modules/premium-widgets}/components/custom_scroller.d.ts +3 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/custom_scroller.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/custom_shimmer.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/offer_card.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/offer_list_item.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/premium_empty_widget.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/premium_header.d.ts.map +1 -0
- package/lib/typescript/{commonjs/src/acmo/modules/dashboard → module/src/acmo/modules/premium-widgets}/components/premium_loading.d.ts +1 -1
- package/lib/typescript/module/src/acmo/modules/premium-widgets/components/premium_loading.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/controller.d.ts +14 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/controller.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/{dashboard/top_offers.d.ts → premium-widgets/premium_offers_widget.d.ts} +3 -3
- package/lib/typescript/module/src/acmo/modules/premium-widgets/premium_offers_widget.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.d.ts +9 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/repository.d.ts +13 -0
- package/lib/typescript/module/src/acmo/modules/premium-widgets/repository.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/push-notifications/apns-manager.d.ts +40 -0
- package/lib/typescript/module/src/acmo/modules/push-notifications/apns-manager.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo/modules/push-notifications/fcm-manager.d.ts +32 -0
- package/lib/typescript/module/src/acmo/modules/push-notifications/fcm-manager.d.ts.map +1 -0
- package/lib/typescript/module/src/acmo_config.d.ts +1 -0
- package/lib/typescript/module/src/acmo_config.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +5 -11
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +5 -3
- package/readme.md +27 -14
- package/src/acmo/core/components/countdown-timer.tsx +52 -0
- package/src/acmo/core/components/snap-carousel.tsx +106 -0
- package/src/acmo/core/constants/api-endpoints.ts +12 -0
- package/src/acmo/core/helpers/colors.ts +16 -0
- package/src/acmo/core/helpers/logger.ts +11 -0
- package/src/acmo/core/helpers/patches.js +6 -0
- package/src/acmo/core/network/http-client.ts +89 -0
- package/src/acmo/core/network/network-common.ts +128 -0
- package/src/acmo/core/services/localization_service.ts +7 -14
- package/src/acmo/core/types/activated-campaings.d.ts +101 -0
- package/src/acmo/core/types/external_types.ts +7 -1
- package/src/acmo/core/types/types.d.ts +112 -76
- package/src/acmo/core/tyrads-sdk-core.tsx +256 -0
- package/src/acmo/modules/inapp-notifications/components/gradient_card.tsx +87 -0
- package/src/acmo/modules/inapp-notifications/components/modal-wrapper.tsx +59 -0
- package/src/acmo/modules/inapp-notifications/controller.ts +183 -0
- package/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.tsx +164 -0
- package/src/acmo/modules/inapp-notifications/inapp-notification-host.tsx +32 -0
- package/src/acmo/modules/inapp-notifications/inapp-notification-manager.ts +40 -0
- package/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.tsx +188 -0
- package/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.tsx +149 -0
- package/src/acmo/modules/inapp-notifications/repository.ts +49 -0
- package/src/acmo/modules/inapp-notifications/tyrads-global-host.tsx +25 -0
- package/src/acmo/modules/{dashboard → premium-widgets}/components/custom_card.tsx +1 -2
- package/src/acmo/modules/{dashboard → premium-widgets}/components/custom_scroller.tsx +24 -10
- package/src/acmo/modules/{dashboard → premium-widgets}/components/offer_card.tsx +11 -11
- package/src/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.tsx +3 -3
- package/src/acmo/modules/{dashboard → premium-widgets}/components/premium_loading.tsx +1 -1
- package/src/acmo/modules/premium-widgets/controller.ts +39 -0
- package/src/acmo/modules/{dashboard/top_offers.tsx → premium-widgets/premium_offers_widget.tsx} +67 -45
- package/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.tsx +39 -0
- package/src/acmo/modules/premium-widgets/repository.ts +107 -0
- package/src/acmo/modules/push-notifications/apns-manager.ts +254 -0
- package/src/acmo/modules/push-notifications/fcm-manager.ts +162 -0
- package/src/acmo_config.ts +6 -5
- package/src/assets/images/alarm-clock.png +0 -0
- package/src/assets/images/circle-x.png +0 -0
- package/src/assets/images/coin.png +0 -0
- package/src/index.tsx +19 -127
- package/ios/Tyrads/user/AcmoUserUpdatePage.swift +0 -302
- package/ios/Tyrads/user/AcmoUsersUpdateController.swift +0 -26
- package/ios/Tyrads/user/Repository.swift +0 -89
- package/lib/commonjs/acmo/core/helpers/native_methods.js +0 -48
- package/lib/commonjs/acmo/core/helpers/native_methods.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/active_offers_button.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/custom_card.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/custom_scroller.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/custom_shimmer.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/offer_card.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/offer_list_item.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/premium_empty_widget.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/premium_header.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/components/premium_loading.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/repository.js +0 -147
- package/lib/commonjs/acmo/modules/dashboard/repository.js.map +0 -1
- package/lib/commonjs/acmo/modules/dashboard/top_offers.js.map +0 -1
- package/lib/module/acmo/core/helpers/native_methods.js +0 -44
- package/lib/module/acmo/core/helpers/native_methods.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/active_offers_button.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/custom_card.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/custom_scroller.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/custom_shimmer.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/offer_card.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/offer_list_item.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/premium_empty_widget.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/premium_header.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/components/premium_loading.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/repository.js +0 -140
- package/lib/module/acmo/modules/dashboard/repository.js.map +0 -1
- package/lib/module/acmo/modules/dashboard/top_offers.js.map +0 -1
- package/lib/typescript/commonjs/src/acmo/core/helpers/native_methods.d.ts +0 -10
- package/lib/typescript/commonjs/src/acmo/core/helpers/native_methods.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/active_offers_button.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_card.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_scroller.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_shimmer.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_card.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_list_item.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_empty_widget.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_header.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_loading.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/repository.d.ts +0 -3
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/repository.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/acmo/modules/dashboard/top_offers.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/core/helpers/native_methods.d.ts +0 -10
- package/lib/typescript/module/src/acmo/core/helpers/native_methods.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/active_offers_button.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_card.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_scroller.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_shimmer.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_card.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_list_item.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_empty_widget.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_header.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_loading.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/repository.d.ts +0 -3
- package/lib/typescript/module/src/acmo/modules/dashboard/repository.d.ts.map +0 -1
- package/lib/typescript/module/src/acmo/modules/dashboard/top_offers.d.ts.map +0 -1
- package/src/acmo/core/helpers/native_methods.ts +0 -59
- package/src/acmo/modules/dashboard/repository.ts +0 -170
- /package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.js +0 -0
- /package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.js +0 -0
- /package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.js +0 -0
- /package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/premium_header.js +0 -0
- /package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.js +0 -0
- /package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.js +0 -0
- /package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.js +0 -0
- /package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/premium_header.js +0 -0
- /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.d.ts +0 -0
- /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/custom_card.d.ts +0 -0
- /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.d.ts +0 -0
- /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/offer_card.d.ts +0 -0
- /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.d.ts +0 -0
- /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.d.ts +0 -0
- /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/premium_header.d.ts +0 -0
- /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.d.ts +0 -0
- /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/custom_card.d.ts +0 -0
- /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.d.ts +0 -0
- /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/offer_card.d.ts +0 -0
- /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.d.ts +0 -0
- /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.d.ts +0 -0
- /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/premium_header.d.ts +0 -0
- /package/src/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.tsx +0 -0
- /package/src/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.tsx +0 -0
- /package/src/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.tsx +0 -0
- /package/src/acmo/modules/{dashboard → premium-widgets}/components/premium_header.tsx +0 -0
|
@@ -5,7 +5,7 @@ class AcmoWebViewController: UIViewController, WKNavigationDelegate, WKScriptMes
|
|
|
5
5
|
|
|
6
6
|
var webView: WKWebView!
|
|
7
7
|
var initialURL: URL
|
|
8
|
-
|
|
8
|
+
public var onDismiss: (() -> Void)?
|
|
9
9
|
|
|
10
10
|
private let internalDomains: [String] = ["sdk.tyrads.com", "acmo.in"]
|
|
11
11
|
|
|
@@ -53,23 +53,16 @@ class AcmoWebViewController: UIViewController, WKNavigationDelegate, WKScriptMes
|
|
|
53
53
|
loadURL()
|
|
54
54
|
log("WebView loaded URL: \(initialURL.absoluteString)")
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
components?.queryItems?.removeAll { $0.name == "skipUserInfo" }
|
|
62
|
-
components?.queryItems?.append(URLQueryItem(name: "skipUserInfo", value: skipValue))
|
|
63
|
-
|
|
64
|
-
if let updatedURL = components?.url {
|
|
65
|
-
log("Loading URL with skipUserInfo=\(skipValue): \(updatedURL.absoluteString)")
|
|
66
|
-
let request = URLRequest(url: updatedURL)
|
|
67
|
-
webView.load(request)
|
|
68
|
-
hasLoadedWithSkipParameter = true
|
|
69
|
-
} else {
|
|
70
|
-
log("Failed to create updated URL, loading original")
|
|
71
|
-
webView.load(URLRequest(url: initialURL))
|
|
56
|
+
|
|
57
|
+
override func viewDidDisappear(_ animated: Bool) {
|
|
58
|
+
super.viewDidDisappear(animated)
|
|
59
|
+
log("viewDidDisappear called: WebView controller removed from screen.")
|
|
60
|
+
self.onDismiss?()
|
|
72
61
|
}
|
|
62
|
+
private func loadURL() {
|
|
63
|
+
log("Loading URL: \(initialURL.absoluteString)")
|
|
64
|
+
let request = URLRequest(url: initialURL)
|
|
65
|
+
webView.load(request)
|
|
73
66
|
}
|
|
74
67
|
|
|
75
68
|
public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
|
|
@@ -17,6 +17,7 @@ struct AcmoKeyNames {
|
|
|
17
17
|
static let PLAY_INTEGRITY_TOKEN = "\(PREFIX)play_integrity_token"
|
|
18
18
|
static let USERNAME = "\(PREFIX)username"
|
|
19
19
|
static let FCM_TOKEN = "\(PREFIX)fcm_token"
|
|
20
|
+
static let APNS_TOKEN = "\(PREFIX)apns_token"
|
|
20
21
|
static let USER_DATA = "\(PREFIX)user_data"
|
|
21
22
|
static let ADVERTISING_ID = "\(PREFIX)advertising_id"
|
|
22
23
|
static let TRACKED_CAMPAIGNS_FOR_USER_ID = "\(PREFIX)tracked_campaigns_for_user_id_"
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
//
|
|
7
7
|
import UIKit
|
|
8
8
|
import Foundation
|
|
9
|
+
import Network
|
|
10
|
+
import CoreTelephony
|
|
9
11
|
|
|
10
12
|
func getDeviceDetails() -> [String: Any] {
|
|
11
13
|
var fd = [String: Any]()
|
|
@@ -14,7 +16,7 @@ func getDeviceDetails() -> [String: Any] {
|
|
|
14
16
|
let bundle = Bundle.main
|
|
15
17
|
let locale = Locale.current
|
|
16
18
|
|
|
17
|
-
//
|
|
19
|
+
// device basic info
|
|
18
20
|
fd["deviceId"] = device.identifierForVendor?.uuidString ?? "Unknown"
|
|
19
21
|
fd["device"] = device.model.lowercased().contains("ipad") ? "iPad" : "iPhone"
|
|
20
22
|
fd["deviceName"] = device.name
|
|
@@ -23,6 +25,7 @@ func getDeviceDetails() -> [String: Any] {
|
|
|
23
25
|
fd["baseOs"] = device.systemName
|
|
24
26
|
fd["releaseVersion"] = device.systemVersion
|
|
25
27
|
fd["modelName"] = getModelName()
|
|
28
|
+
fd["hardware"] = deviceIdentifier()
|
|
26
29
|
|
|
27
30
|
fd["product"] = "Darwin"
|
|
28
31
|
fd["platform"] = "iOS"
|
|
@@ -30,7 +33,7 @@ func getDeviceDetails() -> [String: Any] {
|
|
|
30
33
|
fd["sdkVersion"] = AcmoConfig.SDK_VERSION
|
|
31
34
|
fd["sdkPlatform"] = AcmoConfig.SDK_PLATFORM
|
|
32
35
|
|
|
33
|
-
//
|
|
36
|
+
// app info
|
|
34
37
|
fd["version"] = bundle.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown"
|
|
35
38
|
fd["build"] = bundle.infoDictionary?["CFBundleVersion"] as? String ?? "Unknown"
|
|
36
39
|
fd["package"] = bundle.bundleIdentifier ?? "Unknown"
|
|
@@ -42,13 +45,130 @@ func getDeviceDetails() -> [String: Any] {
|
|
|
42
45
|
fd["rooted"] = isJailBroken()
|
|
43
46
|
fd["virtual"] = isRunningOnSimulator()
|
|
44
47
|
|
|
48
|
+
// storage info
|
|
49
|
+
let (totalSpace, freeSpace) = getDiskSpace()
|
|
50
|
+
fd["totalMemory"] = Double(round(100 * (Double(totalSpace) / 1_000_000_000)) / 100)
|
|
51
|
+
|
|
52
|
+
// network info
|
|
53
|
+
fd["connectionType"] = getNetworkType()
|
|
54
|
+
|
|
45
55
|
return fd
|
|
46
56
|
}
|
|
47
57
|
|
|
58
|
+
func getNetworkType() -> String {
|
|
59
|
+
let monitor = NWPathMonitor()
|
|
60
|
+
let semaphore = DispatchSemaphore(value: 0)
|
|
61
|
+
var networkType = "No Connection"
|
|
62
|
+
|
|
63
|
+
monitor.pathUpdateHandler = { path in
|
|
64
|
+
if path.status == .satisfied {
|
|
65
|
+
if path.usesInterfaceType(.wifi) {
|
|
66
|
+
networkType = "WiFi"
|
|
67
|
+
} else if path.usesInterfaceType(.cellular) {
|
|
68
|
+
networkType = getCellularType()
|
|
69
|
+
} else if path.usesInterfaceType(.wiredEthernet) {
|
|
70
|
+
networkType = "Ethernet"
|
|
71
|
+
} else {
|
|
72
|
+
networkType = "Connected"
|
|
73
|
+
}
|
|
74
|
+
} else {
|
|
75
|
+
networkType = "No Connection"
|
|
76
|
+
}
|
|
77
|
+
semaphore.signal()
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
let queue = DispatchQueue(label: "NetworkMonitor")
|
|
81
|
+
monitor.start(queue: queue)
|
|
82
|
+
|
|
83
|
+
_ = semaphore.wait(timeout: .now() + 0.1)
|
|
84
|
+
monitor.cancel()
|
|
85
|
+
|
|
86
|
+
return networkType
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
func getUptimeMetrics() -> [String: Any] {
|
|
90
|
+
let uptime = ProcessInfo.processInfo.systemUptime
|
|
91
|
+
let bootTimeDate = Date(timeIntervalSinceNow: -uptime)
|
|
92
|
+
|
|
93
|
+
let formatter = DateFormatter()
|
|
94
|
+
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
|
|
95
|
+
|
|
96
|
+
return [
|
|
97
|
+
"device_uptime_hours": String(format: "%.2f", uptime / 3600),
|
|
98
|
+
"device_boot_time": formatter.string(from: bootTimeDate)
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
func getCellularType() -> String {
|
|
103
|
+
let networkInfo = CTTelephonyNetworkInfo()
|
|
104
|
+
var carrierType = "Cellular"
|
|
105
|
+
|
|
106
|
+
if #available(iOS 14.1, *) {
|
|
107
|
+
if let radioTechnologies = networkInfo.serviceCurrentRadioAccessTechnology {
|
|
108
|
+
for (_, technology) in radioTechnologies {
|
|
109
|
+
switch technology {
|
|
110
|
+
case CTRadioAccessTechnologyGPRS, CTRadioAccessTechnologyEdge, CTRadioAccessTechnologyCDMA1x:
|
|
111
|
+
carrierType = "2G"
|
|
112
|
+
case CTRadioAccessTechnologyWCDMA, CTRadioAccessTechnologyHSDPA, CTRadioAccessTechnologyHSUPA, CTRadioAccessTechnologyCDMAEVDORev0, CTRadioAccessTechnologyCDMAEVDORevA, CTRadioAccessTechnologyCDMAEVDORevB, CTRadioAccessTechnologyeHRPD:
|
|
113
|
+
carrierType = "3G"
|
|
114
|
+
case CTRadioAccessTechnologyLTE:
|
|
115
|
+
carrierType = "4G"
|
|
116
|
+
case CTRadioAccessTechnologyNRNSA, CTRadioAccessTechnologyNR:
|
|
117
|
+
carrierType = "5G"
|
|
118
|
+
default:
|
|
119
|
+
carrierType = "Cellular"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
} else {
|
|
124
|
+
let technology = networkInfo.currentRadioAccessTechnology
|
|
125
|
+
switch technology {
|
|
126
|
+
case CTRadioAccessTechnologyGPRS, CTRadioAccessTechnologyEdge, CTRadioAccessTechnologyCDMA1x:
|
|
127
|
+
carrierType = "2G"
|
|
128
|
+
case CTRadioAccessTechnologyWCDMA, CTRadioAccessTechnologyHSDPA, CTRadioAccessTechnologyHSUPA, CTRadioAccessTechnologyCDMAEVDORev0, CTRadioAccessTechnologyCDMAEVDORevA, CTRadioAccessTechnologyCDMAEVDORevB, CTRadioAccessTechnologyeHRPD:
|
|
129
|
+
carrierType = "3G"
|
|
130
|
+
case CTRadioAccessTechnologyLTE:
|
|
131
|
+
carrierType = "4G"
|
|
132
|
+
default:
|
|
133
|
+
carrierType = "Cellular"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return carrierType
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
func isVpnActive() -> Bool {
|
|
140
|
+
if let settings = CFNetworkCopySystemProxySettings()?.takeRetainedValue() as? [AnyHashable: Any],
|
|
141
|
+
let scopes = settings["__SCOPES__"] as? [AnyHashable: Any] {
|
|
142
|
+
for (key, _) in scopes {
|
|
143
|
+
if let keyString = key as? String,
|
|
144
|
+
(keyString.contains("tap") ||
|
|
145
|
+
keyString.contains("tun") ||
|
|
146
|
+
keyString.contains("ppp") ||
|
|
147
|
+
keyString.contains("ipsec") ||
|
|
148
|
+
keyString.contains("utun")) {
|
|
149
|
+
return true
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return false
|
|
154
|
+
}
|
|
155
|
+
|
|
48
156
|
func isRunningOnSimulator() -> Bool {
|
|
49
157
|
return ProcessInfo().environment["SIMULATOR_DEVICE_NAME"] != nil
|
|
50
158
|
}
|
|
51
159
|
|
|
160
|
+
func getDiskSpace() -> (total: Int64, free: Int64) {
|
|
161
|
+
var total: Int64 = 0
|
|
162
|
+
var free: Int64 = 0
|
|
163
|
+
do {
|
|
164
|
+
let attrs = try FileManager.default.attributesOfFileSystem(forPath: NSHomeDirectory())
|
|
165
|
+
total = attrs[.systemSize] as? Int64 ?? 0
|
|
166
|
+
free = attrs[.systemFreeSize] as? Int64 ?? 0
|
|
167
|
+
} catch {
|
|
168
|
+
}
|
|
169
|
+
return (total, free)
|
|
170
|
+
}
|
|
171
|
+
|
|
52
172
|
func isJailBroken() -> Bool {
|
|
53
173
|
#if targetEnvironment(simulator)
|
|
54
174
|
return false
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//
|
|
2
|
+
// APNsAppDelegateProxy.swift
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Acmo Network on 13/12/25.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import UIKit
|
|
9
|
+
import UserNotifications
|
|
10
|
+
|
|
11
|
+
@objc public final class APNsAppDelegateProxy: NSObject {
|
|
12
|
+
|
|
13
|
+
/// Must be called from AppDelegate.didFinishLaunching
|
|
14
|
+
@objc public static func configure() {
|
|
15
|
+
UNUserNotificationCenter.current().delegate =
|
|
16
|
+
APNsNotificationReceiver.shared
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/// Forward APNs token from AppDelegate
|
|
20
|
+
@objc public static func didRegisterForRemoteNotifications(
|
|
21
|
+
_ deviceToken: Data
|
|
22
|
+
) {
|
|
23
|
+
APNsNotificationManager.shared.onTokenReceived(deviceToken)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/// Forward silent / background push from AppDelegate
|
|
27
|
+
@objc public static func didReceiveRemoteNotification(
|
|
28
|
+
_ userInfo: [AnyHashable: Any],
|
|
29
|
+
completionHandler: @escaping (UIBackgroundFetchResult) -> Void
|
|
30
|
+
) {
|
|
31
|
+
APNsNotificationReceiver.shared
|
|
32
|
+
.handleSilentNotification(userInfo: userInfo)
|
|
33
|
+
|
|
34
|
+
completionHandler(.newData)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//
|
|
2
|
+
// APNsNotificationListener.swift
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Basharat Mehdi on 13/12/25.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
@objc public protocol APNsNotificationListener {
|
|
11
|
+
func onNotificationReceived(userInfo: [AnyHashable: Any])
|
|
12
|
+
func onNotificationClicked(identifier: String, userInfo: [AnyHashable: Any])
|
|
13
|
+
func onNotificationDismissed(identifier: String)
|
|
14
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
//
|
|
2
|
+
// APNsNotificationManager.swift
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Basharat Mehdi on 13/12/25.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import UIKit
|
|
9
|
+
import UserNotifications
|
|
10
|
+
|
|
11
|
+
@objc(APNsNotificationManager)
|
|
12
|
+
public final class APNsNotificationManager: NSObject {
|
|
13
|
+
|
|
14
|
+
@objc public static let shared = APNsNotificationManager()
|
|
15
|
+
private override init() { super.init() }
|
|
16
|
+
|
|
17
|
+
private var token: String?
|
|
18
|
+
private var tokenCallbacks: [(String) -> Void] = []
|
|
19
|
+
|
|
20
|
+
private let storageKey: String = AcmoKeyNames.APNS_TOKEN
|
|
21
|
+
|
|
22
|
+
public func requestPermission(completion: @escaping (Bool) -> Void) {
|
|
23
|
+
UNUserNotificationCenter.current()
|
|
24
|
+
.requestAuthorization(options: [.alert, .sound, .badge]) { granted, _ in
|
|
25
|
+
DispatchQueue.main.async {
|
|
26
|
+
if granted {
|
|
27
|
+
UIApplication.shared.registerForRemoteNotifications()
|
|
28
|
+
}
|
|
29
|
+
completion(granted)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public func hasPermission(completion: @escaping (Bool) -> Void) {
|
|
35
|
+
UNUserNotificationCenter.current().getNotificationSettings {
|
|
36
|
+
completion($0.authorizationStatus == .authorized)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@objc public func onTokenReceived(_ deviceToken: Data) {
|
|
41
|
+
let hex = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
|
|
42
|
+
token = hex
|
|
43
|
+
UserDefaults.standard.set(hex, forKey: storageKey)
|
|
44
|
+
|
|
45
|
+
tokenCallbacks.forEach { $0(hex) }
|
|
46
|
+
tokenCallbacks.removeAll()
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public func getToken(completion: @escaping (String?) -> Void) {
|
|
50
|
+
if let token = token {
|
|
51
|
+
completion(token)
|
|
52
|
+
return
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if let stored = UserDefaults.standard.string(forKey: storageKey) {
|
|
56
|
+
token = stored
|
|
57
|
+
completion(stored)
|
|
58
|
+
return
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
tokenCallbacks.append { completion($0) }
|
|
62
|
+
UIApplication.shared.registerForRemoteNotifications()
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public func clearAllNotifications() {
|
|
66
|
+
APNsNotificationReceiver.shared.clearAll()
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
//
|
|
2
|
+
// APNsNotificationReceiver.swift
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Basharat Mehdi on 13/12/25.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import UserNotifications
|
|
9
|
+
import UIKit
|
|
10
|
+
|
|
11
|
+
@objc(APNsNotificationReceiver)
|
|
12
|
+
public final class APNsNotificationReceiver: NSObject, UNUserNotificationCenterDelegate {
|
|
13
|
+
|
|
14
|
+
@objc public static let shared = APNsNotificationReceiver()
|
|
15
|
+
private var listener: APNsNotificationListener?
|
|
16
|
+
|
|
17
|
+
private override init() {
|
|
18
|
+
super.init()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public func setListener(_ listener: APNsNotificationListener?) {
|
|
22
|
+
self.listener = listener
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Foreground
|
|
26
|
+
public func userNotificationCenter(
|
|
27
|
+
_ center: UNUserNotificationCenter,
|
|
28
|
+
willPresent notification: UNNotification,
|
|
29
|
+
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
|
|
30
|
+
) {
|
|
31
|
+
listener?.onNotificationReceived(
|
|
32
|
+
userInfo: notification.request.content.userInfo
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
if #available(iOS 14.0, *) {
|
|
36
|
+
completionHandler([.banner, .sound, .badge])
|
|
37
|
+
} else {
|
|
38
|
+
completionHandler([.alert, .sound, .badge])
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Click / Dismiss
|
|
43
|
+
public func userNotificationCenter(
|
|
44
|
+
_ center: UNUserNotificationCenter,
|
|
45
|
+
didReceive response: UNNotificationResponse,
|
|
46
|
+
withCompletionHandler completionHandler: @escaping () -> Void
|
|
47
|
+
) {
|
|
48
|
+
let id = response.notification.request.identifier
|
|
49
|
+
let info = response.notification.request.content.userInfo
|
|
50
|
+
|
|
51
|
+
switch response.actionIdentifier {
|
|
52
|
+
case UNNotificationDismissActionIdentifier:
|
|
53
|
+
listener?.onNotificationDismissed(identifier: id)
|
|
54
|
+
case UNNotificationDefaultActionIdentifier:
|
|
55
|
+
listener?.onNotificationClicked(identifier: id, userInfo: info)
|
|
56
|
+
default:
|
|
57
|
+
break
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
completionHandler()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@objc public func handleSilentNotification(userInfo: [AnyHashable: Any]) {
|
|
64
|
+
listener?.onNotificationReceived(userInfo: userInfo)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public func clearAll() {
|
|
68
|
+
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
|
|
69
|
+
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
|
|
70
|
+
UIApplication.shared.applicationIconBadgeNumber = 0
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public func clear(identifier: String) {
|
|
74
|
+
UNUserNotificationCenter.current()
|
|
75
|
+
.removeDeliveredNotifications(withIdentifiers: [identifier])
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
//
|
|
2
|
+
// TyradsAPNsSwizzler.mm
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Basharat Mehdi on 17/01/26.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
#import <UIKit/UIKit.h>
|
|
10
|
+
#import <UserNotifications/UserNotifications.h>
|
|
11
|
+
#import <objc/runtime.h>
|
|
12
|
+
|
|
13
|
+
@interface TyradsAPNsSwizzler : NSObject
|
|
14
|
+
@end
|
|
15
|
+
|
|
16
|
+
@implementation TyradsAPNsSwizzler
|
|
17
|
+
|
|
18
|
+
+ (void)load {
|
|
19
|
+
static dispatch_once_t onceToken;
|
|
20
|
+
dispatch_once(&onceToken, ^{
|
|
21
|
+
[[NSNotificationCenter defaultCenter]
|
|
22
|
+
addObserver:self
|
|
23
|
+
selector:@selector(handleAppDidFinishLaunching:)
|
|
24
|
+
name:UIApplicationDidFinishLaunchingNotification
|
|
25
|
+
object:nil];
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
+ (void)handleAppDidFinishLaunching:(NSNotification *)notification {
|
|
30
|
+
[self swizzleAppDelegate];
|
|
31
|
+
|
|
32
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
33
|
+
UNUserNotificationCenter *center =
|
|
34
|
+
[UNUserNotificationCenter currentNotificationCenter];
|
|
35
|
+
if (center.delegate == nil) {
|
|
36
|
+
Class receiverClass = NSClassFromString(@"APNsNotificationReceiver");
|
|
37
|
+
if (receiverClass) {
|
|
38
|
+
#pragma clang diagnostic push
|
|
39
|
+
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
|
|
40
|
+
id receiver =
|
|
41
|
+
[receiverClass performSelector:NSSelectorFromString(@"shared")];
|
|
42
|
+
if (receiver) {
|
|
43
|
+
center.delegate = (id<UNUserNotificationCenterDelegate>)receiver;
|
|
44
|
+
NSLog(@"TyradsSDK: [Swizzler] Automatically set "
|
|
45
|
+
@"UNUserNotificationCenter delegate");
|
|
46
|
+
}
|
|
47
|
+
#pragma clang diagnostic pop
|
|
48
|
+
} else {
|
|
49
|
+
NSLog(@"TyradsSDK: [Swizzler] Could not find APNsNotificationReceiver "
|
|
50
|
+
@"class");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
+ (void)swizzleAppDelegate {
|
|
57
|
+
id<UIApplicationDelegate> delegate =
|
|
58
|
+
[UIApplication sharedApplication].delegate;
|
|
59
|
+
if (!delegate) {
|
|
60
|
+
NSLog(@"TyradsSDK: [Swizzler] No AppDelegate found to swizzle");
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
Class appDelegateClass = [delegate class];
|
|
65
|
+
NSLog(@"TyradsSDK: [Swizzler] Swizzling AppDelegate class: %@",
|
|
66
|
+
NSStringFromClass(appDelegateClass));
|
|
67
|
+
|
|
68
|
+
[self swizzleInstanceMethod:appDelegateClass
|
|
69
|
+
original:@selector
|
|
70
|
+
(application:
|
|
71
|
+
didRegisterForRemoteNotificationsWithDeviceToken:)
|
|
72
|
+
swizzled:@selector
|
|
73
|
+
(tyrads_application:
|
|
74
|
+
didRegisterForRemoteNotificationsWithDeviceToken:)];
|
|
75
|
+
|
|
76
|
+
[self swizzleInstanceMethod:appDelegateClass
|
|
77
|
+
original:@selector
|
|
78
|
+
(application:
|
|
79
|
+
didReceiveRemoteNotification:fetchCompletionHandler:)
|
|
80
|
+
swizzled:@selector
|
|
81
|
+
(tyrads_application:
|
|
82
|
+
didReceiveRemoteNotification:fetchCompletionHandler:)];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
+ (void)swizzleInstanceMethod:(Class)cls
|
|
86
|
+
original:(SEL)originalSelector
|
|
87
|
+
swizzled:(SEL)swizzledSelector {
|
|
88
|
+
Method originalMethod = class_getInstanceMethod(cls, originalSelector);
|
|
89
|
+
Method swizzledMethod =
|
|
90
|
+
class_getInstanceMethod([self class], swizzledSelector);
|
|
91
|
+
|
|
92
|
+
if (!swizzledMethod) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (!originalMethod) {
|
|
97
|
+
IMP stub;
|
|
98
|
+
if (originalSelector == @selector
|
|
99
|
+
(application:didReceiveRemoteNotification:fetchCompletionHandler:)) {
|
|
100
|
+
stub = imp_implementationWithBlock(
|
|
101
|
+
^(id _self, UIApplication *app, NSDictionary *info,
|
|
102
|
+
void (^completion)(UIBackgroundFetchResult)) {
|
|
103
|
+
if (completion)
|
|
104
|
+
completion(UIBackgroundFetchResultNewData);
|
|
105
|
+
});
|
|
106
|
+
} else {
|
|
107
|
+
stub = imp_implementationWithBlock(^(id _self){
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
class_addMethod(cls, originalSelector, stub,
|
|
112
|
+
method_getTypeEncoding(swizzledMethod));
|
|
113
|
+
originalMethod = class_getInstanceMethod(cls, originalSelector);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
method_exchangeImplementations(originalMethod, swizzledMethod);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
- (void)tyrads_application:(UIApplication *)application
|
|
120
|
+
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
|
121
|
+
NSLog(@"TyradsSDK: [Swizzler] "
|
|
122
|
+
@"didRegisterForRemoteNotificationsWithDeviceToken");
|
|
123
|
+
|
|
124
|
+
Class managerClass = NSClassFromString(@"APNsNotificationManager");
|
|
125
|
+
if (managerClass) {
|
|
126
|
+
#pragma clang diagnostic push
|
|
127
|
+
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
|
|
128
|
+
id manager = [managerClass performSelector:NSSelectorFromString(@"shared")];
|
|
129
|
+
if (manager && [manager respondsToSelector:NSSelectorFromString(
|
|
130
|
+
@"onTokenReceived:")]) {
|
|
131
|
+
[manager performSelector:NSSelectorFromString(@"onTokenReceived:")
|
|
132
|
+
withObject:deviceToken];
|
|
133
|
+
}
|
|
134
|
+
#pragma clang diagnostic pop
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if ([self respondsToSelector:@selector
|
|
138
|
+
(tyrads_application:
|
|
139
|
+
didRegisterForRemoteNotificationsWithDeviceToken:)]) {
|
|
140
|
+
[self tyrads_application:application
|
|
141
|
+
didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
- (void)tyrads_application:(UIApplication *)application
|
|
146
|
+
didReceiveRemoteNotification:(NSDictionary *)userInfo
|
|
147
|
+
fetchCompletionHandler:
|
|
148
|
+
(void (^)(UIBackgroundFetchResult))completionHandler {
|
|
149
|
+
NSLog(@"TyradsSDK: [Swizzler] didReceiveRemoteNotification");
|
|
150
|
+
|
|
151
|
+
Class receiverClass = NSClassFromString(@"APNsNotificationReceiver");
|
|
152
|
+
if (receiverClass) {
|
|
153
|
+
#pragma clang diagnostic push
|
|
154
|
+
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
|
|
155
|
+
id receiver =
|
|
156
|
+
[receiverClass performSelector:NSSelectorFromString(@"shared")];
|
|
157
|
+
if (receiver &&
|
|
158
|
+
[receiver
|
|
159
|
+
respondsToSelector:NSSelectorFromString(
|
|
160
|
+
@"handleSilentNotificationWithUserInfo:")]) {
|
|
161
|
+
[receiver performSelector:NSSelectorFromString(
|
|
162
|
+
@"handleSilentNotificationWithUserInfo:")
|
|
163
|
+
withObject:userInfo];
|
|
164
|
+
}
|
|
165
|
+
#pragma clang diagnostic pop
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if ([self respondsToSelector:@selector
|
|
169
|
+
(tyrads_application:
|
|
170
|
+
didReceiveRemoteNotification:fetchCompletionHandler:)]) {
|
|
171
|
+
[self tyrads_application:application
|
|
172
|
+
didReceiveRemoteNotification:userInfo
|
|
173
|
+
fetchCompletionHandler:completionHandler];
|
|
174
|
+
} else if (completionHandler) {
|
|
175
|
+
completionHandler(UIBackgroundFetchResultNewData);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
@end
|
package/ios/TyradsSdk.mm
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#import <React/RCTBridgeModule.h>
|
|
2
2
|
|
|
3
|
-
@interface RCT_EXTERN_MODULE(TyradsSdk, NSObject)
|
|
3
|
+
@interface RCT_EXTERN_MODULE (TyradsSdk, NSObject)
|
|
4
4
|
|
|
5
5
|
RCT_EXTERN_METHOD(startObserving)
|
|
6
6
|
RCT_EXTERN_METHOD(stopObserving)
|
|
@@ -8,6 +8,7 @@ RCT_EXTERN_METHOD(init:(NSString *)apiKey
|
|
|
8
8
|
secretKey:(NSString *)secretKey
|
|
9
9
|
encKey:(NSString * _Nullable)encKey
|
|
10
10
|
engagementId:(NSString * _Nullable)engagementId
|
|
11
|
+
placementId:(NSString * _Nullable)placementId
|
|
11
12
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
12
13
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
13
14
|
// RCT_EXTERN_METHOD(loginUser:(NSString *)userId)
|
|
@@ -33,6 +34,16 @@ RCT_EXTERN_METHOD(isPrivacyAccepted:(RCTPromiseResolveBlock)resolve
|
|
|
33
34
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
34
35
|
RCT_EXTERN_METHOD(checkOnboardingProcess:(RCTPromiseResolveBlock)resolve
|
|
35
36
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
37
|
+
RCT_EXTERN_METHOD(preloadOffers : (NSString *_Nullable)route
|
|
38
|
+
resolver : (RCTPromiseResolveBlock)resolve
|
|
39
|
+
rejecter : (RCTPromiseRejectBlock)reject)
|
|
36
40
|
|
|
41
|
+
RCT_EXTERN_METHOD(pushRequestPermission:(RCTPromiseResolveBlock)resolve
|
|
42
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
43
|
+
RCT_EXTERN_METHOD(pushGetApnsToken:(RCTPromiseResolveBlock)resolve
|
|
44
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
45
|
+
|
|
46
|
+
RCT_EXTERN_METHOD(showInAppNotification)
|
|
47
|
+
RCT_EXTERN_METHOD(dismissInAppNotification)
|
|
37
48
|
|
|
38
49
|
@end
|