diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/adcolony.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/adcolony.meta new file mode 100644 index 00000000..06dd79f8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/adcolony.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ab6e8a967b234f77bbe29b60f9bc4c4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/admob.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/admob.meta new file mode 100644 index 00000000..ae7dd784 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/admob.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c1918f6705fbc4a4fa28669ddd7d2a37 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/applovin.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/applovin.meta new file mode 100644 index 00000000..a9b39801 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/applovin.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11655a15b7870470ebb42549f14d3676 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/chartboost.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/chartboost.meta new file mode 100644 index 00000000..25a70125 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/chartboost.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c05db8319964c413489c577190d66715 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/fyber.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/fyber.meta new file mode 100644 index 00000000..86811d96 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/fyber.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 565e9c4330cd341b79107c8cc7948ffa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/gdt.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/gdt.meta new file mode 100644 index 00000000..8a9cf644 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/gdt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e78c40b12714c4c03aab74b7c4416011 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/ironsource.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/ironsource.meta new file mode 100644 index 00000000..6acd86cc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/ironsource.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 483df1c446aba41ae9535c63113d9ad9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/kuaishou.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/kuaishou.meta new file mode 100644 index 00000000..1fd68ed9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/kuaishou.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ba34eebc3de94a369273d623c6e0b8d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/maio.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/maio.meta new file mode 100644 index 00000000..7bdba2b5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/maio.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a7820c8078ab44efc8383ae2646b4e54 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/mintegral.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/mintegral.meta new file mode 100644 index 00000000..5c533046 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/mintegral.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca28f3417925041728e51a31e7e465d4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China.meta new file mode 100644 index 00000000..df936086 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a119d92eeda8a4d35b7460e78f577f73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework.meta new file mode 100644 index 00000000..db34c968 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 66cbd05add8354b0c841f345686efbbf +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/AnyThinkTTAdapter b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/AnyThinkTTAdapter new file mode 100755 index 00000000..8412d3e0 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/AnyThinkTTAdapter differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/AnyThinkTTAdapter.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/AnyThinkTTAdapter.meta new file mode 100644 index 00000000..edd07d70 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/AnyThinkTTAdapter.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1b4d1347d33ff4cc1a7776e2ac56270a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle.meta new file mode 100644 index 00000000..cb13e450 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a85d34c26520844a9899ca9eccf21b1d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Assets.car b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Assets.car new file mode 100755 index 00000000..42d9f16c Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Assets.car differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Assets.car.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Assets.car.meta new file mode 100644 index 00000000..e882831f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Assets.car.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 907d55ed07f954953bbe99ed788b064f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Info.plist b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Info.plist new file mode 100755 index 00000000..c34c74f2 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Info.plist differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Info.plist.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Info.plist.meta new file mode 100644 index 00000000..6682aa93 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 64b1d3da47b7e4d428cc85f69cc2eb38 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj.meta new file mode 100644 index 00000000..64f9557b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5b7806741bda34ac199fa6b4fdddbaf4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj/BULanguage.strings new file mode 100755 index 00000000..f55d7cc2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "انقر فوق"; +"AD" = "الإعلان"; +"PlayConsumed" = "سيؤدي تشغيل هذا إلى استخدام بيانات تبلغ %.2f ميجابايت"; +"Evaluation" = "التقييم"; +"Score" = "تصنيف (تصنيفات) %@"; +"Select" = "اختر"; +"Back" = "رجوع"; +"Replay" = "انقر لإعادة التشغيل"; +"Continue" = "المتابعة للتشغيل"; +"Skip" = "تخطي"; +"Feedback" = "التعليقات"; +"FeedbackStr1" = "شكرًا لك على تعليقك."; +"FeedbackStr2" = "سنبذل قصارى جهدنا لمنحك تجربة إعلانية أفضل"; +"FeedbackStr3" = "لقد أرسلت تعليق بالفعل."; +"FeedbackStr4" = "يرجى عدم الإرسال أكثر من مرة!"; +"ViewNow" = "عرض الآن"; +"Download" = "تنزيل"; +"LoadFailure" = "تعذر التحميل. يرجى المحاولة مرة أخرى."; +"GetRewardAfterWatching" = "قم بإستكمال مشاهدة الفيديو بالكامل للحصول على مكافآت"; +"GiveUpReward" = "تخطي المكافآت"; +"ContinueWatching" = "متابعة المشاهدة"; +"CanbeTurnedOffAfter" = "s %d تخطي بعد"; +"CanbeSkipAfter" = "s %d تخطي بعد"; +"Get" = "تنزيل"; +"View" = "عرض"; +"ContinuePlaying" = "متابعة التشغيل"; +"GetRewardAfterPlaying" = "قم بإستكمال التشغيل للحصول على المكافآت"; +"Wan" = "10 ألف"; +"ViewDetail" = "عرض"; +"CommitScore" = "%@ تصنيف (تصنيفات)"; +"AdsClosed" = "االإعلانات مغلقة"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..dc66e4d8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ar.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e74d5a4f4bcda4c60b225f0e04328f4c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_dynamic_default.json b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_dynamic_default.json new file mode 100755 index 00000000..4e6a1b33 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_dynamic_default.json @@ -0,0 +1 @@ +{"text":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"button":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#1A73E8","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"download-progress-button":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":4,"paddingBottom":10,"paddingLeft":4,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"fillButton":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":4,"paddingBottom":10,"paddingLeft":4,"borderSize":1,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"vessel":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"priceButton":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":12,"paddingRight":28,"paddingBottom":12,"paddingLeft":28,"borderSize":0,"borderColor":"none","borderStyle":"solid","borderRadius":40,"bgColor":"#FF523B","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"color":"#ffffff","bgGradient":"linear-gradient(270deg, #ED2642 0%, #FF523B 100%)","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1},"themeValues":{},"areaType":2,"clickType":""},"laceButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#895434","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"cardButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"arrowButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#ff113b","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"GainButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":30,"paddingBottom":4,"paddingLeft":30,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#FF026C","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"bracketsButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":30,"paddingBottom":4,"paddingLeft":30,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#FF026C","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"svg-button-6":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"svg-button-7":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"colourMixtureButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#00e7ff","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"image":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"app-icon":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"icon","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"icon"},"dislike":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":1,"paddingRight":3,"paddingBottom":1,"paddingLeft":3,"borderSize":1,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":8,"bgColor":"transparent","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":8,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.34)","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"rgba(255, 255, 255, 70)","borderColor":"rgba(255, 255, 255, 70)"},"areaType":3,"clickType":"dislike"},"close":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":14,"bgColor":"transparent","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.34)","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"rgba(255, 255, 255, 70)","borderColor":"rgba(255, 255, 255, 70)"},"areaType":3,"clickType":"dislike"},"close-fill":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":16,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"bgColor":"#9B9B9B"},"areaType":3,"clickType":"dislike"},"skip":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":1,"paddingRight":3,"paddingBottom":1,"paddingLeft":3,"borderSize":1,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":8,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":8,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.34)","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"rgba(255, 255, 255, 70)","borderColor":"rgba(255, 255, 255, 70)","bgColor":"rgba(255, 255, 255, 0)"},"areaType":0,"clickType":"skip"},"icon":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"请输入内容","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"icon-download":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"image-long":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":0.5625,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"image-square":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"image-wide":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.78,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"image-splash":{"values":{"widthMode":"flex","width":1,"heightMode":"flex","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"image-cover":{"values":{"widthMode":"flex","width":1,"heightMode":"flex","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"swiper":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":180,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":12,"paddingBottom":0,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.screenshot","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"swiperLoop":false,"swiperAutoplay":false,"swiperAutoplayDelay":1500,"swiperAutoplayStoppable":true,"swiperHasBorderRadius":true,"swiperBorderLess":false,"showPrevNextPreview":true,"centeredSlides":"vertical-only"},"themeValues":{},"areaType":2,"clickType":"image"},"stack-swiper":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":180,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":30,"paddingBottom":0,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.screenshot","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"stretch":0.9,"swiperAutoplay":false,"swiperAutoplayDelay":1500,"swiperAutoplayStoppable":true,"swiperHasBorderRadius":true,"swiperBorderLess":false},"themeValues":{},"areaType":2,"clickType":"image"},"mountain-swiper":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":180,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":12,"paddingBottom":0,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.screenshot","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"stretch":0.7,"swiperAutoplay":false,"swiperAutoplayDelay":1500,"swiperAutoplayStoppable":true,"swiperHasBorderRadius":true,"swiperBorderLess":false},"themeValues":{},"areaType":2,"clickType":"image"},"video":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video","clickArea":"video","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","fixBorderStyleType":0,"showTimeProgress":true,"showPlayButton":true,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":99,"clickType":"video"},"video-hd":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.78,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video","clickArea":"video","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","fixBorderStyleType":0,"showTimeProgress":true,"showPlayButton":true,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":99,"clickType":"video"},"video-vd":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":0.5625,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video","clickArea":"video","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","fixBorderStyleType":0,"showTimeProgress":true,"showPlayButton":true,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":99,"clickType":"video"},"play":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":16,"paddingRight":16,"paddingBottom":16,"paddingLeft":16,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":30,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"请输入内容","clickArea":"none","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":28,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":""},"video-image-budget":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","fixBorderStyleType":0,"showTimeProgress":true,"showPlayButton":true,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","imageObjectFit":"contain","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"video":{"isDataFixed":false,"data":"video","materialCenterData":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","clickArea":"video","clickTigger":"click","showTimeProgress":false,"showPlayButton":true},"image":{"isDataFixed":false,"data":"image.0","materialCenterData":-999,"clickArea":"creative","clickTigger":"click","imageType":"static-image","imageObjectFit":"contain"}},"themeValues":{},"areaType":2,"clickType":"image"},"muted":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":20,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"请输入内容","clickArea":"none","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":20,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"muted"},"barrage":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":20,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"请输入内容","clickArea":"none","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":20,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":""},"subtitle":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"description","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":15,"fontModel":"","fontWeight":500,"color":"#999999","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"subtitle"},"time":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#999999","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"time"},"score-count":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"app.comment_num","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#999999","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"score_count"},"score-count-type-2":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"app.comment_num","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#999999","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"score_count"},"scoreCountWithIcon":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"text_star":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"app.score","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"star"},"text_category":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"modal-vessel":{"values":{"widthMode":"fixed","width":325,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"#FFFFFF","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"modalTriggerType":"0"},"themeValues":{},"areaType":2,"clickType":"modal"},"creative-component-vessel":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"#FFFFFF","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"creative-playable-bait":{"values":{"widthMode":"fixed","width":94,"heightMode":"fixed","height":28,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.show_playable","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"bgImgUrl":"playable-bait"},"themeValues":{},"areaType":2,"clickType":"mnpl_guide_comp_click"},"float-layer-text":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"float-layer":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"pauseDuration":2000},"themeValues":{},"areaType":2,"clickType":""},"downloadWithIcon":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"downloadDraggable":{"values":{"widthMode":"fixed","width":44,"heightMode":"fixed","height":44,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"rgba(0, 0, 0, 0.6)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"image-group":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"shopping-pendant-brick-base":{"values":{"widthMode":"fixed","width":320,"heightMode":"scale","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-with-text-base":{"values":{"widthMode":"fixed","width":320,"heightMode":"scale","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-hot":{"values":{"widthMode":"fixed","width":160,"heightMode":"scale","height":1.4678899082568808,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"rgb(233, 71, 38)","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-cart":{"values":{"widthMode":"fixed","width":128,"heightMode":"scale","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-fire-explode":{"values":{"widthMode":"fixed","width":198.3,"heightMode":"scale","height":3.873046875,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"rgb(233, 71, 38)","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-crazy-buy":{"values":{"widthMode":"fixed","width":162,"heightMode":"scale","height":0.7864077669902912,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-red-envelope":{"values":{"widthMode":"fixed","width":138,"heightMode":"scale","height":0.8903225806451613,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-shopping-double-11-promotion-red":{"values":{"widthMode":"fixed","width":248,"heightMode":"scale","height":3.263157894736842,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-shopping-double-11-promotion-blue":{"values":{"widthMode":"fixed","width":248,"heightMode":"scale","height":3.263157894736842,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-shopping-click-to-get-reward":{"values":{"widthMode":"fixed","width":240,"heightMode":"scale","height":1.3333333333333333,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-shopping-click-to-earn-money":{"values":{"widthMode":"fixed","width":240,"heightMode":"scale","height":1.3333333333333333,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-618-red":{"values":{"widthMode":"fixed","width":248,"heightMode":"scale","height":3.263157894736842,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-618-blue":{"values":{"widthMode":"fixed","width":248,"heightMode":"scale","height":3.263157894736842,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping_promotion_logo":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"低价热销","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#2a90d7","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"union_logo"},"shopping_promotion":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"paddingTop":2,"paddingRight":6,"paddingBottom":2,"paddingLeft":6,"borderSize":0,"borderRadius":12,"bgColor":"#FF505C"},"themeValues":{},"areaType":1,"clickType":""},"inner_text":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"shopping_cart":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":12,"paddingRight":20,"paddingBottom":12,"paddingLeft":20,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":40,"bgColor":"#FF505C","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":"shopping_cart"},"shopping_buyer_num":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":"shopping_buyer_num"},"time_reverse":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"86400","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#222222","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"time_reverse"},"count_down":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0},"themeValues":{},"areaType":1,"clickType":"shopping_time_down"},"title":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"title","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":19,"fontModel":"","fontWeight":500,"color":"#222222","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"highlightWord":false,"quoteWord":false},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"title"},"gift_package_image":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"gift_package_button_image":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"gift_package":{"values":{"widthMode":"flex","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":5,"paddingBottom":5,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999},"themeValues":{},"areaType":2,"clickType":"shopping_gift_package"},"shopping_price":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.price.0","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#E02E24","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"price"},"product-recommend-button":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":4,"paddingBottom":10,"paddingLeft":4,"borderSize":1,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"product-recommend":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":8,"paddingRight":8,"paddingBottom":5,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"flex-start","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"lottery_bg":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"lottery_button":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"lottery":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":5,"paddingBottom":5,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":"shopping_lottery"},"commend-count":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":5,"paddingBottom":0,"paddingLeft":5,"borderSize":1,"borderColor":"#FF505C","borderStyle":"solid","borderRadius":3,"bgColor":"transparent","isDataFixed":true,"data":"好评:{{dynamic_creative.dpa_mark}}%","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":500,"color":"#FF505C","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"highlightWord":false,"quoteWord":false,"promotionPhraseStyle":"border"},"areaType":2,"clickType":"title"},"sale-count":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":5,"paddingBottom":0,"paddingLeft":5,"borderSize":1,"borderColor":"#FF505C","borderStyle":"solid","borderRadius":3,"bgColor":"transparent","isDataFixed":true,"data":"销量:{{dynamic_creative.dpa_sales}}件","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":500,"color":"#FF505C","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"highlightWord":false,"quoteWord":false,"promotionPhraseStyle":"border"},"areaType":2,"clickType":"title"},"live-video-streaming":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":3,"paddingRight":4,"paddingBottom":3,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":2,"bgColor":"#F93F3F","isDataFixed":true,"data":"直播中","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"split-line":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":1,"borderSize":0,"bgColor":"#333333","paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"e-commerce-coupon-bg-image":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"e-commerce-coupon":{"values":{"widthMode":"auto","heightMode":"auto","paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0},"themeValues":{},"areaType":1,"clickType":""},"e-commerce-double-countdowns-countdown-text":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":8,"paddingBottom":8,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"距开始剩余,距结束剩余","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FA2D6C","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns-day":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FA2D6C","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns-hour":{"values":{"widthMode":"fixed","width":28,"heightMode":"fixed","height":30,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":4,"bgColor":"rgba(22, 24, 35, 0.03)","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":15,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns-minute":{"values":{"widthMode":"fixed","width":28,"heightMode":"fixed","height":30,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":4,"bgColor":"rgba(22, 24, 35, 0.03)","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":15,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns-second":{"values":{"widthMode":"fixed","width":28,"heightMode":"fixed","height":30,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":4,"bgColor":"rgba(22, 24, 35, 0.03)","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":15,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.ecommerce_count_down","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":"shopping_time_down"},"spring-festival-button-1":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":50,"paddingBottom":10,"paddingLeft":50,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FCEBA9","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-2":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":30,"paddingBottom":10,"paddingLeft":30,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FCEBA9","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-3":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":30,"paddingBottom":10,"paddingLeft":30,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FCEBA9","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-4":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-5":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-6":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-7":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-8":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-decoration-1":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":0.68,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-2":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":0.54,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-3":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":0.77,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-4":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":0.76,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-5":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-6":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":2.38,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-7":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":5.07,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-8":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":2.39,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-9":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.76,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-10":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":5.88,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"timedown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"time_down"},"reward-countdown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":4,"marginBottom":0,"marginLeft":4,"paddingTop":1,"paddingRight":0,"paddingBottom":1,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"right","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"time_down"},"reward-icon":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":2,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#2a90d7","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"rewardIconType":"礼物"},"areaType":0,"clickType":""},"reward-skip-btn":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":1,"paddingRight":3,"paddingBottom":1,"paddingLeft":3,"borderSize":1,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":8,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":8,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.34)","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"skip"},"skip-reward":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":8,"paddingBottom":4,"paddingLeft":8,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":0,"clickType":""},"skip-with-time-skip-btn":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":4,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.3,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"skip"},"skip-with-time-countdown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.3,"textAlign":"right","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"time_down"},"skip-with-time":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":2,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":8,"paddingBottom":5,"paddingLeft":8,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontSize":12,"textAlign":"center"},"themeValues":{},"areaType":0,"clickType":""},"game-decorator-title-bg":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-decorator-title":{"values":{"widthMode":"fixed","width":300,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"imageColor":""},"themeValues":{},"areaType":2,"clickType":""},"game-decorator-corner-bg":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-decorator-corner":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"imageColor":""},"themeValues":{},"areaType":2,"clickType":""},"game-exchange-code":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":98,"position":"0","borderSize":0,"isDataFixed":true,"data":"剩余礼券:{{dynamic_creative.coupons_left}}个"},"themeValues":{},"areaType":2,"clickType":""},"game-exchange-code-button":{"values":{"widthMode":"auto","width":1,"heightMode":"fixed","height":28,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":8,"paddingRight":12,"paddingBottom":8,"paddingLeft":12,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"#F53165","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","justifyHorizontal":"center","justifyVertical":"center","alignItems":"center"},"areaType":2,"clickType":"button"},"iconText":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"title","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.5)","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"icon":"3"},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"game-exchange-code-info":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"剩余礼券:{{dynamic_creative.coupons_left}}个","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.5)","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"icon":"3","dataNeedI18n":true,"iconType":"3","showIcon":false},"areaType":2,"clickType":""},"related-item-vessel":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"related-card-layout":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":1070,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":10,"paddingBottom":10,"paddingLeft":10,"borderSize":0,"borderColor":"rgba(0,0,0,0)","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-between","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"related-vertical-layout":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","justifyHorizontal":"flex-start","height":40,"borderSize":0,"borderColor":"rgba(0,0,0,0)","paddingTop":8,"paddingRight":15,"paddingBottom":5,"paddingLeft":15,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"webview-close":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"back":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":""},"forwards":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":14,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"decorator-calc-color-style-1":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.3,"borderSize":0,"paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"decorator-calc-color-style-2":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.3,"borderSize":0,"paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"decorator-calc-color-style-3":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.3,"borderSize":0,"paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"decorator-calc-color-style-4":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.3,"borderSize":0,"paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"tag-group":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"flex-start","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":"tag"},"text-vessel__1":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-vessel__2":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-vessel__3":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-vessel__4":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-icon__5":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"text-vessel__5":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-icon__6":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"text-vessel__6":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"skip-with-countdowns-skip-countdown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"time_down"},"skip-with-countdowns-skip-btn":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":4,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"skip"},"skip-with-countdowns-video-countdown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.4,"textAlign":"right","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"time_down"},"skip-countdowns":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":8,"paddingBottom":4,"paddingLeft":8,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":0,"clickType":""},"downloadButton":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":20,"marginBottom":0,"marginLeft":20,"paddingTop":12,"paddingRight":0,"paddingBottom":12,"paddingLeft":0,"borderSize":1,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":true,"data":"立即下载","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#1A73E8","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","idleColor":"#f85959","idleTextColor":"#ffffff","reachedColor":"#f85959","unreachedColor":"#1d1d1d","downloadTextColor":"#ffffff","downloadTextIdle":"点击下载","downloadTextStart":"点击下载","downloadTextActive":"下载中","downloadTextPaused":"继续下载","downloadTextFailed":"重新下载","downloadTextFinished":"立即安装","downloadTextInstalled":"立即打开"},"areaType":2,"clickType":"button"},"custom-component-vessel":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":2,"clickType":""},"empty":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999},"themeValues":{},"areaType":2,"clickType":""},"feedback-dislike":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":8,"paddingBottom":5,"paddingLeft":8,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1.3,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"bgColor":"#9B9B9B"},"areaType":3,"clickType":"dislike"},"logo":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":1,"paddingRight":2,"paddingBottom":1,"paddingLeft":2,"borderSize":1,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":3,"bgColor":"transparent","isDataFixed":true,"data":"ad","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#2a90d7","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"openPrivacy":false},"areaType":2,"clickType":"union_logo"},"star":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"app.score","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":20,"fontModel":"","fontWeight":400,"color":"#FFC642","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"starMargin":0,"starIconType":"1"},"areaType":2,"clickType":"star"},"logo-union":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":3,"paddingRight":0,"paddingBottom":3,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":2,"bgColor":"rgba(22, 24, 35, 0.2)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"openPrivacy":false},"themeValues":{},"areaType":2,"clickType":""},"progress":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":2,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"#999999","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999},"themeValues":{},"areaType":2,"clickType":""},"source":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"source|app.app_name","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#999999","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"source"},"root":{"values":{"widthMode":"fixed","width":375,"heightMode":"fixed","height":375,"pageMode":"0","paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"bgColor":"#ffffff","borderSize":0,"borderRadius":0,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","borderStyle":"solid","clickArea":"creative","clickTigger":"click","bindEventBy":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"bgColor":"rgba(255,255,255,0)"},"areaType":2,"clickType":""},"footer":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"shopping_keyword":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":8,"paddingBottom":2,"paddingLeft":8,"borderSize":1,"borderColor":"#DBDBDB","borderStyle":"solid","borderRadius":3,"bgColor":"transparent","isDataFixed":true,"data":"超视野","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#DBDBDB","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_keyword"},"playable":{"values":{"widthMode":"flex","width":320,"heightMode":"flex","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.endcard","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":2,"clickType":""},"game-icon-fire":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-fire-text1":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-fire-text2":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-flag1":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-flag2":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-corner1":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-corner2":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-corner3":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"iconStyle":"fire"},"themeValues":{},"areaType":2,"clickType":""},"atom-app-icon":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"widthMode":"fixed","heightMode":"scale","width":50,"height":1,"borderSize":1,"borderColor":"#e9e9e9","imageType":"static-image"},"themeValues":{},"areaType":1,"clickType":""},"atom-button":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"atomButtonText":true,"borderSize":0,"paddingLeft":30,"paddingRight":30,"paddingTop":10,"paddingBottom":10,"fontModel":""},"themeValues":{},"areaType":1,"clickType":""},"atom-decoration":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"borderSize":0},"themeValues":{},"areaType":1,"clickType":""},"atom-star":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"borderSize":0,"fontSize":14,"fontModel":""},"themeValues":{},"areaType":1,"clickType":""},"atom-text-icon":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"borderSize":0,"tagMaxCount":5},"themeValues":{},"areaType":1,"clickType":""},"app-version":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.app_version","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#B0B0B0","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"development-name":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.developer_name","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#B0B0B0","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"privacy-detail":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#B0B0B0","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"related-recommend-style-one":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":98,"position":"0","borderSize":0,"recommendDirection":"横向","recommendBgColor":"rgb(243, 243, 243, 0.5)","recommendFontColor":"#757575","recommendTitle":"相关推荐","recommendDisplayTime":0},"themeValues":{},"areaType":1,"clickType":""}} \ No newline at end of file diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_dynamic_default.json.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_dynamic_default.json.meta new file mode 100644 index 00000000..b694a677 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_dynamic_default.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f77998a08b3e54fe3af5445492adff08 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@2x.data b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@2x.data new file mode 100755 index 00000000..acd4e1a5 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@2x.data differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@2x.data.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@2x.data.meta new file mode 100644 index 00000000..f1c6b405 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@2x.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b47b510589eb494797055dd571a5d89 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@3x.data b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@3x.data new file mode 100755 index 00000000..498087f0 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@3x.data differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@3x.data.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@3x.data.meta new file mode 100644 index 00000000..15137d8f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_logo@3x.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 78fe5bc19895f4286aa5456f82d860ee +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_slienceAudio.aiff b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_slienceAudio.aiff new file mode 100755 index 00000000..cb4590da Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_slienceAudio.aiff differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_slienceAudio.aiff.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_slienceAudio.aiff.meta new file mode 100644 index 00000000..3d665b4d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/bu_slienceAudio.aiff.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ac7d175e094e94afc85bade76c4924f8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj.meta new file mode 100644 index 00000000..31c709c0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c96d9c0995c4f48828ae41ee83a92887 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj/BULanguage.strings new file mode 100755 index 00000000..67609d7a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Klick"; +"AD" = "Anzeige"; +"PlayConsumed" = "Bei der Wiedergabe werden %.2f MB Daten verbraucht"; +"Evaluation" = "Bewertung"; +"Score" = "%@ Rating(s)"; +"Select" = "Auswählen"; +"Back" = "Zurück"; +"Replay" = "Zum erneuten Wiedergeben klicken"; +"Continue" = "Weiter wiedergeben"; +"Skip" = "Überspringen"; +"Feedback" = "Feedback"; +"FeedbackStr1" = "Vielen Dank für Ihr Feedback."; +"FeedbackStr2" = "Wir sind bemüht, Ihre Werbeerfahrung weiter zu verbessern."; +"FeedbackStr3" = "Sie haben bereits Feedback übermittelt."; +"FeedbackStr4" = "Bitte senden Sie Ihr Feedback nicht mehrfach!"; +"ViewNow" = "Jetzt ansehen"; +"Download" = "Abrufen"; +"LoadFailure" = "Ladefehler. Bitte versuchen Sie es erneut."; +"GetRewardAfterWatching" = "Sehen Sie sich das Video vollständig an, um Prämien zu erhalten."; +"GiveUpReward" = "Auf Prämien verzichten"; +"ContinueWatching" = "Weiter ansehen"; +"CanbeTurnedOffAfter" = "Nach %d s überspringen"; +"CanbeSkipAfter" = "Nach %d s überspringen"; +"Get" = "Herunterladen"; +"View" = "Ansehen"; +"ContinuePlaying" = "Weiter wiedergeben"; +"GetRewardAfterPlaying" = "Bis zum Ende wiedergeben, um Prämien zu erhalten"; +"Wan" = "Zehntausend"; +"ViewDetail" = "Ansehen"; +"CommitScore" = "%@ Rating(s)"; +"AdsClosed" = "Anzeigen geschlossen"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..6190b655 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/de.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6ce83cedbe2084bbd8b046a0f1ee9c3c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj.meta new file mode 100644 index 00000000..159799fd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3039da513c669498c942887aa469480a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj/BULanguage.strings new file mode 100755 index 00000000..121d6111 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by 李盛 on 2019/1/7. + Copyright © 2019 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Click"; +"AD" = "AD"; +"PlayConsumed" = "%.2fMB traffic will be consumed if you play it"; +"Evaluation" = "Evaluation"; +"Score" = "%@ score"; +"Select" = "Select"; +"Wan" = "";//英文逻辑不一样,为空就好 +"Back" = "Back"; +"Replay" = "Click to replay"; +"Continue" = "Continue to play"; +"Skip" = "Skip"; +"Feedback" = "Feedback"; +"FeedbackStr1" = "Thank you for your feedback."; +"FeedbackStr2" = "We will try to do better."; +"FeedbackStr3" = "You have submitted feedback."; +"FeedbackStr4" = "please don’t submit it again!"; +"ViewNow" = "View now"; +"Download" = "Download"; +"LoadFailure" = "Failed to load, and click to try again"; +"GetRewardAfterWatching" = "Get reward after watching the full video"; +"GiveUpReward" = "Abandon"; +"ContinueWatching" = "Continue watching"; +"CanbeTurnedOffAfter" = "Skip after %ds"; +"CanbeSkipAfter" = "Skip after %ds"; +"Get" = "Get"; +"View" = "View"; +"ContinuePlaying" = "Keep on"; +"GetRewardAfterPlaying" = "Finish playing to get rewards!"; +"ViewDetail" = "View"; +"CommitScore" = "%@ score"; +"AdsClosed" = "Ads Closed"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..40dc365d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/en.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2a118f736670b4cbfb51fda5f72e0927 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj.meta new file mode 100644 index 00000000..9ed3a50f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 532212626cc974a8c93a34ac7ddcca6a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj/BULanguage.strings new file mode 100755 index 00000000..29b7e86a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Clic"; +"AD" = "Anuncio"; +"PlayConsumed" = "Reproducir esto usará %.2f MB de datos"; +"Evaluation" = "Evaluación"; +"Score" = "%@ valoración(es)"; +"Select" = "Seleccionar"; +"Back" = "Volver"; +"Replay" = "Haga clic para volver a reproducir"; +"Continue" = "Seguir con la reproducción"; +"Skip" = "Omitir"; +"Feedback" = "Comentarios"; +"FeedbackStr1" = "Gracias por sus comentarios."; +"FeedbackStr2" = "Seguiremos esforzándonos por ofrecerle una mejor experiencia publicitaria."; +"FeedbackStr3" = "Ya ha enviado sus comentarios."; +"FeedbackStr4" = "No lo envíe más de una vez."; +"ViewNow" = "Ver ahora"; +"Download" = "Obtener"; +"LoadFailure" = "Error en la carga. Inténtelo de nuevo."; +"GetRewardAfterWatching" = "Termine de ver el vídeo por completo para recibir recompensas"; +"GiveUpReward" = "Renunciar a las recompensas"; +"ContinueWatching" = "Seguir viendo"; +"CanbeTurnedOffAfter" = "Omitir después de %d s"; +"CanbeSkipAfter" = "Omitir después de %d s"; +"Get" = "Descargar"; +"View" = "Ver"; +"ContinuePlaying" = "Seguir con la reproducción"; +"GetRewardAfterPlaying" = "Terminar la reproducción para reclamar recompensas"; +"Wan" = "10"; +"ViewDetail" = "Ver"; +"CommitScore" = "%@ valoración(es)"; +"AdsClosed" = "Anuncios cerrados"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..d96e17a7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/es.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7935124fe47294c2fbbdcb537af2ac89 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj.meta new file mode 100644 index 00000000..8e3bb1df --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b786416e64b945a3b44add1e505bf8f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj/BULanguage.strings new file mode 100755 index 00000000..dc874449 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Clic"; +"AD" = "ANNONCE"; +"PlayConsumed" = "%.2f Mo de données seront utilisés pour la lecture"; +"Evaluation" = "Évaluation"; +"Score" = "%@ cote(s)"; +"Select" = "Sélectionner"; +"Back" = "Retour"; +"Replay" = "Cliquer pour relancer la lecture"; +"Continue" = "Continuer pour lancer la lecture"; +"Skip" = "Passer"; +"Feedback" = "Commentaire"; +"FeedbackStr1" = "Merci pour votre commentaire."; +"FeedbackStr2" = "Nous continuerons à mettre tout en œuvre pour vous offrir une meilleure expérience publicitaire."; +"FeedbackStr3" = "Vous avez déjà envoyé un commentaire."; +"FeedbackStr4" = "Merci de ne pas envoyer un commentaire plusieurs fois !"; +"ViewNow" = "Regarder"; +"Download" = "Obtenir"; +"LoadFailure" = "Téléchargement impossible. Veuillez réessayer."; +"GetRewardAfterWatching" = "Regardez la vidéo jusqu'à la fin pour obtenir vos récompenses"; +"GiveUpReward" = "Renoncer aux récompenses"; +"ContinueWatching" = "Continuer à regarder"; +"CanbeTurnedOffAfter" = "Passer après %d s"; +"CanbeSkipAfter" = "Passer après %d s"; +"Get" = "Télécharger"; +"View" = "Voir"; +"ContinuePlaying" = "Poursuivre la lecture"; +"GetRewardAfterPlaying" = "Terminez la lecture pour obtenir vos récompenses"; +"Wan" = "10 000"; +"ViewDetail" = "Voir"; +"CommitScore" = "%@ cote(s)"; +"AdsClosed" = "Annonces fermées"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..c1d28063 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/fr.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0c623573fd43e4af79e8e6b11646e551 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj.meta new file mode 100644 index 00000000..dd959801 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: caa4fc75c0d924bcfa8cd31b14ea3d9b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj/BULanguage.strings new file mode 100755 index 00000000..e0abb04a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "क्लिक करें"; +"AD" = "विज्ञापन"; +"PlayConsumed" = "इसको चलाने पर %.2f MB डेटा का इस्तेमाल होगा"; +"Evaluation" = "मूल्यांकन"; +"Score" = "%@ रेटिंग"; +"Select" = "चुनें"; +"Back" = "वापस जाएँ"; +"Replay" = "रीप्ले करने के लिए क्लिक करें"; +"Continue" = "चलाना जारी रखें"; +"Skip" = "छोड़ें"; +"Feedback" = "फ़ीडबैक"; +"FeedbackStr1" = "आपके फ़ीडबैक के लिए धन्यवाद."; +"FeedbackStr2" = "हम आपको बेहतर विज्ञापन अनुभव देने की कोशिश करते रहेंगे."; +"FeedbackStr3" = "आप पहले ही फ़ीडबैक सबमिट कर चुके हैं."; +"FeedbackStr4" = "कृपया एक से अधिक बार न सबमिट करें!"; +"ViewNow" = "अभी देखें"; +"Download" = "पाएँ"; +"LoadFailure" = "लोड नहीं किया जा सका. कृपया फिर से कोशिश करें."; +"GetRewardAfterWatching" = "रिवॉर्ड्स पाने के लिए पूरा वीडियो देखें"; +"GiveUpReward" = "रिवॉर्ड्स छोड़ें"; +"ContinueWatching" = "देखते रहें"; +"CanbeTurnedOffAfter" = "%d सेकंड के बाद छोड़ दें"; +"CanbeSkipAfter" = "%d सेकंड के बाद छोड़ दें"; +"Get" = "डाउनलोड करें"; +"View" = "देखें"; +"ContinuePlaying" = "देखना जारी रखें"; +"GetRewardAfterPlaying" = "रिवॉर्ड्स का दावा करने के लिए पूरा देखें"; +"Wan" = "10 हज़ार"; +"ViewDetail" = "देखें"; +"CommitScore" = "%@ रेटिंग"; +"AdsClosed" = "विज्ञापन बंद"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..1dc5f77d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/hi.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7908d9f9173a24bc9a8bc4502d35f6a1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj.meta new file mode 100644 index 00000000..35b3df9c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 231cb8d18eb234223868a4a0663517ec +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj/BULanguage.strings new file mode 100755 index 00000000..db346b45 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Klik"; +"AD" = "IKLAN"; +"PlayConsumed" = "Memutar ini akan menghabiskan data %.2f MB"; +"Evaluation" = "Evaluasi"; +"Score" = "%@ peringkat"; +"Select" = "Pilih"; +"Back" = "Kembali"; +"Replay" = "Klik untuk memutar ulang"; +"Continue" = "Lanjut memutar"; +"Skip" = "Lewati"; +"Feedback" = "Umpan balik"; +"FeedbackStr1" = "Terima kasih atas umpan balik Anda."; +"FeedbackStr2" = "Kami akan terus berusaha meningkatkan pengalaman beriklan Anda."; +"FeedbackStr3" = "Anda telah mengirimkan umpan balik."; +"FeedbackStr4" = "Mohon tidak mengirim lebih dari satu!"; +"ViewNow" = "Lihat sekarang"; +"Download" = "Dapatkan"; +"LoadFailure" = "Gagal memuat. Silakan coba lagi."; +"GetRewardAfterWatching" = "Selesaikan menonton video lengkap untuk mendapatkan reward"; +"GiveUpReward" = "Abaikan reward"; +"ContinueWatching" = "Lanjut menonton"; +"CanbeTurnedOffAfter" = "Lewati setelah %d detik"; +"CanbeSkipAfter" = "Lewati setelah %d detik"; +"Get" = "Unduh"; +"View" = "Lihat"; +"ContinuePlaying" = "Lanjut memutar"; +"GetRewardAfterPlaying" = "Selesaikan pemutaran untuk mendapatkan reward"; +"Wan" = "10 ribu"; +"ViewDetail" = "Lihat"; +"CommitScore" = "%@ peringkat"; +"AdsClosed" = "Iklan ditutup"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..d0c57722 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/id.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ef4140e147d64417b8cef0dcf249709b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj.meta new file mode 100644 index 00000000..74a6352a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b2f653013ee8f4e3e8e8ee269e312322 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj/BULanguage.strings new file mode 100755 index 00000000..494caca9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Clic"; +"AD" = "Annuncio"; +"PlayConsumed" = "La riproduzione utilizzerà %.2f MB di dati"; +"Evaluation" = "Valutazione"; +"Score" = "Valutazione(i) %@"; +"Select" = "Seleziona"; +"Back" = "Indietro"; +"Replay" = "Clic per caricare"; +"Continue" = "Continua per riprodurre"; +"Skip" = "Ignora"; +"Feedback" = "Feedback"; +"FeedbackStr1" = "Grazie per il tuo feedback"; +"FeedbackStr2" = "Continueremo a impegnarci per fornirti un'esperienza pubblicitaria migliore."; +"FeedbackStr3" = "Hai già inviato il tuo feedback."; +"FeedbackStr4" = "Non inviarne più di uno!"; +"ViewNow" = "Visualizza ora"; +"Download" = "Ottieni"; +"LoadFailure" = "Caricamento non riuscito. Riprova."; +"GetRewardAfterWatching" = "Finisci di guardare il video per ottenere le ricompense"; +"GiveUpReward" = "Rinuncia a ricompense"; +"ContinueWatching" = "Continua a guardare"; +"CanbeTurnedOffAfter" = "Ignora dopo %ds"; +"CanbeSkipAfter" = "Ignora dopo %ds"; +"Get" = "Scarica"; +"View" = "Visualizza"; +"ContinuePlaying" = "Continua a riprodurre"; +"GetRewardAfterPlaying" = "Riproduci tutto per richiedere le ricompense"; +"Wan" = "10 mila"; +"ViewDetail" = "Visualizza"; +"CommitScore" = "Valutazione(i) %@"; +"AdsClosed" = "Annunci chiusi"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..071017e9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/it.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a76b8e4cc67bb4c09a333b8bdd2726cc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj.meta new file mode 100644 index 00000000..b9060840 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 27cb886041485448da31eec80123c81d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj/BULanguage.strings new file mode 100755 index 00000000..6ea4848f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by 李盛 on 2019/1/7. + Copyright © 2019 bytedance. All rights reserved. +*/ + +// String + +"Click" = "クリック"; +"AD" = "広告"; +"PlayConsumed" = "再生すると%.2fMBの通信量が消費されます"; +"Evaluation" = "評価"; +"Score" = "評価数:%@"; +"Select" = "選択"; +"Wan" = "万"; +"Back" = "戻る"; +"Replay" = "リプレイ"; +"Continue" = "再生し続ける"; +"Skip" = "スキップ"; +"Feedback" = "フィードバック"; +"FeedbackStr1" = "ご意見ありがとうございます"; +"FeedbackStr2" = "より良い広告体験を提供いたします"; +"FeedbackStr3" = "フィードバックはすでに送信済みです"; +"FeedbackStr4" = "既に送信済みです"; +"ViewNow" = "詳細を見る"; +"Download" = "入手"; +"LoadFailure" = "ロードに失敗しました。クリックして再度お試しください"; +"GetRewardAfterWatching" = "動画を最後まで視聴いただけるとリワードを付与されます"; +"GiveUpReward" = "やらない"; +"ContinueWatching" = "視聴し続ける"; +"CanbeTurnedOffAfter" = "%ds後にスキップ"; +"CanbeSkipAfter" = "%ds後にスキップ"; +"Get" = "入手"; +"View" = "見る"; +"ContinuePlaying" = "つづける"; +"GetRewardAfterPlaying" = "遊んで報酬をゲット!"; +"ViewDetail" = "チェック"; +"CommitScore" = "評価数:%@"; +"AdsClosed" = "広告は終了しました"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..123e0b50 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ja.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 135d99feb1c5b4d6e9167f6e0dec106e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj.meta new file mode 100644 index 00000000..7bc03ff3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c46f0c212301a46299682b64c244bd56 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj/BULanguage.strings new file mode 100755 index 00000000..9adbca59 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by iCuiCui on 2020/2/12. + Copyright © 2019 bytedance. All rights reserved. + */ + +// String + +"Click" = "클릭"; +"AD" = "광고"; +"PlayConsumed" = "재생하면 %.2fMB 트래픽이 소비하다"; +"Evaluation" = "평가"; +"Score" = "%@ 평점"; +"Select" = "선택"; +"Wan" = "만"; +"Back" = "뒤로"; +"Replay" = "재생하다"; +"Continue" = "계속하다"; +"Skip" = "건너뛰다"; +"Feedback" = "피드백"; +"FeedbackStr1" = "피드백을 주셔서 감사합니다!"; +"FeedbackStr2" = "더 양질의 광고 체험을 드리 겠습니다!"; +"FeedbackStr3" = "피드백을 제출 완료 됐었습니다!"; +"FeedbackStr4" = "반복하게 제출하지 마십시오"; +"ViewNow" = "즉시 보기"; +"Download" = "즉시 다운로드"; +"LoadFailure" = "적재 실패, 재시도 클릭"; +"GetRewardAfterWatching" = "전체 비디오를 본 후 보상을 받으십시오."; +"GiveUpReward" = "포상을 포기하다"; +"ContinueWatching" = "계속보기"; +"CanbeTurnedOffAfter" = "%ds후에 닫을 수 있다"; +"CanbeSkipAfter" = "%ds후에 닫을 수 있다"; +"Get" = "다운로드"; +"View" = "체크"; +"ContinuePlaying" = "계속하다"; +"GetRewardAfterPlaying" = "리워드는 게임 플레이 이후에 지급됩니다."; +"ViewDetail" = "체크"; +"CommitScore" = "%@ 평점"; +"AdsClosed" = "광고 종료"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..310f85ba --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ko.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: feeb9163f741243418a600e972ab95fb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj.meta new file mode 100644 index 00000000..5aa6f5d8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 700d4552027704f7583171a936ac5df5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj/BULanguage.strings new file mode 100755 index 00000000..c4bbdfa6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Clicar"; +"AD" = "Anúncio"; +"PlayConsumed" = "Ao executar este, você usará %.2f MB dos dados"; +"Evaluation" = "Avaliação"; +"Score" = "%@ classificação(ões)"; +"Select" = "Selecionar"; +"Back" = "Voltar"; +"Replay" = "Clique para reproduzir"; +"Continue" = "Continue para executar"; +"Skip" = "Pular"; +"Feedback" = "Feedback"; +"FeedbackStr1" = "Obrigado por seu feedback."; +"FeedbackStr2" = "Continuaremos nos empenhando para fornecer a você a melhor experiência em publicidade."; +"FeedbackStr3" = "Você já enviou seu feedback."; +"FeedbackStr4" = "Não envie mais de um!"; +"ViewNow" = "Visualizar agora"; +"Download" = "Obter"; +"LoadFailure" = "Falha ao carregar. Tente novamente."; +"GetRewardAfterWatching" = "Assista ao vídeo completo para ganhar premiações"; +"GiveUpReward" = "Desistir das premiações"; +"ContinueWatching" = "Continuar assistindo"; +"CanbeTurnedOffAfter" = "Pular depois de %ds"; +"CanbeSkipAfter" = "Pular depois de %ds"; +"Get" = "Fazer download"; +"View" = "Visualizar"; +"ContinuePlaying" = "Continuar executando"; +"GetRewardAfterPlaying" = "Finalizar a execução para solicitar as premiações"; +"Wan" = "10 mil"; +"ViewDetail" = "Visualizar"; +"CommitScore" = "%@ classificação(ões)"; +"AdsClosed" = "Anúncios fechados"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..b961a2fe --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/pt.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 388fe5ac470304324b0a18448f041def +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj.meta new file mode 100644 index 00000000..5c6d150d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 126a249cc05e54ab081d711c085926d3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj/BULanguage.strings new file mode 100755 index 00000000..dbb8364f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Нажмите"; +"AD" = "Рекламное объявление"; +"PlayConsumed" = "На воспроизведение будет потрачено %.2f МБ трафика"; +"Evaluation" = "Оценка"; +"Score" = "Оценки: %@"; +"Select" = "Выбрать"; +"Back" = "Назад"; +"Replay" = "Нажмите, чтобы воспроизвести еще раз"; +"Continue" = "Продолжить воспроизведение"; +"Skip" = "Пропустить"; +"Feedback" = "Отзыв"; +"FeedbackStr1" = "Благодарим за ваш отзыв."; +"FeedbackStr2" = "Мы постоянно работаем над улучшением качества рекламы."; +"FeedbackStr3" = "Вы уже оставили отзыв."; +"FeedbackStr4" = "Желательно оставлять отзыв только один раз!"; +"ViewNow" = "Смотреть"; +"Download" = "Получить"; +"LoadFailure" = "Ошибка загрузки. Попробуйте снова."; +"GetRewardAfterWatching" = "Завершите просмотр полного видео, чтобы получить награду"; +"GiveUpReward" = "Отказаться от награды"; +"ContinueWatching" = "Продолжить просмотр"; +"CanbeTurnedOffAfter" = "Можно пропустить через %d с"; +"CanbeSkipAfter" = "Можно пропустить через %d с"; +"Get" = "Скачать"; +"View" = "Вид"; +"ContinuePlaying" = "Продолжить просмотр"; +"GetRewardAfterPlaying" = "Завершите просмотр, чтобы получить награду"; +"Wan" = "10 тысяч"; +"ViewDetail" = "Вид"; +"CommitScore" = "Оценки: %@"; +"AdsClosed" = "Объявления закрыты"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..6331f799 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/ru.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5530e964bba3c4080826360378a04ed6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/setup.txt b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/setup.txt new file mode 100755 index 00000000..ea75cb2e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/setup.txt @@ -0,0 +1 @@ +This text exists in 4300 and is the identifier in M ​​Access Rely library compatibility. Do not delete(请勿删除) diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/setup.txt.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/setup.txt.meta new file mode 100644 index 00000000..80b369d3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/setup.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cd824488bd0094d5db391e0a8a6448c7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj.meta new file mode 100644 index 00000000..b2090bf8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5523eef1c946c443ba654bf098c6a59a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj/BULanguage.strings new file mode 100755 index 00000000..7b992bfc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "คลิก"; +"AD" = "โฆษณา"; +"PlayConsumed" = "การเล่นรายการนี้จะใช้อินเทอร์เน็ต %.2f MB"; +"Evaluation" = "การประเมินผล"; +"Score" = "%@ คะแนน"; +"Select" = "เลือก"; +"Back" = "กลับ"; +"Replay" = "คลิกเพื่อเล่นซ้ำ"; +"Continue" = "ดำเนินการต่อเพื่อเล่น"; +"Skip" = "ข้าม"; +"Feedback" = "ผลตอบรับ"; +"FeedbackStr1" = "ขอบคุณสำหรับผลตอบรับของคุณ"; +"FeedbackStr2" = "เราจะพยายามอย่างต่อเนื่องเพื่อมอบประสบการณ์การโฆษณาที่ดียิ่งขึ้น"; +"FeedbackStr3" = "คุณได้ส่งผลตอบรับแล้ว"; +"FeedbackStr4" = "โปรดอย่าส่งมากกว่าหนึ่งครั้ง"; +"ViewNow" = "ดูตอนนี้"; +"Download" = "รับ"; +"LoadFailure" = "การโหลดล้มเหลว โปรดลองอีกครั้ง"; +"GetRewardAfterWatching" = "ดูวิดีโอแบบเต็มจนจบเพื่อรับรางวัล"; +"GiveUpReward" = "รางวัลการยอมแพ้"; +"ContinueWatching" = "ดูต่อ"; +"CanbeTurnedOffAfter" = "ข้ามหลังจาก %d วิ"; +"CanbeSkipAfter" = "ข้ามหลังจาก %d วิ"; +"Get" = "ดาวน์โหลด"; +"View" = "ดู"; +"ContinuePlaying" = "เล่นต่อ"; +"GetRewardAfterPlaying" = "เล่นจนจบเพื่อรับรางวัล"; +"Wan" = "1 หมื่น"; +"ViewDetail" = "ดู"; +"CommitScore" = "%@ คะแนน"; +"AdsClosed" = "ปิดโฆษณา"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..1c1d6b81 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/th.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 97b0b6667fc5f49b08511404f16747fb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/version.txt b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/version.txt new file mode 100755 index 00000000..ea4fd799 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/version.txt @@ -0,0 +1 @@ +4.3.0.2 diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/version.txt.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/version.txt.meta new file mode 100644 index 00000000..16fd7a59 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/version.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cf1990f3994994d12879a5c2b52168a7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj.meta new file mode 100644 index 00000000..e1f5ded0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a5563cc336fb045d5b3dc304594b4787 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj/BULanguage.strings new file mode 100755 index 00000000..df4dab0f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Nhấp"; +"AD" = "QUẢNG CÁO"; +"PlayConsumed" = "Bạn sẽ mất %.2f MB dữ liệu để phát mục này"; +"Evaluation" = "Đánh giá"; +"Score" = "%@ xếp hạng"; +"Select" = "Chọn"; +"Back" = "Quay lại"; +"Replay" = "Nhấp để phát lại"; +"Continue" = "Tiếp tục phát"; +"Skip" = "Bỏ qua"; +"Feedback" = "Phản hồi"; +"FeedbackStr1" = "Cảm ơn bạn đã phản hồi."; +"FeedbackStr2" = "Chúng tôi sẽ tiếp tục nỗ lực để mang đến cho bạn trải nghiệm quảng cáo tốt hơn."; +"FeedbackStr3" = "Bạn đã gửi phản hồi."; +"FeedbackStr4" = "Vui lòng không gửi nhiều lần!"; +"ViewNow" = "Xem ngay"; +"Download" = "Lấy"; +"LoadFailure" = "Không tải được. Vui lòng thử lại."; +"GetRewardAfterWatching" = "Xem hết video để nhận phần thưởng"; +"GiveUpReward" = "Bỏ phần thưởng"; +"ContinueWatching" = "Tiếp tục xem"; +"CanbeTurnedOffAfter" = "Bỏ qua sau %d s"; +"CanbeSkipAfter" = "Bỏ qua sau %d s"; +"Get" = "Tải"; +"View" = "Xem"; +"ContinuePlaying" = "Tiếp tục chơi"; +"GetRewardAfterPlaying" = "Chơi hết để giành phần thưởng"; +"Wan" = "10 nghìn"; +"ViewDetail" = "Xem"; +"CommitScore" = "%@ xếp hạng"; +"AdsClosed" = "Quảng cáo đã đóng"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..dedfd870 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/vi.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ec611d2c57cc64dc8b988f065cefa0bd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj.meta new file mode 100644 index 00000000..fd4009a0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bf13a19b1542b4c34a4c7062af8160a5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings new file mode 100755 index 00000000..106a75d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by 李盛 on 2019/1/7. + Copyright © 2019 bytedance. All rights reserved. +*/ + +// String + +"Click" = "点击"; +"AD" = "广告"; +"PlayConsumed" = "播放将消耗%.2fMB流量"; +"Evaluation" = "评价"; +"Score" = "%@个评分"; +"Select" = "选择"; +"Wan" = "万"; +"Back" = "返回"; +"Replay" = "点击重播"; +"Continue" = "继续播放"; +"Skip" = "跳过"; +"Feedback" = "反馈"; +"FeedbackStr1" = "感谢您的反馈!"; +"FeedbackStr2" = "我们将为您带来更优质的广告体验"; +"FeedbackStr3" = "您已提交过反馈!"; +"FeedbackStr4" = "请勿反复提交"; +"ViewNow" = "立即查看"; +"Download" = "立即下载"; +"LoadFailure" = "加载失败,点击重试"; +"GetRewardAfterWatching" = "观看完整视频才能获得奖励"; +"GiveUpReward" = "放弃奖励"; +"ContinueWatching" = "继续观看"; +"CanbeTurnedOffAfter" = "%ds后可关闭"; +"CanbeSkipAfter" = "%ds后可跳过"; +"Get" = "下载"; +"View" = "查看"; +"ContinuePlaying" = "继续试玩"; +"GetRewardAfterPlaying" = "试玩后才可领取奖励"; +"ViewDetail" = "查看详情"; +"CommitScore" = "%@个评分"; +"AdsClosed" = "广告已关闭"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..f941960d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 402990f1579334063b386a8c2a653a28 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj.meta new file mode 100644 index 00000000..b7a1f38a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0a05b829aed52414e9fc548fe5f6b5a2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings new file mode 100755 index 00000000..2d332164 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "點擊"; +"AD" = "廣告"; +"PlayConsumed" = "播放將消耗%.2fMB流量"; +"Evaluation" = "評估"; +"Score" = "%@個評分"; +"Select" = "選擇"; +"Back" = "返回"; +"Replay" = "點擊重播"; +"Continue" = "繼續播放"; +"Skip" = "跳過"; +"Feedback" = "迴響"; +"FeedbackStr1" = "感謝您的迴響!"; +"FeedbackStr2" = "我們將為您帶來更優質的廣告體驗"; +"FeedbackStr3" = "您已提交過迴響!"; +"FeedbackStr4" = "請勿反復提交"; +"ViewNow" = "立即查看"; +"Download" = "立即下載"; +"LoadFailure" = "加載失敗,點擊重試"; +"GetRewardAfterWatching" = "觀看完整視頻才能獲得獎勵"; +"GiveUpReward" = "放弃獎勵"; +"ContinueWatching" = "繼續觀看"; +"CanbeTurnedOffAfter" = "%ds後可關閉"; +"CanbeSkipAfter" = "%ds後可跳過"; +"Get" = "下載"; +"View" = "查看"; +"ContinuePlaying" = "繼續試玩"; +"GetRewardAfterPlaying" = "試玩後才可領取獎勵"; +"Wan" = "萬"; +"ViewDetail" = "查看詳情"; +"CommitScore" = "%@個評分"; +"AdsClosed" = "廣告已關閉"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..c15a7849 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 57d367b9cf215493298e573607e33851 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers.meta new file mode 100644 index 00000000..6509d5e4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 728e9e8cdd89a4ef29e8d6e1712e2a3d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers/AnyThinkTTAdapter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers/AnyThinkTTAdapter.h new file mode 100755 index 00000000..a8a2bac1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers/AnyThinkTTAdapter.h @@ -0,0 +1,19 @@ +// +// AnyThinkTTAdapter.h +// AnyThinkTTAdapter +// +// Created by GUO PENG on 2021/8/30. +// Copyright © 2021 AnyThink. All rights reserved. +// + +#import + +//! Project version number for AnyThinkTTAdapter. +FOUNDATION_EXPORT double AnyThinkTTAdapterVersionNumber; + +//! Project version string for AnyThinkTTAdapter. +FOUNDATION_EXPORT const unsigned char AnyThinkTTAdapterVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers/AnyThinkTTAdapter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers/AnyThinkTTAdapter.h.meta new file mode 100644 index 00000000..e317a0d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Headers/AnyThinkTTAdapter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e9a655d7f989e487086c5f7a750cceb6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Info.plist b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Info.plist new file mode 100755 index 00000000..599ba6ff Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Info.plist differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Info.plist.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Info.plist.meta new file mode 100644 index 00000000..5e9f5f17 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 31430e042e29348ad8779465182a1073 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules.meta new file mode 100644 index 00000000..6d5adc27 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9cf0e1ece82814e2d8efcbf9209bb39b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules/module.modulemap new file mode 100755 index 00000000..44c3f0e5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module AnyThinkTTAdapter { + umbrella header "AnyThinkTTAdapter.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..3d2cf092 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/AnyThinkTTAdapter.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 61a4386226db54b999108f01ac6a9ae7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle.meta new file mode 100644 index 00000000..bc7770aa --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 1b35999b821f442419298205396a9de2 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + Exclude iOS: 0 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + iPhone: iOS + second: + enabled: 1 + settings: + AddToEmbeddedBinaries: false + CPU: AnyCPU + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Assets.car b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Assets.car new file mode 100755 index 00000000..42d9f16c Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Assets.car differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Assets.car.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Assets.car.meta new file mode 100644 index 00000000..7f009d61 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Assets.car.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d86054c28d5f4518ae2bde27c9344ef +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Info.plist b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Info.plist new file mode 100755 index 00000000..c34c74f2 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Info.plist differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Info.plist.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Info.plist.meta new file mode 100644 index 00000000..77361400 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 33f35853ac09e4a1e85f507a9e87c749 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj.meta new file mode 100644 index 00000000..29d99467 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d5a55b35978af4ffc8ee828ed4d33905 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj/BULanguage.strings new file mode 100755 index 00000000..f55d7cc2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "انقر فوق"; +"AD" = "الإعلان"; +"PlayConsumed" = "سيؤدي تشغيل هذا إلى استخدام بيانات تبلغ %.2f ميجابايت"; +"Evaluation" = "التقييم"; +"Score" = "تصنيف (تصنيفات) %@"; +"Select" = "اختر"; +"Back" = "رجوع"; +"Replay" = "انقر لإعادة التشغيل"; +"Continue" = "المتابعة للتشغيل"; +"Skip" = "تخطي"; +"Feedback" = "التعليقات"; +"FeedbackStr1" = "شكرًا لك على تعليقك."; +"FeedbackStr2" = "سنبذل قصارى جهدنا لمنحك تجربة إعلانية أفضل"; +"FeedbackStr3" = "لقد أرسلت تعليق بالفعل."; +"FeedbackStr4" = "يرجى عدم الإرسال أكثر من مرة!"; +"ViewNow" = "عرض الآن"; +"Download" = "تنزيل"; +"LoadFailure" = "تعذر التحميل. يرجى المحاولة مرة أخرى."; +"GetRewardAfterWatching" = "قم بإستكمال مشاهدة الفيديو بالكامل للحصول على مكافآت"; +"GiveUpReward" = "تخطي المكافآت"; +"ContinueWatching" = "متابعة المشاهدة"; +"CanbeTurnedOffAfter" = "s %d تخطي بعد"; +"CanbeSkipAfter" = "s %d تخطي بعد"; +"Get" = "تنزيل"; +"View" = "عرض"; +"ContinuePlaying" = "متابعة التشغيل"; +"GetRewardAfterPlaying" = "قم بإستكمال التشغيل للحصول على المكافآت"; +"Wan" = "10 ألف"; +"ViewDetail" = "عرض"; +"CommitScore" = "%@ تصنيف (تصنيفات)"; +"AdsClosed" = "االإعلانات مغلقة"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..7ff3d858 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ar.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 37d5d6c62510043d09e283b3c079c8f0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_dynamic_default.json b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_dynamic_default.json new file mode 100755 index 00000000..4e6a1b33 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_dynamic_default.json @@ -0,0 +1 @@ +{"text":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"button":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#1A73E8","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"download-progress-button":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":4,"paddingBottom":10,"paddingLeft":4,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"fillButton":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":4,"paddingBottom":10,"paddingLeft":4,"borderSize":1,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"vessel":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"priceButton":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":12,"paddingRight":28,"paddingBottom":12,"paddingLeft":28,"borderSize":0,"borderColor":"none","borderStyle":"solid","borderRadius":40,"bgColor":"#FF523B","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"color":"#ffffff","bgGradient":"linear-gradient(270deg, #ED2642 0%, #FF523B 100%)","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1},"themeValues":{},"areaType":2,"clickType":""},"laceButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#895434","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"cardButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"arrowButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#ff113b","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"GainButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":30,"paddingBottom":4,"paddingLeft":30,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#FF026C","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"bracketsButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":30,"paddingBottom":4,"paddingLeft":30,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#FF026C","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"svg-button-6":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"svg-button-7":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"colourMixtureButton":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":10,"paddingBottom":4,"paddingLeft":10,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"#00e7ff","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"image":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"app-icon":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"icon","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"icon"},"dislike":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":1,"paddingRight":3,"paddingBottom":1,"paddingLeft":3,"borderSize":1,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":8,"bgColor":"transparent","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":8,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.34)","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"rgba(255, 255, 255, 70)","borderColor":"rgba(255, 255, 255, 70)"},"areaType":3,"clickType":"dislike"},"close":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":14,"bgColor":"transparent","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.34)","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"rgba(255, 255, 255, 70)","borderColor":"rgba(255, 255, 255, 70)"},"areaType":3,"clickType":"dislike"},"close-fill":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":16,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"bgColor":"#9B9B9B"},"areaType":3,"clickType":"dislike"},"skip":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":1,"paddingRight":3,"paddingBottom":1,"paddingLeft":3,"borderSize":1,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":8,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":8,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.34)","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"rgba(255, 255, 255, 70)","borderColor":"rgba(255, 255, 255, 70)","bgColor":"rgba(255, 255, 255, 0)"},"areaType":0,"clickType":"skip"},"icon":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"请输入内容","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"icon-download":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"image-long":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":0.5625,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"image-square":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"image-wide":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.78,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"image-splash":{"values":{"widthMode":"flex","width":1,"heightMode":"flex","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"image-cover":{"values":{"widthMode":"flex","width":1,"heightMode":"flex","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"image"},"swiper":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":180,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":12,"paddingBottom":0,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.screenshot","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"swiperLoop":false,"swiperAutoplay":false,"swiperAutoplayDelay":1500,"swiperAutoplayStoppable":true,"swiperHasBorderRadius":true,"swiperBorderLess":false,"showPrevNextPreview":true,"centeredSlides":"vertical-only"},"themeValues":{},"areaType":2,"clickType":"image"},"stack-swiper":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":180,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":30,"paddingBottom":0,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.screenshot","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"stretch":0.9,"swiperAutoplay":false,"swiperAutoplayDelay":1500,"swiperAutoplayStoppable":true,"swiperHasBorderRadius":true,"swiperBorderLess":false},"themeValues":{},"areaType":2,"clickType":"image"},"mountain-swiper":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":180,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":12,"paddingBottom":0,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.screenshot","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"stretch":0.7,"swiperAutoplay":false,"swiperAutoplayDelay":1500,"swiperAutoplayStoppable":true,"swiperHasBorderRadius":true,"swiperBorderLess":false},"themeValues":{},"areaType":2,"clickType":"image"},"video":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video","clickArea":"video","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","fixBorderStyleType":0,"showTimeProgress":true,"showPlayButton":true,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":99,"clickType":"video"},"video-hd":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.78,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video","clickArea":"video","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","fixBorderStyleType":0,"showTimeProgress":true,"showPlayButton":true,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":99,"clickType":"video"},"video-vd":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":0.5625,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video","clickArea":"video","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","fixBorderStyleType":0,"showTimeProgress":true,"showPlayButton":true,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":99,"clickType":"video"},"play":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":16,"paddingRight":16,"paddingBottom":16,"paddingLeft":16,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":30,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"请输入内容","clickArea":"none","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":28,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":""},"video-image-budget":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","fixBorderStyleType":0,"showTimeProgress":true,"showPlayButton":true,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","imageObjectFit":"contain","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"video":{"isDataFixed":false,"data":"video","materialCenterData":-999,"showBulletScreen":false,"bulletScreenStart":0,"bulletScreenEnd":0,"bulletScreenData":"dynamic_creative.danmu","clickArea":"video","clickTigger":"click","showTimeProgress":false,"showPlayButton":true},"image":{"isDataFixed":false,"data":"image.0","materialCenterData":-999,"clickArea":"creative","clickTigger":"click","imageType":"static-image","imageObjectFit":"contain"}},"themeValues":{},"areaType":2,"clickType":"image"},"muted":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":20,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"请输入内容","clickArea":"none","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":20,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"muted"},"barrage":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":20,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"请输入内容","clickArea":"none","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":20,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":""},"subtitle":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"description","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":15,"fontModel":"","fontWeight":500,"color":"#999999","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"subtitle"},"time":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#999999","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"time"},"score-count":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"app.comment_num","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#999999","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"score_count"},"score-count-type-2":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"app.comment_num","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#999999","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"score_count"},"scoreCountWithIcon":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"text_star":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"app.score","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"star"},"text_category":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"modal-vessel":{"values":{"widthMode":"fixed","width":325,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"#FFFFFF","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"modalTriggerType":"0"},"themeValues":{},"areaType":2,"clickType":"modal"},"creative-component-vessel":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"#FFFFFF","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"creative-playable-bait":{"values":{"widthMode":"fixed","width":94,"heightMode":"fixed","height":28,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.show_playable","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"bgImgUrl":"playable-bait"},"themeValues":{},"areaType":2,"clickType":"mnpl_guide_comp_click"},"float-layer-text":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"float-layer":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"pauseDuration":2000},"themeValues":{},"areaType":2,"clickType":""},"downloadWithIcon":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"downloadDraggable":{"values":{"widthMode":"fixed","width":44,"heightMode":"fixed","height":44,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"rgba(0, 0, 0, 0.6)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"image-group":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"shopping-pendant-brick-base":{"values":{"widthMode":"fixed","width":320,"heightMode":"scale","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-with-text-base":{"values":{"widthMode":"fixed","width":320,"heightMode":"scale","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-hot":{"values":{"widthMode":"fixed","width":160,"heightMode":"scale","height":1.4678899082568808,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"rgb(233, 71, 38)","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-cart":{"values":{"widthMode":"fixed","width":128,"heightMode":"scale","height":1,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-fire-explode":{"values":{"widthMode":"fixed","width":198.3,"heightMode":"scale","height":3.873046875,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"rgb(233, 71, 38)","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-crazy-buy":{"values":{"widthMode":"fixed","width":162,"heightMode":"scale","height":0.7864077669902912,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-red-envelope":{"values":{"widthMode":"fixed","width":138,"heightMode":"scale","height":0.8903225806451613,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-shopping-double-11-promotion-red":{"values":{"widthMode":"fixed","width":248,"heightMode":"scale","height":3.263157894736842,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-shopping-double-11-promotion-blue":{"values":{"widthMode":"fixed","width":248,"heightMode":"scale","height":3.263157894736842,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-shopping-click-to-get-reward":{"values":{"widthMode":"fixed","width":240,"heightMode":"scale","height":1.3333333333333333,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-shopping-click-to-earn-money":{"values":{"widthMode":"fixed","width":240,"heightMode":"scale","height":1.3333333333333333,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-618-red":{"values":{"widthMode":"fixed","width":248,"heightMode":"scale","height":3.263157894736842,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping-pendant-brick-618-blue":{"values":{"widthMode":"fixed","width":248,"heightMode":"scale","height":3.263157894736842,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":1,"borderColor":"transparent","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#333","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","borderWidth":0},"areaType":2,"clickType":"sale_pendant"},"shopping_promotion_logo":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"低价热销","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#2a90d7","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"union_logo"},"shopping_promotion":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"paddingTop":2,"paddingRight":6,"paddingBottom":2,"paddingLeft":6,"borderSize":0,"borderRadius":12,"bgColor":"#FF505C"},"themeValues":{},"areaType":1,"clickType":""},"inner_text":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"shopping_cart":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":12,"paddingRight":20,"paddingBottom":12,"paddingLeft":20,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":40,"bgColor":"#FF505C","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":"shopping_cart"},"shopping_buyer_num":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":"shopping_buyer_num"},"time_reverse":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"86400","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#222222","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"time_reverse"},"count_down":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0},"themeValues":{},"areaType":1,"clickType":"shopping_time_down"},"title":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"title","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":19,"fontModel":"","fontWeight":500,"color":"#222222","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"highlightWord":false,"quoteWord":false},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"title"},"gift_package_image":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"gift_package_button_image":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"gift_package":{"values":{"widthMode":"flex","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":5,"paddingBottom":5,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999},"themeValues":{},"areaType":2,"clickType":"shopping_gift_package"},"shopping_price":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.price.0","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#E02E24","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"price"},"product-recommend-button":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":4,"paddingBottom":10,"paddingLeft":4,"borderSize":1,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"#1A73E8","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"product-recommend":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":8,"paddingRight":8,"paddingBottom":5,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"flex-start","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"lottery_bg":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"lottery_button":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"lottery":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":5,"paddingBottom":5,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":"shopping_lottery"},"commend-count":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":5,"paddingBottom":0,"paddingLeft":5,"borderSize":1,"borderColor":"#FF505C","borderStyle":"solid","borderRadius":3,"bgColor":"transparent","isDataFixed":true,"data":"好评:{{dynamic_creative.dpa_mark}}%","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":500,"color":"#FF505C","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"highlightWord":false,"quoteWord":false,"promotionPhraseStyle":"border"},"areaType":2,"clickType":"title"},"sale-count":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":5,"paddingBottom":0,"paddingLeft":5,"borderSize":1,"borderColor":"#FF505C","borderStyle":"solid","borderRadius":3,"bgColor":"transparent","isDataFixed":true,"data":"销量:{{dynamic_creative.dpa_sales}}件","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":500,"color":"#FF505C","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"highlightWord":false,"quoteWord":false,"promotionPhraseStyle":"border"},"areaType":2,"clickType":"title"},"live-video-streaming":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":3,"paddingRight":4,"paddingBottom":3,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":2,"bgColor":"#F93F3F","isDataFixed":true,"data":"直播中","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"split-line":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":1,"borderSize":0,"bgColor":"#333333","paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"e-commerce-coupon-bg-image":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"e-commerce-coupon":{"values":{"widthMode":"auto","heightMode":"auto","paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0},"themeValues":{},"areaType":1,"clickType":""},"e-commerce-double-countdowns-countdown-text":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":8,"paddingBottom":8,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"距开始剩余,距结束剩余","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FA2D6C","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns-day":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FA2D6C","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns-hour":{"values":{"widthMode":"fixed","width":28,"heightMode":"fixed","height":30,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":4,"bgColor":"rgba(22, 24, 35, 0.03)","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":15,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns-minute":{"values":{"widthMode":"fixed","width":28,"heightMode":"fixed","height":30,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":4,"bgColor":"rgba(22, 24, 35, 0.03)","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":15,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns-second":{"values":{"widthMode":"fixed","width":28,"heightMode":"fixed","height":30,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":4,"bgColor":"rgba(22, 24, 35, 0.03)","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":15,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.4,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_time_down"},"e-commerce-double-countdowns":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.ecommerce_count_down","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":"shopping_time_down"},"spring-festival-button-1":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":50,"paddingBottom":10,"paddingLeft":50,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FCEBA9","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-2":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":30,"paddingBottom":10,"paddingLeft":30,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FCEBA9","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-3":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":30,"paddingBottom":10,"paddingLeft":30,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FCEBA9","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-4":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-5":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-6":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-7":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-button-8":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":20,"paddingBottom":10,"paddingLeft":20,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFDEBA","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0"},"areaType":2,"clickType":"button"},"spring-festival-decoration-1":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":0.68,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-2":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":0.54,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-3":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":0.77,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-4":{"values":{"widthMode":"fixed","width":60,"heightMode":"scale","height":0.76,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-5":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-6":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":2.38,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-7":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":5.07,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-8":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":2.39,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-9":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.76,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"spring-festival-decoration-10":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":5.88,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"spring_festival_decoration"},"timedown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"time_down"},"reward-countdown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":4,"marginBottom":0,"marginLeft":4,"paddingTop":1,"paddingRight":0,"paddingBottom":1,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.2,"textAlign":"right","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"time_down"},"reward-icon":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":2,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#2a90d7","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"rewardIconType":"礼物"},"areaType":0,"clickType":""},"reward-skip-btn":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":1,"paddingRight":3,"paddingBottom":1,"paddingLeft":3,"borderSize":1,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":8,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":8,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.34)","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"skip"},"skip-reward":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":8,"paddingBottom":4,"paddingLeft":8,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":0,"clickType":""},"skip-with-time-skip-btn":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":4,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.3,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"skip"},"skip-with-time-countdown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.3,"textAlign":"right","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"time_down"},"skip-with-time":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":2,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":8,"paddingBottom":5,"paddingLeft":8,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontSize":12,"textAlign":"center"},"themeValues":{},"areaType":0,"clickType":""},"game-decorator-title-bg":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-decorator-title":{"values":{"widthMode":"fixed","width":300,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"imageColor":""},"themeValues":{},"areaType":2,"clickType":""},"game-decorator-corner-bg":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-decorator-corner":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"imageColor":""},"themeValues":{},"areaType":2,"clickType":""},"game-exchange-code":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":98,"position":"0","borderSize":0,"isDataFixed":true,"data":"剩余礼券:{{dynamic_creative.coupons_left}}个"},"themeValues":{},"areaType":2,"clickType":""},"game-exchange-code-button":{"values":{"widthMode":"auto","width":1,"heightMode":"fixed","height":28,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":8,"paddingRight":12,"paddingBottom":8,"paddingLeft":12,"borderSize":0,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"#F53165","isDataFixed":false,"data":"button_text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","justifyHorizontal":"center","justifyVertical":"center","alignItems":"center"},"areaType":2,"clickType":"button"},"iconText":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"title","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.5)","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"icon":"3"},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"game-exchange-code-info":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"剩余礼券:{{dynamic_creative.coupons_left}}个","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"rgba(22, 24, 35, 0.5)","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"icon":"3","dataNeedI18n":true,"iconType":"3","showIcon":false},"areaType":2,"clickType":""},"related-item-vessel":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"related-card-layout":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":1070,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":10,"paddingBottom":10,"paddingLeft":10,"borderSize":0,"borderColor":"rgba(0,0,0,0)","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-between","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"related-vertical-layout":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","justifyHorizontal":"flex-start","height":40,"borderSize":0,"borderColor":"rgba(0,0,0,0)","paddingTop":8,"paddingRight":15,"paddingBottom":5,"paddingLeft":15,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"webview-close":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"back":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":""},"forwards":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":6,"paddingRight":6,"paddingBottom":6,"paddingLeft":6,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":14,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#000000","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":""},"decorator-calc-color-style-1":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.3,"borderSize":0,"paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"decorator-calc-color-style-2":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.3,"borderSize":0,"paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"decorator-calc-color-style-3":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.3,"borderSize":0,"paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"decorator-calc-color-style-4":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":4.3,"borderSize":0,"paddingTop":0,"paddingBottom":0,"paddingLeft":0,"paddingRight":0,"position":"0"},"themeValues":{},"areaType":1,"clickType":""},"tag-group":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"flex-start","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":"tag"},"text-vessel__1":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-vessel__2":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-vessel__3":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-vessel__4":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-icon__5":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"text-vessel__5":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"text-icon__6":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"text-vessel__6":{"values":{"widthMode":"fixed","width":375,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":5,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"fontFamily":"PingFangSC-Regular","tagMaxCount":5,"tagStyleType":"backgroundColor","tagData":"dynamic_creative.creative_tags"},"themeValues":{},"areaType":2,"clickType":""},"skip-with-countdowns-skip-countdown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":4,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"time_down"},"skip-with-countdowns-skip-btn":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":4,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"text","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.4,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"skip"},"skip-with-countdowns-video-countdown":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.video_duration","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#FFFFFF","letterSpacing":0,"lineHeight":1.4,"textAlign":"right","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":0,"clickType":"time_down"},"skip-countdowns":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":8,"paddingBottom":4,"paddingLeft":8,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":0,"clickType":""},"downloadButton":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":20,"marginBottom":0,"marginLeft":20,"paddingTop":12,"paddingRight":0,"paddingBottom":12,"paddingLeft":0,"borderSize":1,"borderColor":"#1A73E8","borderStyle":"solid","borderRadius":2,"bgColor":"transparent","isDataFixed":true,"data":"立即下载","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":16,"fontModel":"","fontWeight":400,"color":"#1A73E8","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"atomButtonText":true,"showIcon":false,"iconType":"0","idleColor":"#f85959","idleTextColor":"#ffffff","reachedColor":"#f85959","unreachedColor":"#1d1d1d","downloadTextColor":"#ffffff","downloadTextIdle":"点击下载","downloadTextStart":"点击下载","downloadTextActive":"下载中","downloadTextPaused":"继续下载","downloadTextFailed":"重新下载","downloadTextFinished":"立即安装","downloadTextInstalled":"立即打开"},"areaType":2,"clickType":"button"},"custom-component-vessel":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":2,"clickType":""},"empty":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999},"themeValues":{},"areaType":2,"clickType":""},"feedback-dislike":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":5,"paddingRight":8,"paddingBottom":5,"paddingLeft":8,"borderSize":0,"borderColor":"rgba(22, 24, 35, 0.34)","borderStyle":"solid","borderRadius":14,"bgColor":"rgba(22, 24, 35, 0.4)","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":14,"fontModel":"","fontWeight":400,"color":"#ffffff","letterSpacing":0,"lineHeight":1.3,"textAlign":"center","lineFeed":true,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"bgColor":"#9B9B9B"},"areaType":3,"clickType":"dislike"},"logo":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":1,"paddingRight":2,"paddingBottom":1,"paddingLeft":2,"borderSize":1,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":3,"bgColor":"transparent","isDataFixed":true,"data":"ad","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#2a90d7","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"openPrivacy":false},"areaType":2,"clickType":"union_logo"},"star":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"app.score","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":20,"fontModel":"","fontWeight":400,"color":"#FFC642","letterSpacing":0,"lineHeight":1,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"starMargin":0,"starIconType":"1"},"areaType":2,"clickType":"star"},"logo-union":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":3,"paddingRight":0,"paddingBottom":3,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":2,"bgColor":"rgba(22, 24, 35, 0.2)","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"openPrivacy":false},"themeValues":{},"areaType":2,"clickType":""},"progress":{"values":{"widthMode":"flex","width":1,"heightMode":"fixed","height":2,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"#999999","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999},"themeValues":{},"areaType":2,"clickType":""},"source":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"source|app.app_name","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#999999","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":"source"},"root":{"values":{"widthMode":"fixed","width":375,"heightMode":"fixed","height":375,"pageMode":"0","paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"bgColor":"#ffffff","borderSize":0,"borderRadius":0,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","borderStyle":"solid","clickArea":"creative","clickTigger":"click","bindEventBy":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"bgColor":"rgba(255,255,255,0)"},"areaType":2,"clickType":""},"footer":{"values":{"widthMode":"flex","width":1,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":10,"paddingRight":12,"paddingBottom":10,"paddingLeft":12,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false},"themeValues":{},"areaType":2,"clickType":""},"shopping_keyword":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":2,"paddingRight":8,"paddingBottom":2,"paddingLeft":8,"borderSize":1,"borderColor":"#DBDBDB","borderStyle":"solid","borderRadius":3,"bgColor":"transparent","isDataFixed":true,"data":"超视野","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":10,"fontModel":"","fontWeight":400,"color":"#DBDBDB","letterSpacing":0,"lineHeight":1,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"areaType":2,"clickType":"shopping_keyword"},"playable":{"values":{"widthMode":"flex","width":320,"heightMode":"flex","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"video.endcard","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#161823","letterSpacing":0,"lineHeight":1.2,"textAlign":"left","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{},"areaType":2,"clickType":""},"game-icon-fire":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-fire-text1":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-fire-text2":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-flag1":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-flag2":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-corner1":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-corner2":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon-corner3":{"values":{"widthMode":"flex","width":1,"heightMode":"scale","height":1.52,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"image.0.url","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","imageType":"static-image","fixBorderStyleType":0,"imageObjectFit":"none","interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"useLeisureInteract":false,"bgGauseBlur":false,"bgGauseBlurRadius":3},"themeValues":{},"areaType":2,"clickType":"button"},"game-icon":{"values":{"widthMode":"auto","width":1,"heightMode":"auto","height":80,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"borderSize":0,"borderColor":"#000000","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"justifyHorizontal":"space-around","justifyVertical":"flex-start","alignItems":"flex-start","useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"interactType":"","interactText":"","interactValidate":false,"interactVisibleTime":0,"interactHiddenTime":5,"interactSlideDirection":"2","interactI18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""},"popAppstore":false,"isAppStoreAutoOpen":false,"appStoreFullScreen":false,"iconStyle":"fire"},"themeValues":{},"areaType":2,"clickType":""},"atom-app-icon":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"widthMode":"fixed","heightMode":"scale","width":50,"height":1,"borderSize":1,"borderColor":"#e9e9e9","imageType":"static-image"},"themeValues":{},"areaType":1,"clickType":""},"atom-button":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"atomButtonText":true,"borderSize":0,"paddingLeft":30,"paddingRight":30,"paddingTop":10,"paddingBottom":10,"fontModel":""},"themeValues":{},"areaType":1,"clickType":""},"atom-decoration":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"borderSize":0},"themeValues":{},"areaType":1,"clickType":""},"atom-star":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"borderSize":0,"fontSize":14,"fontModel":""},"themeValues":{},"areaType":1,"clickType":""},"atom-text-icon":{"values":{"atomComp":[0],"atomFontFamily":[0],"useAtomFontFamily":false,"atomCompPreview":1,"atomFontFamilyPreview":1,"atomBgColor":[0],"useAtomBgColor":false,"atomBgColorPreview":1,"atomBgStartColor":[0],"useAtomBgStartColor":false,"atomBgStartColorPreview":1,"atomBgEndColor":[0],"useAtomBgEndColor":false,"atomBgEndColorPreview":1,"atomBtnAnimation":[0],"useAtomBtnAnimation":false,"atomBtnAnimationPreview":1,"borderSize":0,"tagMaxCount":5},"themeValues":{},"areaType":1,"clickType":""},"app-version":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.app_version","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#B0B0B0","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"development-name":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":false,"data":"dynamic_creative.developer_name","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#B0B0B0","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"privacy-detail":{"values":{"widthMode":"auto","width":320,"heightMode":"auto","height":40,"position":"0","align":"0","marginTop":0,"marginRight":0,"marginBottom":0,"marginLeft":0,"paddingTop":4,"paddingRight":4,"paddingBottom":4,"paddingLeft":4,"borderSize":0,"borderColor":"#2a90d7","borderStyle":"solid","borderRadius":0,"bgColor":"transparent","isDataFixed":true,"data":"","clickArea":"creative","clickTigger":"click","bindEventBy":"none","timingStart":0,"timingEnd":65536,"materialCenterData":-999,"bgMaterialCenterCalcColor":-999,"borderMaterialCenterCalcColor":-999,"fontFamily":"PingFangSC-Regular","fontSize":12,"fontModel":"","fontWeight":400,"color":"#B0B0B0","letterSpacing":0,"lineHeight":1.2,"textAlign":"center","lineFeed":false,"colorCg":0,"allowTextFlow":false,"textFlowDuration":3,"lineLimit":false,"lineCount":2,"lineThrough":false,"textFlowType":"0","useAtomFontFamily":false,"atomFontFamily":[0],"atomFontFamilyPreview":1,"useAtomBgColor":false,"atomBgColor":[0],"atomBgColorPreview":1,"useAtomBgStartColor":false,"atomBgStartColor":[0],"atomBgStartColorPreview":1,"useAtomBgEndColor":false,"atomBgEndColor":[0],"atomBgEndColorPreview":1,"useAtomBtnAnimation":false,"atomBtnAnimation":[0],"atomBtnAnimationPreview":1,"textMaterialCenterCalcColor":-999,"i18n":{"cn":"","en":"","japan":"","korea":"","zhHant":"","th":"","vi":"","id":"","ru":"","fr":"","de":"","it":"","es":"","hi":"","pt":""}},"themeValues":{"color":"#ffffff"},"areaType":2,"clickType":""},"related-recommend-style-one":{"values":{"widthMode":"flex","width":320,"heightMode":"fixed","height":98,"position":"0","borderSize":0,"recommendDirection":"横向","recommendBgColor":"rgb(243, 243, 243, 0.5)","recommendFontColor":"#757575","recommendTitle":"相关推荐","recommendDisplayTime":0},"themeValues":{},"areaType":1,"clickType":""}} \ No newline at end of file diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_dynamic_default.json.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_dynamic_default.json.meta new file mode 100644 index 00000000..fded8653 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_dynamic_default.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06286b314c8684fe093008051aff25fc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@2x.data b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@2x.data new file mode 100755 index 00000000..acd4e1a5 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@2x.data differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@2x.data.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@2x.data.meta new file mode 100644 index 00000000..73f7c7e2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@2x.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bcd5ef1aadede42479325efd678beca6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@3x.data b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@3x.data new file mode 100755 index 00000000..498087f0 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@3x.data differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@3x.data.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@3x.data.meta new file mode 100644 index 00000000..533af0ac --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_logo@3x.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1b89fc3c8093d43b790b924a8b54ca31 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_slienceAudio.aiff b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_slienceAudio.aiff new file mode 100755 index 00000000..cb4590da Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_slienceAudio.aiff differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_slienceAudio.aiff.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_slienceAudio.aiff.meta new file mode 100644 index 00000000..bb326e22 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/bu_slienceAudio.aiff.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 016ccf2a87bf34429b5b8d309e4839ea +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj.meta new file mode 100644 index 00000000..dac8b545 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41a3cfc309a224af5b0dc3e48b3d437a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj/BULanguage.strings new file mode 100755 index 00000000..67609d7a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Klick"; +"AD" = "Anzeige"; +"PlayConsumed" = "Bei der Wiedergabe werden %.2f MB Daten verbraucht"; +"Evaluation" = "Bewertung"; +"Score" = "%@ Rating(s)"; +"Select" = "Auswählen"; +"Back" = "Zurück"; +"Replay" = "Zum erneuten Wiedergeben klicken"; +"Continue" = "Weiter wiedergeben"; +"Skip" = "Überspringen"; +"Feedback" = "Feedback"; +"FeedbackStr1" = "Vielen Dank für Ihr Feedback."; +"FeedbackStr2" = "Wir sind bemüht, Ihre Werbeerfahrung weiter zu verbessern."; +"FeedbackStr3" = "Sie haben bereits Feedback übermittelt."; +"FeedbackStr4" = "Bitte senden Sie Ihr Feedback nicht mehrfach!"; +"ViewNow" = "Jetzt ansehen"; +"Download" = "Abrufen"; +"LoadFailure" = "Ladefehler. Bitte versuchen Sie es erneut."; +"GetRewardAfterWatching" = "Sehen Sie sich das Video vollständig an, um Prämien zu erhalten."; +"GiveUpReward" = "Auf Prämien verzichten"; +"ContinueWatching" = "Weiter ansehen"; +"CanbeTurnedOffAfter" = "Nach %d s überspringen"; +"CanbeSkipAfter" = "Nach %d s überspringen"; +"Get" = "Herunterladen"; +"View" = "Ansehen"; +"ContinuePlaying" = "Weiter wiedergeben"; +"GetRewardAfterPlaying" = "Bis zum Ende wiedergeben, um Prämien zu erhalten"; +"Wan" = "Zehntausend"; +"ViewDetail" = "Ansehen"; +"CommitScore" = "%@ Rating(s)"; +"AdsClosed" = "Anzeigen geschlossen"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..82381571 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/de.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6de2447edc1414a42a7ad4e818bee9b6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj.meta new file mode 100644 index 00000000..5f68f107 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92bd6dadc2f6f41c689411709f69730c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj/BULanguage.strings new file mode 100755 index 00000000..121d6111 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by 李盛 on 2019/1/7. + Copyright © 2019 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Click"; +"AD" = "AD"; +"PlayConsumed" = "%.2fMB traffic will be consumed if you play it"; +"Evaluation" = "Evaluation"; +"Score" = "%@ score"; +"Select" = "Select"; +"Wan" = "";//英文逻辑不一样,为空就好 +"Back" = "Back"; +"Replay" = "Click to replay"; +"Continue" = "Continue to play"; +"Skip" = "Skip"; +"Feedback" = "Feedback"; +"FeedbackStr1" = "Thank you for your feedback."; +"FeedbackStr2" = "We will try to do better."; +"FeedbackStr3" = "You have submitted feedback."; +"FeedbackStr4" = "please don’t submit it again!"; +"ViewNow" = "View now"; +"Download" = "Download"; +"LoadFailure" = "Failed to load, and click to try again"; +"GetRewardAfterWatching" = "Get reward after watching the full video"; +"GiveUpReward" = "Abandon"; +"ContinueWatching" = "Continue watching"; +"CanbeTurnedOffAfter" = "Skip after %ds"; +"CanbeSkipAfter" = "Skip after %ds"; +"Get" = "Get"; +"View" = "View"; +"ContinuePlaying" = "Keep on"; +"GetRewardAfterPlaying" = "Finish playing to get rewards!"; +"ViewDetail" = "View"; +"CommitScore" = "%@ score"; +"AdsClosed" = "Ads Closed"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..13904fd5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/en.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e261b58e963be46eb87573451cf3f324 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj.meta new file mode 100644 index 00000000..af109e2f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d36c7317e02aa49eaacc8769c31c865c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj/BULanguage.strings new file mode 100755 index 00000000..29b7e86a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Clic"; +"AD" = "Anuncio"; +"PlayConsumed" = "Reproducir esto usará %.2f MB de datos"; +"Evaluation" = "Evaluación"; +"Score" = "%@ valoración(es)"; +"Select" = "Seleccionar"; +"Back" = "Volver"; +"Replay" = "Haga clic para volver a reproducir"; +"Continue" = "Seguir con la reproducción"; +"Skip" = "Omitir"; +"Feedback" = "Comentarios"; +"FeedbackStr1" = "Gracias por sus comentarios."; +"FeedbackStr2" = "Seguiremos esforzándonos por ofrecerle una mejor experiencia publicitaria."; +"FeedbackStr3" = "Ya ha enviado sus comentarios."; +"FeedbackStr4" = "No lo envíe más de una vez."; +"ViewNow" = "Ver ahora"; +"Download" = "Obtener"; +"LoadFailure" = "Error en la carga. Inténtelo de nuevo."; +"GetRewardAfterWatching" = "Termine de ver el vídeo por completo para recibir recompensas"; +"GiveUpReward" = "Renunciar a las recompensas"; +"ContinueWatching" = "Seguir viendo"; +"CanbeTurnedOffAfter" = "Omitir después de %d s"; +"CanbeSkipAfter" = "Omitir después de %d s"; +"Get" = "Descargar"; +"View" = "Ver"; +"ContinuePlaying" = "Seguir con la reproducción"; +"GetRewardAfterPlaying" = "Terminar la reproducción para reclamar recompensas"; +"Wan" = "10"; +"ViewDetail" = "Ver"; +"CommitScore" = "%@ valoración(es)"; +"AdsClosed" = "Anuncios cerrados"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..0764de31 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/es.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 17454f37486ba4346ad844f4a338709f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj.meta new file mode 100644 index 00000000..46486419 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dee8bb35f798c4f449034e73b4e10c71 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj/BULanguage.strings new file mode 100755 index 00000000..dc874449 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Clic"; +"AD" = "ANNONCE"; +"PlayConsumed" = "%.2f Mo de données seront utilisés pour la lecture"; +"Evaluation" = "Évaluation"; +"Score" = "%@ cote(s)"; +"Select" = "Sélectionner"; +"Back" = "Retour"; +"Replay" = "Cliquer pour relancer la lecture"; +"Continue" = "Continuer pour lancer la lecture"; +"Skip" = "Passer"; +"Feedback" = "Commentaire"; +"FeedbackStr1" = "Merci pour votre commentaire."; +"FeedbackStr2" = "Nous continuerons à mettre tout en œuvre pour vous offrir une meilleure expérience publicitaire."; +"FeedbackStr3" = "Vous avez déjà envoyé un commentaire."; +"FeedbackStr4" = "Merci de ne pas envoyer un commentaire plusieurs fois !"; +"ViewNow" = "Regarder"; +"Download" = "Obtenir"; +"LoadFailure" = "Téléchargement impossible. Veuillez réessayer."; +"GetRewardAfterWatching" = "Regardez la vidéo jusqu'à la fin pour obtenir vos récompenses"; +"GiveUpReward" = "Renoncer aux récompenses"; +"ContinueWatching" = "Continuer à regarder"; +"CanbeTurnedOffAfter" = "Passer après %d s"; +"CanbeSkipAfter" = "Passer après %d s"; +"Get" = "Télécharger"; +"View" = "Voir"; +"ContinuePlaying" = "Poursuivre la lecture"; +"GetRewardAfterPlaying" = "Terminez la lecture pour obtenir vos récompenses"; +"Wan" = "10 000"; +"ViewDetail" = "Voir"; +"CommitScore" = "%@ cote(s)"; +"AdsClosed" = "Annonces fermées"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..94758d1b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/fr.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ef2828cb4243a486e8ddf56f470a39a0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj.meta new file mode 100644 index 00000000..26cb62bc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 21982bed134b348d69d4bacea2c13021 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj/BULanguage.strings new file mode 100755 index 00000000..e0abb04a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "क्लिक करें"; +"AD" = "विज्ञापन"; +"PlayConsumed" = "इसको चलाने पर %.2f MB डेटा का इस्तेमाल होगा"; +"Evaluation" = "मूल्यांकन"; +"Score" = "%@ रेटिंग"; +"Select" = "चुनें"; +"Back" = "वापस जाएँ"; +"Replay" = "रीप्ले करने के लिए क्लिक करें"; +"Continue" = "चलाना जारी रखें"; +"Skip" = "छोड़ें"; +"Feedback" = "फ़ीडबैक"; +"FeedbackStr1" = "आपके फ़ीडबैक के लिए धन्यवाद."; +"FeedbackStr2" = "हम आपको बेहतर विज्ञापन अनुभव देने की कोशिश करते रहेंगे."; +"FeedbackStr3" = "आप पहले ही फ़ीडबैक सबमिट कर चुके हैं."; +"FeedbackStr4" = "कृपया एक से अधिक बार न सबमिट करें!"; +"ViewNow" = "अभी देखें"; +"Download" = "पाएँ"; +"LoadFailure" = "लोड नहीं किया जा सका. कृपया फिर से कोशिश करें."; +"GetRewardAfterWatching" = "रिवॉर्ड्स पाने के लिए पूरा वीडियो देखें"; +"GiveUpReward" = "रिवॉर्ड्स छोड़ें"; +"ContinueWatching" = "देखते रहें"; +"CanbeTurnedOffAfter" = "%d सेकंड के बाद छोड़ दें"; +"CanbeSkipAfter" = "%d सेकंड के बाद छोड़ दें"; +"Get" = "डाउनलोड करें"; +"View" = "देखें"; +"ContinuePlaying" = "देखना जारी रखें"; +"GetRewardAfterPlaying" = "रिवॉर्ड्स का दावा करने के लिए पूरा देखें"; +"Wan" = "10 हज़ार"; +"ViewDetail" = "देखें"; +"CommitScore" = "%@ रेटिंग"; +"AdsClosed" = "विज्ञापन बंद"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..051bc000 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/hi.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bbfa51a3e28954183bc366e3f6321ab5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj.meta new file mode 100644 index 00000000..72c93840 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92bb4c436a5384604a5ff81d99c4d900 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj/BULanguage.strings new file mode 100755 index 00000000..db346b45 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Klik"; +"AD" = "IKLAN"; +"PlayConsumed" = "Memutar ini akan menghabiskan data %.2f MB"; +"Evaluation" = "Evaluasi"; +"Score" = "%@ peringkat"; +"Select" = "Pilih"; +"Back" = "Kembali"; +"Replay" = "Klik untuk memutar ulang"; +"Continue" = "Lanjut memutar"; +"Skip" = "Lewati"; +"Feedback" = "Umpan balik"; +"FeedbackStr1" = "Terima kasih atas umpan balik Anda."; +"FeedbackStr2" = "Kami akan terus berusaha meningkatkan pengalaman beriklan Anda."; +"FeedbackStr3" = "Anda telah mengirimkan umpan balik."; +"FeedbackStr4" = "Mohon tidak mengirim lebih dari satu!"; +"ViewNow" = "Lihat sekarang"; +"Download" = "Dapatkan"; +"LoadFailure" = "Gagal memuat. Silakan coba lagi."; +"GetRewardAfterWatching" = "Selesaikan menonton video lengkap untuk mendapatkan reward"; +"GiveUpReward" = "Abaikan reward"; +"ContinueWatching" = "Lanjut menonton"; +"CanbeTurnedOffAfter" = "Lewati setelah %d detik"; +"CanbeSkipAfter" = "Lewati setelah %d detik"; +"Get" = "Unduh"; +"View" = "Lihat"; +"ContinuePlaying" = "Lanjut memutar"; +"GetRewardAfterPlaying" = "Selesaikan pemutaran untuk mendapatkan reward"; +"Wan" = "10 ribu"; +"ViewDetail" = "Lihat"; +"CommitScore" = "%@ peringkat"; +"AdsClosed" = "Iklan ditutup"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..ac2eda7b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/id.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4af7e89384ff64bcda40520615b025b8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj.meta new file mode 100644 index 00000000..d68824a2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 688de2fd231ba4454be8039a14cdc536 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj/BULanguage.strings new file mode 100755 index 00000000..494caca9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Clic"; +"AD" = "Annuncio"; +"PlayConsumed" = "La riproduzione utilizzerà %.2f MB di dati"; +"Evaluation" = "Valutazione"; +"Score" = "Valutazione(i) %@"; +"Select" = "Seleziona"; +"Back" = "Indietro"; +"Replay" = "Clic per caricare"; +"Continue" = "Continua per riprodurre"; +"Skip" = "Ignora"; +"Feedback" = "Feedback"; +"FeedbackStr1" = "Grazie per il tuo feedback"; +"FeedbackStr2" = "Continueremo a impegnarci per fornirti un'esperienza pubblicitaria migliore."; +"FeedbackStr3" = "Hai già inviato il tuo feedback."; +"FeedbackStr4" = "Non inviarne più di uno!"; +"ViewNow" = "Visualizza ora"; +"Download" = "Ottieni"; +"LoadFailure" = "Caricamento non riuscito. Riprova."; +"GetRewardAfterWatching" = "Finisci di guardare il video per ottenere le ricompense"; +"GiveUpReward" = "Rinuncia a ricompense"; +"ContinueWatching" = "Continua a guardare"; +"CanbeTurnedOffAfter" = "Ignora dopo %ds"; +"CanbeSkipAfter" = "Ignora dopo %ds"; +"Get" = "Scarica"; +"View" = "Visualizza"; +"ContinuePlaying" = "Continua a riprodurre"; +"GetRewardAfterPlaying" = "Riproduci tutto per richiedere le ricompense"; +"Wan" = "10 mila"; +"ViewDetail" = "Visualizza"; +"CommitScore" = "Valutazione(i) %@"; +"AdsClosed" = "Annunci chiusi"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..391ad4dd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/it.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e4adbfeb0100f4a93a36dc9276650d18 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj.meta new file mode 100644 index 00000000..99711822 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bfcb4644a85f44bcace1c4dac52e7fd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj/BULanguage.strings new file mode 100755 index 00000000..6ea4848f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by 李盛 on 2019/1/7. + Copyright © 2019 bytedance. All rights reserved. +*/ + +// String + +"Click" = "クリック"; +"AD" = "広告"; +"PlayConsumed" = "再生すると%.2fMBの通信量が消費されます"; +"Evaluation" = "評価"; +"Score" = "評価数:%@"; +"Select" = "選択"; +"Wan" = "万"; +"Back" = "戻る"; +"Replay" = "リプレイ"; +"Continue" = "再生し続ける"; +"Skip" = "スキップ"; +"Feedback" = "フィードバック"; +"FeedbackStr1" = "ご意見ありがとうございます"; +"FeedbackStr2" = "より良い広告体験を提供いたします"; +"FeedbackStr3" = "フィードバックはすでに送信済みです"; +"FeedbackStr4" = "既に送信済みです"; +"ViewNow" = "詳細を見る"; +"Download" = "入手"; +"LoadFailure" = "ロードに失敗しました。クリックして再度お試しください"; +"GetRewardAfterWatching" = "動画を最後まで視聴いただけるとリワードを付与されます"; +"GiveUpReward" = "やらない"; +"ContinueWatching" = "視聴し続ける"; +"CanbeTurnedOffAfter" = "%ds後にスキップ"; +"CanbeSkipAfter" = "%ds後にスキップ"; +"Get" = "入手"; +"View" = "見る"; +"ContinuePlaying" = "つづける"; +"GetRewardAfterPlaying" = "遊んで報酬をゲット!"; +"ViewDetail" = "チェック"; +"CommitScore" = "評価数:%@"; +"AdsClosed" = "広告は終了しました"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..3b0203de --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ja.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 940fe0b634f554cf898af66d5bf22524 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj.meta new file mode 100644 index 00000000..3fb811df --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67bc8dcd4765444d9a33b5633f3bc134 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj/BULanguage.strings new file mode 100755 index 00000000..9adbca59 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by iCuiCui on 2020/2/12. + Copyright © 2019 bytedance. All rights reserved. + */ + +// String + +"Click" = "클릭"; +"AD" = "광고"; +"PlayConsumed" = "재생하면 %.2fMB 트래픽이 소비하다"; +"Evaluation" = "평가"; +"Score" = "%@ 평점"; +"Select" = "선택"; +"Wan" = "만"; +"Back" = "뒤로"; +"Replay" = "재생하다"; +"Continue" = "계속하다"; +"Skip" = "건너뛰다"; +"Feedback" = "피드백"; +"FeedbackStr1" = "피드백을 주셔서 감사합니다!"; +"FeedbackStr2" = "더 양질의 광고 체험을 드리 겠습니다!"; +"FeedbackStr3" = "피드백을 제출 완료 됐었습니다!"; +"FeedbackStr4" = "반복하게 제출하지 마십시오"; +"ViewNow" = "즉시 보기"; +"Download" = "즉시 다운로드"; +"LoadFailure" = "적재 실패, 재시도 클릭"; +"GetRewardAfterWatching" = "전체 비디오를 본 후 보상을 받으십시오."; +"GiveUpReward" = "포상을 포기하다"; +"ContinueWatching" = "계속보기"; +"CanbeTurnedOffAfter" = "%ds후에 닫을 수 있다"; +"CanbeSkipAfter" = "%ds후에 닫을 수 있다"; +"Get" = "다운로드"; +"View" = "체크"; +"ContinuePlaying" = "계속하다"; +"GetRewardAfterPlaying" = "리워드는 게임 플레이 이후에 지급됩니다."; +"ViewDetail" = "체크"; +"CommitScore" = "%@ 평점"; +"AdsClosed" = "광고 종료"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..80277ed4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ko.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b3d5e5a87780546b98ce495bebade180 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj.meta new file mode 100644 index 00000000..4b854c05 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54b50ead95a714688ab7412904a3357f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj/BULanguage.strings new file mode 100755 index 00000000..c4bbdfa6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Clicar"; +"AD" = "Anúncio"; +"PlayConsumed" = "Ao executar este, você usará %.2f MB dos dados"; +"Evaluation" = "Avaliação"; +"Score" = "%@ classificação(ões)"; +"Select" = "Selecionar"; +"Back" = "Voltar"; +"Replay" = "Clique para reproduzir"; +"Continue" = "Continue para executar"; +"Skip" = "Pular"; +"Feedback" = "Feedback"; +"FeedbackStr1" = "Obrigado por seu feedback."; +"FeedbackStr2" = "Continuaremos nos empenhando para fornecer a você a melhor experiência em publicidade."; +"FeedbackStr3" = "Você já enviou seu feedback."; +"FeedbackStr4" = "Não envie mais de um!"; +"ViewNow" = "Visualizar agora"; +"Download" = "Obter"; +"LoadFailure" = "Falha ao carregar. Tente novamente."; +"GetRewardAfterWatching" = "Assista ao vídeo completo para ganhar premiações"; +"GiveUpReward" = "Desistir das premiações"; +"ContinueWatching" = "Continuar assistindo"; +"CanbeTurnedOffAfter" = "Pular depois de %ds"; +"CanbeSkipAfter" = "Pular depois de %ds"; +"Get" = "Fazer download"; +"View" = "Visualizar"; +"ContinuePlaying" = "Continuar executando"; +"GetRewardAfterPlaying" = "Finalizar a execução para solicitar as premiações"; +"Wan" = "10 mil"; +"ViewDetail" = "Visualizar"; +"CommitScore" = "%@ classificação(ões)"; +"AdsClosed" = "Anúncios fechados"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..74941bdb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/pt.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 77db08fda11e241e1b557f693568f1fb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj.meta new file mode 100644 index 00000000..89834e1a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df868b263828a46a29304bee5bb5d65d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj/BULanguage.strings new file mode 100755 index 00000000..dbb8364f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Нажмите"; +"AD" = "Рекламное объявление"; +"PlayConsumed" = "На воспроизведение будет потрачено %.2f МБ трафика"; +"Evaluation" = "Оценка"; +"Score" = "Оценки: %@"; +"Select" = "Выбрать"; +"Back" = "Назад"; +"Replay" = "Нажмите, чтобы воспроизвести еще раз"; +"Continue" = "Продолжить воспроизведение"; +"Skip" = "Пропустить"; +"Feedback" = "Отзыв"; +"FeedbackStr1" = "Благодарим за ваш отзыв."; +"FeedbackStr2" = "Мы постоянно работаем над улучшением качества рекламы."; +"FeedbackStr3" = "Вы уже оставили отзыв."; +"FeedbackStr4" = "Желательно оставлять отзыв только один раз!"; +"ViewNow" = "Смотреть"; +"Download" = "Получить"; +"LoadFailure" = "Ошибка загрузки. Попробуйте снова."; +"GetRewardAfterWatching" = "Завершите просмотр полного видео, чтобы получить награду"; +"GiveUpReward" = "Отказаться от награды"; +"ContinueWatching" = "Продолжить просмотр"; +"CanbeTurnedOffAfter" = "Можно пропустить через %d с"; +"CanbeSkipAfter" = "Можно пропустить через %d с"; +"Get" = "Скачать"; +"View" = "Вид"; +"ContinuePlaying" = "Продолжить просмотр"; +"GetRewardAfterPlaying" = "Завершите просмотр, чтобы получить награду"; +"Wan" = "10 тысяч"; +"ViewDetail" = "Вид"; +"CommitScore" = "Оценки: %@"; +"AdsClosed" = "Объявления закрыты"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..f89435ca --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/ru.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1299801791b7b498eb2cf5783fb289de +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/setup.txt b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/setup.txt new file mode 100755 index 00000000..ea75cb2e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/setup.txt @@ -0,0 +1 @@ +This text exists in 4300 and is the identifier in M ​​Access Rely library compatibility. Do not delete(请勿删除) diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/setup.txt.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/setup.txt.meta new file mode 100644 index 00000000..41f9ddf6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/setup.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 553f552fb233d4abfacf3c67e045d7d0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj.meta new file mode 100644 index 00000000..33fe6783 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 359104fae03364cde80ab6214ef15036 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj/BULanguage.strings new file mode 100755 index 00000000..7b992bfc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "คลิก"; +"AD" = "โฆษณา"; +"PlayConsumed" = "การเล่นรายการนี้จะใช้อินเทอร์เน็ต %.2f MB"; +"Evaluation" = "การประเมินผล"; +"Score" = "%@ คะแนน"; +"Select" = "เลือก"; +"Back" = "กลับ"; +"Replay" = "คลิกเพื่อเล่นซ้ำ"; +"Continue" = "ดำเนินการต่อเพื่อเล่น"; +"Skip" = "ข้าม"; +"Feedback" = "ผลตอบรับ"; +"FeedbackStr1" = "ขอบคุณสำหรับผลตอบรับของคุณ"; +"FeedbackStr2" = "เราจะพยายามอย่างต่อเนื่องเพื่อมอบประสบการณ์การโฆษณาที่ดียิ่งขึ้น"; +"FeedbackStr3" = "คุณได้ส่งผลตอบรับแล้ว"; +"FeedbackStr4" = "โปรดอย่าส่งมากกว่าหนึ่งครั้ง"; +"ViewNow" = "ดูตอนนี้"; +"Download" = "รับ"; +"LoadFailure" = "การโหลดล้มเหลว โปรดลองอีกครั้ง"; +"GetRewardAfterWatching" = "ดูวิดีโอแบบเต็มจนจบเพื่อรับรางวัล"; +"GiveUpReward" = "รางวัลการยอมแพ้"; +"ContinueWatching" = "ดูต่อ"; +"CanbeTurnedOffAfter" = "ข้ามหลังจาก %d วิ"; +"CanbeSkipAfter" = "ข้ามหลังจาก %d วิ"; +"Get" = "ดาวน์โหลด"; +"View" = "ดู"; +"ContinuePlaying" = "เล่นต่อ"; +"GetRewardAfterPlaying" = "เล่นจนจบเพื่อรับรางวัล"; +"Wan" = "1 หมื่น"; +"ViewDetail" = "ดู"; +"CommitScore" = "%@ คะแนน"; +"AdsClosed" = "ปิดโฆษณา"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..b33a6d1d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/th.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d7f1a1cb5ea246e88d9bf4c2244a78d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/version.txt b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/version.txt new file mode 100755 index 00000000..ea4fd799 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/version.txt @@ -0,0 +1 @@ +4.3.0.2 diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/version.txt.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/version.txt.meta new file mode 100644 index 00000000..7dc1c1e9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/version.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb083941716014cb6a33058803872991 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj.meta new file mode 100644 index 00000000..d8ec8815 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c338847ed54c4425a48477bd3fab077 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj/BULanguage.strings new file mode 100755 index 00000000..df4dab0f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "Nhấp"; +"AD" = "QUẢNG CÁO"; +"PlayConsumed" = "Bạn sẽ mất %.2f MB dữ liệu để phát mục này"; +"Evaluation" = "Đánh giá"; +"Score" = "%@ xếp hạng"; +"Select" = "Chọn"; +"Back" = "Quay lại"; +"Replay" = "Nhấp để phát lại"; +"Continue" = "Tiếp tục phát"; +"Skip" = "Bỏ qua"; +"Feedback" = "Phản hồi"; +"FeedbackStr1" = "Cảm ơn bạn đã phản hồi."; +"FeedbackStr2" = "Chúng tôi sẽ tiếp tục nỗ lực để mang đến cho bạn trải nghiệm quảng cáo tốt hơn."; +"FeedbackStr3" = "Bạn đã gửi phản hồi."; +"FeedbackStr4" = "Vui lòng không gửi nhiều lần!"; +"ViewNow" = "Xem ngay"; +"Download" = "Lấy"; +"LoadFailure" = "Không tải được. Vui lòng thử lại."; +"GetRewardAfterWatching" = "Xem hết video để nhận phần thưởng"; +"GiveUpReward" = "Bỏ phần thưởng"; +"ContinueWatching" = "Tiếp tục xem"; +"CanbeTurnedOffAfter" = "Bỏ qua sau %d s"; +"CanbeSkipAfter" = "Bỏ qua sau %d s"; +"Get" = "Tải"; +"View" = "Xem"; +"ContinuePlaying" = "Tiếp tục chơi"; +"GetRewardAfterPlaying" = "Chơi hết để giành phần thưởng"; +"Wan" = "10 nghìn"; +"ViewDetail" = "Xem"; +"CommitScore" = "%@ xếp hạng"; +"AdsClosed" = "Quảng cáo đã đóng"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..cd56a804 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/vi.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cd336b9b18f5e4f26ae08309edcf6679 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj.meta new file mode 100644 index 00000000..fa366737 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 82b46bd6bce7d41a8b8a5b6b0ab1c4c2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings new file mode 100755 index 00000000..106a75d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings @@ -0,0 +1,42 @@ +/* + BULanguage.strings + BUAdSDK + + Created by 李盛 on 2019/1/7. + Copyright © 2019 bytedance. All rights reserved. +*/ + +// String + +"Click" = "点击"; +"AD" = "广告"; +"PlayConsumed" = "播放将消耗%.2fMB流量"; +"Evaluation" = "评价"; +"Score" = "%@个评分"; +"Select" = "选择"; +"Wan" = "万"; +"Back" = "返回"; +"Replay" = "点击重播"; +"Continue" = "继续播放"; +"Skip" = "跳过"; +"Feedback" = "反馈"; +"FeedbackStr1" = "感谢您的反馈!"; +"FeedbackStr2" = "我们将为您带来更优质的广告体验"; +"FeedbackStr3" = "您已提交过反馈!"; +"FeedbackStr4" = "请勿反复提交"; +"ViewNow" = "立即查看"; +"Download" = "立即下载"; +"LoadFailure" = "加载失败,点击重试"; +"GetRewardAfterWatching" = "观看完整视频才能获得奖励"; +"GiveUpReward" = "放弃奖励"; +"ContinueWatching" = "继续观看"; +"CanbeTurnedOffAfter" = "%ds后可关闭"; +"CanbeSkipAfter" = "%ds后可跳过"; +"Get" = "下载"; +"View" = "查看"; +"ContinuePlaying" = "继续试玩"; +"GetRewardAfterPlaying" = "试玩后才可领取奖励"; +"ViewDetail" = "查看详情"; +"CommitScore" = "%@个评分"; +"AdsClosed" = "广告已关闭"; +// Icon diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..29d14842 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9c2d8c5fbaaeb4745832b8fa259f0fd2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj.meta new file mode 100644 index 00000000..75ce4f6a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a0ae7a01bb99f4a428c17d6fdec29192 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings new file mode 100755 index 00000000..2d332164 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings @@ -0,0 +1,41 @@ +/* + BULanguage.strings + BUAdSDK + + Created by wangyanlin on 2020/4/10. + Copyright © 2020 bytedance. All rights reserved. +*/ + +// String + +"Click" = "點擊"; +"AD" = "廣告"; +"PlayConsumed" = "播放將消耗%.2fMB流量"; +"Evaluation" = "評估"; +"Score" = "%@個評分"; +"Select" = "選擇"; +"Back" = "返回"; +"Replay" = "點擊重播"; +"Continue" = "繼續播放"; +"Skip" = "跳過"; +"Feedback" = "迴響"; +"FeedbackStr1" = "感謝您的迴響!"; +"FeedbackStr2" = "我們將為您帶來更優質的廣告體驗"; +"FeedbackStr3" = "您已提交過迴響!"; +"FeedbackStr4" = "請勿反復提交"; +"ViewNow" = "立即查看"; +"Download" = "立即下載"; +"LoadFailure" = "加載失敗,點擊重試"; +"GetRewardAfterWatching" = "觀看完整視頻才能獲得獎勵"; +"GiveUpReward" = "放弃獎勵"; +"ContinueWatching" = "繼續觀看"; +"CanbeTurnedOffAfter" = "%ds後可關閉"; +"CanbeSkipAfter" = "%ds後可跳過"; +"Get" = "下載"; +"View" = "查看"; +"ContinuePlaying" = "繼續試玩"; +"GetRewardAfterPlaying" = "試玩後才可領取獎勵"; +"Wan" = "萬"; +"ViewDetail" = "查看詳情"; +"CommitScore" = "%@個評分"; +"AdsClosed" = "廣告已關閉"; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings.meta new file mode 100644 index 00000000..72d7807c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 58de91dcf03364aa9ab713b54b2c91cc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework.meta new file mode 100644 index 00000000..04c2ef23 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: e9135cc0c29b84989982ac55c838cc67 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/BUAdSDK b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/BUAdSDK new file mode 100755 index 00000000..2abb9dc5 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/BUAdSDK differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/BUAdSDK.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/BUAdSDK.meta new file mode 100644 index 00000000..72480d90 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/BUAdSDK.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 12b029cf7900a49abad0cef72d10f050 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers.meta new file mode 100644 index 00000000..ff139fae --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 673a6f73776fb448287612445bffcbe8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdClientBiddingProtocol.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdClientBiddingProtocol.h new file mode 100755 index 00000000..179e4846 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdClientBiddingProtocol.h @@ -0,0 +1,28 @@ +// +// BUAdClientBiddingProtocol.h +// Pods +// +// Created by bytedance on 2021/9/14. +// + +#import + +@protocol BUAdClientBiddingProtocol + +@optional + +/// invoke this method to set this actual auction price 调用此方法设置当前实际结算价 +/// @param auctionPrice auction price 实际结算价格 +- (void)setPrice:(nullable NSNumber *)auctionPrice; + +/// invoke this method when the bidding succeeds (strongly recommended) 当竞价成功调用此方法(强烈推荐) +/// @param auctionBidToWin the seccond place bidder's price 竞价方第二名的价格 +- (void)win:(nullable NSNumber*)auctionBidToWin; + +/// invoke this method when the bidding fails (strongly recommended) 当竞价失败调用此方法(强烈推荐) +/// @param auctionPrice auction price 竞价 +/// @param lossReason Reasons for failed bidding 失败的原因 +/// @param winBidder Who won the bid 谁赢了竞价 +- (void)loss:(nullable NSNumber*)auctionPrice lossReason:(nullable NSString*)lossReason winBidder:(nullable NSString*)winBidder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdClientBiddingProtocol.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdClientBiddingProtocol.h.meta new file mode 100644 index 00000000..c0ed83b7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdClientBiddingProtocol.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 81b9fc45509fa4ddc9abf4b0f2033fbf +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDK.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDK.h new file mode 100755 index 00000000..57044641 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDK.h @@ -0,0 +1,70 @@ +// +// BUAdSDK.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +// In this header, you should import all the public headers of your framework using statements like #import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + + +///customize dislike style +#import +#import +#import +#import + +/// native ads +#import +#import +#import + +/// native express ads +#import +#import +#import +#import +#import +#import +#import +#import + +/// splash ads +#import +#import +#import + +/// rewarded video ads +#import +#import + +/// full-screen video ads +#import + +/// playable tool +#import + +// smartlook +#import + +/// test tools +#import + +/// slot ab test +#import diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDK.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDK.h.meta new file mode 100644 index 00000000..cf9340d3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDK.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 79d67a224fe61495f9fbc6872fac077c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKConfiguration.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKConfiguration.h new file mode 100755 index 00000000..ab4c6e88 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKConfiguration.h @@ -0,0 +1,110 @@ +// +// BUAdSDKConfiguration.h +// BUAdSDK +// +// Created by Eason on 2021/3/4. +// + +#import +#import +#import "BUAdSDKDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Provide a protocol for custom private data +/// Only valid in the CN environment +@protocol BUAdSDKPrivacyProvider + +@optional + +/// Specify whether to allow the SDK to use location data +- (BOOL)canUseLocation; +/// Return a latitude value +- (CLLocationDegrees)latitude; +/// Return a longitude value +- (CLLocationDegrees)longitude; + +@end + +@interface BUAdSDKConfiguration : NSObject + ++ (instancetype)configuration; + +/// This property should be set when integrating non-China and china areas at the same time, +/// otherwise it need'nt to be set.you‘d better set Territory first, if you need to set them +@property (nonatomic, assign) BUAdSDKTerritory territory; + +///Register the App key that’s already been applied before requesting an ad from TikTok Audience Network. +/// the unique identifier of the App +@property (nonatomic, copy) NSString *appID; + +/// the unique identifier of the App, more safely +@property (nonatomic, copy) NSString *secretKey; + +/// Configure development mode. default BUAdSDKLogLevelNone +@property (nonatomic, assign) BUAdSDKLogLevel logLevel; + +/// the age group of the user +/// only works in CN environment +@property (nonatomic, assign) BUAdSDKAgeGroup ageGroup; + +/// the COPPA of the user, COPPA is the short of Children's Online Privacy Protection Rule, +/// the interface only works in the United States. +/// Coppa 0 adult, 1 child +/// You can change its value at any time +@property (nonatomic, strong) NSNumber *coppa; + +/// additional user information. +@property (nonatomic, copy) NSString *userExtData; + +/// Solve the problem when your WKWebview post message empty, +/// default is BUOfflineTypeWebview +@property (nonatomic, assign) BUOfflineType webViewOfflineType; + +/// Custom set the GDPR of the user,GDPR is the short of General Data Protection Regulation,the interface only works in The European. +/// GDPR 0 close privacy protection, 1 open privacy protection +/// You can change its value at any time +@property (nonatomic, strong) NSNumber *GDPR; + +/// Custom set the CCPA of the user,CCPA is the short of General Data Protection Regulation,the interface only works in USA. +/// CCPA 0: "sale" of personal information is permitted, 1: user has opted out of "sale" of personal information -1: default +@property (nonatomic, strong) NSNumber *CCPA; +/// Custom set the debugLog to print debug Log. +/// debugLog 0: close debug log, 1: open debug log. +@property (nonatomic, strong) NSNumber *debugLog; + +@property (nonatomic, strong) NSNumber *themeStatus; + +/// Custom set the AB vid of the user. Array element type is NSNumber +@property (nonatomic, strong) NSArray *abvids; + +/// Custom set the tob ab sdk version of the user. +@property (atomic, copy) NSString *abSDKVersion; + +/// Custom set idfa value +/// You can change its value at any time +@property (nonatomic, copy) NSString *customIdfa; + +/** + In CN environment Whether to allow SDK to modify the category and options of AVAudioSession when playing audio, default is NO. + The category set by the SDK is AVAudioSessionCategoryAmbient, and the options are AVAudioSessionCategoryOptionDuckOthers + In VA environment Whether to allow SDK to modify the category and options of AVAudioSession when playing audio. When the scene is native or banner and current category is AVAudioSessionCategorySoloAmbient, default value is YES and the category set by the SDK is AVAudioSessionCategoryAmbient, the options are AVAudioSessionCategoryOptionMixWithOthers.The other scenes, default is NO. + */ +@property (nonatomic, assign) BOOL allowModifyAudioSessionSetting; + +/** + If you are a Unity developer, set this to Yes + */ +@property (nonatomic, assign) BOOL unityDeveloper; + +/// You can use this property to set whether the SDK can use certain privacy data, or pass these privacy data yourself. +/// If this property is not set, the SDK will execute the default privacy data usage logic. +/// Note: This property is only valid for the CN environment. Unless you know what you need, it is recommended not to assign a value to this property. +@property (nonatomic, strong) id privacyProvider; + +/// App logo image. If set, it will be displayed in the App open ad. +@property (nonatomic, strong, nullable) UIImage *appLogoImage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKConfiguration.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKConfiguration.h.meta new file mode 100644 index 00000000..76f3c388 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKConfiguration.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9906bfe7bbd7945229cd7a49b2d7f637 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKDefines.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKDefines.h new file mode 100755 index 00000000..34d81a64 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKDefines.h @@ -0,0 +1,64 @@ +// +// BUAdSDKDefines.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#ifndef BUAdSDK_DEFINES_h +#define BUAdSDK_DEFINES_h + +#import + +///CN china, NO_CN is not china +typedef NS_ENUM(NSUInteger, BUAdSDKTerritory) { + BUAdSDKTerritory_CN = 1, + BUAdSDKTerritory_NO_CN, +}; + +typedef NS_ENUM(NSInteger, BUAdSDKThemeStatus) { + BUAdSDKThemeStatus_Normal = 0, + BUAdSDKThemeStatus_Night = 1, +}; + + +typedef NS_ENUM(NSInteger, BUOfflineType) { + BUOfflineTypeNone, // Do not set offline + BUOfflineTypeWebview, // Offline dependence WKWebview +}; + +typedef NS_ENUM(NSInteger, BUAdSDKLogLevel) { + BUAdSDKLogLevelNone, + BUAdSDKLogLevelError, + BUAdSDKLogLevelWarning, + BUAdSDKLogLevelInfo, + BUAdSDKLogLevelDebug, + BUAdSDKLogLevelVerbose, +}; + +typedef NS_ENUM(NSInteger, BURitSceneType) { + BURitSceneType_custom = 0,//custom + BURitSceneType_home_open_bonus = 1,//Login/open rewards (login, sign-in, offline rewards doubling, etc.) + BURitSceneType_home_svip_bonus = 2,//Special privileges (VIP privileges, daily rewards, etc.) + BURitSceneType_home_get_props = 3,//Watch rewarded video ad to gain skin, props, levels, skills, etc + BURitSceneType_home_try_props = 4,//Watch rewarded video ad to try out skins, props, levels, skills, etc + BURitSceneType_home_get_bonus = 5,//Watch rewarded video ad to get gold COINS, diamonds, etc + BURitSceneType_home_gift_bonus = 6,//Sweepstakes, turntables, gift boxes, etc + BURitSceneType_game_start_bonus = 7,//Before the opening to obtain physical strength, opening to strengthen, opening buff, task props + BURitSceneType_game_reduce_waiting = 8,//Reduce wait and cooldown on skill CD, building CD, quest CD, etc + BURitSceneType_game_more_opportunities = 9,//More chances (resurrect death, extra game time, decrypt tips, etc.) + BURitSceneType_game_finish_rewards = 10,//Settlement multiple times/extra bonus (completion of chapter, victory over boss, first place, etc.) + BURitSceneType_game_gift_bonus = 11//The game dropped treasure box, treasures and so on +}; + +typedef NS_ENUM(NSInteger, BUAdSDKAgeGroup) { + BUAdSDKAgeGroupAdult = 0, // Default + BUAdSDKAgeGroupTeenager = 1, // Age 15~18 + BUAdSDKAgeGroupMinor = 2, // Age < 15 +}; + +@protocol BUToDictionary +- (NSDictionary *)dictionaryValue; +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKDefines.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKDefines.h.meta new file mode 100644 index 00000000..715453aa --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKDefines.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 56cd8e66aea894d80915a2c7999669bc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKError.h new file mode 100755 index 00000000..880385de --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKError.h @@ -0,0 +1,105 @@ +// +// BUAdSDKError.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +extern NSErrorDomain BUAdSDKErrorHost ; + +typedef NS_ENUM(NSInteger, BUErrorCode) { + BUErrorCodeTempError = -6, // native template is invalid + BUErrorCodeTempAddationError= -5, // native template addation is invalid + BUErrorCodeOpenAPPStoreFail = -4, // failed to open appstore + BUErrorCodeNOAdError = -3, // parsed data has no ads + BUErrorCodeNetError = -2, // network request failed + BUErrorCodeParseError = -1, // parsing failed + + BUErrorCodeSDKInitConfigUnfinished = -100, // sdk init config is unfinished + + BUErrorCodePlayableError_ERR_HAS_CACHE = -702, // has cache + BUErrorCodePlayableError_ERR_UNZIP = -704, // unzip error + + BUErrorCodeNERenderResultError= 101, // native Express ad, render result parse fail + BUErrorCodeNETempError = 102, // native Express ad, template is invalid + BUErrorCodeNETempPluginError = 103, // native Express ad, template plugin is invalid + BUErrorCodeNEDataError = 104, // native Express ad, data is invalid + BUErrorCodeNEParseError = 105, // native Express ad, parse fail + BUErrorCodeNERenderError = 106, // native Express ad, render fail + BUErrorCodeNERenderTimoutError= 107, // native Express ad, render timeout + BUErrorCodeTempLoadError = 109, // native Express ad, template load fail + + + BUErrorCodeDynamic_1_JSContextEmpty = 112, + BUErrorCodeDynamic_1_ParseError = 113, + BUErrorCodeDynamic_1_Timeout = 117, + BUErrorCodeDynamic_1_SubComponentNotExist = 118, + + BUErrorCodeDynamic_2_ParseError = 123, + BUErrorCodeDynamic_2_Timeout = 127, + BUErrorCodeDynamic_2_SubComponentNotExist = 128, + + BUErrorCodeDRRenderEngineError = 401, // native Express ad, engine error + BUErrorCodeDRRenderContextError = 402, // native Express ad, context error + BUErrorCodeDRRenderItemNotExist = 403, // native Express ad, item not exist + + BUErrorSlotAB_Disable = 491, // slot ab, feature is disabled + BUErrorSlotAB_EmptyResult = 492, // slot ab, slot result is empty + + BUErrorCodeSDKStop = 1000, // SDK stop forcely + + BUErrorCodeParamError = 10001, // parameter error + BUErrorCodeTimeout = 10002, + BUErrorCodeResource = 10003, + + BUErrorCodeSuccess = 20000, + BUErrorCodeNOAD = 20001, // no ads + + BUErrorCodeContentType = 40000, // http conent_type error + BUErrorCodeRequestPBError = 40001, // http request pb error + BUErrorCodeAppEmpty = 40002, // request app can't be empty + BUErrorCodeWapEMpty = 40003, // request wap can't be empty + BUErrorCodeAdSlotEmpty = 40004, // missing ad slot description + BUErrorCodeAdSlotSizeEmpty = 40005, // the ad slot size is invalid + BUErrorCodeAdSlotIDError = 40006, // the ad slot ID is invalid + BUErrorCodeAdCountError = 40007, // request the wrong number of ads + BUUnionAdImageSizeError = 40008, // wrong image size + BUUnionAdSiteIdError = 40009, // Media ID is illegal + BUUnionAdSiteMeiaTypeError = 40010, // Media type is illegal + BUUnionAdSiteAdTypeError = 40011, // Ad type is illegal + BUUnionAdSiteAccessMethodError = 40012,// Media access type is illegal and has been deprecated + BUUnionSplashAdTypeError = 40013, // Code bit id is less than 900 million, but adType is not splash ad + BUUnionRedirectError = 40014, // The redirect parameter is incorrect + BUUnionRequestInvalidError = 40015, // Media rectification exceeds deadline, request illegal + BUUnionAppSiteRelError = 40016, // The relationship between slot_id and app_id is invalid. + BUUnionAccessMethodError = 40017, // Media access type is not legal API/SDK + BUUnionPackageNameError = 40018, // Media package name is inconsistent with entry + BUUnionConfigurationError = 40019, // Media configuration ad type is inconsistent with request + BUUnionRequestLimitError = 40020, // The ad space registered by developers exceeds daily request limit + BUUnionSignatureError = 40021, // Apk signature sha1 value is inconsistent with media platform entry + BUUnionIncompleteError = 40022, // Whether the media request material is inconsistent with the media platform entry + BUUnionOSError = 40023, // The OS field is incorrectly filled + BUUnionLowVersion = 40024, // The SDK version is too low to return ads + BUErrorCodeAdPackageIncomplete = 40025,// the SDK package is incomplete. It is recommended to verify the integrity of SDK package or contact technical support. + BUUnionMedialCheckError = 40026, // Non-international account request for overseas delivery system + BUUnionSlotIDRenderMthodNoMatch = 40029,// The rendering method for slot ID does not match. + + + BUUnionCpidChannelCodeError = 40030, // Huawei browse impex cpid channeld code does not match. + BUUnionInternationalRequestCurrencyTypeError = 40031, // International request currency type is empty. + BUUnionOpenRTBRequestTokenError =40032, // OpenRTB request token is empty. + BUUnionHardCodeError = 40033, // Hard code not return ads, return message does not adjust. + + + BUUnionSDKVersionTooLow =40041, // SDK version is too low. + BUUnionNewInterstitialStyleVersionError = 40042, // New interstitial style use sdk version is too low. Plese upgrade SDK version to 3.5.5.0. + BUUnionPreviewFlowInvalid =40043, // Preview flow invalid. + + BUErrorCodeSysError = 50001, // ad server error + + + BUErrorCodeNetworkError = 98764, // network error. + BUErrorCodeUndefined = 98765, // error undefined +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKError.h.meta new file mode 100644 index 00000000..7fedf09a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d4cb33b79509141a9b978131dbe7ab59 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKManager.h new file mode 100755 index 00000000..c15cd5dc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKManager.h @@ -0,0 +1,138 @@ +// +// BUAdSDKManager.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSDKDefines.h" +#import "BUMopubAdMarkUpDelegate.h" + +typedef NS_ENUM(NSInteger, BUAdSDKInitializationState) { + BUAdSDKInitializationStateNotReady = 0, + BUAdSDKInitializationStateReady = 1 +}; + +typedef void (^BUConfirmGDPR)(BOOL isAgreed); + +typedef void (^BUCompletionHandler)(BOOL success,NSError *error); + +@interface BUAdSDKManager : NSObject + +@property (nonatomic, copy, readonly, class) NSString *SDKVersion; + +/// The SDK initialization state +@property (nonatomic, assign, readonly, class) BUAdSDKInitializationState initializationState; + +/// The synchronize initialization method +/// @param completionHandler Callback to the initialization state of the calling thread ++ (void)startWithSyncCompletionHandler:(BUCompletionHandler)completionHandler; + +/// The asynchronize initialization method +/// @param completionHandler Callback to the initialization state of the non-main thread ++ (void)startWithAsyncCompletionHandler:(BUCompletionHandler)completionHandler; + +/// Open GDPR Privacy for the user to choose before setAppID. ++ (void)openGDPRPrivacyFromRootViewController:(UIViewController *)rootViewController confirm:(BUConfirmGDPR)confirm; + +@end + + +@interface BUAdSDKManager (MopubAdaptor) + +@end + +@interface BUAdSDKManager (BUAdNR) ++ (NSString *)bunr_dictionaryWithSlot:(BUAdSlot *)slot isDynamicRender:(BOOL)isDynamicRender; +@end + + +@interface BUAdSDKManager (InterfaceReadyReplacement) +/** +This property should be set when integrating non-China and china areas at the same time, otherwise it need'nt to be set.you‘d better set Territory first, if you need to set them +@param territory : Regional value +*/ ++ (void)setTerritory:(BUAdSDKTerritory)territory; +/** + Register the App key that’s already been applied before requesting an ad from TikTok Audience Network. + @param appID : the unique identifier of the App + */ ++ (void)setAppID:(NSString *)appID; + +/** + @param secretKey the unique identifier of the App, more safely + */ ++ (void)setSecretKey:(NSString *)secretKey; +/** + Configure development mode. + @param level : default BUAdSDKLogLevelNone + */ ++ (void)setLoglevel:(BUAdSDKLogLevel)level; + +/* Set the age group of the user, the interface only works only works in CN environment. + * @params ageGroup: default BUAdSDKAgeGroupAdult + */ ++ (void)setAgeGroup:(BUAdSDKAgeGroup)ageGroup; + +/* Set the COPPA of the user, COPPA is the short of Children's Online Privacy Protection Rule, the interface only works in the United States. + * @params Coppa 0 adult, 1 child + */ ++ (void)setCoppa:(NSInteger)coppa; + +/// Set the user's keywords, such as interests and hobbies, etc. +/// Must obtain the consent of the user before incoming. ++ (void)setUserKeywords:(NSString *)keywords; + +/// set additional user information. ++ (void)setUserExtData:(NSString *)data; + +/// Solve the problem when your WKWebview post message empty,default is BUOfflineTypeWebview ++ (void)setOfflineType:(BUOfflineType)type; + +/// Custom set the GDPR of the user,GDPR is the short of General Data Protection Regulation,the interface only works in The European. +/// @params GDPR 0 close privacy protection, 1 open privacy protection ++ (void)setGDPR:(NSInteger)GDPR; + +/// Custom set the CCPA of the user,CCPA is the short of General Data Protection Regulation,the interface only works in USA. +/// @params CCPA 0: "sale" of personal information is permitted, 1: user has opted out of "sale" of personal information -1: default ++ (void)setCCPA:(NSInteger)CCPA; + +/// Custom set the AB vid of the user. Array element type is NSNumber ++ (void)setABVidArray:(NSArray *)abvids; + +/// Custom set the tob ab sdk version of the user. ++ (void)setABSDKVersion:(NSString *)abSDKVersion; + + +/// Custom set idfa value ++ (void)setCustomIDFA:(NSString *)idfa; + + + ++ (void)setThemeStatus:(BUAdSDKThemeStatus)themeStatus; + +/// get appID ++ (NSString *)appID; + +/// get GDPR ++ (NSInteger)GDPR; + +/// get coppa( -1:defalut 0.adult 1.child ) ++ (NSInteger)coppa; + +/// get CCPA ++ (NSInteger)CCPA; + +/** + Whether to allow SDK to modify the category and options of AVAudioSession when playing audio, default is NO. + The category set by the SDK is AVAudioSessionCategoryAmbient, and the options are AVAudioSessionCategoryOptionDuckOthers + */ ++ (void)allowModifyAudioSessionSetting:(BOOL)isAllow; + + ++ (BUAdSDKThemeStatus)themeStatus; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKManager.h.meta new file mode 100644 index 00000000..0a8a3e28 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1ba935b340ed5490586554bfa9ba41a6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKPlayableToolManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKPlayableToolManager.h new file mode 100755 index 00000000..70c9ee05 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKPlayableToolManager.h @@ -0,0 +1,25 @@ +// +// BUAdSDKPlayableToolManager.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +@interface BUAdSDKPlayableToolManager : NSObject + ++ (instancetype)sharedInstance; + ++ (void)setPlayableURL:(NSString *)url; + ++ (void)setDownloadUrl:(NSString *)url; + ++ (void)setDeeplinkUrl:(NSString *)url; + ++ (void)setIsLandScape:(BOOL)isLandScape; + ++ (void)clearAll; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKPlayableToolManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKPlayableToolManager.h.meta new file mode 100644 index 00000000..858dda3a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKPlayableToolManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5ee49c386596d49aeb44bef9e10d8d10 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKTestToolManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKTestToolManager.h new file mode 100755 index 00000000..62f30724 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKTestToolManager.h @@ -0,0 +1,32 @@ +// +// BUAdSDKTestToolManager.h +// BUAdSDK +// +// Created by wangyanlin on 2020/4/14. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + + +@interface BUAdSDKTestToolManager : NSObject + ++ (instancetype)sharedInstance; + ++ (void)setHostIP:(NSString *)hostIP; + ++ (void)setHostPort:(NSString *)hostPort; + ++ (void)setInputOneContent:(NSString *)oneContent; + ++ (void)setInputTwoContent:(NSString *)twoContent; + ++ (void)clearIPAddress; + ++ (void)clearInputContent; + +- (NSString *)testTimeStamp; + +@end + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKTestToolManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKTestToolManager.h.meta new file mode 100644 index 00000000..a3cf5c69 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSDKTestToolManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e108c09cbf6fa44f1bd92e788d544a9b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSlot.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSlot.h new file mode 100755 index 00000000..76a8600f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSlot.h @@ -0,0 +1,111 @@ +// +// BUAdSlot.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import "BUSize.h" +#import "BUAdSDKDefines.h" + +typedef NS_ENUM(NSInteger, BUAdSlotAdType) { + BUAdSlotAdTypeUnknown = 0, + BUAdSlotAdTypeBanner = 1, // banner ads + BUAdSlotAdTypeInterstitial = 2, // interstitial ads + BUAdSlotAdTypeSplash = 3, // splash ads + BUAdSlotAdTypeSplash_Cache = 4, // cache splash ads + BUAdSlotAdTypeFeed = 5, // feed ads + BUAdSlotAdTypePaster = 6, // paster ads + BUAdSlotAdTypeRewardVideo = 7, // rewarded video ads + BUAdSlotAdTypeFullscreenVideo = 8, // full-screen video ads + BUAdSlotAdTypeDrawVideo = 9, // vertical (immersive) video ads +}; + +typedef NS_ENUM(NSInteger, BUAdSlotPosition) { + BUAdSlotPositionTop = 1, + BUAdSlotPositionBottom = 2, + BUAdSlotPositionFeed = 3, + BUAdSlotPositionMiddle = 4, // for interstitial ad only + BUAdSlotPositionFullscreen = 5, +}; + +/// value is equale req_type +typedef NS_ENUM(NSInteger, BUAdLoadType) { + + BUAdLoadTypeUnknown = -1,//Unknown + BUAdLoadTypePreload = 1,//Preload resources + BUAdLoadTypeLoad = 3,//Load resources in real time +}; + +typedef NS_ENUM(NSInteger, BUSplashButtonType) { + BUSplashButtonType_FullScreen = 1, // The whole area of splash view will respond to click event + BUSplashButtonType_DownloadBar = 2 // The area of download bar in splash view will respond to click event +}; + +@interface BUAdSlot : NSObject + +/// required. The unique identifier of a native ad. +@property (nonatomic, copy) NSString *ID; + +/// required. Ad type. +@property (nonatomic, assign) BUAdSlotAdType AdType; + +/// optional. Ad display location. defaults is BUAdSlotPositionTop +@property (nonatomic, assign) BUAdSlotPosition position; + +/// Accept a set of image sizes, please pass in the BUSize object. +@property (nonatomic, strong) NSMutableArray *imgSizeArray; + +/// required. Image size. +@property (nonatomic, strong) BUSize *imgSize; + +/// Icon size. +@property (nonatomic, strong) BUSize *iconSize; + +/// optional. Whether to support deeplink.defaults is true +@property (nonatomic, assign) BOOL isSupportDeepLink DEPRECATED_MSG_ATTRIBUTE("This property is deprecated,Settings are no longer required after version 3300"); + +/// Native banner ads and native interstitial ads are set to 1, other ad types are 0, the default is 0. +@property (nonatomic, assign) BOOL isOriginAd; + +/// optional. Whether to support render control +@property (nonatomic, assign) BOOL supportRenderControl; + +//adload_seq:(针对聚合广告位)传递本次请求是为“自然日内某设备某广告位置第N次展示机会”发出的广告请求,同物理位置在自然日从1开始计数,不同物理位置独立计数;example:某原生广告位置,当天第5次产生展示机会,这次展示机向穿山甲发送了4次广告请求,则这4次广告请求的"adload_seq"的值应为5。第二天重新开始计数。 +@property (nonatomic, assign) NSInteger adloadSeq; + +// Valid only in Native Banner and Native Interstitial +@property (nonatomic, assign) CGSize adSize; + + +//prime_rit:(针对聚合广告位)广告物理位置对应的固定穿山甲广告位id,可以使用第一层的广告位id也可以为某一层的广告位id,但要求同一物理位置在该字段固定上报同一广告位id,不频繁更换;example:某原生广告位,当天共发出了1000个请求,这1000个请求中使用了5个不同target的穿山甲rit,用某X rit来作为该位置的标记rit,则这1000次请求的prime_rit都需要上报X rit的rit id。 +@property (nonatomic, copy) NSString *primeRit; + +/// optional. AD id for preview +@property (nonatomic, copy) NSString *previewAdID; + +/// optional. AD creative id for preview +@property (nonatomic, copy) NSString *previewCreativeID; + +/// optional. extend msg +@property (nonatomic, copy) NSDictionary *ext; + +/// optional. additional user information +@property (nonatomic, copy) NSString *userData; + +/** + Ad load type + - BUAdLoadTypePreload : Preload resources + - BUAdLoadTypeLoad: Load resources in real time + @Note : This field is only useful in China. At present, this field is not necessary to set the content. It is only to investigate how developers use advertisements instead of realizing functions. + */ +@property (nonatomic, assign) BUAdLoadType adLoadType; + +/// optional. config the behaviour of click splash view +@property (nonatomic, assign) BUSplashButtonType splashButtonType; + +- (NSDictionary *)dictionaryValue; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSlot.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSlot.h.meta new file mode 100644 index 00000000..ad6a2d0e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSlot.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 894ba795c3e7e4a10b0d42b30700ef27 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSmartlookManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSmartlookManager.h new file mode 100755 index 00000000..b7843c47 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSmartlookManager.h @@ -0,0 +1,23 @@ +// +// BUAdSmartlookManager.h +// BUAdSDK +// +// Created by wangchao on 2020/3/30. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUAdSmartlookManager : NSObject + + ++ (instancetype)sharedInstance; + ++ (void)setupSmartlookConfig:(NSString *)config; ++ (void)resetConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSmartlookManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSmartlookManager.h.meta new file mode 100644 index 00000000..aa8511b8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAdSmartlookManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d8b448afb4f9440e48de0d889ea3a538 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAppOpenAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAppOpenAd.h new file mode 100755 index 00000000..65f889e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAppOpenAd.h @@ -0,0 +1,67 @@ +// +// BUAppOpenAd.h +// AFNetworking +// +// Created by Willie on 2021/12/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class BUAppOpenAd, BUAdSlot; +@protocol BUAppOpenAdDelegate; + +/// Callback for loading ad results. +/// @param appOpenAd Ad instance after successfully loaded. +/// @param error Loading error. +typedef void (^BUAppOpenAdLoadCompletionHandler)(BUAppOpenAd * _Nullable appOpenAd, + NSError * _Nullable error); + +/// App-open ad object. Use it to load ads and display. +@interface BUAppOpenAd : NSObject + +/// Ad event delegate. +@property (nonatomic, weak, nullable) id delegate; + +/// Create an instance by BUAdSlot. +/// @param slot A BUAdSlot instance. The necessary parameter is `ID`. +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/// Load ad data. +/// @param timeout If the ad data is not successfully loaded within the timeout period, a timeout error will be returned. The unit is seconds. +/// @param completionHandler Callback for loading ad results. +- (void)loadOpenAdWithTimeout:(NSTimeInterval)timeout + completionHandler:(nullable BUAppOpenAdLoadCompletionHandler)completionHandler; + +/// Display ad. You need to call `loadOpenAdWithTimeout:completionHandler:` and succeed before call `presentFromRootViewController:` +/// @param rootViewController UIViewController that ad display depends on. +- (void)presentFromRootViewController:(UIViewController *)rootViewController; + +@end + + +/// Ad event protocol. +@protocol BUAppOpenAdDelegate + +@optional + +/// The ad has been presented. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didPresentForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad was clicked. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didClickForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad was skipped. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didClickSkipForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad countdown is over. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)countdownToZeroForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAppOpenAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAppOpenAd.h.meta new file mode 100644 index 00000000..ca410d41 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUAppOpenAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 13a1c3a68d7394945af44daa96784879 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislike.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislike.h new file mode 100755 index 00000000..1b207a6e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislike.h @@ -0,0 +1,40 @@ +// +// BUDislike.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +@class BUNativeAd; +@class BUDislikeWords; + +/** + !!! important : + Please report to the sdk the user’s selection, inaccurate model will result in poor ad performance. + */ +@interface BUDislike : NSObject +/** + The array of BUDislikeWords which have reasons for dislike. + The application can show the secondary page for dislike if '[filterWords.options count] > 0'. + */ +@property (nonatomic, copy, readonly) NSArray *filterWords; + +/** + Initialize with nativeAd to get filterWords. + return BUDislike + */ +- (instancetype)initWithNativeAd:(BUNativeAd *)nativeAd; + +/** + Call this method after the user chose dislike reasons. + (Only for object which uses 'BUDislike.filterWords') + @param filterWord : reasons for dislike + @note : don't need to call this method if '[filterWords.options count] > 0'. + @note :please dont't change 'BUDislike.filterWords'. + 'filterWord' must be one of 'BUDislike.filterWords', otherwise it will be filtered. + */ +- (void)didSelectedFilterWordWithReason:(BUDislikeWords *)filterWord; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislike.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislike.h.meta new file mode 100644 index 00000000..a2317e4a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislike.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 14b90724d9866405880b413e8cfdb19c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeReportor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeReportor.h new file mode 100755 index 00000000..7d0cbe5c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeReportor.h @@ -0,0 +1,49 @@ +// +// BUDislikeReportor.h +// BUAdSDK +// +// Created by bytedance on 2020/12/14. +// Copyright © 2020 bytedance. All rights reserved. +// + +#ifndef BUDislikeReportor_h +#define BUDislikeReportor_h +#import +#import + +@class BUDislikeWords; +@class BUPersonalizationPrompts; +/// the reportor for custom dislike +@protocol BUDislikeReportorDelegate +@optional +/// report selected dislike word +/// @param dislikeWords dislike words +- (void)dislikeDidSelected:(NSArray *)dislikeWords; + +/// report submit feedback string +/// @param feedback feedback string +- (void)dislikeDidSubmitFeedback:(NSString *)feedback; + +/// reportor when personalization prompts's name did show +/// @param prompts personalization Ads prompts +- (void)dislikeDidShowPersonalizationPrompts:(BUPersonalizationPrompts *)prompts; + +/// reportor when personalization prompts did selected +/// @param prompts personalization Ads prompts +- (void)dislikeDidSelectedPersonalizationPrompts:(BUPersonalizationPrompts *)prompts; + +/// reportor when personalization prompts's url did load +/// @param prompts personalization prompts +- (void)dislikeDidLoadPersonalizationPromptsURL:(BUPersonalizationPrompts *)prompts; +@end + +@class BUNativeAd; +/// Dislike Data Reportor for Native Ad +@interface BUDislikeReportor : NSObject + +/// Dislike Reportor Instance +/// @param nativeAd native Ad +- (instancetype)initWithNativeAd:(BUNativeAd *)nativeAd; +@end + +#endif /* BUDislikeReportor_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeReportor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeReportor.h.meta new file mode 100644 index 00000000..2a004729 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeReportor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 041f72e420c6b450d9f2d91a7d106f3c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeWords.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeWords.h new file mode 100755 index 00000000..36d98257 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeWords.h @@ -0,0 +1,17 @@ +// +// BUDislikeWords.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +@interface BUDislikeWords : NSObject +@property (nonatomic, copy, readonly) NSString *dislikeID; +@property (nonatomic, copy, readonly) NSString *name; +@property (nonatomic, assign, readonly) BOOL isSelected; +@property (nonatomic, copy,readonly) NSArray *options; + +- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError **)error; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeWords.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeWords.h.meta new file mode 100644 index 00000000..7a2736ea --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUDislikeWords.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 154bfa33ff25e48eb9209d99d5d775d4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUFullscreenVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUFullscreenVideoAd.h new file mode 100755 index 00000000..519a8c29 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUFullscreenVideoAd.h @@ -0,0 +1,158 @@ +// +// BUFullscreenVideoAd.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +typedef NS_ENUM(NSUInteger, BUFullScreenVideoAdType) { + BUFullScreenAdTypeEndcard = 0, // video + endcard + BUFullScreenAdTypeVideoPlayable = 1, // video + playable + BUFullScreenAdTypePurePlayable = 2 // pure playable +}; + +NS_ASSUME_NONNULL_BEGIN + +@class BUFullscreenVideoAd; + +@protocol BUFullscreenVideoAdDelegate + +@optional + +/** + This method is called when video ad material loaded successfully. + */ +- (void)fullscreenVideoMaterialMetaAdDidLoad:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)fullscreenVideoAd:(BUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + */ +- (void)fullscreenVideoAdVideoDataDidLoad:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)fullscreenVideoAdWillVisible:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)fullscreenVideoAdDidVisible:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)fullscreenVideoAdDidClick:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)fullscreenVideoAdWillClose:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)fullscreenVideoAdDidClose:(BUFullscreenVideoAd *)fullscreenVideoAd; + + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)fullscreenVideoAdDidPlayFinish:(BUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when the user clicked skip button. + */ +- (void)fullscreenVideoAdDidClickSkip:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** +this method is used to get the type of fullscreen video ad + */ +- (void)fullscreenVideoAdCallback:(BUFullscreenVideoAd *)fullscreenVideoAd withType:(BUFullScreenVideoAdType)fullscreenVideoAdType; + +@end + +@interface BUFullscreenVideoAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use fullscreenVideoMaterialMetaAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Initializes video ad with slot id. + @param slotID : the unique identifier of video ad. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID; + +/** + Initializes video ad with slot. + @param slot : A object, through which you can pass in the fullscreen unique identifier, ad type, and so on. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Load video ad datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param sceneDescirbe : optional. Identifies a custom description of the presentation scenario. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUFullscreenVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUFullscreenVideoAd.h.meta new file mode 100644 index 00000000..43fb677f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUFullscreenVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 337b5e3c88d184d10b59c2619d62802c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUGeckoManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUGeckoManager.h new file mode 100755 index 00000000..7e132f7b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUGeckoManager.h @@ -0,0 +1,35 @@ +// +// BUGeckoManager.h +// Pods +// +// Created by admin on 2021/7/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef void (^BUGeckoPreloadCompletion)(NSData * _Nullable data,NSDictionary * _Nullable respHeader); +typedef void (^BUGeckoSyncDataCompletion)(BOOL success,NSDictionary *info); + +@interface BUGeckoManager : NSObject + +// 判断gecko是否已经初始化 ++ (BOOL)geckoDidSetup; + +// 注册Gecko的Accesskey,不同的Accesskey可以区分不同的业务 ++ (void)registAccessKey:(NSString *)ak; + +// 同步Gecko资源 ++ (void)syncResourcesParamsWithAccessKey:(NSString *)ak + channels:(NSArray *)channelIds + hosts:(NSArray *)hosts + completion:(BUGeckoSyncDataCompletion _Nullable)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info + accessKey:(NSString *)ak + channel:(NSString *)channel + completion:(BUGeckoPreloadCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUGeckoManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUGeckoManager.h.meta new file mode 100644 index 00000000..6a96b991 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUGeckoManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e2b4eab7bb1154d7cad1815128ca8a82 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUImage.h new file mode 100755 index 00000000..c8cef12b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUImage.h @@ -0,0 +1,34 @@ +// +// BUImage.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import + +@interface BUImage : NSObject + +// image address URL +@property (nonatomic, copy) NSString *imageURL; + +// image key +@property (nonatomic, copy) NSString *image_key; + + +// image width +@property (nonatomic, assign) float width; + +// image height +@property (nonatomic, assign) float height; + +// stream ad image druation + +@property (nonatomic, assign) float duration; + +- (instancetype)initWithDictionary:(NSDictionary *)dic; + +- (NSDictionary *)dictionaryValue; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUImage.h.meta new file mode 100644 index 00000000..8856f8be --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a38cdd72e95fe4f13b33a5f6cabe9bdf +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMaterialMeta.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMaterialMeta.h new file mode 100755 index 00000000..91306b2f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMaterialMeta.h @@ -0,0 +1,109 @@ +// +// BUMaterialMeta.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import "BUDislikeWords.h" +#import "BUImage.h" +#import "BUPersonalizationPrompts.h" + +typedef NS_ENUM(NSInteger, BUInteractionType) { + BUInteractionTypeCustorm = 0, + BUInteractionTypeNO_INTERACTION = 1, // pure ad display + BUInteractionTypeURL = 2, // open the webpage using a browser + BUInteractionTypePage = 3, // open the webpage within the app + BUInteractionTypeDownload = 4, // download the app + BUInteractionTypePhone = 5, // make a call + BUInteractionTypeMessage = 6, // send messages + BUInteractionTypeEmail = 7, // send email + BUInteractionTypeVideoAdDetail = 8 // video ad details page +}; + +typedef NS_ENUM(NSInteger, BUFeedADMode) { + BUFeedADModeSmallImage = 2, + BUFeedADModeLargeImage = 3, + BUFeedADModeGroupImage = 4, + BUFeedVideoAdModeImage = 5, // video ad || rewarded video ad horizontal screen + BUFeedVideoAdModePortrait = 15, // rewarded video ad vertical screen + BUFeedADModeImagePortrait = 16, + BUFeedADModeSquareImage = 33, //SquareImage Currently it exists only in the oversea now. V3200 add + BUFeedADModeSquareVideo = 50, //SquareVideo Currently it exists only in the oversea now. V3200 add + BUFeedADModeUnionSplashVideo = 154, // Video splash, V3800 add + BUFeedADModeUnionVerticalImage = 173, // vertical picture +}; + +@interface BUMaterialMeta : NSObject + +/// interaction types supported by ads. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) BUInteractionType interactionType; + +/// material pictures. +@property (nonatomic, strong) NSArray *imageAry; + +/// ad logo icon. +@property (nonatomic, strong) BUImage *icon; + +/// ad headline. +@property (nonatomic, copy) NSString *AdTitle; + +/// ad description. +@property (nonatomic, copy) NSString *AdDescription; + +/// ad source. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, copy) NSString *source; + +/// text displayed on the creative button. +@property (nonatomic, copy) NSString *buttonText; + +/// display format of the in-feed ad, other ads ignores it. +@property (nonatomic, assign) BUFeedADMode imageMode; + +/// Star rating, range from 1 to 5. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger score; + +/// Number of comments. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger commentNum; + +/// ad installation package size, unit byte. +@property (nonatomic, assign) NSInteger appSize; + +/// video duration +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger videoDuration; + +/// video url, will be empty string if allowCustomVideoPlayer is NO, contact BD to add to allow list. +@property (nonatomic, copy, readonly) NSString *videoUrl; + +/// be allowed to play video ad via custome player, contact BD to add to allow list. +@property (nonatomic, assign, readonly) BOOL allowCustomVideoPlayer; + +/// video resolution width +@property (nonatomic, assign, readonly) NSInteger videoResolutionWidth; + +/// video resolution height +@property (nonatomic, assign, readonly) NSInteger videoResolutionHeight; + +/// the reason why dislike the ad. +@property (nonatomic, copy) NSArray *filterWords; + +/// compliance statement of personalized advertising push +@property (nonatomic, strong) BUPersonalizationPrompts *personalPrompts; + +/// media configuration parameters. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, copy) NSDictionary *mediaExt; + +/// adx name, if it exists, it is recommended to display this text +@property (nonatomic, copy) NSString *ADXName; + +- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError * __autoreleasing *)error; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMaterialMeta.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMaterialMeta.h.meta new file mode 100644 index 00000000..7277be98 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMaterialMeta.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f1e3c8de7f8d044d0a0000ea124afbac +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMopubAdMarkUpDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMopubAdMarkUpDelegate.h new file mode 100755 index 00000000..53b3177d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMopubAdMarkUpDelegate.h @@ -0,0 +1,50 @@ +// +// BUMopubAdMarkUpDelegate.h +// BUAdSDK +// +// Created by Siwant on 2020/4/24. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class BUAdSlot; + +@protocol BUMopubAdMarkUpDelegate +@optional + +/** Mopub AdMarkUp + */ +- (void)setAdMarkup:(NSString *)adm; +- (void)setMopubAdMarkUp:(NSString *)adm DEPRECATED_MSG_ATTRIBUTE("please use -setAdMarkup: instead"); + +/// Bidding Token. Now for MSDK in domestic, used for every ad type. +- (NSString *)biddingToken; + +/** Mopub Adaptor get AD type from rit + * @return @{@"adSlotType": @(1), @"renderType": @(1)} + * adSlotType refer from BUAdSlotAdType in "BUAdSlot.h" + * showType: @"1" express AD @"2" native AD + */ ++ (nullable NSDictionary *)AdTypeWithRit:(NSString *)rit error:(NSError **)error; + +/** Mopub bidding Adaptor get AD type from adm + * @return @{@"adSlotType": @(1), @"renderType": @(1)} + * adSlotType refer from BUAdSlotAdType in "BUAdSlot.h" + * showType: @"1" express AD @"2" native AD + */ ++ (NSDictionary *)AdTypeWithAdMarkUp:(NSString *)adm; + + +/// Mopub Bidding Token ++ (NSString *)mopubBiddingToken DEPRECATED_MSG_ATTRIBUTE("please use +getBiddingToken: instead"); + +/// overseas bidding token +/// @param slotID the unique identifier of ad. ++ (NSString *)getBiddingToken:(nullable NSString *)slotID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMopubAdMarkUpDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMopubAdMarkUpDelegate.h.meta new file mode 100644 index 00000000..11716e26 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUMopubAdMarkUpDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b46bcb310902e4c5c8a9d14b61e28c4e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAd.h new file mode 100755 index 00000000..e35ae8cc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAd.h @@ -0,0 +1,144 @@ +// +// BUNativeAd.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUVideoAdView.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + + +@protocol BUNativeAdDelegate; + +NS_ASSUME_NONNULL_BEGIN + + +/** + Abstract ad slot containing ad data loading, response callbacks. + BUNativeAd currently supports native ads. + Native ads include in-feed ad (multiple ads, image + video), general native ad (single ad, image + video), native banner ad, and native interstitial ad. + Support interstitial ad, banner ad, splash ad, rewarded video ad, full-screen video ad. + */ +@interface BUNativeAd : NSObject + +/** + Ad slot description. + */ +@property (nonatomic, strong, readwrite, nullable) BUAdSlot *adslot; + +/** + Ad slot material. + */ +@property (atomic, strong, readonly, nullable) BUMaterialMeta *data; + +/** + The delegate for receiving state change messages. + The delegate is not limited to viewcontroller. + The delegate can be set to any object which conforming to . + */ +@property (nonatomic, weak, readwrite, nullable) id delegate; + +/** + required. + Root view controller for handling ad actions. + Action method includes is 'presentViewController'. + */ +@property (nonatomic, weak, readwrite) UIViewController *rootViewController; + +/** + Initializes native ad with ad slot. + @param slot : ad slot description. + including slotID,adType,adPosition,etc. + @return BUNativeAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Register clickable views in native ads view. + Interaction types can be configured on TikTok Audience Network. + Interaction types include view video ad details page, make a call, send email, download the app, open the webpage using a browser,open the webpage within the app, etc. + @param containerView : required. + container view of the native ad. + @param clickableViews : optional. + Array of views that are clickable. + */ +- (void)registerContainer:(__kindof UIView *)containerView + withClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews; + +/** + Unregister ad view from the native ad. + */ +- (void)unregisterView; + +/** + Actively request nativeAd datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + + +@protocol BUNativeAdDelegate + +@optional + +/** + This method is called when native ad material loaded successfully. This method will be deprecated. Use nativeAdDidLoad:view: instead + */ +- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd; + + +/** + This method is called when native ad material loaded successfully. + */ +- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd view:(UIView *_Nullable)view; + +/** + This method is called when native ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeAd:(BUNativeAd *)nativeAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when native ad slot has been shown. + */ +- (void)nativeAdDidBecomeVisible:(BUNativeAd *)nativeAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeAdDidCloseOtherController:(BUNativeAd *)nativeAd interactionType:(BUInteractionType)interactionType; + +/** + This method is called when native ad is clicked. + */ +- (void)nativeAdDidClick:(BUNativeAd *)nativeAd withView:(UIView *_Nullable)view; + +/** + This method is called when the user clicked dislike reasons. + Only used for dislikeButton in BUNativeAdRelatedView.h + @param filterWords : reasons for dislike + */ +- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd dislikeWithReason:(NSArray *_Nullable)filterWords; + +/** + This method is called when the Ad view container is forced to be removed. + @param nativeAd : Ad material + @param adContainerView : Ad view container + */ +- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd adContainerViewDidRemoved:(UIView *)adContainerView; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAd.h.meta new file mode 100644 index 00000000..f785e1d7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c900e9170108740069084e304db6204b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdRelatedView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdRelatedView.h new file mode 100755 index 00000000..ca0bd02d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdRelatedView.h @@ -0,0 +1,54 @@ +// +// BUNativeAdRelatedView.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUVideoAdView.h" +#import "BUNativeAd.h" +#import "BUVideoAdReportor.h" +#import "BUDislikeReportor.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BUNativeAdRelatedView : NSObject + +/** + Need to actively add to the view in order to deal with the feedback and improve the accuracy of ad. + */ +@property (nonatomic, strong, readonly, nullable) UIButton *dislikeButton; + +///Promotion label.Need to actively add to the view. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, strong, readonly, nullable) UILabel *adLabel; + +///Ad logo.Need to actively add to the view. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, strong, readonly, nullable) UIImageView *logoImageView; +/** + Ad logo + Promotion label.Need to actively add to the view. + */ +@property (nonatomic, strong, readonly, nullable) UIImageView *logoADImageView; + +/** + Video ad view. Need to actively add to the view. Can not coexist with videoAdReportor. + */ +@property (nonatomic, strong, readonly, nullable) BUVideoAdView *videoAdView; + +/** +Video ad Reportor. Can not coexist with videoAdView. +*/ +@property (nonatomic, strong, readonly, nullable) id videoAdReportor; + +/** + Refresh the data every time you get new datas in order to show ad perfectly. + */ +- (void)refreshData:(BUNativeAd *)nativeAd; + +//@property (nonatomic, copy) BOOL(^expectUseCustomVideoPlayer)(BOOL isSupported, NSString *videoUrl); + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdRelatedView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdRelatedView.h.meta new file mode 100644 index 00000000..0d33603a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdRelatedView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a9230a999c9e4645a8d7d9cddac3e41 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdsManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdsManager.h new file mode 100755 index 00000000..b35308a3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdsManager.h @@ -0,0 +1,54 @@ +// +// BUNativeAdsManager.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +/** + BUNativeAdsManager : for multiple requests at the same time. + */ + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUNativeAd.h" +#import "BUNativeExpressAdViewDelegate.h" + +@protocol BUNativeAdsManagerDelegate; + +NS_ASSUME_NONNULL_BEGIN +/// Bunativeadsmanager class can request multiple ad data per time. +@interface BUNativeAdsManager : NSObject + +@property (nonatomic, strong, nullable) BUAdSlot *adslot; +@property (nonatomic, strong, nullable) NSArray *data; +/// The delegate for receiving state change messages such as requests succeeding/failing. +/// The delegate can be set to any object which conforming to . +@property (nonatomic, weak, nullable) id delegate; +/// The delegate for receiving messages when is render template +@property (nonatomic, weak, nullable) id nativeExpressAdViewDelegate; +/// Valid only in native Feed +@property (nonatomic, assign, readwrite) CGSize adSize; +- (instancetype)initWithSlot:(BUAdSlot * _Nullable) slot; + +/** + It is recommended to request no more than 3 ads. + The maximum is 10. + */ +- (void)loadAdDataWithCount:(NSInteger)count; + +@end + +@protocol BUNativeAdsManagerDelegate + +@optional + +- (void)nativeAdsManagerSuccessToLoad:(BUNativeAdsManager *)adsManager nativeAds:(NSArray *_Nullable)nativeAdDataArray; + +- (void)nativeAdsManager:(BUNativeAdsManager *)adsManager didFailWithError:(NSError *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdsManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdsManager.h.meta new file mode 100644 index 00000000..5c226ef9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeAdsManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3db7a5263deb34c5c8345557583e455d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdManager.h new file mode 100755 index 00000000..e8186013 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdManager.h @@ -0,0 +1,52 @@ +// +// BUNativeExpressAdManager.h +// BUAdSDK +// +// Created by bytedance on 2019/1/20. +// Copyright © 2019年 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUNativeExpressAdView.h" +#import "BUDislikeWords.h" +#import "BUPlayerPublicDefine.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUNativeExpressAdViewDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressAdManager : NSObject + +@property (nonatomic, strong, nullable) BUAdSlot *adslot; + +@property (nonatomic, assign, readwrite) CGSize adSize; + +/** + The delegate for receiving state change messages from a BUNativeExpressAdManager + */ +@property (nonatomic, weak, nullable) id delegate; + + +/** + @param size expected ad view size,when size.height is zero, acture height will match size.width + */ +- (instancetype)initWithSlot:(BUAdSlot * _Nullable)slot adSize:(CGSize)size; + +/** + The number of ads requested,The maximum is 3 + */ +- (void)loadAdDataWithCount:(NSInteger)count; +@end + +@interface BUNativeExpressAdManager (Deprecated) +- (void)loadAd:(NSInteger)count __attribute__((deprecated("Use loadAdDataWithCount: instead."))); +@end + + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdManager.h.meta new file mode 100644 index 00000000..9f0645b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a3e1fb82b16cc4693a7fcc5c05872e0a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdView.h new file mode 100755 index 00000000..e26a9615 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdView.h @@ -0,0 +1,49 @@ +// +// BUNativeExpressAdView.h +// BUAdSDK +// +// Created by bytedance on 2019/1/20. +// Copyright © 2019年 bytedance. All rights reserved. +// + +#import +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + + +@interface BUNativeExpressAdView : UIView +/** + * Whether render is ready + */ +@property (nonatomic, assign, readonly) BOOL isReady; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/// video duration. +@property (nonatomic,assign, readonly) NSInteger videoDuration; + +/// Get the already played time. +@property (nonatomic,assign, readonly) CGFloat currentPlayedTime; + +/* + required. + Root view controller for handling ad actions. + */ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** + required + */ +- (void)render; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdView.h.meta new file mode 100644 index 00000000..0f049356 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5f3b5fc3e39144e90b58387a9ea83239 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdViewDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdViewDelegate.h new file mode 100755 index 00000000..748b9b86 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdViewDelegate.h @@ -0,0 +1,89 @@ +// +// BUNativeExpressAdViewDelegate.h +// BUAdSDK +// +// Created by Rush.D.Xzj on 2020/10/12. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" + +NS_ASSUME_NONNULL_BEGIN + + +@class BUNativeExpressAdManager; +@class BUNativeExpressAdView; +@class BUDislikeWords; + +@protocol BUNativeExpressAdViewDelegate + +@optional +/** + * Sent when views successfully load ad + */ +- (void)nativeExpressAdSuccessToLoad:(BUNativeExpressAdManager *)nativeExpressAdManager views:(NSArray<__kindof BUNativeExpressAdView *> *)views; + +/** + * Sent when views fail to load ad + */ +- (void)nativeExpressAdFailToLoad:(BUNativeExpressAdManager *)nativeExpressAdManager error:(NSError *_Nullable)error; + +/** + * This method is called when rendering a nativeExpressAdView successed, and nativeExpressAdView.size.height has been updated + */ +- (void)nativeExpressAdViewRenderSuccess:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + * This method is called when a nativeExpressAdView failed to render + */ +- (void)nativeExpressAdViewRenderFail:(BUNativeExpressAdView *)nativeExpressAdView error:(NSError *_Nullable)error; + +/** + * Sent when an ad view is about to present modal content + */ +- (void)nativeExpressAdViewWillShow:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + * Sent when an ad view is clicked + */ +- (void)nativeExpressAdViewDidClick:(BUNativeExpressAdView *)nativeExpressAdView; + +/** +Sent when a playerw playback status changed. +@param playerState : player state after changed +*/ +- (void)nativeExpressAdView:(BUNativeExpressAdView *)nativeExpressAdView stateDidChanged:(BUPlayerPlayState)playerState; + +/** + * Sent when a player finished + * @param error : error of player + */ +- (void)nativeExpressAdViewPlayerDidPlayFinish:(BUNativeExpressAdView *)nativeExpressAdView error:(NSError *)error; + +/** + * Sent when a user clicked dislike reasons. + * @param filterWords : the array of reasons why the user dislikes the ad + */ +- (void)nativeExpressAdView:(BUNativeExpressAdView *)nativeExpressAdView dislikeWithReason:(NSArray *)filterWords; + +/** + * Sent after an ad view is clicked, a ad landscape view will present modal content + */ +- (void)nativeExpressAdViewWillPresentScreen:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressAdViewDidCloseOtherController:(BUNativeExpressAdView *)nativeExpressAdView interactionType:(BUInteractionType)interactionType; + + +/** + This method is called when the Ad view container is forced to be removed. + @param nativeExpressAdView : Ad view container + */ +- (void)nativeExpressAdViewDidRemoved:(BUNativeExpressAdView *)nativeExpressAdView; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdViewDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdViewDelegate.h.meta new file mode 100644 index 00000000..ea8c21d0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressAdViewDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bca25931d94974d7eaae896b132515f9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressBannerView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressBannerView.h new file mode 100755 index 00000000..501f779d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressBannerView.h @@ -0,0 +1,156 @@ +// +// BUNativeExpressBannerView.h +// BUAdSDK +// +// Created by xxx on 2019/5/17. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class BUNativeExpressBannerView; +@class BUDislikeWords; +@class BUSize; + +@protocol BUNativeExpressBannerViewDelegate + +@optional +/** + This method is called when bannerAdView ad slot loaded successfully. + @param bannerAdView : view for bannerAdView + */ +- (void)nativeExpressBannerAdViewDidLoad:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when bannerAdView ad slot failed to load. + @param error : the reason of error + */ +- (void)nativeExpressBannerAdView:(BUNativeExpressBannerView *)bannerAdView didLoadFailWithError:(NSError *_Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpressBannerAdViewRenderSuccess:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressBannerAdViewRenderFail:(BUNativeExpressBannerView *)bannerAdView error:(NSError * __nullable)error; + +/** + This method is called when bannerAdView ad slot showed new ad. + */ +- (void)nativeExpressBannerAdViewWillBecomVisible:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when bannerAdView is clicked. + */ +- (void)nativeExpressBannerAdViewDidClick:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when the user clicked dislike button and chose dislike reasons. + @param filterwords : the array of reasons for dislike. + */ +- (void)nativeExpressBannerAdView:(BUNativeExpressBannerView *)bannerAdView dislikeWithReason:(NSArray *_Nullable)filterwords; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressBannerAdViewDidCloseOtherController:(BUNativeExpressBannerView *)bannerAdView interactionType:(BUInteractionType)interactionType; + +/** + This method is called when the Ad view container is forced to be removed. + @param bannerAdView : Express Banner Ad view container + */ +- (void)nativeExpressBannerAdViewDidRemoved:(BUNativeExpressBannerView *)bannerAdView; +@end + +@interface BUNativeExpressBannerView : UIView + +@property (nonatomic, weak, nullable) id delegate; + +/** + The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + */ +@property (nonatomic, assign, readonly) NSInteger interval; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes express banner ad. + @param slotID The unique identifier of banner ad. + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize; + +/** + Initializes carousel express banner ad. + @param slotID The unique identifier of banner ad. + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @param interval The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + interval:(NSInteger)interval; + +/** + Initializes express banner ad. + @param slot A object, through which you can pass in the banner unique identifier, ad type, and so on + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize; + +/** + Initializes carousel express banner ad. + @param slot A object, through which you can pass in the banner unique identifier, ad type, and so on + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @param interval The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + interval:(NSInteger)interval; + +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + +@interface BUNativeExpressBannerView (Deprecated) +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + IsSupportDeepLink:(BOOL)isSupportDeepLink DEPRECATED_MSG_ATTRIBUTE("Use initWithSlotID:rootViewController:adSize: instead."); +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + IsSupportDeepLink:(BOOL)isSupportDeepLink + interval:(NSInteger)interval DEPRECATED_MSG_ATTRIBUTE("Use initWithSlotID:rootViewController:adSize:interval: instead."); +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressBannerView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressBannerView.h.meta new file mode 100644 index 00000000..3571135b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressBannerView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5a85b7880e424cba8d5e9e25f098561 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressFullscreenVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressFullscreenVideoAd.h new file mode 100755 index 00000000..1422825c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressFullscreenVideoAd.h @@ -0,0 +1,176 @@ +// +// BUNativeExpressFullscreenVideoAd.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressFullscreenVideoAd; + +//define the type of native express video ad +typedef NS_ENUM(NSUInteger, BUNativeExpressFullScreenAdType) { + BUNativeExpressFullScreenAdTypeEndcard = 0, // video + endcard + BUNativeExpressFullScreenAdTypeVideoPlayable = 1, // video + playable + BUNativeExpressFullScreenAdTypePurePlayable = 2 // pure playable +}; + +NS_ASSUME_NONNULL_BEGIN +@protocol BUNativeExpressFullscreenVideoAdDelegate + +@optional +/** + This method is called when video ad material loaded successfully. + */ +- (void)nativeExpressFullscreenVideoAdDidLoad:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAd:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + It will happen when ad is show. + */ +- (void)nativeExpressFullscreenVideoAdViewRenderSuccess:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAdViewRenderFail:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + For a better user experience, it is recommended to display video ads at this time. + And you can call [BUNativeExpressFullscreenVideoAd showAdFromRootViewController:]. + */ +- (void)nativeExpressFullscreenVideoAdDidDownLoadVideo:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)nativeExpressFullscreenVideoAdWillVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)nativeExpressFullscreenVideoAdDidVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)nativeExpressFullscreenVideoAdDidClick:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when the user clicked skip button. + */ +- (void)nativeExpressFullscreenVideoAdDidClickSkip:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)nativeExpressFullscreenVideoAdWillClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)nativeExpressFullscreenVideoAdDidClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAdDidPlayFinish:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** +This method is used to get the type of nativeExpressFullScreenVideo ad + */ +- (void)nativeExpressFullscreenVideoAdCallback:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd withType:(BUNativeExpressFullScreenAdType) nativeExpressVideoAdType; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressFullscreenVideoAdDidCloseOtherController:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressFullscreenVideoAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use nativeExpressFullscreenVideoAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Initializes video ad with slot id. + @param slotID : the unique identifier of video ad. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID; + +/** + Initializes video ad with slot. + @param slot : A object, through which you can pass in the fullscreen unique identifier, ad type, and so on. + @return BUNativeExpressFullscreenVideoAd +*/ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Load video ad datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param sceneDescirbe : optional. Identifies a custom description of the presentation scenario. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressFullscreenVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressFullscreenVideoAd.h.meta new file mode 100644 index 00000000..9669a695 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressFullscreenVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1e17dea4af1154c56902c118ec229c64 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressInterstitialAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressInterstitialAd.h new file mode 100755 index 00000000..400c841f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressInterstitialAd.h @@ -0,0 +1,117 @@ +// +// BUNativeExpressInterstitialAd.h +// BUAdSDK +// +// Created by xxx on 2019/5/16. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class BUSize; +@class BUNativeExpressInterstitialAd; + +@protocol BUNativeExpresInterstitialAdDelegate + +@optional +/** + This method is called when interstitial ad material loaded successfully. + */ +- (void)nativeExpresInterstitialAdDidLoad:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad material failed to load. + @param error : the reason of error + */ +- (void)nativeExpresInterstitialAd:(BUNativeExpressInterstitialAd *)interstitialAd didFailWithError:(NSError * __nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpresInterstitialAdRenderSuccess:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpresInterstitialAdRenderFail:(BUNativeExpressInterstitialAd *)interstitialAd error:(NSError * __nullable)error; + +/** + This method is called when interstitial ad slot will be showing. + */ +- (void)nativeExpresInterstitialAdWillVisible:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is clicked. + */ +- (void)nativeExpresInterstitialAdDidClick:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is about to close. + */ +- (void)nativeExpresInterstitialAdWillClose:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is closed. + */ +- (void)nativeExpresInterstitialAdDidClose:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpresInterstitialAdDidCloseOtherController:(BUNativeExpressInterstitialAd *)interstitialAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressInterstitialAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; + +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes interstitial ad. + @param slotID : The unique identifier of interstitial ad. + @param adsize : custom size of ad view. + @return BUNativeExpressInterstitialAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID adSize:(CGSize)adsize; + +/** + Initializes express intersitial ad. + @param slot A object, through which you can pass in the interstitial unique identifier, ad type, and so on + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressInterstitialAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot adSize:(CGSize)adsize; + +/** + Load interstitial ad datas. + */ +- (void)loadAdData; + +/** + Display interstitial ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressInterstitialAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressInterstitialAd.h.meta new file mode 100644 index 00000000..39f7511e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressInterstitialAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cad9d5cf9f56340999610c5c9901f309 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressRewardedVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressRewardedVideoAd.h new file mode 100755 index 00000000..8bde857a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressRewardedVideoAd.h @@ -0,0 +1,197 @@ +// +// BUNativeExpressRewardedVideoAd.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUAdSDKDefines.h" +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressRewardedVideoAd; +@class BURewardedVideoModel; + +NS_ASSUME_NONNULL_BEGIN + +/// define the type of native express rewarded video Ad +typedef NS_ENUM(NSUInteger, BUNativeExpressRewardedVideoAdType) { + BUNativeExpressRewardedVideoAdTypeEndcard = 0, // video + endcard + BUNativeExpressRewardedVideoAdTypeVideoPlayable = 1, // video + playable + BUNativeExpressRewardedVideoAdTypePurePlayable = 2, // pure playable +}; + +@protocol BUNativeExpressRewardedVideoAdDelegate + +@optional +/** + This method is called when video ad material loaded successfully. + */ +- (void)nativeExpressRewardedVideoAdDidLoad:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAd:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; +/** + this methods is to tell delegate the type of native express rewarded video Ad + */ +- (void)nativeExpressRewardedVideoAdCallback:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd withType:(BUNativeExpressRewardedVideoAdType)nativeExpressVideoType; + +/** + This method is called when cached successfully. + For a better user experience, it is recommended to display video ads at this time. + And you can call [BUNativeExpressRewardedVideoAd showAdFromRootViewController:]. + */ +- (void)nativeExpressRewardedVideoAdDidDownLoadVideo:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when rendering a nativeExpressAdView successed. + It will happen when ad is show. + */ +- (void)nativeExpressRewardedVideoAdViewRenderSuccess:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAdViewRenderFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when video ad slot will be showing. + */ +- (void)nativeExpressRewardedVideoAdWillVisible:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)nativeExpressRewardedVideoAdDidVisible:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)nativeExpressRewardedVideoAdWillClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)nativeExpressRewardedVideoAdDidClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)nativeExpressRewardedVideoAdDidClick:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when the user clicked skip button. + */ +- (void)nativeExpressRewardedVideoAdDidClickSkip:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAdDidPlayFinish:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + Server verification which is requested asynchronously is succeeded. now include two v erify methods: + 1. C2C need server verify 2. S2S don't need server verify + @param verify :return YES when return value is 2000. + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidSucceed:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify; + +/** + Server verification which is requested asynchronously is failed. + Return value is not 2000. + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd __attribute__((deprecated("Use nativeExpressRewardedVideoAdServerRewardDidFail: error: instead."))); + +/** + Server verification which is requested asynchronously is failed. + @param rewardedVideoAd express rewardVideo Ad + @param error request error info + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressRewardedVideoAdDidCloseOtherController:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressRewardedVideoAd : NSObject +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, weak, nullable) id rewardPlayAgainInteractionDelegate; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. +*/ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Whether material is effective. + Setted to YES when data is not empty and has not been displayed. + Repeated display is not billed. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use nativeExpressRewardedVideoAdDidLoad: instead."))); + +- (instancetype)initWithSlotID:(NSString *)slotID rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Initializes Rewarded video ad with ad slot and frame. + @param slot A object, through which you can pass in the reward unique identifier, ad type, and so on. + @param model Rewarded video model. + @return BUNativeExpressRewardedVideoAd +*/ +- (instancetype)initWithSlot:(BUAdSlot *)slot rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +- (void)loadAdData; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + If ritSceneType is custom, you need to pass in the values for sceneDescirbe. + @param ritSceneType : optional. Identifies a custom description of the presentation scenario. + @param sceneDescirbe : optional. Identify the scene of presentation. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritScene:(BURitSceneType)ritSceneType ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressRewardedVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressRewardedVideoAd.h.meta new file mode 100644 index 00000000..320d47f4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressRewardedVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c712934854c70425ebab603abc55c807 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressSplashView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressSplashView.h new file mode 100755 index 00000000..cf7b6c6b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressSplashView.h @@ -0,0 +1,143 @@ +// +// BUNativeExpressSplashView.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressSplashView; + +NS_ASSUME_NONNULL_BEGIN +@protocol BUNativeExpressSplashViewDelegate +/** + This method is called when splash ad material loaded successfully. + */ +- (void)nativeExpressSplashViewDidLoad:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when splash ad material failed to load. + @param error : the reason of error + */ +- (void)nativeExpressSplashView:(BUNativeExpressSplashView *)splashAdView didFailWithError:(NSError * _Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpressSplashViewRenderSuccess:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressSplashViewRenderFail:(BUNativeExpressSplashView *)splashAdView error:(NSError * __nullable)error; + +/** + This method is called when nativeExpressSplashAdView will be showing. + */ +- (void)nativeExpressSplashViewWillVisible:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView is clicked. + */ +- (void)nativeExpressSplashViewDidClick:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView's skip button is clicked. + */ +- (void)nativeExpressSplashViewDidClickSkip:(BUNativeExpressSplashView *)splashAdView; +/** + This method is called when nativeExpressSplashAdView countdown equals to zero + */ +- (void)nativeExpressSplashViewCountdownToZero:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView closed. + */ +- (void)nativeExpressSplashViewDidClose:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when when video ad play completed or an error occurred. + */ +- (void)nativeExpressSplashViewFinishPlayDidPlayFinish:(BUNativeExpressSplashView *)splashView didFailWithError:(NSError *)error; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressSplashViewDidCloseOtherController:(BUNativeExpressSplashView *)splashView interactionType:(BUInteractionType)interactionType; + +@end + + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressSplashView : UIView +/** + The delegate for receiving state change messages. + */ +@property (nonatomic, weak, nullable) id delegate; + +/** + Maximum allowable load timeout, default 3s, unit s. + */ +@property (nonatomic, assign) NSTimeInterval tolerateTimeout; + +/** + Whether hide skip button, default NO. + If you hide the skip button, you need to customize the countdown. + */ +@property (nonatomic, assign) BOOL hideSkipButton; + +/** + Whether the splash ad data has been loaded. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes native express splash ad with slot id and frame. + @param slotID : the unique identifier of splash ad + @param adSize : the adSize of native express splashAd view. It is recommended for the mobile phone screen. + @param rootViewController : the root controller for present splash. + @return BUNativeExpressSplashView + */ +- (instancetype)initWithSlotID:(NSString *)slotID adSize:(CGSize)adSize rootViewController:(UIViewController *)rootViewController; + +/** + Initializes Express Splash video ad with ad slot, adSize and rootViewController. + @param slot A object, through which you can pass in the splash unique identifier, ad type, and so on. + @param adSize the adSize of native express splashAd view. It is recommended for the mobile phone screen. + @param rootViewController the root controller for present splash. + @return BUNativeExpressSplashView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot adSize:(CGSize)adSize rootViewController:(UIViewController *)rootViewController; + + +/** + Load splash ad datas. + Start the countdown(@tolerateTimeout) as soon as you request datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Remove splash view. + Stop the countdown as soon as you call this method. + 移除开屏视图 + 一旦调用这个方法,倒计时将自动停止 + */ +- (void)removeSplashView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressSplashView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressSplashView.h.meta new file mode 100644 index 00000000..bad9093d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUNativeExpressSplashView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d8cb3c839d14a4e4eb9f7402b56fe456 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPersonalizationPrompts.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPersonalizationPrompts.h new file mode 100755 index 00000000..52b38818 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPersonalizationPrompts.h @@ -0,0 +1,24 @@ +// +// BUPersonalizationPrompts.h +// BUAdSDK +// +// Created by bytedance on 2020/11/10. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + + +@interface BUPersonalizationPrompts : NSObject +/// personalization prompts's name +@property (nonatomic, copy) NSString *personalizationName; +/// personalization prompts's url +@property (nonatomic, copy) NSString *personalizationUrl; +/// personalization prompts valid or not +- (BOOL)validPersonalPrompts; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPersonalizationPrompts.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPersonalizationPrompts.h.meta new file mode 100644 index 00000000..c5ee5632 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPersonalizationPrompts.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc9fdd80f6a644c3ab658de4cc0a1110 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPlayerPublicDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPlayerPublicDefine.h new file mode 100755 index 00000000..dfd13772 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPlayerPublicDefine.h @@ -0,0 +1,20 @@ +// +// BUPlayerPublicDefine.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#ifndef BUPlayerPublicDefine_h +#define BUPlayerPublicDefine_h + +typedef NS_ENUM(NSInteger, BUPlayerPlayState) { + BUPlayerStateFailed = 0, + BUPlayerStateBuffering = 1, + BUPlayerStatePlaying = 2, + BUPlayerStateStopped = 3, + BUPlayerStatePause = 4, + BUPlayerStateDefalt = 5 +}; + +#endif /* BUPlayerPublicDefine_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPlayerPublicDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPlayerPublicDefine.h.meta new file mode 100644 index 00000000..7353a0f7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUPlayerPublicDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b0686219573024302acdd0a04f9f9396 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoAd.h new file mode 100755 index 00000000..cf53136c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoAd.h @@ -0,0 +1,176 @@ +// +// BURewardedVideoAd.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUAdSDKDefines.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +/// define the type of rewarded video ad +typedef NS_ENUM(NSUInteger, BURewardedVideoAdType) { + BURewardedVideoAdTypeEndcard = 0, // video + endcard + BURewardedVideoAdTypeVideoPlayable = 1, // video + playable + BURewardedVideoAdTypePurePlayable = 2 // pure playable +}; + +@protocol BURewardedVideoAdDelegate; +@class BURewardedVideoModel; + +@interface BURewardedVideoAd : NSObject +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, weak, nullable) id rewardPlayAgainInteractionDelegate; +/** + Whether material is effective. + Setted to YES when data is not empty and has not been displayed. + Repeated display is not billed. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use rewardedVideoAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign,readonly) NSTimeInterval expireTimestamp; + +- (instancetype)initWithSlotID:(NSString *)slotID rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Initializes Rewarded video ad with ad slot and frame. + @param slot A object, through which you can pass in the reward unique identifier, ad type, and so on. + @param model Rewarded video model. + @return BURewardedVideoAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot rewardedVideoModel:(BURewardedVideoModel *)model; + + +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; +/** + If ritSceneType is custom, you need to pass in the values for sceneDescirbe. + @param ritSceneType : optional. Identifies a custom description of the presentation scenario. + @param sceneDescirbe : optional. Identify the scene of presentation. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritScene:(BURitSceneType)ritSceneType ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +@protocol BURewardedVideoAdDelegate + +@optional + +/** + This method is called when video ad material loaded successfully. + */ +- (void)rewardedVideoAdDidLoad:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)rewardedVideoAd:(BURewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + */ +- (void)rewardedVideoAdVideoDidLoad:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)rewardedVideoAdWillVisible:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)rewardedVideoAdDidVisible:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)rewardedVideoAdWillClose:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)rewardedVideoAdDidClose:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)rewardedVideoAdDidClick:(BURewardedVideoAd *)rewardedVideoAd; + + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)rewardedVideoAdDidPlayFinish:(BURewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + Server verification which is requested asynchronously is succeeded. + @param verify :return YES when return value is 2000. + */ +- (void)rewardedVideoAdServerRewardDidSucceed:(BURewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify; + +/** + Server verification which is requested asynchronously is failed. + Return value is not 2000. + */ +- (void)rewardedVideoAdServerRewardDidFail:(BURewardedVideoAd *)rewardedVideoAd __attribute__((deprecated("Use rewardedVideoAdServerRewardDidFail: error: instead."))); + +/** + Server verification which is requested asynchronously is failed. + @param rewardedVideoAd rewarded Video ad + @param error request error info + */ +- (void)rewardedVideoAdServerRewardDidFail:(BURewardedVideoAd *)rewardedVideoAd error:(NSError *)error; + +/** + This method is called when the user clicked skip button. + */ +- (void)rewardedVideoAdDidClickSkip:(BURewardedVideoAd *)rewardedVideoAd; + +/** + this method is used to get type of rewarded video Ad + */ +- (void)rewardedVideoAdCallback:(BURewardedVideoAd *)rewardedVideoAd withType:(BURewardedVideoAdType)rewardedVideoAdType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoAd.h.meta new file mode 100644 index 00000000..e58c20d5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a70a23a9b6b6b420782bc44e90147c9f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoModel.h new file mode 100755 index 00000000..7b22ffa7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoModel.h @@ -0,0 +1,31 @@ +// +// BURewardedVideoModel.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +@interface BURewardedVideoModel : NSObject + +/** + optional. + Third-party game user_id identity. + Mainly used in the reward issuance, it is the callback pass-through parameter from server-to-server. + It is the unique identifier of each user. + In the non-server callback mode, it will also be pass-through when the video is finished playing. + Only the string can be passed in this case, not nil. + */ +@property (nonatomic, copy) NSString *userId; + +//optional. serialized string. +@property (nonatomic, copy) NSString *extra; + +//reward name. It will assigned value when the ads back. +@property (nonatomic, copy) NSString *rewardName; + +//number of rewards. It will assigned value when the ads back. +@property (nonatomic, assign) NSInteger rewardAmount; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoModel.h.meta new file mode 100644 index 00000000..c13ca6a2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BURewardedVideoModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c68c11fb65d6e453aa3e9a4d89b30600 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSize.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSize.h new file mode 100755 index 00000000..7bab35bc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSize.h @@ -0,0 +1,46 @@ +// +// BUSize.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import + +/** + Get the view with the best results by using the predefined size in pixels. + When it comes to view display, it is recommended to use the same scaling. +*/ +typedef NS_ENUM(NSInteger, BUProposalSize) { + BUProposalSize_Banner600_90, + BUProposalSize_Banner640_100, + BUProposalSize_Banner600_150, + BUProposalSize_Banner600_260, + BUProposalSize_Banner600_286, + BUProposalSize_Banner600_300, + BUProposalSize_Banner690_388, + BUProposalSize_Banner600_400, + BUProposalSize_Banner600_500, + BUProposalSize_Feed228_150, + BUProposalSize_Feed690_388, + BUProposalSize_Interstitial600_400, + BUProposalSize_Interstitial600_600, + BUProposalSize_Interstitial600_900, + BUProposalSize_DrawFullScreen +}; + +@interface BUSize : NSObject + +// width unit pixel. +@property (nonatomic, assign) NSInteger width; + +// height unit pixel. +@property (nonatomic, assign) NSInteger height; + +- (NSDictionary *)dictionaryValue; + +@end + +@interface BUSize (BU_SizeFactory) ++ (instancetype)sizeBy:(BUProposalSize)proposalSize; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSize.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSize.h.meta new file mode 100644 index 00000000..23d7cc08 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSize.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2777323163c09416ba3aa981c9a4866a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSlotABManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSlotABManager.h new file mode 100755 index 00000000..bf385bd0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSlotABManager.h @@ -0,0 +1,26 @@ +// +// BUSlotABManager.h +// BUAdSDK +// +// Created by shenqichen on 2021/11/2. +// + +#import +#import "BUAdSlot.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void (^BUSlotABFetchCompletion)(NSString * _Nullable slotId, BUAdSlotAdType slotType, NSError * _Nullable error); + +@interface BUSlotABManager : NSObject + ++ (instancetype)sharedInstance; + +/// Decide the slot to load ad for AB test. +/// @param codeGroupId unique id for slot ab test +/// @param completion callback in main thread, return the slot info to load ad +- (void)fetchSlotWithCodeGroupId:(NSInteger)codeGroupId completion:(BUSlotABFetchCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSlotABManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSlotABManager.h.meta new file mode 100644 index 00000000..5778e6e2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSlotABManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e7143ddd10d3c42709fd9a30300dcb19 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashAdView.h new file mode 100755 index 00000000..b8496b36 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashAdView.h @@ -0,0 +1,144 @@ +// +// BUSplashAdView.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUSplashZoomOutView.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUSplashAdDelegate; + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUSplashAdView : UIView +/** +The unique identifier of splash ad. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *slotID; + +/** + Maximum allowable load timeout, default 3s, unit s. + */ +@property (nonatomic, assign) NSTimeInterval tolerateTimeout; + + +/** + Whether hide skip button, default NO. + If you hide the skip button, you need to customize the countdown. + */ +@property (nonatomic, assign) BOOL hideSkipButton; + +/** + The delegate for receiving state change messages. + */ +@property (nonatomic, weak, nullable) id delegate; + +/* + required. + Root view controller for handling ad actions. + */ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** + Whether the splash ad data has been loaded. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/// When it is a zoom out advertisement, it has value. +@property (nonatomic, strong, readonly, nullable) BUSplashZoomOutView *zoomOutView; + +/** + Initializes splash ad with slot id and frame. + Note: use in the main thread. + @param slotID : the unique identifier of splash ad + @param frame : the frame of splashAd view. It is recommended for the mobile phone screen. + @return BUSplashAdView + */ +- (instancetype)initWithSlotID:(NSString *)slotID frame:(CGRect)frame; + +/** + Initializes splash ad with ad slot and frame. + Note: use in the main thread. + @param slot A object, through which you can pass in the splash unique identifier、ad type, and so on + @param frame the frame of splashAd view. It is recommended for the mobile phone screen. + @return BUSplashAdView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot frame:(CGRect)frame; + +/** + Load splash ad datas. + Start the countdown(@tolerateTimeout) as soon as you request datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + + +@protocol BUSplashAdDelegate + +@optional +/** + This method is called when splash ad material loaded successfully. + */ +- (void)splashAdDidLoad:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad material failed to load. + @param error : the reason of error + */ +- (void)splashAd:(BUSplashAdView *)splashAd didFailWithError:(NSError * _Nullable)error; + +/** + This method is called when splash ad slot will be showing. + */ +- (void)splashAdWillVisible:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is clicked. + */ +- (void)splashAdDidClick:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is closed. + */ +- (void)splashAdDidClose:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is about to close. + */ +- (void)splashAdWillClose:(BUSplashAdView *)splashAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)splashAdDidCloseOtherController:(BUSplashAdView *)splashAd interactionType:(BUInteractionType)interactionType; + +/** + This method is called when spalashAd skip button is clicked. + */ +- (void)splashAdDidClickSkip:(BUSplashAdView *)splashAd; + +/** + This method is called when spalashAd countdown equals to zero + */ +- (void)splashAdCountdownToZero:(BUSplashAdView *)splashAd; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashAdView.h.meta new file mode 100644 index 00000000..4563fb7d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ad87baebe804d482481cfe45cb962e63 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashZoomOutView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashZoomOutView.h new file mode 100755 index 00000000..cfb0e2ee --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashZoomOutView.h @@ -0,0 +1,58 @@ +// +// BUSplashZoomOutView.h +// BUAdSDK +// +// Created by wangyanlin on 2020/6/17. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUSplashZoomOutViewDelegate; + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUSplashZoomOutView : UIView +/* +required. +Root view controller for handling ad actions. +*/ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** +Suggested size for show. +*/ +@property (nonatomic, assign, readonly) CGSize showSize; + +/** +The delegate for receiving state change messages. +*/ +@property (nonatomic, weak) id delegate; +@end + +@protocol BUSplashZoomOutViewDelegate +/** + This method is called when splash ad is clicked. + */ +- (void)splashZoomOutViewAdDidClick:(BUSplashZoomOutView *)splashAd; + +/** + This method is called when splash ad is closed. + */ +- (void)splashZoomOutViewAdDidClose:(BUSplashZoomOutView *)splashAd; + +/** +This method is called when spalashAd automatically dimiss afte countdown equals to zero +*/ +- (void)splashZoomOutViewAdDidAutoDimiss:(BUSplashZoomOutView *)splashAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)splashZoomOutViewAdDidCloseOtherController:(BUSplashZoomOutView *)splashAd interactionType:(BUInteractionType)interactionType; + +@end +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashZoomOutView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashZoomOutView.h.meta new file mode 100644 index 00000000..70d056ee --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUSplashZoomOutView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fbe11f8ac63114137ad456ee8ec24557 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdDelegate.h new file mode 100755 index 00000000..ae6e26dd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdDelegate.h @@ -0,0 +1,58 @@ +// +// BUVideoAdDelegate.h +// BUAdSDK +// +// Created by 李盛 on 2018/8/3. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BURewardedVideoAd.h" + +/** + 用于插屏视频 激励视频 接口统一配置 + */ +@protocol BUVideoAdDelegate + +@property (nonatomic, assign) BOOL isRewardedVideo; + +/** + 视频点击即将关闭 + */ +- (void)videoAdWillClose; + +/** + 视频点击关闭 + */ +- (void)videoAdDidClose; + +/** + 视频/落地页点击 + */ +- (void)videoAdDidClick; + +/** + 视频播放完成 + */ +- (void)videoAdDidPlayFinishWithError:(NSError *)error; + + +@optional +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +/** + 视频点击跳过 + */ +- (void)videoAdDidClickSkip; + +/** + 服务器校验奖励成功发放. 2800进行了修改,包含了两种方式. + 1.C2C 不走服务端验证,直接根据时间发放奖励 2.S2S 老逻辑需要服务端验证 + */ +- (void)videoAdServerRewardDidSucceedVerify:(BOOL)verify; + +/** + 服务器校验奖励接口请求失败 + */ +- (void)videoAdServerRewardDidFailWithError:(NSError *)error; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdDelegate.h.meta new file mode 100644 index 00000000..6189c551 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9524e26c0a4a3403e85ea95b54af4e97 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdReportor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdReportor.h new file mode 100755 index 00000000..64c13c57 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdReportor.h @@ -0,0 +1,65 @@ +// +// BUVideoAdReportor.h +// BUAdSDK +// +// Created by bytedance on 2020/8/3. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// the reportor of video ad in feed, auto created by system if video ads in feed is customd. +@protocol BUVideoAdReportor + +@required + +/// report start play video +- (void)startPlayVideo; + +/// report did start play video +/// @param duration total duration of video, unit ms +- (void)didStartPlayVideoWithVideoDuration:(NSTimeInterval)duration; + +/// report did start play video auto, designed by developer +/// @param duration total duration of video, unit ms +- (void)didAutoStartPlayWithVideoDuration:(NSTimeInterval)duration; + +/// report did play to the end of video +- (void)didFinishVideo; + +/// report did pause video +/// @param duration duration of video that user watched +- (void)didPauseVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did resume video from paused +/// @param duration duration of video that user watched +- (void)didResumeVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did break video playing, maybe change another video or disappear from screen and so on +/// @param duration duration of video that user watched +- (void)didBreakVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did click video view, auto implement, developers need not call this method +/// @param duration duration of video that user watched +- (void)didClickVideoViewWithCurrentDuration:(NSTimeInterval)duration; + +/// report sth. wrong with playing +/// @param error error +- (void)didPlayFailedWithError:(NSError *)error; + +/// report sth. wrong with play start +/// @param error error +- (void)didPlayStartFailedWithError:(NSError *)error; + +/// reprot did buffering video +- (void)didPlayBufferStart; + +/// reprot did buffering video ended +- (void)didPlayBufferEnd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdReportor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdReportor.h.meta new file mode 100644 index 00000000..d236d765 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdReportor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc1fb2743c8414b6e91fd5116e7ffbb2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdView.h new file mode 100755 index 00000000..af216672 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdView.h @@ -0,0 +1,125 @@ +// +// BUVideoAdView.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerPublicDefine.h" +#import "BUMaterialMeta.h" + +@class BUMaterialMeta; + +NS_ASSUME_NONNULL_BEGIN + +/** + Control TikTok Audience Network video player. + */ +@protocol BUVideoEngine + +/** + Get the already played time. + */ +- (CGFloat)currentPlayTime; + +/** + Set video play when you support CustomMode + **/ +- (void)play; + +/** + Set video pause when you support CustomMode +**/ +- (void)pause; + +@end + +@protocol BUVideoAdViewDelegate; + +@interface BUVideoAdView : UIView + +@property (nonatomic, weak, nullable) id delegate; +/** +required. Root view controller for handling ad actions. + **/ +@property (nonatomic, weak, readwrite) UIViewController *rootViewController; + +/** + Whether to allow pausing the video by clicking, default NO. Only for draw video(vertical video ads). + **/ +@property (nonatomic, assign) BOOL drawVideoClickEnable; + +/** +AdType information. +*/ +@property (nonatomic, assign) NSInteger AdType; + +/** + material information. + */ +@property (nonatomic, strong, readwrite, nullable) BUMaterialMeta *materialMeta; + +/** + Set your Video autoPlayMode when you support CustomMode + if support CustomMode , default autoplay Video + **/ +@property (nonatomic, assign) BOOL supportAutoPlay; + + +- (instancetype)initWithMaterial:(BUMaterialMeta *)materialMeta; + +/** + Support configuration for pause button. + @param playImg : the image of the button + @param playSize : the size of the button. Set as cgsizezero to use default icon size. + */ +- (void)playerPlayIncon:(UIImage *)playImg playInconSize:(CGSize)playSize; + +@end + +@protocol BUVideoAdViewDelegate + +@optional + +/** + This method is called when videoadview failed to play. + @param error : the reason of error + */ +- (void)videoAdView:(BUVideoAdView *)videoAdView didLoadFailWithError:(NSError *_Nullable)error; + +/** + This method is called when videoadview ready to play. + */ +- (void)playerReadyToPlay:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview playback status changed. + @param playerState : player state after changed + */ +- (void)videoAdView:(BUVideoAdView *)videoAdView stateDidChanged:(BUPlayerPlayState)playerState; + +/** + This method is called when videoadview end of play. + */ +- (void)playerDidPlayFinish:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview is clicked. + */ +- (void)videoAdViewDidClick:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview's finish view is clicked. + */ +- (void)videoAdViewFinishViewDidClick:(BUVideoAdView *)videoAdView; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)videoAdViewDidCloseOtherController:(BUVideoAdView *)videoAdView interactionType:(BUInteractionType)interactionType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdView.h.meta new file mode 100644 index 00000000..6c90b3f8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Headers/BUVideoAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3cf5ddf0f39424b9f8b6fdecc22381df +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules.meta new file mode 100644 index 00000000..ba97a28b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca00843f8867f4174974b4f732ba47f8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules/module.modulemap new file mode 100755 index 00000000..523281f8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module BUAdSDK { + umbrella header "BUAdSDK.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..c7bb2b66 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d4600f61d7b042c5b51c87f671beeeb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions.meta new file mode 100644 index 00000000..dd1ee461 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37179a08874524c5fb903b1096987206 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A.meta new file mode 100644 index 00000000..c35c7ed3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 992670f73308b42ae8d9c83e68359540 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/BUAdSDK b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/BUAdSDK new file mode 100755 index 00000000..2abb9dc5 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/BUAdSDK differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/BUAdSDK.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/BUAdSDK.meta new file mode 100644 index 00000000..6d18748f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/BUAdSDK.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ed37ec50066f8483fb1ebef2c5ad8f64 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers.meta new file mode 100644 index 00000000..9ec142fc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 05fbdcb8b5abb4236a47f4f37c139914 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdClientBiddingProtocol.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdClientBiddingProtocol.h new file mode 100755 index 00000000..179e4846 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdClientBiddingProtocol.h @@ -0,0 +1,28 @@ +// +// BUAdClientBiddingProtocol.h +// Pods +// +// Created by bytedance on 2021/9/14. +// + +#import + +@protocol BUAdClientBiddingProtocol + +@optional + +/// invoke this method to set this actual auction price 调用此方法设置当前实际结算价 +/// @param auctionPrice auction price 实际结算价格 +- (void)setPrice:(nullable NSNumber *)auctionPrice; + +/// invoke this method when the bidding succeeds (strongly recommended) 当竞价成功调用此方法(强烈推荐) +/// @param auctionBidToWin the seccond place bidder's price 竞价方第二名的价格 +- (void)win:(nullable NSNumber*)auctionBidToWin; + +/// invoke this method when the bidding fails (strongly recommended) 当竞价失败调用此方法(强烈推荐) +/// @param auctionPrice auction price 竞价 +/// @param lossReason Reasons for failed bidding 失败的原因 +/// @param winBidder Who won the bid 谁赢了竞价 +- (void)loss:(nullable NSNumber*)auctionPrice lossReason:(nullable NSString*)lossReason winBidder:(nullable NSString*)winBidder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdClientBiddingProtocol.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdClientBiddingProtocol.h.meta new file mode 100644 index 00000000..68ef01c5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdClientBiddingProtocol.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6c1489e7544dc4af68068ff91d345bf7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDK.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDK.h new file mode 100755 index 00000000..57044641 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDK.h @@ -0,0 +1,70 @@ +// +// BUAdSDK.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +// In this header, you should import all the public headers of your framework using statements like #import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + + +///customize dislike style +#import +#import +#import +#import + +/// native ads +#import +#import +#import + +/// native express ads +#import +#import +#import +#import +#import +#import +#import +#import + +/// splash ads +#import +#import +#import + +/// rewarded video ads +#import +#import + +/// full-screen video ads +#import + +/// playable tool +#import + +// smartlook +#import + +/// test tools +#import + +/// slot ab test +#import diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDK.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDK.h.meta new file mode 100644 index 00000000..295f25a6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDK.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 51410616cdddf4141b2b754b3b0471b8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKConfiguration.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKConfiguration.h new file mode 100755 index 00000000..ab4c6e88 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKConfiguration.h @@ -0,0 +1,110 @@ +// +// BUAdSDKConfiguration.h +// BUAdSDK +// +// Created by Eason on 2021/3/4. +// + +#import +#import +#import "BUAdSDKDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Provide a protocol for custom private data +/// Only valid in the CN environment +@protocol BUAdSDKPrivacyProvider + +@optional + +/// Specify whether to allow the SDK to use location data +- (BOOL)canUseLocation; +/// Return a latitude value +- (CLLocationDegrees)latitude; +/// Return a longitude value +- (CLLocationDegrees)longitude; + +@end + +@interface BUAdSDKConfiguration : NSObject + ++ (instancetype)configuration; + +/// This property should be set when integrating non-China and china areas at the same time, +/// otherwise it need'nt to be set.you‘d better set Territory first, if you need to set them +@property (nonatomic, assign) BUAdSDKTerritory territory; + +///Register the App key that’s already been applied before requesting an ad from TikTok Audience Network. +/// the unique identifier of the App +@property (nonatomic, copy) NSString *appID; + +/// the unique identifier of the App, more safely +@property (nonatomic, copy) NSString *secretKey; + +/// Configure development mode. default BUAdSDKLogLevelNone +@property (nonatomic, assign) BUAdSDKLogLevel logLevel; + +/// the age group of the user +/// only works in CN environment +@property (nonatomic, assign) BUAdSDKAgeGroup ageGroup; + +/// the COPPA of the user, COPPA is the short of Children's Online Privacy Protection Rule, +/// the interface only works in the United States. +/// Coppa 0 adult, 1 child +/// You can change its value at any time +@property (nonatomic, strong) NSNumber *coppa; + +/// additional user information. +@property (nonatomic, copy) NSString *userExtData; + +/// Solve the problem when your WKWebview post message empty, +/// default is BUOfflineTypeWebview +@property (nonatomic, assign) BUOfflineType webViewOfflineType; + +/// Custom set the GDPR of the user,GDPR is the short of General Data Protection Regulation,the interface only works in The European. +/// GDPR 0 close privacy protection, 1 open privacy protection +/// You can change its value at any time +@property (nonatomic, strong) NSNumber *GDPR; + +/// Custom set the CCPA of the user,CCPA is the short of General Data Protection Regulation,the interface only works in USA. +/// CCPA 0: "sale" of personal information is permitted, 1: user has opted out of "sale" of personal information -1: default +@property (nonatomic, strong) NSNumber *CCPA; +/// Custom set the debugLog to print debug Log. +/// debugLog 0: close debug log, 1: open debug log. +@property (nonatomic, strong) NSNumber *debugLog; + +@property (nonatomic, strong) NSNumber *themeStatus; + +/// Custom set the AB vid of the user. Array element type is NSNumber +@property (nonatomic, strong) NSArray *abvids; + +/// Custom set the tob ab sdk version of the user. +@property (atomic, copy) NSString *abSDKVersion; + +/// Custom set idfa value +/// You can change its value at any time +@property (nonatomic, copy) NSString *customIdfa; + +/** + In CN environment Whether to allow SDK to modify the category and options of AVAudioSession when playing audio, default is NO. + The category set by the SDK is AVAudioSessionCategoryAmbient, and the options are AVAudioSessionCategoryOptionDuckOthers + In VA environment Whether to allow SDK to modify the category and options of AVAudioSession when playing audio. When the scene is native or banner and current category is AVAudioSessionCategorySoloAmbient, default value is YES and the category set by the SDK is AVAudioSessionCategoryAmbient, the options are AVAudioSessionCategoryOptionMixWithOthers.The other scenes, default is NO. + */ +@property (nonatomic, assign) BOOL allowModifyAudioSessionSetting; + +/** + If you are a Unity developer, set this to Yes + */ +@property (nonatomic, assign) BOOL unityDeveloper; + +/// You can use this property to set whether the SDK can use certain privacy data, or pass these privacy data yourself. +/// If this property is not set, the SDK will execute the default privacy data usage logic. +/// Note: This property is only valid for the CN environment. Unless you know what you need, it is recommended not to assign a value to this property. +@property (nonatomic, strong) id privacyProvider; + +/// App logo image. If set, it will be displayed in the App open ad. +@property (nonatomic, strong, nullable) UIImage *appLogoImage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKConfiguration.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKConfiguration.h.meta new file mode 100644 index 00000000..5bd9570f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKConfiguration.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7e61946e05a3d45bca9e3f0e3d9666e4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKDefines.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKDefines.h new file mode 100755 index 00000000..34d81a64 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKDefines.h @@ -0,0 +1,64 @@ +// +// BUAdSDKDefines.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#ifndef BUAdSDK_DEFINES_h +#define BUAdSDK_DEFINES_h + +#import + +///CN china, NO_CN is not china +typedef NS_ENUM(NSUInteger, BUAdSDKTerritory) { + BUAdSDKTerritory_CN = 1, + BUAdSDKTerritory_NO_CN, +}; + +typedef NS_ENUM(NSInteger, BUAdSDKThemeStatus) { + BUAdSDKThemeStatus_Normal = 0, + BUAdSDKThemeStatus_Night = 1, +}; + + +typedef NS_ENUM(NSInteger, BUOfflineType) { + BUOfflineTypeNone, // Do not set offline + BUOfflineTypeWebview, // Offline dependence WKWebview +}; + +typedef NS_ENUM(NSInteger, BUAdSDKLogLevel) { + BUAdSDKLogLevelNone, + BUAdSDKLogLevelError, + BUAdSDKLogLevelWarning, + BUAdSDKLogLevelInfo, + BUAdSDKLogLevelDebug, + BUAdSDKLogLevelVerbose, +}; + +typedef NS_ENUM(NSInteger, BURitSceneType) { + BURitSceneType_custom = 0,//custom + BURitSceneType_home_open_bonus = 1,//Login/open rewards (login, sign-in, offline rewards doubling, etc.) + BURitSceneType_home_svip_bonus = 2,//Special privileges (VIP privileges, daily rewards, etc.) + BURitSceneType_home_get_props = 3,//Watch rewarded video ad to gain skin, props, levels, skills, etc + BURitSceneType_home_try_props = 4,//Watch rewarded video ad to try out skins, props, levels, skills, etc + BURitSceneType_home_get_bonus = 5,//Watch rewarded video ad to get gold COINS, diamonds, etc + BURitSceneType_home_gift_bonus = 6,//Sweepstakes, turntables, gift boxes, etc + BURitSceneType_game_start_bonus = 7,//Before the opening to obtain physical strength, opening to strengthen, opening buff, task props + BURitSceneType_game_reduce_waiting = 8,//Reduce wait and cooldown on skill CD, building CD, quest CD, etc + BURitSceneType_game_more_opportunities = 9,//More chances (resurrect death, extra game time, decrypt tips, etc.) + BURitSceneType_game_finish_rewards = 10,//Settlement multiple times/extra bonus (completion of chapter, victory over boss, first place, etc.) + BURitSceneType_game_gift_bonus = 11//The game dropped treasure box, treasures and so on +}; + +typedef NS_ENUM(NSInteger, BUAdSDKAgeGroup) { + BUAdSDKAgeGroupAdult = 0, // Default + BUAdSDKAgeGroupTeenager = 1, // Age 15~18 + BUAdSDKAgeGroupMinor = 2, // Age < 15 +}; + +@protocol BUToDictionary +- (NSDictionary *)dictionaryValue; +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKDefines.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKDefines.h.meta new file mode 100644 index 00000000..7d3a1bb3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKDefines.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a395b1d7fb53b4d958c61f78cf9d1b77 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKError.h new file mode 100755 index 00000000..880385de --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKError.h @@ -0,0 +1,105 @@ +// +// BUAdSDKError.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +extern NSErrorDomain BUAdSDKErrorHost ; + +typedef NS_ENUM(NSInteger, BUErrorCode) { + BUErrorCodeTempError = -6, // native template is invalid + BUErrorCodeTempAddationError= -5, // native template addation is invalid + BUErrorCodeOpenAPPStoreFail = -4, // failed to open appstore + BUErrorCodeNOAdError = -3, // parsed data has no ads + BUErrorCodeNetError = -2, // network request failed + BUErrorCodeParseError = -1, // parsing failed + + BUErrorCodeSDKInitConfigUnfinished = -100, // sdk init config is unfinished + + BUErrorCodePlayableError_ERR_HAS_CACHE = -702, // has cache + BUErrorCodePlayableError_ERR_UNZIP = -704, // unzip error + + BUErrorCodeNERenderResultError= 101, // native Express ad, render result parse fail + BUErrorCodeNETempError = 102, // native Express ad, template is invalid + BUErrorCodeNETempPluginError = 103, // native Express ad, template plugin is invalid + BUErrorCodeNEDataError = 104, // native Express ad, data is invalid + BUErrorCodeNEParseError = 105, // native Express ad, parse fail + BUErrorCodeNERenderError = 106, // native Express ad, render fail + BUErrorCodeNERenderTimoutError= 107, // native Express ad, render timeout + BUErrorCodeTempLoadError = 109, // native Express ad, template load fail + + + BUErrorCodeDynamic_1_JSContextEmpty = 112, + BUErrorCodeDynamic_1_ParseError = 113, + BUErrorCodeDynamic_1_Timeout = 117, + BUErrorCodeDynamic_1_SubComponentNotExist = 118, + + BUErrorCodeDynamic_2_ParseError = 123, + BUErrorCodeDynamic_2_Timeout = 127, + BUErrorCodeDynamic_2_SubComponentNotExist = 128, + + BUErrorCodeDRRenderEngineError = 401, // native Express ad, engine error + BUErrorCodeDRRenderContextError = 402, // native Express ad, context error + BUErrorCodeDRRenderItemNotExist = 403, // native Express ad, item not exist + + BUErrorSlotAB_Disable = 491, // slot ab, feature is disabled + BUErrorSlotAB_EmptyResult = 492, // slot ab, slot result is empty + + BUErrorCodeSDKStop = 1000, // SDK stop forcely + + BUErrorCodeParamError = 10001, // parameter error + BUErrorCodeTimeout = 10002, + BUErrorCodeResource = 10003, + + BUErrorCodeSuccess = 20000, + BUErrorCodeNOAD = 20001, // no ads + + BUErrorCodeContentType = 40000, // http conent_type error + BUErrorCodeRequestPBError = 40001, // http request pb error + BUErrorCodeAppEmpty = 40002, // request app can't be empty + BUErrorCodeWapEMpty = 40003, // request wap can't be empty + BUErrorCodeAdSlotEmpty = 40004, // missing ad slot description + BUErrorCodeAdSlotSizeEmpty = 40005, // the ad slot size is invalid + BUErrorCodeAdSlotIDError = 40006, // the ad slot ID is invalid + BUErrorCodeAdCountError = 40007, // request the wrong number of ads + BUUnionAdImageSizeError = 40008, // wrong image size + BUUnionAdSiteIdError = 40009, // Media ID is illegal + BUUnionAdSiteMeiaTypeError = 40010, // Media type is illegal + BUUnionAdSiteAdTypeError = 40011, // Ad type is illegal + BUUnionAdSiteAccessMethodError = 40012,// Media access type is illegal and has been deprecated + BUUnionSplashAdTypeError = 40013, // Code bit id is less than 900 million, but adType is not splash ad + BUUnionRedirectError = 40014, // The redirect parameter is incorrect + BUUnionRequestInvalidError = 40015, // Media rectification exceeds deadline, request illegal + BUUnionAppSiteRelError = 40016, // The relationship between slot_id and app_id is invalid. + BUUnionAccessMethodError = 40017, // Media access type is not legal API/SDK + BUUnionPackageNameError = 40018, // Media package name is inconsistent with entry + BUUnionConfigurationError = 40019, // Media configuration ad type is inconsistent with request + BUUnionRequestLimitError = 40020, // The ad space registered by developers exceeds daily request limit + BUUnionSignatureError = 40021, // Apk signature sha1 value is inconsistent with media platform entry + BUUnionIncompleteError = 40022, // Whether the media request material is inconsistent with the media platform entry + BUUnionOSError = 40023, // The OS field is incorrectly filled + BUUnionLowVersion = 40024, // The SDK version is too low to return ads + BUErrorCodeAdPackageIncomplete = 40025,// the SDK package is incomplete. It is recommended to verify the integrity of SDK package or contact technical support. + BUUnionMedialCheckError = 40026, // Non-international account request for overseas delivery system + BUUnionSlotIDRenderMthodNoMatch = 40029,// The rendering method for slot ID does not match. + + + BUUnionCpidChannelCodeError = 40030, // Huawei browse impex cpid channeld code does not match. + BUUnionInternationalRequestCurrencyTypeError = 40031, // International request currency type is empty. + BUUnionOpenRTBRequestTokenError =40032, // OpenRTB request token is empty. + BUUnionHardCodeError = 40033, // Hard code not return ads, return message does not adjust. + + + BUUnionSDKVersionTooLow =40041, // SDK version is too low. + BUUnionNewInterstitialStyleVersionError = 40042, // New interstitial style use sdk version is too low. Plese upgrade SDK version to 3.5.5.0. + BUUnionPreviewFlowInvalid =40043, // Preview flow invalid. + + BUErrorCodeSysError = 50001, // ad server error + + + BUErrorCodeNetworkError = 98764, // network error. + BUErrorCodeUndefined = 98765, // error undefined +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKError.h.meta new file mode 100644 index 00000000..4c5ffb8b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ae28bdbcdfb2d4173b6142d74d895a6e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKManager.h new file mode 100755 index 00000000..c15cd5dc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKManager.h @@ -0,0 +1,138 @@ +// +// BUAdSDKManager.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSDKDefines.h" +#import "BUMopubAdMarkUpDelegate.h" + +typedef NS_ENUM(NSInteger, BUAdSDKInitializationState) { + BUAdSDKInitializationStateNotReady = 0, + BUAdSDKInitializationStateReady = 1 +}; + +typedef void (^BUConfirmGDPR)(BOOL isAgreed); + +typedef void (^BUCompletionHandler)(BOOL success,NSError *error); + +@interface BUAdSDKManager : NSObject + +@property (nonatomic, copy, readonly, class) NSString *SDKVersion; + +/// The SDK initialization state +@property (nonatomic, assign, readonly, class) BUAdSDKInitializationState initializationState; + +/// The synchronize initialization method +/// @param completionHandler Callback to the initialization state of the calling thread ++ (void)startWithSyncCompletionHandler:(BUCompletionHandler)completionHandler; + +/// The asynchronize initialization method +/// @param completionHandler Callback to the initialization state of the non-main thread ++ (void)startWithAsyncCompletionHandler:(BUCompletionHandler)completionHandler; + +/// Open GDPR Privacy for the user to choose before setAppID. ++ (void)openGDPRPrivacyFromRootViewController:(UIViewController *)rootViewController confirm:(BUConfirmGDPR)confirm; + +@end + + +@interface BUAdSDKManager (MopubAdaptor) + +@end + +@interface BUAdSDKManager (BUAdNR) ++ (NSString *)bunr_dictionaryWithSlot:(BUAdSlot *)slot isDynamicRender:(BOOL)isDynamicRender; +@end + + +@interface BUAdSDKManager (InterfaceReadyReplacement) +/** +This property should be set when integrating non-China and china areas at the same time, otherwise it need'nt to be set.you‘d better set Territory first, if you need to set them +@param territory : Regional value +*/ ++ (void)setTerritory:(BUAdSDKTerritory)territory; +/** + Register the App key that’s already been applied before requesting an ad from TikTok Audience Network. + @param appID : the unique identifier of the App + */ ++ (void)setAppID:(NSString *)appID; + +/** + @param secretKey the unique identifier of the App, more safely + */ ++ (void)setSecretKey:(NSString *)secretKey; +/** + Configure development mode. + @param level : default BUAdSDKLogLevelNone + */ ++ (void)setLoglevel:(BUAdSDKLogLevel)level; + +/* Set the age group of the user, the interface only works only works in CN environment. + * @params ageGroup: default BUAdSDKAgeGroupAdult + */ ++ (void)setAgeGroup:(BUAdSDKAgeGroup)ageGroup; + +/* Set the COPPA of the user, COPPA is the short of Children's Online Privacy Protection Rule, the interface only works in the United States. + * @params Coppa 0 adult, 1 child + */ ++ (void)setCoppa:(NSInteger)coppa; + +/// Set the user's keywords, such as interests and hobbies, etc. +/// Must obtain the consent of the user before incoming. ++ (void)setUserKeywords:(NSString *)keywords; + +/// set additional user information. ++ (void)setUserExtData:(NSString *)data; + +/// Solve the problem when your WKWebview post message empty,default is BUOfflineTypeWebview ++ (void)setOfflineType:(BUOfflineType)type; + +/// Custom set the GDPR of the user,GDPR is the short of General Data Protection Regulation,the interface only works in The European. +/// @params GDPR 0 close privacy protection, 1 open privacy protection ++ (void)setGDPR:(NSInteger)GDPR; + +/// Custom set the CCPA of the user,CCPA is the short of General Data Protection Regulation,the interface only works in USA. +/// @params CCPA 0: "sale" of personal information is permitted, 1: user has opted out of "sale" of personal information -1: default ++ (void)setCCPA:(NSInteger)CCPA; + +/// Custom set the AB vid of the user. Array element type is NSNumber ++ (void)setABVidArray:(NSArray *)abvids; + +/// Custom set the tob ab sdk version of the user. ++ (void)setABSDKVersion:(NSString *)abSDKVersion; + + +/// Custom set idfa value ++ (void)setCustomIDFA:(NSString *)idfa; + + + ++ (void)setThemeStatus:(BUAdSDKThemeStatus)themeStatus; + +/// get appID ++ (NSString *)appID; + +/// get GDPR ++ (NSInteger)GDPR; + +/// get coppa( -1:defalut 0.adult 1.child ) ++ (NSInteger)coppa; + +/// get CCPA ++ (NSInteger)CCPA; + +/** + Whether to allow SDK to modify the category and options of AVAudioSession when playing audio, default is NO. + The category set by the SDK is AVAudioSessionCategoryAmbient, and the options are AVAudioSessionCategoryOptionDuckOthers + */ ++ (void)allowModifyAudioSessionSetting:(BOOL)isAllow; + + ++ (BUAdSDKThemeStatus)themeStatus; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKManager.h.meta new file mode 100644 index 00000000..47713052 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 145739c277a044a3ca255c1f83b6472e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKPlayableToolManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKPlayableToolManager.h new file mode 100755 index 00000000..70c9ee05 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKPlayableToolManager.h @@ -0,0 +1,25 @@ +// +// BUAdSDKPlayableToolManager.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +@interface BUAdSDKPlayableToolManager : NSObject + ++ (instancetype)sharedInstance; + ++ (void)setPlayableURL:(NSString *)url; + ++ (void)setDownloadUrl:(NSString *)url; + ++ (void)setDeeplinkUrl:(NSString *)url; + ++ (void)setIsLandScape:(BOOL)isLandScape; + ++ (void)clearAll; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKPlayableToolManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKPlayableToolManager.h.meta new file mode 100644 index 00000000..82ca5e7f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKPlayableToolManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a2059fbf1393c43e1acd7fa2dba785cd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKTestToolManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKTestToolManager.h new file mode 100755 index 00000000..62f30724 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKTestToolManager.h @@ -0,0 +1,32 @@ +// +// BUAdSDKTestToolManager.h +// BUAdSDK +// +// Created by wangyanlin on 2020/4/14. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + + +@interface BUAdSDKTestToolManager : NSObject + ++ (instancetype)sharedInstance; + ++ (void)setHostIP:(NSString *)hostIP; + ++ (void)setHostPort:(NSString *)hostPort; + ++ (void)setInputOneContent:(NSString *)oneContent; + ++ (void)setInputTwoContent:(NSString *)twoContent; + ++ (void)clearIPAddress; + ++ (void)clearInputContent; + +- (NSString *)testTimeStamp; + +@end + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKTestToolManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKTestToolManager.h.meta new file mode 100644 index 00000000..d44f8b62 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSDKTestToolManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 64a91ed273060485685076b3074e0317 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSlot.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSlot.h new file mode 100755 index 00000000..76a8600f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSlot.h @@ -0,0 +1,111 @@ +// +// BUAdSlot.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import "BUSize.h" +#import "BUAdSDKDefines.h" + +typedef NS_ENUM(NSInteger, BUAdSlotAdType) { + BUAdSlotAdTypeUnknown = 0, + BUAdSlotAdTypeBanner = 1, // banner ads + BUAdSlotAdTypeInterstitial = 2, // interstitial ads + BUAdSlotAdTypeSplash = 3, // splash ads + BUAdSlotAdTypeSplash_Cache = 4, // cache splash ads + BUAdSlotAdTypeFeed = 5, // feed ads + BUAdSlotAdTypePaster = 6, // paster ads + BUAdSlotAdTypeRewardVideo = 7, // rewarded video ads + BUAdSlotAdTypeFullscreenVideo = 8, // full-screen video ads + BUAdSlotAdTypeDrawVideo = 9, // vertical (immersive) video ads +}; + +typedef NS_ENUM(NSInteger, BUAdSlotPosition) { + BUAdSlotPositionTop = 1, + BUAdSlotPositionBottom = 2, + BUAdSlotPositionFeed = 3, + BUAdSlotPositionMiddle = 4, // for interstitial ad only + BUAdSlotPositionFullscreen = 5, +}; + +/// value is equale req_type +typedef NS_ENUM(NSInteger, BUAdLoadType) { + + BUAdLoadTypeUnknown = -1,//Unknown + BUAdLoadTypePreload = 1,//Preload resources + BUAdLoadTypeLoad = 3,//Load resources in real time +}; + +typedef NS_ENUM(NSInteger, BUSplashButtonType) { + BUSplashButtonType_FullScreen = 1, // The whole area of splash view will respond to click event + BUSplashButtonType_DownloadBar = 2 // The area of download bar in splash view will respond to click event +}; + +@interface BUAdSlot : NSObject + +/// required. The unique identifier of a native ad. +@property (nonatomic, copy) NSString *ID; + +/// required. Ad type. +@property (nonatomic, assign) BUAdSlotAdType AdType; + +/// optional. Ad display location. defaults is BUAdSlotPositionTop +@property (nonatomic, assign) BUAdSlotPosition position; + +/// Accept a set of image sizes, please pass in the BUSize object. +@property (nonatomic, strong) NSMutableArray *imgSizeArray; + +/// required. Image size. +@property (nonatomic, strong) BUSize *imgSize; + +/// Icon size. +@property (nonatomic, strong) BUSize *iconSize; + +/// optional. Whether to support deeplink.defaults is true +@property (nonatomic, assign) BOOL isSupportDeepLink DEPRECATED_MSG_ATTRIBUTE("This property is deprecated,Settings are no longer required after version 3300"); + +/// Native banner ads and native interstitial ads are set to 1, other ad types are 0, the default is 0. +@property (nonatomic, assign) BOOL isOriginAd; + +/// optional. Whether to support render control +@property (nonatomic, assign) BOOL supportRenderControl; + +//adload_seq:(针对聚合广告位)传递本次请求是为“自然日内某设备某广告位置第N次展示机会”发出的广告请求,同物理位置在自然日从1开始计数,不同物理位置独立计数;example:某原生广告位置,当天第5次产生展示机会,这次展示机向穿山甲发送了4次广告请求,则这4次广告请求的"adload_seq"的值应为5。第二天重新开始计数。 +@property (nonatomic, assign) NSInteger adloadSeq; + +// Valid only in Native Banner and Native Interstitial +@property (nonatomic, assign) CGSize adSize; + + +//prime_rit:(针对聚合广告位)广告物理位置对应的固定穿山甲广告位id,可以使用第一层的广告位id也可以为某一层的广告位id,但要求同一物理位置在该字段固定上报同一广告位id,不频繁更换;example:某原生广告位,当天共发出了1000个请求,这1000个请求中使用了5个不同target的穿山甲rit,用某X rit来作为该位置的标记rit,则这1000次请求的prime_rit都需要上报X rit的rit id。 +@property (nonatomic, copy) NSString *primeRit; + +/// optional. AD id for preview +@property (nonatomic, copy) NSString *previewAdID; + +/// optional. AD creative id for preview +@property (nonatomic, copy) NSString *previewCreativeID; + +/// optional. extend msg +@property (nonatomic, copy) NSDictionary *ext; + +/// optional. additional user information +@property (nonatomic, copy) NSString *userData; + +/** + Ad load type + - BUAdLoadTypePreload : Preload resources + - BUAdLoadTypeLoad: Load resources in real time + @Note : This field is only useful in China. At present, this field is not necessary to set the content. It is only to investigate how developers use advertisements instead of realizing functions. + */ +@property (nonatomic, assign) BUAdLoadType adLoadType; + +/// optional. config the behaviour of click splash view +@property (nonatomic, assign) BUSplashButtonType splashButtonType; + +- (NSDictionary *)dictionaryValue; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSlot.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSlot.h.meta new file mode 100644 index 00000000..bb7b1fdc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSlot.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d70a4755dc3e94eba8cffd28528907af +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSmartlookManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSmartlookManager.h new file mode 100755 index 00000000..b7843c47 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSmartlookManager.h @@ -0,0 +1,23 @@ +// +// BUAdSmartlookManager.h +// BUAdSDK +// +// Created by wangchao on 2020/3/30. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUAdSmartlookManager : NSObject + + ++ (instancetype)sharedInstance; + ++ (void)setupSmartlookConfig:(NSString *)config; ++ (void)resetConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSmartlookManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSmartlookManager.h.meta new file mode 100644 index 00000000..5773ea33 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAdSmartlookManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9275f776b96184d7c95bba5ca5145e21 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAppOpenAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAppOpenAd.h new file mode 100755 index 00000000..65f889e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAppOpenAd.h @@ -0,0 +1,67 @@ +// +// BUAppOpenAd.h +// AFNetworking +// +// Created by Willie on 2021/12/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class BUAppOpenAd, BUAdSlot; +@protocol BUAppOpenAdDelegate; + +/// Callback for loading ad results. +/// @param appOpenAd Ad instance after successfully loaded. +/// @param error Loading error. +typedef void (^BUAppOpenAdLoadCompletionHandler)(BUAppOpenAd * _Nullable appOpenAd, + NSError * _Nullable error); + +/// App-open ad object. Use it to load ads and display. +@interface BUAppOpenAd : NSObject + +/// Ad event delegate. +@property (nonatomic, weak, nullable) id delegate; + +/// Create an instance by BUAdSlot. +/// @param slot A BUAdSlot instance. The necessary parameter is `ID`. +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/// Load ad data. +/// @param timeout If the ad data is not successfully loaded within the timeout period, a timeout error will be returned. The unit is seconds. +/// @param completionHandler Callback for loading ad results. +- (void)loadOpenAdWithTimeout:(NSTimeInterval)timeout + completionHandler:(nullable BUAppOpenAdLoadCompletionHandler)completionHandler; + +/// Display ad. You need to call `loadOpenAdWithTimeout:completionHandler:` and succeed before call `presentFromRootViewController:` +/// @param rootViewController UIViewController that ad display depends on. +- (void)presentFromRootViewController:(UIViewController *)rootViewController; + +@end + + +/// Ad event protocol. +@protocol BUAppOpenAdDelegate + +@optional + +/// The ad has been presented. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didPresentForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad was clicked. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didClickForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad was skipped. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didClickSkipForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad countdown is over. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)countdownToZeroForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAppOpenAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAppOpenAd.h.meta new file mode 100644 index 00000000..d229c421 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUAppOpenAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 25662c759747743aabaff2fa67c26cef +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislike.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislike.h new file mode 100755 index 00000000..1b207a6e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislike.h @@ -0,0 +1,40 @@ +// +// BUDislike.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +@class BUNativeAd; +@class BUDislikeWords; + +/** + !!! important : + Please report to the sdk the user’s selection, inaccurate model will result in poor ad performance. + */ +@interface BUDislike : NSObject +/** + The array of BUDislikeWords which have reasons for dislike. + The application can show the secondary page for dislike if '[filterWords.options count] > 0'. + */ +@property (nonatomic, copy, readonly) NSArray *filterWords; + +/** + Initialize with nativeAd to get filterWords. + return BUDislike + */ +- (instancetype)initWithNativeAd:(BUNativeAd *)nativeAd; + +/** + Call this method after the user chose dislike reasons. + (Only for object which uses 'BUDislike.filterWords') + @param filterWord : reasons for dislike + @note : don't need to call this method if '[filterWords.options count] > 0'. + @note :please dont't change 'BUDislike.filterWords'. + 'filterWord' must be one of 'BUDislike.filterWords', otherwise it will be filtered. + */ +- (void)didSelectedFilterWordWithReason:(BUDislikeWords *)filterWord; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislike.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislike.h.meta new file mode 100644 index 00000000..c440b1c6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislike.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7ac1bee4e88474ca2ba7317e7abdedbb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeReportor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeReportor.h new file mode 100755 index 00000000..7d0cbe5c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeReportor.h @@ -0,0 +1,49 @@ +// +// BUDislikeReportor.h +// BUAdSDK +// +// Created by bytedance on 2020/12/14. +// Copyright © 2020 bytedance. All rights reserved. +// + +#ifndef BUDislikeReportor_h +#define BUDislikeReportor_h +#import +#import + +@class BUDislikeWords; +@class BUPersonalizationPrompts; +/// the reportor for custom dislike +@protocol BUDislikeReportorDelegate +@optional +/// report selected dislike word +/// @param dislikeWords dislike words +- (void)dislikeDidSelected:(NSArray *)dislikeWords; + +/// report submit feedback string +/// @param feedback feedback string +- (void)dislikeDidSubmitFeedback:(NSString *)feedback; + +/// reportor when personalization prompts's name did show +/// @param prompts personalization Ads prompts +- (void)dislikeDidShowPersonalizationPrompts:(BUPersonalizationPrompts *)prompts; + +/// reportor when personalization prompts did selected +/// @param prompts personalization Ads prompts +- (void)dislikeDidSelectedPersonalizationPrompts:(BUPersonalizationPrompts *)prompts; + +/// reportor when personalization prompts's url did load +/// @param prompts personalization prompts +- (void)dislikeDidLoadPersonalizationPromptsURL:(BUPersonalizationPrompts *)prompts; +@end + +@class BUNativeAd; +/// Dislike Data Reportor for Native Ad +@interface BUDislikeReportor : NSObject + +/// Dislike Reportor Instance +/// @param nativeAd native Ad +- (instancetype)initWithNativeAd:(BUNativeAd *)nativeAd; +@end + +#endif /* BUDislikeReportor_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeReportor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeReportor.h.meta new file mode 100644 index 00000000..58456fb7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeReportor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7f02ec16e1192436ea559c484be78871 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeWords.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeWords.h new file mode 100755 index 00000000..36d98257 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeWords.h @@ -0,0 +1,17 @@ +// +// BUDislikeWords.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +@interface BUDislikeWords : NSObject +@property (nonatomic, copy, readonly) NSString *dislikeID; +@property (nonatomic, copy, readonly) NSString *name; +@property (nonatomic, assign, readonly) BOOL isSelected; +@property (nonatomic, copy,readonly) NSArray *options; + +- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError **)error; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeWords.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeWords.h.meta new file mode 100644 index 00000000..eb990fdd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUDislikeWords.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8c5a1db5624844548b8d82cfe1d24199 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUFullscreenVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUFullscreenVideoAd.h new file mode 100755 index 00000000..519a8c29 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUFullscreenVideoAd.h @@ -0,0 +1,158 @@ +// +// BUFullscreenVideoAd.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +typedef NS_ENUM(NSUInteger, BUFullScreenVideoAdType) { + BUFullScreenAdTypeEndcard = 0, // video + endcard + BUFullScreenAdTypeVideoPlayable = 1, // video + playable + BUFullScreenAdTypePurePlayable = 2 // pure playable +}; + +NS_ASSUME_NONNULL_BEGIN + +@class BUFullscreenVideoAd; + +@protocol BUFullscreenVideoAdDelegate + +@optional + +/** + This method is called when video ad material loaded successfully. + */ +- (void)fullscreenVideoMaterialMetaAdDidLoad:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)fullscreenVideoAd:(BUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + */ +- (void)fullscreenVideoAdVideoDataDidLoad:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)fullscreenVideoAdWillVisible:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)fullscreenVideoAdDidVisible:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)fullscreenVideoAdDidClick:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)fullscreenVideoAdWillClose:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)fullscreenVideoAdDidClose:(BUFullscreenVideoAd *)fullscreenVideoAd; + + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)fullscreenVideoAdDidPlayFinish:(BUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when the user clicked skip button. + */ +- (void)fullscreenVideoAdDidClickSkip:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** +this method is used to get the type of fullscreen video ad + */ +- (void)fullscreenVideoAdCallback:(BUFullscreenVideoAd *)fullscreenVideoAd withType:(BUFullScreenVideoAdType)fullscreenVideoAdType; + +@end + +@interface BUFullscreenVideoAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use fullscreenVideoMaterialMetaAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Initializes video ad with slot id. + @param slotID : the unique identifier of video ad. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID; + +/** + Initializes video ad with slot. + @param slot : A object, through which you can pass in the fullscreen unique identifier, ad type, and so on. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Load video ad datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param sceneDescirbe : optional. Identifies a custom description of the presentation scenario. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUFullscreenVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUFullscreenVideoAd.h.meta new file mode 100644 index 00000000..4c9a9b4e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUFullscreenVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d22993e1c167c4927b09aef9e62d7366 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUGeckoManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUGeckoManager.h new file mode 100755 index 00000000..7e132f7b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUGeckoManager.h @@ -0,0 +1,35 @@ +// +// BUGeckoManager.h +// Pods +// +// Created by admin on 2021/7/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef void (^BUGeckoPreloadCompletion)(NSData * _Nullable data,NSDictionary * _Nullable respHeader); +typedef void (^BUGeckoSyncDataCompletion)(BOOL success,NSDictionary *info); + +@interface BUGeckoManager : NSObject + +// 判断gecko是否已经初始化 ++ (BOOL)geckoDidSetup; + +// 注册Gecko的Accesskey,不同的Accesskey可以区分不同的业务 ++ (void)registAccessKey:(NSString *)ak; + +// 同步Gecko资源 ++ (void)syncResourcesParamsWithAccessKey:(NSString *)ak + channels:(NSArray *)channelIds + hosts:(NSArray *)hosts + completion:(BUGeckoSyncDataCompletion _Nullable)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info + accessKey:(NSString *)ak + channel:(NSString *)channel + completion:(BUGeckoPreloadCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUGeckoManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUGeckoManager.h.meta new file mode 100644 index 00000000..db55d5f3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUGeckoManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f46e79ce9823b46b0abb593627c6062f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUImage.h new file mode 100755 index 00000000..c8cef12b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUImage.h @@ -0,0 +1,34 @@ +// +// BUImage.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import + +@interface BUImage : NSObject + +// image address URL +@property (nonatomic, copy) NSString *imageURL; + +// image key +@property (nonatomic, copy) NSString *image_key; + + +// image width +@property (nonatomic, assign) float width; + +// image height +@property (nonatomic, assign) float height; + +// stream ad image druation + +@property (nonatomic, assign) float duration; + +- (instancetype)initWithDictionary:(NSDictionary *)dic; + +- (NSDictionary *)dictionaryValue; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUImage.h.meta new file mode 100644 index 00000000..9a96bcfe --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3104619d7117e43ad8ae988782e801b8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMaterialMeta.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMaterialMeta.h new file mode 100755 index 00000000..91306b2f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMaterialMeta.h @@ -0,0 +1,109 @@ +// +// BUMaterialMeta.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import "BUDislikeWords.h" +#import "BUImage.h" +#import "BUPersonalizationPrompts.h" + +typedef NS_ENUM(NSInteger, BUInteractionType) { + BUInteractionTypeCustorm = 0, + BUInteractionTypeNO_INTERACTION = 1, // pure ad display + BUInteractionTypeURL = 2, // open the webpage using a browser + BUInteractionTypePage = 3, // open the webpage within the app + BUInteractionTypeDownload = 4, // download the app + BUInteractionTypePhone = 5, // make a call + BUInteractionTypeMessage = 6, // send messages + BUInteractionTypeEmail = 7, // send email + BUInteractionTypeVideoAdDetail = 8 // video ad details page +}; + +typedef NS_ENUM(NSInteger, BUFeedADMode) { + BUFeedADModeSmallImage = 2, + BUFeedADModeLargeImage = 3, + BUFeedADModeGroupImage = 4, + BUFeedVideoAdModeImage = 5, // video ad || rewarded video ad horizontal screen + BUFeedVideoAdModePortrait = 15, // rewarded video ad vertical screen + BUFeedADModeImagePortrait = 16, + BUFeedADModeSquareImage = 33, //SquareImage Currently it exists only in the oversea now. V3200 add + BUFeedADModeSquareVideo = 50, //SquareVideo Currently it exists only in the oversea now. V3200 add + BUFeedADModeUnionSplashVideo = 154, // Video splash, V3800 add + BUFeedADModeUnionVerticalImage = 173, // vertical picture +}; + +@interface BUMaterialMeta : NSObject + +/// interaction types supported by ads. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) BUInteractionType interactionType; + +/// material pictures. +@property (nonatomic, strong) NSArray *imageAry; + +/// ad logo icon. +@property (nonatomic, strong) BUImage *icon; + +/// ad headline. +@property (nonatomic, copy) NSString *AdTitle; + +/// ad description. +@property (nonatomic, copy) NSString *AdDescription; + +/// ad source. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, copy) NSString *source; + +/// text displayed on the creative button. +@property (nonatomic, copy) NSString *buttonText; + +/// display format of the in-feed ad, other ads ignores it. +@property (nonatomic, assign) BUFeedADMode imageMode; + +/// Star rating, range from 1 to 5. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger score; + +/// Number of comments. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger commentNum; + +/// ad installation package size, unit byte. +@property (nonatomic, assign) NSInteger appSize; + +/// video duration +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger videoDuration; + +/// video url, will be empty string if allowCustomVideoPlayer is NO, contact BD to add to allow list. +@property (nonatomic, copy, readonly) NSString *videoUrl; + +/// be allowed to play video ad via custome player, contact BD to add to allow list. +@property (nonatomic, assign, readonly) BOOL allowCustomVideoPlayer; + +/// video resolution width +@property (nonatomic, assign, readonly) NSInteger videoResolutionWidth; + +/// video resolution height +@property (nonatomic, assign, readonly) NSInteger videoResolutionHeight; + +/// the reason why dislike the ad. +@property (nonatomic, copy) NSArray *filterWords; + +/// compliance statement of personalized advertising push +@property (nonatomic, strong) BUPersonalizationPrompts *personalPrompts; + +/// media configuration parameters. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, copy) NSDictionary *mediaExt; + +/// adx name, if it exists, it is recommended to display this text +@property (nonatomic, copy) NSString *ADXName; + +- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError * __autoreleasing *)error; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMaterialMeta.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMaterialMeta.h.meta new file mode 100644 index 00000000..53f2ece2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMaterialMeta.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 88301dffe469046b9bbd5596b7c80467 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMopubAdMarkUpDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMopubAdMarkUpDelegate.h new file mode 100755 index 00000000..53b3177d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMopubAdMarkUpDelegate.h @@ -0,0 +1,50 @@ +// +// BUMopubAdMarkUpDelegate.h +// BUAdSDK +// +// Created by Siwant on 2020/4/24. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class BUAdSlot; + +@protocol BUMopubAdMarkUpDelegate +@optional + +/** Mopub AdMarkUp + */ +- (void)setAdMarkup:(NSString *)adm; +- (void)setMopubAdMarkUp:(NSString *)adm DEPRECATED_MSG_ATTRIBUTE("please use -setAdMarkup: instead"); + +/// Bidding Token. Now for MSDK in domestic, used for every ad type. +- (NSString *)biddingToken; + +/** Mopub Adaptor get AD type from rit + * @return @{@"adSlotType": @(1), @"renderType": @(1)} + * adSlotType refer from BUAdSlotAdType in "BUAdSlot.h" + * showType: @"1" express AD @"2" native AD + */ ++ (nullable NSDictionary *)AdTypeWithRit:(NSString *)rit error:(NSError **)error; + +/** Mopub bidding Adaptor get AD type from adm + * @return @{@"adSlotType": @(1), @"renderType": @(1)} + * adSlotType refer from BUAdSlotAdType in "BUAdSlot.h" + * showType: @"1" express AD @"2" native AD + */ ++ (NSDictionary *)AdTypeWithAdMarkUp:(NSString *)adm; + + +/// Mopub Bidding Token ++ (NSString *)mopubBiddingToken DEPRECATED_MSG_ATTRIBUTE("please use +getBiddingToken: instead"); + +/// overseas bidding token +/// @param slotID the unique identifier of ad. ++ (NSString *)getBiddingToken:(nullable NSString *)slotID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMopubAdMarkUpDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMopubAdMarkUpDelegate.h.meta new file mode 100644 index 00000000..83d67a1b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUMopubAdMarkUpDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06f373cce247a4ba69330ce881c3880a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAd.h new file mode 100755 index 00000000..e35ae8cc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAd.h @@ -0,0 +1,144 @@ +// +// BUNativeAd.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUVideoAdView.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + + +@protocol BUNativeAdDelegate; + +NS_ASSUME_NONNULL_BEGIN + + +/** + Abstract ad slot containing ad data loading, response callbacks. + BUNativeAd currently supports native ads. + Native ads include in-feed ad (multiple ads, image + video), general native ad (single ad, image + video), native banner ad, and native interstitial ad. + Support interstitial ad, banner ad, splash ad, rewarded video ad, full-screen video ad. + */ +@interface BUNativeAd : NSObject + +/** + Ad slot description. + */ +@property (nonatomic, strong, readwrite, nullable) BUAdSlot *adslot; + +/** + Ad slot material. + */ +@property (atomic, strong, readonly, nullable) BUMaterialMeta *data; + +/** + The delegate for receiving state change messages. + The delegate is not limited to viewcontroller. + The delegate can be set to any object which conforming to . + */ +@property (nonatomic, weak, readwrite, nullable) id delegate; + +/** + required. + Root view controller for handling ad actions. + Action method includes is 'presentViewController'. + */ +@property (nonatomic, weak, readwrite) UIViewController *rootViewController; + +/** + Initializes native ad with ad slot. + @param slot : ad slot description. + including slotID,adType,adPosition,etc. + @return BUNativeAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Register clickable views in native ads view. + Interaction types can be configured on TikTok Audience Network. + Interaction types include view video ad details page, make a call, send email, download the app, open the webpage using a browser,open the webpage within the app, etc. + @param containerView : required. + container view of the native ad. + @param clickableViews : optional. + Array of views that are clickable. + */ +- (void)registerContainer:(__kindof UIView *)containerView + withClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews; + +/** + Unregister ad view from the native ad. + */ +- (void)unregisterView; + +/** + Actively request nativeAd datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + + +@protocol BUNativeAdDelegate + +@optional + +/** + This method is called when native ad material loaded successfully. This method will be deprecated. Use nativeAdDidLoad:view: instead + */ +- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd; + + +/** + This method is called when native ad material loaded successfully. + */ +- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd view:(UIView *_Nullable)view; + +/** + This method is called when native ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeAd:(BUNativeAd *)nativeAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when native ad slot has been shown. + */ +- (void)nativeAdDidBecomeVisible:(BUNativeAd *)nativeAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeAdDidCloseOtherController:(BUNativeAd *)nativeAd interactionType:(BUInteractionType)interactionType; + +/** + This method is called when native ad is clicked. + */ +- (void)nativeAdDidClick:(BUNativeAd *)nativeAd withView:(UIView *_Nullable)view; + +/** + This method is called when the user clicked dislike reasons. + Only used for dislikeButton in BUNativeAdRelatedView.h + @param filterWords : reasons for dislike + */ +- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd dislikeWithReason:(NSArray *_Nullable)filterWords; + +/** + This method is called when the Ad view container is forced to be removed. + @param nativeAd : Ad material + @param adContainerView : Ad view container + */ +- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd adContainerViewDidRemoved:(UIView *)adContainerView; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAd.h.meta new file mode 100644 index 00000000..e22d9a84 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fc47eb249fe434c0fa06e5a2b4280fe0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdRelatedView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdRelatedView.h new file mode 100755 index 00000000..ca0bd02d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdRelatedView.h @@ -0,0 +1,54 @@ +// +// BUNativeAdRelatedView.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUVideoAdView.h" +#import "BUNativeAd.h" +#import "BUVideoAdReportor.h" +#import "BUDislikeReportor.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BUNativeAdRelatedView : NSObject + +/** + Need to actively add to the view in order to deal with the feedback and improve the accuracy of ad. + */ +@property (nonatomic, strong, readonly, nullable) UIButton *dislikeButton; + +///Promotion label.Need to actively add to the view. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, strong, readonly, nullable) UILabel *adLabel; + +///Ad logo.Need to actively add to the view. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, strong, readonly, nullable) UIImageView *logoImageView; +/** + Ad logo + Promotion label.Need to actively add to the view. + */ +@property (nonatomic, strong, readonly, nullable) UIImageView *logoADImageView; + +/** + Video ad view. Need to actively add to the view. Can not coexist with videoAdReportor. + */ +@property (nonatomic, strong, readonly, nullable) BUVideoAdView *videoAdView; + +/** +Video ad Reportor. Can not coexist with videoAdView. +*/ +@property (nonatomic, strong, readonly, nullable) id videoAdReportor; + +/** + Refresh the data every time you get new datas in order to show ad perfectly. + */ +- (void)refreshData:(BUNativeAd *)nativeAd; + +//@property (nonatomic, copy) BOOL(^expectUseCustomVideoPlayer)(BOOL isSupported, NSString *videoUrl); + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdRelatedView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdRelatedView.h.meta new file mode 100644 index 00000000..78d5af3b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdRelatedView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0adf36acd61f2424f82d167aaf387d8c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdsManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdsManager.h new file mode 100755 index 00000000..b35308a3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdsManager.h @@ -0,0 +1,54 @@ +// +// BUNativeAdsManager.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +/** + BUNativeAdsManager : for multiple requests at the same time. + */ + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUNativeAd.h" +#import "BUNativeExpressAdViewDelegate.h" + +@protocol BUNativeAdsManagerDelegate; + +NS_ASSUME_NONNULL_BEGIN +/// Bunativeadsmanager class can request multiple ad data per time. +@interface BUNativeAdsManager : NSObject + +@property (nonatomic, strong, nullable) BUAdSlot *adslot; +@property (nonatomic, strong, nullable) NSArray *data; +/// The delegate for receiving state change messages such as requests succeeding/failing. +/// The delegate can be set to any object which conforming to . +@property (nonatomic, weak, nullable) id delegate; +/// The delegate for receiving messages when is render template +@property (nonatomic, weak, nullable) id nativeExpressAdViewDelegate; +/// Valid only in native Feed +@property (nonatomic, assign, readwrite) CGSize adSize; +- (instancetype)initWithSlot:(BUAdSlot * _Nullable) slot; + +/** + It is recommended to request no more than 3 ads. + The maximum is 10. + */ +- (void)loadAdDataWithCount:(NSInteger)count; + +@end + +@protocol BUNativeAdsManagerDelegate + +@optional + +- (void)nativeAdsManagerSuccessToLoad:(BUNativeAdsManager *)adsManager nativeAds:(NSArray *_Nullable)nativeAdDataArray; + +- (void)nativeAdsManager:(BUNativeAdsManager *)adsManager didFailWithError:(NSError *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdsManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdsManager.h.meta new file mode 100644 index 00000000..109d1a18 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeAdsManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 37f060bac9d9145cda76c35f4809d26a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdManager.h new file mode 100755 index 00000000..e8186013 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdManager.h @@ -0,0 +1,52 @@ +// +// BUNativeExpressAdManager.h +// BUAdSDK +// +// Created by bytedance on 2019/1/20. +// Copyright © 2019年 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUNativeExpressAdView.h" +#import "BUDislikeWords.h" +#import "BUPlayerPublicDefine.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUNativeExpressAdViewDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressAdManager : NSObject + +@property (nonatomic, strong, nullable) BUAdSlot *adslot; + +@property (nonatomic, assign, readwrite) CGSize adSize; + +/** + The delegate for receiving state change messages from a BUNativeExpressAdManager + */ +@property (nonatomic, weak, nullable) id delegate; + + +/** + @param size expected ad view size,when size.height is zero, acture height will match size.width + */ +- (instancetype)initWithSlot:(BUAdSlot * _Nullable)slot adSize:(CGSize)size; + +/** + The number of ads requested,The maximum is 3 + */ +- (void)loadAdDataWithCount:(NSInteger)count; +@end + +@interface BUNativeExpressAdManager (Deprecated) +- (void)loadAd:(NSInteger)count __attribute__((deprecated("Use loadAdDataWithCount: instead."))); +@end + + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdManager.h.meta new file mode 100644 index 00000000..5610cd59 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0efa85ede59834048b5e5b643730ca96 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdView.h new file mode 100755 index 00000000..e26a9615 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdView.h @@ -0,0 +1,49 @@ +// +// BUNativeExpressAdView.h +// BUAdSDK +// +// Created by bytedance on 2019/1/20. +// Copyright © 2019年 bytedance. All rights reserved. +// + +#import +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + + +@interface BUNativeExpressAdView : UIView +/** + * Whether render is ready + */ +@property (nonatomic, assign, readonly) BOOL isReady; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/// video duration. +@property (nonatomic,assign, readonly) NSInteger videoDuration; + +/// Get the already played time. +@property (nonatomic,assign, readonly) CGFloat currentPlayedTime; + +/* + required. + Root view controller for handling ad actions. + */ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** + required + */ +- (void)render; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdView.h.meta new file mode 100644 index 00000000..1b711109 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c67597fb5328746259a7343637af8e88 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdViewDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdViewDelegate.h new file mode 100755 index 00000000..748b9b86 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdViewDelegate.h @@ -0,0 +1,89 @@ +// +// BUNativeExpressAdViewDelegate.h +// BUAdSDK +// +// Created by Rush.D.Xzj on 2020/10/12. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" + +NS_ASSUME_NONNULL_BEGIN + + +@class BUNativeExpressAdManager; +@class BUNativeExpressAdView; +@class BUDislikeWords; + +@protocol BUNativeExpressAdViewDelegate + +@optional +/** + * Sent when views successfully load ad + */ +- (void)nativeExpressAdSuccessToLoad:(BUNativeExpressAdManager *)nativeExpressAdManager views:(NSArray<__kindof BUNativeExpressAdView *> *)views; + +/** + * Sent when views fail to load ad + */ +- (void)nativeExpressAdFailToLoad:(BUNativeExpressAdManager *)nativeExpressAdManager error:(NSError *_Nullable)error; + +/** + * This method is called when rendering a nativeExpressAdView successed, and nativeExpressAdView.size.height has been updated + */ +- (void)nativeExpressAdViewRenderSuccess:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + * This method is called when a nativeExpressAdView failed to render + */ +- (void)nativeExpressAdViewRenderFail:(BUNativeExpressAdView *)nativeExpressAdView error:(NSError *_Nullable)error; + +/** + * Sent when an ad view is about to present modal content + */ +- (void)nativeExpressAdViewWillShow:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + * Sent when an ad view is clicked + */ +- (void)nativeExpressAdViewDidClick:(BUNativeExpressAdView *)nativeExpressAdView; + +/** +Sent when a playerw playback status changed. +@param playerState : player state after changed +*/ +- (void)nativeExpressAdView:(BUNativeExpressAdView *)nativeExpressAdView stateDidChanged:(BUPlayerPlayState)playerState; + +/** + * Sent when a player finished + * @param error : error of player + */ +- (void)nativeExpressAdViewPlayerDidPlayFinish:(BUNativeExpressAdView *)nativeExpressAdView error:(NSError *)error; + +/** + * Sent when a user clicked dislike reasons. + * @param filterWords : the array of reasons why the user dislikes the ad + */ +- (void)nativeExpressAdView:(BUNativeExpressAdView *)nativeExpressAdView dislikeWithReason:(NSArray *)filterWords; + +/** + * Sent after an ad view is clicked, a ad landscape view will present modal content + */ +- (void)nativeExpressAdViewWillPresentScreen:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressAdViewDidCloseOtherController:(BUNativeExpressAdView *)nativeExpressAdView interactionType:(BUInteractionType)interactionType; + + +/** + This method is called when the Ad view container is forced to be removed. + @param nativeExpressAdView : Ad view container + */ +- (void)nativeExpressAdViewDidRemoved:(BUNativeExpressAdView *)nativeExpressAdView; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdViewDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdViewDelegate.h.meta new file mode 100644 index 00000000..415d6bed --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdViewDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bfdeaaf3a934448b9b8b3eb578c959e4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressBannerView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressBannerView.h new file mode 100755 index 00000000..501f779d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressBannerView.h @@ -0,0 +1,156 @@ +// +// BUNativeExpressBannerView.h +// BUAdSDK +// +// Created by xxx on 2019/5/17. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class BUNativeExpressBannerView; +@class BUDislikeWords; +@class BUSize; + +@protocol BUNativeExpressBannerViewDelegate + +@optional +/** + This method is called when bannerAdView ad slot loaded successfully. + @param bannerAdView : view for bannerAdView + */ +- (void)nativeExpressBannerAdViewDidLoad:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when bannerAdView ad slot failed to load. + @param error : the reason of error + */ +- (void)nativeExpressBannerAdView:(BUNativeExpressBannerView *)bannerAdView didLoadFailWithError:(NSError *_Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpressBannerAdViewRenderSuccess:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressBannerAdViewRenderFail:(BUNativeExpressBannerView *)bannerAdView error:(NSError * __nullable)error; + +/** + This method is called when bannerAdView ad slot showed new ad. + */ +- (void)nativeExpressBannerAdViewWillBecomVisible:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when bannerAdView is clicked. + */ +- (void)nativeExpressBannerAdViewDidClick:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when the user clicked dislike button and chose dislike reasons. + @param filterwords : the array of reasons for dislike. + */ +- (void)nativeExpressBannerAdView:(BUNativeExpressBannerView *)bannerAdView dislikeWithReason:(NSArray *_Nullable)filterwords; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressBannerAdViewDidCloseOtherController:(BUNativeExpressBannerView *)bannerAdView interactionType:(BUInteractionType)interactionType; + +/** + This method is called when the Ad view container is forced to be removed. + @param bannerAdView : Express Banner Ad view container + */ +- (void)nativeExpressBannerAdViewDidRemoved:(BUNativeExpressBannerView *)bannerAdView; +@end + +@interface BUNativeExpressBannerView : UIView + +@property (nonatomic, weak, nullable) id delegate; + +/** + The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + */ +@property (nonatomic, assign, readonly) NSInteger interval; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes express banner ad. + @param slotID The unique identifier of banner ad. + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize; + +/** + Initializes carousel express banner ad. + @param slotID The unique identifier of banner ad. + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @param interval The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + interval:(NSInteger)interval; + +/** + Initializes express banner ad. + @param slot A object, through which you can pass in the banner unique identifier, ad type, and so on + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize; + +/** + Initializes carousel express banner ad. + @param slot A object, through which you can pass in the banner unique identifier, ad type, and so on + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @param interval The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + interval:(NSInteger)interval; + +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + +@interface BUNativeExpressBannerView (Deprecated) +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + IsSupportDeepLink:(BOOL)isSupportDeepLink DEPRECATED_MSG_ATTRIBUTE("Use initWithSlotID:rootViewController:adSize: instead."); +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + IsSupportDeepLink:(BOOL)isSupportDeepLink + interval:(NSInteger)interval DEPRECATED_MSG_ATTRIBUTE("Use initWithSlotID:rootViewController:adSize:interval: instead."); +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressBannerView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressBannerView.h.meta new file mode 100644 index 00000000..e13df349 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressBannerView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3391e10e5b8d04ebba62de99e0e7a307 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressFullscreenVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressFullscreenVideoAd.h new file mode 100755 index 00000000..1422825c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressFullscreenVideoAd.h @@ -0,0 +1,176 @@ +// +// BUNativeExpressFullscreenVideoAd.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressFullscreenVideoAd; + +//define the type of native express video ad +typedef NS_ENUM(NSUInteger, BUNativeExpressFullScreenAdType) { + BUNativeExpressFullScreenAdTypeEndcard = 0, // video + endcard + BUNativeExpressFullScreenAdTypeVideoPlayable = 1, // video + playable + BUNativeExpressFullScreenAdTypePurePlayable = 2 // pure playable +}; + +NS_ASSUME_NONNULL_BEGIN +@protocol BUNativeExpressFullscreenVideoAdDelegate + +@optional +/** + This method is called when video ad material loaded successfully. + */ +- (void)nativeExpressFullscreenVideoAdDidLoad:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAd:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + It will happen when ad is show. + */ +- (void)nativeExpressFullscreenVideoAdViewRenderSuccess:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAdViewRenderFail:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + For a better user experience, it is recommended to display video ads at this time. + And you can call [BUNativeExpressFullscreenVideoAd showAdFromRootViewController:]. + */ +- (void)nativeExpressFullscreenVideoAdDidDownLoadVideo:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)nativeExpressFullscreenVideoAdWillVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)nativeExpressFullscreenVideoAdDidVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)nativeExpressFullscreenVideoAdDidClick:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when the user clicked skip button. + */ +- (void)nativeExpressFullscreenVideoAdDidClickSkip:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)nativeExpressFullscreenVideoAdWillClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)nativeExpressFullscreenVideoAdDidClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAdDidPlayFinish:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** +This method is used to get the type of nativeExpressFullScreenVideo ad + */ +- (void)nativeExpressFullscreenVideoAdCallback:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd withType:(BUNativeExpressFullScreenAdType) nativeExpressVideoAdType; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressFullscreenVideoAdDidCloseOtherController:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressFullscreenVideoAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use nativeExpressFullscreenVideoAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Initializes video ad with slot id. + @param slotID : the unique identifier of video ad. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID; + +/** + Initializes video ad with slot. + @param slot : A object, through which you can pass in the fullscreen unique identifier, ad type, and so on. + @return BUNativeExpressFullscreenVideoAd +*/ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Load video ad datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param sceneDescirbe : optional. Identifies a custom description of the presentation scenario. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressFullscreenVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressFullscreenVideoAd.h.meta new file mode 100644 index 00000000..fc504805 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressFullscreenVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a814081286a5b4a18a5221a1c7ee9ca6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressInterstitialAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressInterstitialAd.h new file mode 100755 index 00000000..400c841f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressInterstitialAd.h @@ -0,0 +1,117 @@ +// +// BUNativeExpressInterstitialAd.h +// BUAdSDK +// +// Created by xxx on 2019/5/16. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class BUSize; +@class BUNativeExpressInterstitialAd; + +@protocol BUNativeExpresInterstitialAdDelegate + +@optional +/** + This method is called when interstitial ad material loaded successfully. + */ +- (void)nativeExpresInterstitialAdDidLoad:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad material failed to load. + @param error : the reason of error + */ +- (void)nativeExpresInterstitialAd:(BUNativeExpressInterstitialAd *)interstitialAd didFailWithError:(NSError * __nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpresInterstitialAdRenderSuccess:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpresInterstitialAdRenderFail:(BUNativeExpressInterstitialAd *)interstitialAd error:(NSError * __nullable)error; + +/** + This method is called when interstitial ad slot will be showing. + */ +- (void)nativeExpresInterstitialAdWillVisible:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is clicked. + */ +- (void)nativeExpresInterstitialAdDidClick:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is about to close. + */ +- (void)nativeExpresInterstitialAdWillClose:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is closed. + */ +- (void)nativeExpresInterstitialAdDidClose:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpresInterstitialAdDidCloseOtherController:(BUNativeExpressInterstitialAd *)interstitialAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressInterstitialAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; + +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes interstitial ad. + @param slotID : The unique identifier of interstitial ad. + @param adsize : custom size of ad view. + @return BUNativeExpressInterstitialAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID adSize:(CGSize)adsize; + +/** + Initializes express intersitial ad. + @param slot A object, through which you can pass in the interstitial unique identifier, ad type, and so on + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressInterstitialAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot adSize:(CGSize)adsize; + +/** + Load interstitial ad datas. + */ +- (void)loadAdData; + +/** + Display interstitial ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressInterstitialAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressInterstitialAd.h.meta new file mode 100644 index 00000000..c7bf7d8e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressInterstitialAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 524544282265b4fc4bd9b003c0852965 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressRewardedVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressRewardedVideoAd.h new file mode 100755 index 00000000..8bde857a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressRewardedVideoAd.h @@ -0,0 +1,197 @@ +// +// BUNativeExpressRewardedVideoAd.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUAdSDKDefines.h" +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressRewardedVideoAd; +@class BURewardedVideoModel; + +NS_ASSUME_NONNULL_BEGIN + +/// define the type of native express rewarded video Ad +typedef NS_ENUM(NSUInteger, BUNativeExpressRewardedVideoAdType) { + BUNativeExpressRewardedVideoAdTypeEndcard = 0, // video + endcard + BUNativeExpressRewardedVideoAdTypeVideoPlayable = 1, // video + playable + BUNativeExpressRewardedVideoAdTypePurePlayable = 2, // pure playable +}; + +@protocol BUNativeExpressRewardedVideoAdDelegate + +@optional +/** + This method is called when video ad material loaded successfully. + */ +- (void)nativeExpressRewardedVideoAdDidLoad:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAd:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; +/** + this methods is to tell delegate the type of native express rewarded video Ad + */ +- (void)nativeExpressRewardedVideoAdCallback:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd withType:(BUNativeExpressRewardedVideoAdType)nativeExpressVideoType; + +/** + This method is called when cached successfully. + For a better user experience, it is recommended to display video ads at this time. + And you can call [BUNativeExpressRewardedVideoAd showAdFromRootViewController:]. + */ +- (void)nativeExpressRewardedVideoAdDidDownLoadVideo:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when rendering a nativeExpressAdView successed. + It will happen when ad is show. + */ +- (void)nativeExpressRewardedVideoAdViewRenderSuccess:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAdViewRenderFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when video ad slot will be showing. + */ +- (void)nativeExpressRewardedVideoAdWillVisible:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)nativeExpressRewardedVideoAdDidVisible:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)nativeExpressRewardedVideoAdWillClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)nativeExpressRewardedVideoAdDidClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)nativeExpressRewardedVideoAdDidClick:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when the user clicked skip button. + */ +- (void)nativeExpressRewardedVideoAdDidClickSkip:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAdDidPlayFinish:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + Server verification which is requested asynchronously is succeeded. now include two v erify methods: + 1. C2C need server verify 2. S2S don't need server verify + @param verify :return YES when return value is 2000. + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidSucceed:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify; + +/** + Server verification which is requested asynchronously is failed. + Return value is not 2000. + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd __attribute__((deprecated("Use nativeExpressRewardedVideoAdServerRewardDidFail: error: instead."))); + +/** + Server verification which is requested asynchronously is failed. + @param rewardedVideoAd express rewardVideo Ad + @param error request error info + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressRewardedVideoAdDidCloseOtherController:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressRewardedVideoAd : NSObject +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, weak, nullable) id rewardPlayAgainInteractionDelegate; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. +*/ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Whether material is effective. + Setted to YES when data is not empty and has not been displayed. + Repeated display is not billed. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use nativeExpressRewardedVideoAdDidLoad: instead."))); + +- (instancetype)initWithSlotID:(NSString *)slotID rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Initializes Rewarded video ad with ad slot and frame. + @param slot A object, through which you can pass in the reward unique identifier, ad type, and so on. + @param model Rewarded video model. + @return BUNativeExpressRewardedVideoAd +*/ +- (instancetype)initWithSlot:(BUAdSlot *)slot rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +- (void)loadAdData; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + If ritSceneType is custom, you need to pass in the values for sceneDescirbe. + @param ritSceneType : optional. Identifies a custom description of the presentation scenario. + @param sceneDescirbe : optional. Identify the scene of presentation. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritScene:(BURitSceneType)ritSceneType ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressRewardedVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressRewardedVideoAd.h.meta new file mode 100644 index 00000000..cb7f3628 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressRewardedVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99a244bc40a244633ac6d1577cd64586 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressSplashView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressSplashView.h new file mode 100755 index 00000000..cf7b6c6b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressSplashView.h @@ -0,0 +1,143 @@ +// +// BUNativeExpressSplashView.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressSplashView; + +NS_ASSUME_NONNULL_BEGIN +@protocol BUNativeExpressSplashViewDelegate +/** + This method is called when splash ad material loaded successfully. + */ +- (void)nativeExpressSplashViewDidLoad:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when splash ad material failed to load. + @param error : the reason of error + */ +- (void)nativeExpressSplashView:(BUNativeExpressSplashView *)splashAdView didFailWithError:(NSError * _Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpressSplashViewRenderSuccess:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressSplashViewRenderFail:(BUNativeExpressSplashView *)splashAdView error:(NSError * __nullable)error; + +/** + This method is called when nativeExpressSplashAdView will be showing. + */ +- (void)nativeExpressSplashViewWillVisible:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView is clicked. + */ +- (void)nativeExpressSplashViewDidClick:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView's skip button is clicked. + */ +- (void)nativeExpressSplashViewDidClickSkip:(BUNativeExpressSplashView *)splashAdView; +/** + This method is called when nativeExpressSplashAdView countdown equals to zero + */ +- (void)nativeExpressSplashViewCountdownToZero:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView closed. + */ +- (void)nativeExpressSplashViewDidClose:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when when video ad play completed or an error occurred. + */ +- (void)nativeExpressSplashViewFinishPlayDidPlayFinish:(BUNativeExpressSplashView *)splashView didFailWithError:(NSError *)error; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressSplashViewDidCloseOtherController:(BUNativeExpressSplashView *)splashView interactionType:(BUInteractionType)interactionType; + +@end + + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressSplashView : UIView +/** + The delegate for receiving state change messages. + */ +@property (nonatomic, weak, nullable) id delegate; + +/** + Maximum allowable load timeout, default 3s, unit s. + */ +@property (nonatomic, assign) NSTimeInterval tolerateTimeout; + +/** + Whether hide skip button, default NO. + If you hide the skip button, you need to customize the countdown. + */ +@property (nonatomic, assign) BOOL hideSkipButton; + +/** + Whether the splash ad data has been loaded. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes native express splash ad with slot id and frame. + @param slotID : the unique identifier of splash ad + @param adSize : the adSize of native express splashAd view. It is recommended for the mobile phone screen. + @param rootViewController : the root controller for present splash. + @return BUNativeExpressSplashView + */ +- (instancetype)initWithSlotID:(NSString *)slotID adSize:(CGSize)adSize rootViewController:(UIViewController *)rootViewController; + +/** + Initializes Express Splash video ad with ad slot, adSize and rootViewController. + @param slot A object, through which you can pass in the splash unique identifier, ad type, and so on. + @param adSize the adSize of native express splashAd view. It is recommended for the mobile phone screen. + @param rootViewController the root controller for present splash. + @return BUNativeExpressSplashView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot adSize:(CGSize)adSize rootViewController:(UIViewController *)rootViewController; + + +/** + Load splash ad datas. + Start the countdown(@tolerateTimeout) as soon as you request datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Remove splash view. + Stop the countdown as soon as you call this method. + 移除开屏视图 + 一旦调用这个方法,倒计时将自动停止 + */ +- (void)removeSplashView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressSplashView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressSplashView.h.meta new file mode 100644 index 00000000..a07da45a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressSplashView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dcd817e28905741bb969b201eaed4da9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPersonalizationPrompts.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPersonalizationPrompts.h new file mode 100755 index 00000000..52b38818 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPersonalizationPrompts.h @@ -0,0 +1,24 @@ +// +// BUPersonalizationPrompts.h +// BUAdSDK +// +// Created by bytedance on 2020/11/10. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + + +@interface BUPersonalizationPrompts : NSObject +/// personalization prompts's name +@property (nonatomic, copy) NSString *personalizationName; +/// personalization prompts's url +@property (nonatomic, copy) NSString *personalizationUrl; +/// personalization prompts valid or not +- (BOOL)validPersonalPrompts; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPersonalizationPrompts.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPersonalizationPrompts.h.meta new file mode 100644 index 00000000..ef39928c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPersonalizationPrompts.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5fb6fd4819add458db898725a5770a89 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPlayerPublicDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPlayerPublicDefine.h new file mode 100755 index 00000000..dfd13772 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPlayerPublicDefine.h @@ -0,0 +1,20 @@ +// +// BUPlayerPublicDefine.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#ifndef BUPlayerPublicDefine_h +#define BUPlayerPublicDefine_h + +typedef NS_ENUM(NSInteger, BUPlayerPlayState) { + BUPlayerStateFailed = 0, + BUPlayerStateBuffering = 1, + BUPlayerStatePlaying = 2, + BUPlayerStateStopped = 3, + BUPlayerStatePause = 4, + BUPlayerStateDefalt = 5 +}; + +#endif /* BUPlayerPublicDefine_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPlayerPublicDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPlayerPublicDefine.h.meta new file mode 100644 index 00000000..fd1e56c7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUPlayerPublicDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2bb4f699c68014d71aee8f76838f8cd7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoAd.h new file mode 100755 index 00000000..cf53136c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoAd.h @@ -0,0 +1,176 @@ +// +// BURewardedVideoAd.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUAdSDKDefines.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +/// define the type of rewarded video ad +typedef NS_ENUM(NSUInteger, BURewardedVideoAdType) { + BURewardedVideoAdTypeEndcard = 0, // video + endcard + BURewardedVideoAdTypeVideoPlayable = 1, // video + playable + BURewardedVideoAdTypePurePlayable = 2 // pure playable +}; + +@protocol BURewardedVideoAdDelegate; +@class BURewardedVideoModel; + +@interface BURewardedVideoAd : NSObject +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, weak, nullable) id rewardPlayAgainInteractionDelegate; +/** + Whether material is effective. + Setted to YES when data is not empty and has not been displayed. + Repeated display is not billed. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use rewardedVideoAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign,readonly) NSTimeInterval expireTimestamp; + +- (instancetype)initWithSlotID:(NSString *)slotID rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Initializes Rewarded video ad with ad slot and frame. + @param slot A object, through which you can pass in the reward unique identifier, ad type, and so on. + @param model Rewarded video model. + @return BURewardedVideoAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot rewardedVideoModel:(BURewardedVideoModel *)model; + + +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; +/** + If ritSceneType is custom, you need to pass in the values for sceneDescirbe. + @param ritSceneType : optional. Identifies a custom description of the presentation scenario. + @param sceneDescirbe : optional. Identify the scene of presentation. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritScene:(BURitSceneType)ritSceneType ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +@protocol BURewardedVideoAdDelegate + +@optional + +/** + This method is called when video ad material loaded successfully. + */ +- (void)rewardedVideoAdDidLoad:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)rewardedVideoAd:(BURewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + */ +- (void)rewardedVideoAdVideoDidLoad:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)rewardedVideoAdWillVisible:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)rewardedVideoAdDidVisible:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)rewardedVideoAdWillClose:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)rewardedVideoAdDidClose:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)rewardedVideoAdDidClick:(BURewardedVideoAd *)rewardedVideoAd; + + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)rewardedVideoAdDidPlayFinish:(BURewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + Server verification which is requested asynchronously is succeeded. + @param verify :return YES when return value is 2000. + */ +- (void)rewardedVideoAdServerRewardDidSucceed:(BURewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify; + +/** + Server verification which is requested asynchronously is failed. + Return value is not 2000. + */ +- (void)rewardedVideoAdServerRewardDidFail:(BURewardedVideoAd *)rewardedVideoAd __attribute__((deprecated("Use rewardedVideoAdServerRewardDidFail: error: instead."))); + +/** + Server verification which is requested asynchronously is failed. + @param rewardedVideoAd rewarded Video ad + @param error request error info + */ +- (void)rewardedVideoAdServerRewardDidFail:(BURewardedVideoAd *)rewardedVideoAd error:(NSError *)error; + +/** + This method is called when the user clicked skip button. + */ +- (void)rewardedVideoAdDidClickSkip:(BURewardedVideoAd *)rewardedVideoAd; + +/** + this method is used to get type of rewarded video Ad + */ +- (void)rewardedVideoAdCallback:(BURewardedVideoAd *)rewardedVideoAd withType:(BURewardedVideoAdType)rewardedVideoAdType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoAd.h.meta new file mode 100644 index 00000000..33aaa210 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4d6d694d95e814b3bae4b39f5960b564 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoModel.h new file mode 100755 index 00000000..7b22ffa7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoModel.h @@ -0,0 +1,31 @@ +// +// BURewardedVideoModel.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +@interface BURewardedVideoModel : NSObject + +/** + optional. + Third-party game user_id identity. + Mainly used in the reward issuance, it is the callback pass-through parameter from server-to-server. + It is the unique identifier of each user. + In the non-server callback mode, it will also be pass-through when the video is finished playing. + Only the string can be passed in this case, not nil. + */ +@property (nonatomic, copy) NSString *userId; + +//optional. serialized string. +@property (nonatomic, copy) NSString *extra; + +//reward name. It will assigned value when the ads back. +@property (nonatomic, copy) NSString *rewardName; + +//number of rewards. It will assigned value when the ads back. +@property (nonatomic, assign) NSInteger rewardAmount; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoModel.h.meta new file mode 100644 index 00000000..d0481238 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5b9b903b41f024315af115fccd2d7f3a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSize.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSize.h new file mode 100755 index 00000000..7bab35bc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSize.h @@ -0,0 +1,46 @@ +// +// BUSize.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import + +/** + Get the view with the best results by using the predefined size in pixels. + When it comes to view display, it is recommended to use the same scaling. +*/ +typedef NS_ENUM(NSInteger, BUProposalSize) { + BUProposalSize_Banner600_90, + BUProposalSize_Banner640_100, + BUProposalSize_Banner600_150, + BUProposalSize_Banner600_260, + BUProposalSize_Banner600_286, + BUProposalSize_Banner600_300, + BUProposalSize_Banner690_388, + BUProposalSize_Banner600_400, + BUProposalSize_Banner600_500, + BUProposalSize_Feed228_150, + BUProposalSize_Feed690_388, + BUProposalSize_Interstitial600_400, + BUProposalSize_Interstitial600_600, + BUProposalSize_Interstitial600_900, + BUProposalSize_DrawFullScreen +}; + +@interface BUSize : NSObject + +// width unit pixel. +@property (nonatomic, assign) NSInteger width; + +// height unit pixel. +@property (nonatomic, assign) NSInteger height; + +- (NSDictionary *)dictionaryValue; + +@end + +@interface BUSize (BU_SizeFactory) ++ (instancetype)sizeBy:(BUProposalSize)proposalSize; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSize.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSize.h.meta new file mode 100644 index 00000000..c9679fcf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSize.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ad6650f16545f46479e78e82aa21b8f3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSlotABManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSlotABManager.h new file mode 100755 index 00000000..bf385bd0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSlotABManager.h @@ -0,0 +1,26 @@ +// +// BUSlotABManager.h +// BUAdSDK +// +// Created by shenqichen on 2021/11/2. +// + +#import +#import "BUAdSlot.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void (^BUSlotABFetchCompletion)(NSString * _Nullable slotId, BUAdSlotAdType slotType, NSError * _Nullable error); + +@interface BUSlotABManager : NSObject + ++ (instancetype)sharedInstance; + +/// Decide the slot to load ad for AB test. +/// @param codeGroupId unique id for slot ab test +/// @param completion callback in main thread, return the slot info to load ad +- (void)fetchSlotWithCodeGroupId:(NSInteger)codeGroupId completion:(BUSlotABFetchCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSlotABManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSlotABManager.h.meta new file mode 100644 index 00000000..ab1fa50a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSlotABManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f744e9867b08448029987e322551c16c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashAdView.h new file mode 100755 index 00000000..b8496b36 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashAdView.h @@ -0,0 +1,144 @@ +// +// BUSplashAdView.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUSplashZoomOutView.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUSplashAdDelegate; + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUSplashAdView : UIView +/** +The unique identifier of splash ad. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *slotID; + +/** + Maximum allowable load timeout, default 3s, unit s. + */ +@property (nonatomic, assign) NSTimeInterval tolerateTimeout; + + +/** + Whether hide skip button, default NO. + If you hide the skip button, you need to customize the countdown. + */ +@property (nonatomic, assign) BOOL hideSkipButton; + +/** + The delegate for receiving state change messages. + */ +@property (nonatomic, weak, nullable) id delegate; + +/* + required. + Root view controller for handling ad actions. + */ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** + Whether the splash ad data has been loaded. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/// When it is a zoom out advertisement, it has value. +@property (nonatomic, strong, readonly, nullable) BUSplashZoomOutView *zoomOutView; + +/** + Initializes splash ad with slot id and frame. + Note: use in the main thread. + @param slotID : the unique identifier of splash ad + @param frame : the frame of splashAd view. It is recommended for the mobile phone screen. + @return BUSplashAdView + */ +- (instancetype)initWithSlotID:(NSString *)slotID frame:(CGRect)frame; + +/** + Initializes splash ad with ad slot and frame. + Note: use in the main thread. + @param slot A object, through which you can pass in the splash unique identifier、ad type, and so on + @param frame the frame of splashAd view. It is recommended for the mobile phone screen. + @return BUSplashAdView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot frame:(CGRect)frame; + +/** + Load splash ad datas. + Start the countdown(@tolerateTimeout) as soon as you request datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + + +@protocol BUSplashAdDelegate + +@optional +/** + This method is called when splash ad material loaded successfully. + */ +- (void)splashAdDidLoad:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad material failed to load. + @param error : the reason of error + */ +- (void)splashAd:(BUSplashAdView *)splashAd didFailWithError:(NSError * _Nullable)error; + +/** + This method is called when splash ad slot will be showing. + */ +- (void)splashAdWillVisible:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is clicked. + */ +- (void)splashAdDidClick:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is closed. + */ +- (void)splashAdDidClose:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is about to close. + */ +- (void)splashAdWillClose:(BUSplashAdView *)splashAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)splashAdDidCloseOtherController:(BUSplashAdView *)splashAd interactionType:(BUInteractionType)interactionType; + +/** + This method is called when spalashAd skip button is clicked. + */ +- (void)splashAdDidClickSkip:(BUSplashAdView *)splashAd; + +/** + This method is called when spalashAd countdown equals to zero + */ +- (void)splashAdCountdownToZero:(BUSplashAdView *)splashAd; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashAdView.h.meta new file mode 100644 index 00000000..b14873ef --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cf56a4a5558b04be0a5090c9548fc4d0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashZoomOutView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashZoomOutView.h new file mode 100755 index 00000000..cfb0e2ee --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashZoomOutView.h @@ -0,0 +1,58 @@ +// +// BUSplashZoomOutView.h +// BUAdSDK +// +// Created by wangyanlin on 2020/6/17. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUSplashZoomOutViewDelegate; + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUSplashZoomOutView : UIView +/* +required. +Root view controller for handling ad actions. +*/ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** +Suggested size for show. +*/ +@property (nonatomic, assign, readonly) CGSize showSize; + +/** +The delegate for receiving state change messages. +*/ +@property (nonatomic, weak) id delegate; +@end + +@protocol BUSplashZoomOutViewDelegate +/** + This method is called when splash ad is clicked. + */ +- (void)splashZoomOutViewAdDidClick:(BUSplashZoomOutView *)splashAd; + +/** + This method is called when splash ad is closed. + */ +- (void)splashZoomOutViewAdDidClose:(BUSplashZoomOutView *)splashAd; + +/** +This method is called when spalashAd automatically dimiss afte countdown equals to zero +*/ +- (void)splashZoomOutViewAdDidAutoDimiss:(BUSplashZoomOutView *)splashAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)splashZoomOutViewAdDidCloseOtherController:(BUSplashZoomOutView *)splashAd interactionType:(BUInteractionType)interactionType; + +@end +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashZoomOutView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashZoomOutView.h.meta new file mode 100644 index 00000000..939e6db4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUSplashZoomOutView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6d449db2ae3ab431ba690be9e6bd3d05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdDelegate.h new file mode 100755 index 00000000..ae6e26dd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdDelegate.h @@ -0,0 +1,58 @@ +// +// BUVideoAdDelegate.h +// BUAdSDK +// +// Created by 李盛 on 2018/8/3. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BURewardedVideoAd.h" + +/** + 用于插屏视频 激励视频 接口统一配置 + */ +@protocol BUVideoAdDelegate + +@property (nonatomic, assign) BOOL isRewardedVideo; + +/** + 视频点击即将关闭 + */ +- (void)videoAdWillClose; + +/** + 视频点击关闭 + */ +- (void)videoAdDidClose; + +/** + 视频/落地页点击 + */ +- (void)videoAdDidClick; + +/** + 视频播放完成 + */ +- (void)videoAdDidPlayFinishWithError:(NSError *)error; + + +@optional +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +/** + 视频点击跳过 + */ +- (void)videoAdDidClickSkip; + +/** + 服务器校验奖励成功发放. 2800进行了修改,包含了两种方式. + 1.C2C 不走服务端验证,直接根据时间发放奖励 2.S2S 老逻辑需要服务端验证 + */ +- (void)videoAdServerRewardDidSucceedVerify:(BOOL)verify; + +/** + 服务器校验奖励接口请求失败 + */ +- (void)videoAdServerRewardDidFailWithError:(NSError *)error; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdDelegate.h.meta new file mode 100644 index 00000000..20e6c144 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d5ce882c90a042d58dd90c6709ddfff +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdReportor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdReportor.h new file mode 100755 index 00000000..64c13c57 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdReportor.h @@ -0,0 +1,65 @@ +// +// BUVideoAdReportor.h +// BUAdSDK +// +// Created by bytedance on 2020/8/3. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// the reportor of video ad in feed, auto created by system if video ads in feed is customd. +@protocol BUVideoAdReportor + +@required + +/// report start play video +- (void)startPlayVideo; + +/// report did start play video +/// @param duration total duration of video, unit ms +- (void)didStartPlayVideoWithVideoDuration:(NSTimeInterval)duration; + +/// report did start play video auto, designed by developer +/// @param duration total duration of video, unit ms +- (void)didAutoStartPlayWithVideoDuration:(NSTimeInterval)duration; + +/// report did play to the end of video +- (void)didFinishVideo; + +/// report did pause video +/// @param duration duration of video that user watched +- (void)didPauseVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did resume video from paused +/// @param duration duration of video that user watched +- (void)didResumeVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did break video playing, maybe change another video or disappear from screen and so on +/// @param duration duration of video that user watched +- (void)didBreakVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did click video view, auto implement, developers need not call this method +/// @param duration duration of video that user watched +- (void)didClickVideoViewWithCurrentDuration:(NSTimeInterval)duration; + +/// report sth. wrong with playing +/// @param error error +- (void)didPlayFailedWithError:(NSError *)error; + +/// report sth. wrong with play start +/// @param error error +- (void)didPlayStartFailedWithError:(NSError *)error; + +/// reprot did buffering video +- (void)didPlayBufferStart; + +/// reprot did buffering video ended +- (void)didPlayBufferEnd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdReportor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdReportor.h.meta new file mode 100644 index 00000000..b6cee296 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdReportor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a8ab95b0204d4408b1a2d500599e428 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdView.h new file mode 100755 index 00000000..af216672 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdView.h @@ -0,0 +1,125 @@ +// +// BUVideoAdView.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerPublicDefine.h" +#import "BUMaterialMeta.h" + +@class BUMaterialMeta; + +NS_ASSUME_NONNULL_BEGIN + +/** + Control TikTok Audience Network video player. + */ +@protocol BUVideoEngine + +/** + Get the already played time. + */ +- (CGFloat)currentPlayTime; + +/** + Set video play when you support CustomMode + **/ +- (void)play; + +/** + Set video pause when you support CustomMode +**/ +- (void)pause; + +@end + +@protocol BUVideoAdViewDelegate; + +@interface BUVideoAdView : UIView + +@property (nonatomic, weak, nullable) id delegate; +/** +required. Root view controller for handling ad actions. + **/ +@property (nonatomic, weak, readwrite) UIViewController *rootViewController; + +/** + Whether to allow pausing the video by clicking, default NO. Only for draw video(vertical video ads). + **/ +@property (nonatomic, assign) BOOL drawVideoClickEnable; + +/** +AdType information. +*/ +@property (nonatomic, assign) NSInteger AdType; + +/** + material information. + */ +@property (nonatomic, strong, readwrite, nullable) BUMaterialMeta *materialMeta; + +/** + Set your Video autoPlayMode when you support CustomMode + if support CustomMode , default autoplay Video + **/ +@property (nonatomic, assign) BOOL supportAutoPlay; + + +- (instancetype)initWithMaterial:(BUMaterialMeta *)materialMeta; + +/** + Support configuration for pause button. + @param playImg : the image of the button + @param playSize : the size of the button. Set as cgsizezero to use default icon size. + */ +- (void)playerPlayIncon:(UIImage *)playImg playInconSize:(CGSize)playSize; + +@end + +@protocol BUVideoAdViewDelegate + +@optional + +/** + This method is called when videoadview failed to play. + @param error : the reason of error + */ +- (void)videoAdView:(BUVideoAdView *)videoAdView didLoadFailWithError:(NSError *_Nullable)error; + +/** + This method is called when videoadview ready to play. + */ +- (void)playerReadyToPlay:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview playback status changed. + @param playerState : player state after changed + */ +- (void)videoAdView:(BUVideoAdView *)videoAdView stateDidChanged:(BUPlayerPlayState)playerState; + +/** + This method is called when videoadview end of play. + */ +- (void)playerDidPlayFinish:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview is clicked. + */ +- (void)videoAdViewDidClick:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview's finish view is clicked. + */ +- (void)videoAdViewFinishViewDidClick:(BUVideoAdView *)videoAdView; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)videoAdViewDidCloseOtherController:(BUVideoAdView *)videoAdView interactionType:(BUInteractionType)interactionType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdView.h.meta new file mode 100644 index 00000000..b1ca84fe --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/A/Headers/BUVideoAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6efb563eccc51458bb92456738d7beee +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current.meta new file mode 100644 index 00000000..887485ea --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90f220d7256fb428581f68ae47f29eb4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/BUAdSDK b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/BUAdSDK new file mode 100755 index 00000000..2abb9dc5 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/BUAdSDK differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/BUAdSDK.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/BUAdSDK.meta new file mode 100644 index 00000000..230eab75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/BUAdSDK.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e765ead84d38c45bfa5cb65405885cf6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers.meta new file mode 100644 index 00000000..bcb7f987 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 95b2d07b2f21e44a7bfb0914d3aaa0fd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdClientBiddingProtocol.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdClientBiddingProtocol.h new file mode 100755 index 00000000..179e4846 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdClientBiddingProtocol.h @@ -0,0 +1,28 @@ +// +// BUAdClientBiddingProtocol.h +// Pods +// +// Created by bytedance on 2021/9/14. +// + +#import + +@protocol BUAdClientBiddingProtocol + +@optional + +/// invoke this method to set this actual auction price 调用此方法设置当前实际结算价 +/// @param auctionPrice auction price 实际结算价格 +- (void)setPrice:(nullable NSNumber *)auctionPrice; + +/// invoke this method when the bidding succeeds (strongly recommended) 当竞价成功调用此方法(强烈推荐) +/// @param auctionBidToWin the seccond place bidder's price 竞价方第二名的价格 +- (void)win:(nullable NSNumber*)auctionBidToWin; + +/// invoke this method when the bidding fails (strongly recommended) 当竞价失败调用此方法(强烈推荐) +/// @param auctionPrice auction price 竞价 +/// @param lossReason Reasons for failed bidding 失败的原因 +/// @param winBidder Who won the bid 谁赢了竞价 +- (void)loss:(nullable NSNumber*)auctionPrice lossReason:(nullable NSString*)lossReason winBidder:(nullable NSString*)winBidder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdClientBiddingProtocol.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdClientBiddingProtocol.h.meta new file mode 100644 index 00000000..bee604d0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdClientBiddingProtocol.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 28082b9c95edc4333be5d7e6e5d83a2e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDK.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDK.h new file mode 100755 index 00000000..57044641 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDK.h @@ -0,0 +1,70 @@ +// +// BUAdSDK.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +// In this header, you should import all the public headers of your framework using statements like #import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + + +///customize dislike style +#import +#import +#import +#import + +/// native ads +#import +#import +#import + +/// native express ads +#import +#import +#import +#import +#import +#import +#import +#import + +/// splash ads +#import +#import +#import + +/// rewarded video ads +#import +#import + +/// full-screen video ads +#import + +/// playable tool +#import + +// smartlook +#import + +/// test tools +#import + +/// slot ab test +#import diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDK.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDK.h.meta new file mode 100644 index 00000000..fc4075ff --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDK.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 42aae4be21eda4753812cfa1907292d9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKConfiguration.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKConfiguration.h new file mode 100755 index 00000000..ab4c6e88 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKConfiguration.h @@ -0,0 +1,110 @@ +// +// BUAdSDKConfiguration.h +// BUAdSDK +// +// Created by Eason on 2021/3/4. +// + +#import +#import +#import "BUAdSDKDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Provide a protocol for custom private data +/// Only valid in the CN environment +@protocol BUAdSDKPrivacyProvider + +@optional + +/// Specify whether to allow the SDK to use location data +- (BOOL)canUseLocation; +/// Return a latitude value +- (CLLocationDegrees)latitude; +/// Return a longitude value +- (CLLocationDegrees)longitude; + +@end + +@interface BUAdSDKConfiguration : NSObject + ++ (instancetype)configuration; + +/// This property should be set when integrating non-China and china areas at the same time, +/// otherwise it need'nt to be set.you‘d better set Territory first, if you need to set them +@property (nonatomic, assign) BUAdSDKTerritory territory; + +///Register the App key that’s already been applied before requesting an ad from TikTok Audience Network. +/// the unique identifier of the App +@property (nonatomic, copy) NSString *appID; + +/// the unique identifier of the App, more safely +@property (nonatomic, copy) NSString *secretKey; + +/// Configure development mode. default BUAdSDKLogLevelNone +@property (nonatomic, assign) BUAdSDKLogLevel logLevel; + +/// the age group of the user +/// only works in CN environment +@property (nonatomic, assign) BUAdSDKAgeGroup ageGroup; + +/// the COPPA of the user, COPPA is the short of Children's Online Privacy Protection Rule, +/// the interface only works in the United States. +/// Coppa 0 adult, 1 child +/// You can change its value at any time +@property (nonatomic, strong) NSNumber *coppa; + +/// additional user information. +@property (nonatomic, copy) NSString *userExtData; + +/// Solve the problem when your WKWebview post message empty, +/// default is BUOfflineTypeWebview +@property (nonatomic, assign) BUOfflineType webViewOfflineType; + +/// Custom set the GDPR of the user,GDPR is the short of General Data Protection Regulation,the interface only works in The European. +/// GDPR 0 close privacy protection, 1 open privacy protection +/// You can change its value at any time +@property (nonatomic, strong) NSNumber *GDPR; + +/// Custom set the CCPA of the user,CCPA is the short of General Data Protection Regulation,the interface only works in USA. +/// CCPA 0: "sale" of personal information is permitted, 1: user has opted out of "sale" of personal information -1: default +@property (nonatomic, strong) NSNumber *CCPA; +/// Custom set the debugLog to print debug Log. +/// debugLog 0: close debug log, 1: open debug log. +@property (nonatomic, strong) NSNumber *debugLog; + +@property (nonatomic, strong) NSNumber *themeStatus; + +/// Custom set the AB vid of the user. Array element type is NSNumber +@property (nonatomic, strong) NSArray *abvids; + +/// Custom set the tob ab sdk version of the user. +@property (atomic, copy) NSString *abSDKVersion; + +/// Custom set idfa value +/// You can change its value at any time +@property (nonatomic, copy) NSString *customIdfa; + +/** + In CN environment Whether to allow SDK to modify the category and options of AVAudioSession when playing audio, default is NO. + The category set by the SDK is AVAudioSessionCategoryAmbient, and the options are AVAudioSessionCategoryOptionDuckOthers + In VA environment Whether to allow SDK to modify the category and options of AVAudioSession when playing audio. When the scene is native or banner and current category is AVAudioSessionCategorySoloAmbient, default value is YES and the category set by the SDK is AVAudioSessionCategoryAmbient, the options are AVAudioSessionCategoryOptionMixWithOthers.The other scenes, default is NO. + */ +@property (nonatomic, assign) BOOL allowModifyAudioSessionSetting; + +/** + If you are a Unity developer, set this to Yes + */ +@property (nonatomic, assign) BOOL unityDeveloper; + +/// You can use this property to set whether the SDK can use certain privacy data, or pass these privacy data yourself. +/// If this property is not set, the SDK will execute the default privacy data usage logic. +/// Note: This property is only valid for the CN environment. Unless you know what you need, it is recommended not to assign a value to this property. +@property (nonatomic, strong) id privacyProvider; + +/// App logo image. If set, it will be displayed in the App open ad. +@property (nonatomic, strong, nullable) UIImage *appLogoImage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKConfiguration.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKConfiguration.h.meta new file mode 100644 index 00000000..a8baca3f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKConfiguration.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 552a34b7dd43c4a638f5c7980b99734c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKDefines.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKDefines.h new file mode 100755 index 00000000..34d81a64 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKDefines.h @@ -0,0 +1,64 @@ +// +// BUAdSDKDefines.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#ifndef BUAdSDK_DEFINES_h +#define BUAdSDK_DEFINES_h + +#import + +///CN china, NO_CN is not china +typedef NS_ENUM(NSUInteger, BUAdSDKTerritory) { + BUAdSDKTerritory_CN = 1, + BUAdSDKTerritory_NO_CN, +}; + +typedef NS_ENUM(NSInteger, BUAdSDKThemeStatus) { + BUAdSDKThemeStatus_Normal = 0, + BUAdSDKThemeStatus_Night = 1, +}; + + +typedef NS_ENUM(NSInteger, BUOfflineType) { + BUOfflineTypeNone, // Do not set offline + BUOfflineTypeWebview, // Offline dependence WKWebview +}; + +typedef NS_ENUM(NSInteger, BUAdSDKLogLevel) { + BUAdSDKLogLevelNone, + BUAdSDKLogLevelError, + BUAdSDKLogLevelWarning, + BUAdSDKLogLevelInfo, + BUAdSDKLogLevelDebug, + BUAdSDKLogLevelVerbose, +}; + +typedef NS_ENUM(NSInteger, BURitSceneType) { + BURitSceneType_custom = 0,//custom + BURitSceneType_home_open_bonus = 1,//Login/open rewards (login, sign-in, offline rewards doubling, etc.) + BURitSceneType_home_svip_bonus = 2,//Special privileges (VIP privileges, daily rewards, etc.) + BURitSceneType_home_get_props = 3,//Watch rewarded video ad to gain skin, props, levels, skills, etc + BURitSceneType_home_try_props = 4,//Watch rewarded video ad to try out skins, props, levels, skills, etc + BURitSceneType_home_get_bonus = 5,//Watch rewarded video ad to get gold COINS, diamonds, etc + BURitSceneType_home_gift_bonus = 6,//Sweepstakes, turntables, gift boxes, etc + BURitSceneType_game_start_bonus = 7,//Before the opening to obtain physical strength, opening to strengthen, opening buff, task props + BURitSceneType_game_reduce_waiting = 8,//Reduce wait and cooldown on skill CD, building CD, quest CD, etc + BURitSceneType_game_more_opportunities = 9,//More chances (resurrect death, extra game time, decrypt tips, etc.) + BURitSceneType_game_finish_rewards = 10,//Settlement multiple times/extra bonus (completion of chapter, victory over boss, first place, etc.) + BURitSceneType_game_gift_bonus = 11//The game dropped treasure box, treasures and so on +}; + +typedef NS_ENUM(NSInteger, BUAdSDKAgeGroup) { + BUAdSDKAgeGroupAdult = 0, // Default + BUAdSDKAgeGroupTeenager = 1, // Age 15~18 + BUAdSDKAgeGroupMinor = 2, // Age < 15 +}; + +@protocol BUToDictionary +- (NSDictionary *)dictionaryValue; +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKDefines.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKDefines.h.meta new file mode 100644 index 00000000..2e638586 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKDefines.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d0ee8e38e04104337a49a7882ccb152b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKError.h new file mode 100755 index 00000000..880385de --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKError.h @@ -0,0 +1,105 @@ +// +// BUAdSDKError.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +extern NSErrorDomain BUAdSDKErrorHost ; + +typedef NS_ENUM(NSInteger, BUErrorCode) { + BUErrorCodeTempError = -6, // native template is invalid + BUErrorCodeTempAddationError= -5, // native template addation is invalid + BUErrorCodeOpenAPPStoreFail = -4, // failed to open appstore + BUErrorCodeNOAdError = -3, // parsed data has no ads + BUErrorCodeNetError = -2, // network request failed + BUErrorCodeParseError = -1, // parsing failed + + BUErrorCodeSDKInitConfigUnfinished = -100, // sdk init config is unfinished + + BUErrorCodePlayableError_ERR_HAS_CACHE = -702, // has cache + BUErrorCodePlayableError_ERR_UNZIP = -704, // unzip error + + BUErrorCodeNERenderResultError= 101, // native Express ad, render result parse fail + BUErrorCodeNETempError = 102, // native Express ad, template is invalid + BUErrorCodeNETempPluginError = 103, // native Express ad, template plugin is invalid + BUErrorCodeNEDataError = 104, // native Express ad, data is invalid + BUErrorCodeNEParseError = 105, // native Express ad, parse fail + BUErrorCodeNERenderError = 106, // native Express ad, render fail + BUErrorCodeNERenderTimoutError= 107, // native Express ad, render timeout + BUErrorCodeTempLoadError = 109, // native Express ad, template load fail + + + BUErrorCodeDynamic_1_JSContextEmpty = 112, + BUErrorCodeDynamic_1_ParseError = 113, + BUErrorCodeDynamic_1_Timeout = 117, + BUErrorCodeDynamic_1_SubComponentNotExist = 118, + + BUErrorCodeDynamic_2_ParseError = 123, + BUErrorCodeDynamic_2_Timeout = 127, + BUErrorCodeDynamic_2_SubComponentNotExist = 128, + + BUErrorCodeDRRenderEngineError = 401, // native Express ad, engine error + BUErrorCodeDRRenderContextError = 402, // native Express ad, context error + BUErrorCodeDRRenderItemNotExist = 403, // native Express ad, item not exist + + BUErrorSlotAB_Disable = 491, // slot ab, feature is disabled + BUErrorSlotAB_EmptyResult = 492, // slot ab, slot result is empty + + BUErrorCodeSDKStop = 1000, // SDK stop forcely + + BUErrorCodeParamError = 10001, // parameter error + BUErrorCodeTimeout = 10002, + BUErrorCodeResource = 10003, + + BUErrorCodeSuccess = 20000, + BUErrorCodeNOAD = 20001, // no ads + + BUErrorCodeContentType = 40000, // http conent_type error + BUErrorCodeRequestPBError = 40001, // http request pb error + BUErrorCodeAppEmpty = 40002, // request app can't be empty + BUErrorCodeWapEMpty = 40003, // request wap can't be empty + BUErrorCodeAdSlotEmpty = 40004, // missing ad slot description + BUErrorCodeAdSlotSizeEmpty = 40005, // the ad slot size is invalid + BUErrorCodeAdSlotIDError = 40006, // the ad slot ID is invalid + BUErrorCodeAdCountError = 40007, // request the wrong number of ads + BUUnionAdImageSizeError = 40008, // wrong image size + BUUnionAdSiteIdError = 40009, // Media ID is illegal + BUUnionAdSiteMeiaTypeError = 40010, // Media type is illegal + BUUnionAdSiteAdTypeError = 40011, // Ad type is illegal + BUUnionAdSiteAccessMethodError = 40012,// Media access type is illegal and has been deprecated + BUUnionSplashAdTypeError = 40013, // Code bit id is less than 900 million, but adType is not splash ad + BUUnionRedirectError = 40014, // The redirect parameter is incorrect + BUUnionRequestInvalidError = 40015, // Media rectification exceeds deadline, request illegal + BUUnionAppSiteRelError = 40016, // The relationship between slot_id and app_id is invalid. + BUUnionAccessMethodError = 40017, // Media access type is not legal API/SDK + BUUnionPackageNameError = 40018, // Media package name is inconsistent with entry + BUUnionConfigurationError = 40019, // Media configuration ad type is inconsistent with request + BUUnionRequestLimitError = 40020, // The ad space registered by developers exceeds daily request limit + BUUnionSignatureError = 40021, // Apk signature sha1 value is inconsistent with media platform entry + BUUnionIncompleteError = 40022, // Whether the media request material is inconsistent with the media platform entry + BUUnionOSError = 40023, // The OS field is incorrectly filled + BUUnionLowVersion = 40024, // The SDK version is too low to return ads + BUErrorCodeAdPackageIncomplete = 40025,// the SDK package is incomplete. It is recommended to verify the integrity of SDK package or contact technical support. + BUUnionMedialCheckError = 40026, // Non-international account request for overseas delivery system + BUUnionSlotIDRenderMthodNoMatch = 40029,// The rendering method for slot ID does not match. + + + BUUnionCpidChannelCodeError = 40030, // Huawei browse impex cpid channeld code does not match. + BUUnionInternationalRequestCurrencyTypeError = 40031, // International request currency type is empty. + BUUnionOpenRTBRequestTokenError =40032, // OpenRTB request token is empty. + BUUnionHardCodeError = 40033, // Hard code not return ads, return message does not adjust. + + + BUUnionSDKVersionTooLow =40041, // SDK version is too low. + BUUnionNewInterstitialStyleVersionError = 40042, // New interstitial style use sdk version is too low. Plese upgrade SDK version to 3.5.5.0. + BUUnionPreviewFlowInvalid =40043, // Preview flow invalid. + + BUErrorCodeSysError = 50001, // ad server error + + + BUErrorCodeNetworkError = 98764, // network error. + BUErrorCodeUndefined = 98765, // error undefined +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKError.h.meta new file mode 100644 index 00000000..4f8c8080 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 946e75e33bbb54fe9ba8e46f5a51e860 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKManager.h new file mode 100755 index 00000000..c15cd5dc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKManager.h @@ -0,0 +1,138 @@ +// +// BUAdSDKManager.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSDKDefines.h" +#import "BUMopubAdMarkUpDelegate.h" + +typedef NS_ENUM(NSInteger, BUAdSDKInitializationState) { + BUAdSDKInitializationStateNotReady = 0, + BUAdSDKInitializationStateReady = 1 +}; + +typedef void (^BUConfirmGDPR)(BOOL isAgreed); + +typedef void (^BUCompletionHandler)(BOOL success,NSError *error); + +@interface BUAdSDKManager : NSObject + +@property (nonatomic, copy, readonly, class) NSString *SDKVersion; + +/// The SDK initialization state +@property (nonatomic, assign, readonly, class) BUAdSDKInitializationState initializationState; + +/// The synchronize initialization method +/// @param completionHandler Callback to the initialization state of the calling thread ++ (void)startWithSyncCompletionHandler:(BUCompletionHandler)completionHandler; + +/// The asynchronize initialization method +/// @param completionHandler Callback to the initialization state of the non-main thread ++ (void)startWithAsyncCompletionHandler:(BUCompletionHandler)completionHandler; + +/// Open GDPR Privacy for the user to choose before setAppID. ++ (void)openGDPRPrivacyFromRootViewController:(UIViewController *)rootViewController confirm:(BUConfirmGDPR)confirm; + +@end + + +@interface BUAdSDKManager (MopubAdaptor) + +@end + +@interface BUAdSDKManager (BUAdNR) ++ (NSString *)bunr_dictionaryWithSlot:(BUAdSlot *)slot isDynamicRender:(BOOL)isDynamicRender; +@end + + +@interface BUAdSDKManager (InterfaceReadyReplacement) +/** +This property should be set when integrating non-China and china areas at the same time, otherwise it need'nt to be set.you‘d better set Territory first, if you need to set them +@param territory : Regional value +*/ ++ (void)setTerritory:(BUAdSDKTerritory)territory; +/** + Register the App key that’s already been applied before requesting an ad from TikTok Audience Network. + @param appID : the unique identifier of the App + */ ++ (void)setAppID:(NSString *)appID; + +/** + @param secretKey the unique identifier of the App, more safely + */ ++ (void)setSecretKey:(NSString *)secretKey; +/** + Configure development mode. + @param level : default BUAdSDKLogLevelNone + */ ++ (void)setLoglevel:(BUAdSDKLogLevel)level; + +/* Set the age group of the user, the interface only works only works in CN environment. + * @params ageGroup: default BUAdSDKAgeGroupAdult + */ ++ (void)setAgeGroup:(BUAdSDKAgeGroup)ageGroup; + +/* Set the COPPA of the user, COPPA is the short of Children's Online Privacy Protection Rule, the interface only works in the United States. + * @params Coppa 0 adult, 1 child + */ ++ (void)setCoppa:(NSInteger)coppa; + +/// Set the user's keywords, such as interests and hobbies, etc. +/// Must obtain the consent of the user before incoming. ++ (void)setUserKeywords:(NSString *)keywords; + +/// set additional user information. ++ (void)setUserExtData:(NSString *)data; + +/// Solve the problem when your WKWebview post message empty,default is BUOfflineTypeWebview ++ (void)setOfflineType:(BUOfflineType)type; + +/// Custom set the GDPR of the user,GDPR is the short of General Data Protection Regulation,the interface only works in The European. +/// @params GDPR 0 close privacy protection, 1 open privacy protection ++ (void)setGDPR:(NSInteger)GDPR; + +/// Custom set the CCPA of the user,CCPA is the short of General Data Protection Regulation,the interface only works in USA. +/// @params CCPA 0: "sale" of personal information is permitted, 1: user has opted out of "sale" of personal information -1: default ++ (void)setCCPA:(NSInteger)CCPA; + +/// Custom set the AB vid of the user. Array element type is NSNumber ++ (void)setABVidArray:(NSArray *)abvids; + +/// Custom set the tob ab sdk version of the user. ++ (void)setABSDKVersion:(NSString *)abSDKVersion; + + +/// Custom set idfa value ++ (void)setCustomIDFA:(NSString *)idfa; + + + ++ (void)setThemeStatus:(BUAdSDKThemeStatus)themeStatus; + +/// get appID ++ (NSString *)appID; + +/// get GDPR ++ (NSInteger)GDPR; + +/// get coppa( -1:defalut 0.adult 1.child ) ++ (NSInteger)coppa; + +/// get CCPA ++ (NSInteger)CCPA; + +/** + Whether to allow SDK to modify the category and options of AVAudioSession when playing audio, default is NO. + The category set by the SDK is AVAudioSessionCategoryAmbient, and the options are AVAudioSessionCategoryOptionDuckOthers + */ ++ (void)allowModifyAudioSessionSetting:(BOOL)isAllow; + + ++ (BUAdSDKThemeStatus)themeStatus; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKManager.h.meta new file mode 100644 index 00000000..0878e7f6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 704f0e9789c5545bf89973095ff66efd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKPlayableToolManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKPlayableToolManager.h new file mode 100755 index 00000000..70c9ee05 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKPlayableToolManager.h @@ -0,0 +1,25 @@ +// +// BUAdSDKPlayableToolManager.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +@interface BUAdSDKPlayableToolManager : NSObject + ++ (instancetype)sharedInstance; + ++ (void)setPlayableURL:(NSString *)url; + ++ (void)setDownloadUrl:(NSString *)url; + ++ (void)setDeeplinkUrl:(NSString *)url; + ++ (void)setIsLandScape:(BOOL)isLandScape; + ++ (void)clearAll; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKPlayableToolManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKPlayableToolManager.h.meta new file mode 100644 index 00000000..ac0d1b01 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKPlayableToolManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ff1c85b5b504546698356f1fbc394164 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKTestToolManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKTestToolManager.h new file mode 100755 index 00000000..62f30724 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKTestToolManager.h @@ -0,0 +1,32 @@ +// +// BUAdSDKTestToolManager.h +// BUAdSDK +// +// Created by wangyanlin on 2020/4/14. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + + +@interface BUAdSDKTestToolManager : NSObject + ++ (instancetype)sharedInstance; + ++ (void)setHostIP:(NSString *)hostIP; + ++ (void)setHostPort:(NSString *)hostPort; + ++ (void)setInputOneContent:(NSString *)oneContent; + ++ (void)setInputTwoContent:(NSString *)twoContent; + ++ (void)clearIPAddress; + ++ (void)clearInputContent; + +- (NSString *)testTimeStamp; + +@end + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKTestToolManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKTestToolManager.h.meta new file mode 100644 index 00000000..bfb4999e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSDKTestToolManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dc977a6263f30446c9751644f6f28ea8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSlot.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSlot.h new file mode 100755 index 00000000..76a8600f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSlot.h @@ -0,0 +1,111 @@ +// +// BUAdSlot.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import "BUSize.h" +#import "BUAdSDKDefines.h" + +typedef NS_ENUM(NSInteger, BUAdSlotAdType) { + BUAdSlotAdTypeUnknown = 0, + BUAdSlotAdTypeBanner = 1, // banner ads + BUAdSlotAdTypeInterstitial = 2, // interstitial ads + BUAdSlotAdTypeSplash = 3, // splash ads + BUAdSlotAdTypeSplash_Cache = 4, // cache splash ads + BUAdSlotAdTypeFeed = 5, // feed ads + BUAdSlotAdTypePaster = 6, // paster ads + BUAdSlotAdTypeRewardVideo = 7, // rewarded video ads + BUAdSlotAdTypeFullscreenVideo = 8, // full-screen video ads + BUAdSlotAdTypeDrawVideo = 9, // vertical (immersive) video ads +}; + +typedef NS_ENUM(NSInteger, BUAdSlotPosition) { + BUAdSlotPositionTop = 1, + BUAdSlotPositionBottom = 2, + BUAdSlotPositionFeed = 3, + BUAdSlotPositionMiddle = 4, // for interstitial ad only + BUAdSlotPositionFullscreen = 5, +}; + +/// value is equale req_type +typedef NS_ENUM(NSInteger, BUAdLoadType) { + + BUAdLoadTypeUnknown = -1,//Unknown + BUAdLoadTypePreload = 1,//Preload resources + BUAdLoadTypeLoad = 3,//Load resources in real time +}; + +typedef NS_ENUM(NSInteger, BUSplashButtonType) { + BUSplashButtonType_FullScreen = 1, // The whole area of splash view will respond to click event + BUSplashButtonType_DownloadBar = 2 // The area of download bar in splash view will respond to click event +}; + +@interface BUAdSlot : NSObject + +/// required. The unique identifier of a native ad. +@property (nonatomic, copy) NSString *ID; + +/// required. Ad type. +@property (nonatomic, assign) BUAdSlotAdType AdType; + +/// optional. Ad display location. defaults is BUAdSlotPositionTop +@property (nonatomic, assign) BUAdSlotPosition position; + +/// Accept a set of image sizes, please pass in the BUSize object. +@property (nonatomic, strong) NSMutableArray *imgSizeArray; + +/// required. Image size. +@property (nonatomic, strong) BUSize *imgSize; + +/// Icon size. +@property (nonatomic, strong) BUSize *iconSize; + +/// optional. Whether to support deeplink.defaults is true +@property (nonatomic, assign) BOOL isSupportDeepLink DEPRECATED_MSG_ATTRIBUTE("This property is deprecated,Settings are no longer required after version 3300"); + +/// Native banner ads and native interstitial ads are set to 1, other ad types are 0, the default is 0. +@property (nonatomic, assign) BOOL isOriginAd; + +/// optional. Whether to support render control +@property (nonatomic, assign) BOOL supportRenderControl; + +//adload_seq:(针对聚合广告位)传递本次请求是为“自然日内某设备某广告位置第N次展示机会”发出的广告请求,同物理位置在自然日从1开始计数,不同物理位置独立计数;example:某原生广告位置,当天第5次产生展示机会,这次展示机向穿山甲发送了4次广告请求,则这4次广告请求的"adload_seq"的值应为5。第二天重新开始计数。 +@property (nonatomic, assign) NSInteger adloadSeq; + +// Valid only in Native Banner and Native Interstitial +@property (nonatomic, assign) CGSize adSize; + + +//prime_rit:(针对聚合广告位)广告物理位置对应的固定穿山甲广告位id,可以使用第一层的广告位id也可以为某一层的广告位id,但要求同一物理位置在该字段固定上报同一广告位id,不频繁更换;example:某原生广告位,当天共发出了1000个请求,这1000个请求中使用了5个不同target的穿山甲rit,用某X rit来作为该位置的标记rit,则这1000次请求的prime_rit都需要上报X rit的rit id。 +@property (nonatomic, copy) NSString *primeRit; + +/// optional. AD id for preview +@property (nonatomic, copy) NSString *previewAdID; + +/// optional. AD creative id for preview +@property (nonatomic, copy) NSString *previewCreativeID; + +/// optional. extend msg +@property (nonatomic, copy) NSDictionary *ext; + +/// optional. additional user information +@property (nonatomic, copy) NSString *userData; + +/** + Ad load type + - BUAdLoadTypePreload : Preload resources + - BUAdLoadTypeLoad: Load resources in real time + @Note : This field is only useful in China. At present, this field is not necessary to set the content. It is only to investigate how developers use advertisements instead of realizing functions. + */ +@property (nonatomic, assign) BUAdLoadType adLoadType; + +/// optional. config the behaviour of click splash view +@property (nonatomic, assign) BUSplashButtonType splashButtonType; + +- (NSDictionary *)dictionaryValue; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSlot.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSlot.h.meta new file mode 100644 index 00000000..20bdd87f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSlot.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e15725067c7f643dba1f9435e92689ac +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSmartlookManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSmartlookManager.h new file mode 100755 index 00000000..b7843c47 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSmartlookManager.h @@ -0,0 +1,23 @@ +// +// BUAdSmartlookManager.h +// BUAdSDK +// +// Created by wangchao on 2020/3/30. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUAdSmartlookManager : NSObject + + ++ (instancetype)sharedInstance; + ++ (void)setupSmartlookConfig:(NSString *)config; ++ (void)resetConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSmartlookManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSmartlookManager.h.meta new file mode 100644 index 00000000..f92ea6bd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAdSmartlookManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9f50827190a514e83ab87ac311fd7281 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAppOpenAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAppOpenAd.h new file mode 100755 index 00000000..65f889e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAppOpenAd.h @@ -0,0 +1,67 @@ +// +// BUAppOpenAd.h +// AFNetworking +// +// Created by Willie on 2021/12/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class BUAppOpenAd, BUAdSlot; +@protocol BUAppOpenAdDelegate; + +/// Callback for loading ad results. +/// @param appOpenAd Ad instance after successfully loaded. +/// @param error Loading error. +typedef void (^BUAppOpenAdLoadCompletionHandler)(BUAppOpenAd * _Nullable appOpenAd, + NSError * _Nullable error); + +/// App-open ad object. Use it to load ads and display. +@interface BUAppOpenAd : NSObject + +/// Ad event delegate. +@property (nonatomic, weak, nullable) id delegate; + +/// Create an instance by BUAdSlot. +/// @param slot A BUAdSlot instance. The necessary parameter is `ID`. +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/// Load ad data. +/// @param timeout If the ad data is not successfully loaded within the timeout period, a timeout error will be returned. The unit is seconds. +/// @param completionHandler Callback for loading ad results. +- (void)loadOpenAdWithTimeout:(NSTimeInterval)timeout + completionHandler:(nullable BUAppOpenAdLoadCompletionHandler)completionHandler; + +/// Display ad. You need to call `loadOpenAdWithTimeout:completionHandler:` and succeed before call `presentFromRootViewController:` +/// @param rootViewController UIViewController that ad display depends on. +- (void)presentFromRootViewController:(UIViewController *)rootViewController; + +@end + + +/// Ad event protocol. +@protocol BUAppOpenAdDelegate + +@optional + +/// The ad has been presented. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didPresentForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad was clicked. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didClickForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad was skipped. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)didClickSkipForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +/// The ad countdown is over. +/// @param appOpenAd The BUAppOpenAd instance. +- (void)countdownToZeroForAppOpenAd:(BUAppOpenAd *)appOpenAd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAppOpenAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAppOpenAd.h.meta new file mode 100644 index 00000000..f6d41e7a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUAppOpenAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c77cae639685b4205b330a53b26d6976 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislike.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislike.h new file mode 100755 index 00000000..1b207a6e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislike.h @@ -0,0 +1,40 @@ +// +// BUDislike.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +@class BUNativeAd; +@class BUDislikeWords; + +/** + !!! important : + Please report to the sdk the user’s selection, inaccurate model will result in poor ad performance. + */ +@interface BUDislike : NSObject +/** + The array of BUDislikeWords which have reasons for dislike. + The application can show the secondary page for dislike if '[filterWords.options count] > 0'. + */ +@property (nonatomic, copy, readonly) NSArray *filterWords; + +/** + Initialize with nativeAd to get filterWords. + return BUDislike + */ +- (instancetype)initWithNativeAd:(BUNativeAd *)nativeAd; + +/** + Call this method after the user chose dislike reasons. + (Only for object which uses 'BUDislike.filterWords') + @param filterWord : reasons for dislike + @note : don't need to call this method if '[filterWords.options count] > 0'. + @note :please dont't change 'BUDislike.filterWords'. + 'filterWord' must be one of 'BUDislike.filterWords', otherwise it will be filtered. + */ +- (void)didSelectedFilterWordWithReason:(BUDislikeWords *)filterWord; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislike.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislike.h.meta new file mode 100644 index 00000000..87f7f40f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislike.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b52c328baf7ae4c759279b12e0aa9d6d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeReportor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeReportor.h new file mode 100755 index 00000000..7d0cbe5c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeReportor.h @@ -0,0 +1,49 @@ +// +// BUDislikeReportor.h +// BUAdSDK +// +// Created by bytedance on 2020/12/14. +// Copyright © 2020 bytedance. All rights reserved. +// + +#ifndef BUDislikeReportor_h +#define BUDislikeReportor_h +#import +#import + +@class BUDislikeWords; +@class BUPersonalizationPrompts; +/// the reportor for custom dislike +@protocol BUDislikeReportorDelegate +@optional +/// report selected dislike word +/// @param dislikeWords dislike words +- (void)dislikeDidSelected:(NSArray *)dislikeWords; + +/// report submit feedback string +/// @param feedback feedback string +- (void)dislikeDidSubmitFeedback:(NSString *)feedback; + +/// reportor when personalization prompts's name did show +/// @param prompts personalization Ads prompts +- (void)dislikeDidShowPersonalizationPrompts:(BUPersonalizationPrompts *)prompts; + +/// reportor when personalization prompts did selected +/// @param prompts personalization Ads prompts +- (void)dislikeDidSelectedPersonalizationPrompts:(BUPersonalizationPrompts *)prompts; + +/// reportor when personalization prompts's url did load +/// @param prompts personalization prompts +- (void)dislikeDidLoadPersonalizationPromptsURL:(BUPersonalizationPrompts *)prompts; +@end + +@class BUNativeAd; +/// Dislike Data Reportor for Native Ad +@interface BUDislikeReportor : NSObject + +/// Dislike Reportor Instance +/// @param nativeAd native Ad +- (instancetype)initWithNativeAd:(BUNativeAd *)nativeAd; +@end + +#endif /* BUDislikeReportor_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeReportor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeReportor.h.meta new file mode 100644 index 00000000..e82d5dcb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeReportor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: abd98c8988c43454093066b790983abc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeWords.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeWords.h new file mode 100755 index 00000000..36d98257 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeWords.h @@ -0,0 +1,17 @@ +// +// BUDislikeWords.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +@interface BUDislikeWords : NSObject +@property (nonatomic, copy, readonly) NSString *dislikeID; +@property (nonatomic, copy, readonly) NSString *name; +@property (nonatomic, assign, readonly) BOOL isSelected; +@property (nonatomic, copy,readonly) NSArray *options; + +- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError **)error; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeWords.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeWords.h.meta new file mode 100644 index 00000000..b3bd99db --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUDislikeWords.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a88e2a4d6a5394450ad934b29c212545 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUFullscreenVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUFullscreenVideoAd.h new file mode 100755 index 00000000..519a8c29 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUFullscreenVideoAd.h @@ -0,0 +1,158 @@ +// +// BUFullscreenVideoAd.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +typedef NS_ENUM(NSUInteger, BUFullScreenVideoAdType) { + BUFullScreenAdTypeEndcard = 0, // video + endcard + BUFullScreenAdTypeVideoPlayable = 1, // video + playable + BUFullScreenAdTypePurePlayable = 2 // pure playable +}; + +NS_ASSUME_NONNULL_BEGIN + +@class BUFullscreenVideoAd; + +@protocol BUFullscreenVideoAdDelegate + +@optional + +/** + This method is called when video ad material loaded successfully. + */ +- (void)fullscreenVideoMaterialMetaAdDidLoad:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)fullscreenVideoAd:(BUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + */ +- (void)fullscreenVideoAdVideoDataDidLoad:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)fullscreenVideoAdWillVisible:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)fullscreenVideoAdDidVisible:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)fullscreenVideoAdDidClick:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)fullscreenVideoAdWillClose:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)fullscreenVideoAdDidClose:(BUFullscreenVideoAd *)fullscreenVideoAd; + + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)fullscreenVideoAdDidPlayFinish:(BUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when the user clicked skip button. + */ +- (void)fullscreenVideoAdDidClickSkip:(BUFullscreenVideoAd *)fullscreenVideoAd; + +/** +this method is used to get the type of fullscreen video ad + */ +- (void)fullscreenVideoAdCallback:(BUFullscreenVideoAd *)fullscreenVideoAd withType:(BUFullScreenVideoAdType)fullscreenVideoAdType; + +@end + +@interface BUFullscreenVideoAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use fullscreenVideoMaterialMetaAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Initializes video ad with slot id. + @param slotID : the unique identifier of video ad. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID; + +/** + Initializes video ad with slot. + @param slot : A object, through which you can pass in the fullscreen unique identifier, ad type, and so on. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Load video ad datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param sceneDescirbe : optional. Identifies a custom description of the presentation scenario. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUFullscreenVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUFullscreenVideoAd.h.meta new file mode 100644 index 00000000..2d38c84f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUFullscreenVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c797d31264586482187047397a2ae362 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUGeckoManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUGeckoManager.h new file mode 100755 index 00000000..7e132f7b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUGeckoManager.h @@ -0,0 +1,35 @@ +// +// BUGeckoManager.h +// Pods +// +// Created by admin on 2021/7/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef void (^BUGeckoPreloadCompletion)(NSData * _Nullable data,NSDictionary * _Nullable respHeader); +typedef void (^BUGeckoSyncDataCompletion)(BOOL success,NSDictionary *info); + +@interface BUGeckoManager : NSObject + +// 判断gecko是否已经初始化 ++ (BOOL)geckoDidSetup; + +// 注册Gecko的Accesskey,不同的Accesskey可以区分不同的业务 ++ (void)registAccessKey:(NSString *)ak; + +// 同步Gecko资源 ++ (void)syncResourcesParamsWithAccessKey:(NSString *)ak + channels:(NSArray *)channelIds + hosts:(NSArray *)hosts + completion:(BUGeckoSyncDataCompletion _Nullable)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info + accessKey:(NSString *)ak + channel:(NSString *)channel + completion:(BUGeckoPreloadCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUGeckoManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUGeckoManager.h.meta new file mode 100644 index 00000000..9d36d840 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUGeckoManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e6ee1e1c570fa4a40a1a526f52c5c330 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUImage.h new file mode 100755 index 00000000..c8cef12b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUImage.h @@ -0,0 +1,34 @@ +// +// BUImage.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import + +@interface BUImage : NSObject + +// image address URL +@property (nonatomic, copy) NSString *imageURL; + +// image key +@property (nonatomic, copy) NSString *image_key; + + +// image width +@property (nonatomic, assign) float width; + +// image height +@property (nonatomic, assign) float height; + +// stream ad image druation + +@property (nonatomic, assign) float duration; + +- (instancetype)initWithDictionary:(NSDictionary *)dic; + +- (NSDictionary *)dictionaryValue; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUImage.h.meta new file mode 100644 index 00000000..d4869111 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3819054d48827412a9f3b77e75356384 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMaterialMeta.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMaterialMeta.h new file mode 100755 index 00000000..91306b2f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMaterialMeta.h @@ -0,0 +1,109 @@ +// +// BUMaterialMeta.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import "BUDislikeWords.h" +#import "BUImage.h" +#import "BUPersonalizationPrompts.h" + +typedef NS_ENUM(NSInteger, BUInteractionType) { + BUInteractionTypeCustorm = 0, + BUInteractionTypeNO_INTERACTION = 1, // pure ad display + BUInteractionTypeURL = 2, // open the webpage using a browser + BUInteractionTypePage = 3, // open the webpage within the app + BUInteractionTypeDownload = 4, // download the app + BUInteractionTypePhone = 5, // make a call + BUInteractionTypeMessage = 6, // send messages + BUInteractionTypeEmail = 7, // send email + BUInteractionTypeVideoAdDetail = 8 // video ad details page +}; + +typedef NS_ENUM(NSInteger, BUFeedADMode) { + BUFeedADModeSmallImage = 2, + BUFeedADModeLargeImage = 3, + BUFeedADModeGroupImage = 4, + BUFeedVideoAdModeImage = 5, // video ad || rewarded video ad horizontal screen + BUFeedVideoAdModePortrait = 15, // rewarded video ad vertical screen + BUFeedADModeImagePortrait = 16, + BUFeedADModeSquareImage = 33, //SquareImage Currently it exists only in the oversea now. V3200 add + BUFeedADModeSquareVideo = 50, //SquareVideo Currently it exists only in the oversea now. V3200 add + BUFeedADModeUnionSplashVideo = 154, // Video splash, V3800 add + BUFeedADModeUnionVerticalImage = 173, // vertical picture +}; + +@interface BUMaterialMeta : NSObject + +/// interaction types supported by ads. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) BUInteractionType interactionType; + +/// material pictures. +@property (nonatomic, strong) NSArray *imageAry; + +/// ad logo icon. +@property (nonatomic, strong) BUImage *icon; + +/// ad headline. +@property (nonatomic, copy) NSString *AdTitle; + +/// ad description. +@property (nonatomic, copy) NSString *AdDescription; + +/// ad source. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, copy) NSString *source; + +/// text displayed on the creative button. +@property (nonatomic, copy) NSString *buttonText; + +/// display format of the in-feed ad, other ads ignores it. +@property (nonatomic, assign) BUFeedADMode imageMode; + +/// Star rating, range from 1 to 5. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger score; + +/// Number of comments. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger commentNum; + +/// ad installation package size, unit byte. +@property (nonatomic, assign) NSInteger appSize; + +/// video duration +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, assign) NSInteger videoDuration; + +/// video url, will be empty string if allowCustomVideoPlayer is NO, contact BD to add to allow list. +@property (nonatomic, copy, readonly) NSString *videoUrl; + +/// be allowed to play video ad via custome player, contact BD to add to allow list. +@property (nonatomic, assign, readonly) BOOL allowCustomVideoPlayer; + +/// video resolution width +@property (nonatomic, assign, readonly) NSInteger videoResolutionWidth; + +/// video resolution height +@property (nonatomic, assign, readonly) NSInteger videoResolutionHeight; + +/// the reason why dislike the ad. +@property (nonatomic, copy) NSArray *filterWords; + +/// compliance statement of personalized advertising push +@property (nonatomic, strong) BUPersonalizationPrompts *personalPrompts; + +/// media configuration parameters. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, copy) NSDictionary *mediaExt; + +/// adx name, if it exists, it is recommended to display this text +@property (nonatomic, copy) NSString *ADXName; + +- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError * __autoreleasing *)error; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMaterialMeta.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMaterialMeta.h.meta new file mode 100644 index 00000000..9c0794a5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMaterialMeta.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6c62cde1c41b4438bbee430105a9b0fc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMopubAdMarkUpDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMopubAdMarkUpDelegate.h new file mode 100755 index 00000000..53b3177d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMopubAdMarkUpDelegate.h @@ -0,0 +1,50 @@ +// +// BUMopubAdMarkUpDelegate.h +// BUAdSDK +// +// Created by Siwant on 2020/4/24. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class BUAdSlot; + +@protocol BUMopubAdMarkUpDelegate +@optional + +/** Mopub AdMarkUp + */ +- (void)setAdMarkup:(NSString *)adm; +- (void)setMopubAdMarkUp:(NSString *)adm DEPRECATED_MSG_ATTRIBUTE("please use -setAdMarkup: instead"); + +/// Bidding Token. Now for MSDK in domestic, used for every ad type. +- (NSString *)biddingToken; + +/** Mopub Adaptor get AD type from rit + * @return @{@"adSlotType": @(1), @"renderType": @(1)} + * adSlotType refer from BUAdSlotAdType in "BUAdSlot.h" + * showType: @"1" express AD @"2" native AD + */ ++ (nullable NSDictionary *)AdTypeWithRit:(NSString *)rit error:(NSError **)error; + +/** Mopub bidding Adaptor get AD type from adm + * @return @{@"adSlotType": @(1), @"renderType": @(1)} + * adSlotType refer from BUAdSlotAdType in "BUAdSlot.h" + * showType: @"1" express AD @"2" native AD + */ ++ (NSDictionary *)AdTypeWithAdMarkUp:(NSString *)adm; + + +/// Mopub Bidding Token ++ (NSString *)mopubBiddingToken DEPRECATED_MSG_ATTRIBUTE("please use +getBiddingToken: instead"); + +/// overseas bidding token +/// @param slotID the unique identifier of ad. ++ (NSString *)getBiddingToken:(nullable NSString *)slotID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMopubAdMarkUpDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMopubAdMarkUpDelegate.h.meta new file mode 100644 index 00000000..1b0a465c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUMopubAdMarkUpDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2fb6580c2035a425da79f0a49151994e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAd.h new file mode 100755 index 00000000..e35ae8cc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAd.h @@ -0,0 +1,144 @@ +// +// BUNativeAd.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUVideoAdView.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + + +@protocol BUNativeAdDelegate; + +NS_ASSUME_NONNULL_BEGIN + + +/** + Abstract ad slot containing ad data loading, response callbacks. + BUNativeAd currently supports native ads. + Native ads include in-feed ad (multiple ads, image + video), general native ad (single ad, image + video), native banner ad, and native interstitial ad. + Support interstitial ad, banner ad, splash ad, rewarded video ad, full-screen video ad. + */ +@interface BUNativeAd : NSObject + +/** + Ad slot description. + */ +@property (nonatomic, strong, readwrite, nullable) BUAdSlot *adslot; + +/** + Ad slot material. + */ +@property (atomic, strong, readonly, nullable) BUMaterialMeta *data; + +/** + The delegate for receiving state change messages. + The delegate is not limited to viewcontroller. + The delegate can be set to any object which conforming to . + */ +@property (nonatomic, weak, readwrite, nullable) id delegate; + +/** + required. + Root view controller for handling ad actions. + Action method includes is 'presentViewController'. + */ +@property (nonatomic, weak, readwrite) UIViewController *rootViewController; + +/** + Initializes native ad with ad slot. + @param slot : ad slot description. + including slotID,adType,adPosition,etc. + @return BUNativeAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Register clickable views in native ads view. + Interaction types can be configured on TikTok Audience Network. + Interaction types include view video ad details page, make a call, send email, download the app, open the webpage using a browser,open the webpage within the app, etc. + @param containerView : required. + container view of the native ad. + @param clickableViews : optional. + Array of views that are clickable. + */ +- (void)registerContainer:(__kindof UIView *)containerView + withClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews; + +/** + Unregister ad view from the native ad. + */ +- (void)unregisterView; + +/** + Actively request nativeAd datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + + +@protocol BUNativeAdDelegate + +@optional + +/** + This method is called when native ad material loaded successfully. This method will be deprecated. Use nativeAdDidLoad:view: instead + */ +- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd; + + +/** + This method is called when native ad material loaded successfully. + */ +- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd view:(UIView *_Nullable)view; + +/** + This method is called when native ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeAd:(BUNativeAd *)nativeAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when native ad slot has been shown. + */ +- (void)nativeAdDidBecomeVisible:(BUNativeAd *)nativeAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeAdDidCloseOtherController:(BUNativeAd *)nativeAd interactionType:(BUInteractionType)interactionType; + +/** + This method is called when native ad is clicked. + */ +- (void)nativeAdDidClick:(BUNativeAd *)nativeAd withView:(UIView *_Nullable)view; + +/** + This method is called when the user clicked dislike reasons. + Only used for dislikeButton in BUNativeAdRelatedView.h + @param filterWords : reasons for dislike + */ +- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd dislikeWithReason:(NSArray *_Nullable)filterWords; + +/** + This method is called when the Ad view container is forced to be removed. + @param nativeAd : Ad material + @param adContainerView : Ad view container + */ +- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd adContainerViewDidRemoved:(UIView *)adContainerView; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAd.h.meta new file mode 100644 index 00000000..5e13f8ef --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 07917ce7e76b041e9804e15953dcac9f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdRelatedView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdRelatedView.h new file mode 100755 index 00000000..ca0bd02d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdRelatedView.h @@ -0,0 +1,54 @@ +// +// BUNativeAdRelatedView.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUVideoAdView.h" +#import "BUNativeAd.h" +#import "BUVideoAdReportor.h" +#import "BUDislikeReportor.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BUNativeAdRelatedView : NSObject + +/** + Need to actively add to the view in order to deal with the feedback and improve the accuracy of ad. + */ +@property (nonatomic, strong, readonly, nullable) UIButton *dislikeButton; + +///Promotion label.Need to actively add to the view. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, strong, readonly, nullable) UILabel *adLabel; + +///Ad logo.Need to actively add to the view. +/// Please note: This API does not take effect on Pangle global, only use it when you have traffic from mainland China. +@property (nonatomic, strong, readonly, nullable) UIImageView *logoImageView; +/** + Ad logo + Promotion label.Need to actively add to the view. + */ +@property (nonatomic, strong, readonly, nullable) UIImageView *logoADImageView; + +/** + Video ad view. Need to actively add to the view. Can not coexist with videoAdReportor. + */ +@property (nonatomic, strong, readonly, nullable) BUVideoAdView *videoAdView; + +/** +Video ad Reportor. Can not coexist with videoAdView. +*/ +@property (nonatomic, strong, readonly, nullable) id videoAdReportor; + +/** + Refresh the data every time you get new datas in order to show ad perfectly. + */ +- (void)refreshData:(BUNativeAd *)nativeAd; + +//@property (nonatomic, copy) BOOL(^expectUseCustomVideoPlayer)(BOOL isSupported, NSString *videoUrl); + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdRelatedView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdRelatedView.h.meta new file mode 100644 index 00000000..47ef2954 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdRelatedView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2bf6191d9ed2346f9bd952a7896448e7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdsManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdsManager.h new file mode 100755 index 00000000..b35308a3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdsManager.h @@ -0,0 +1,54 @@ +// +// BUNativeAdsManager.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +/** + BUNativeAdsManager : for multiple requests at the same time. + */ + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUNativeAd.h" +#import "BUNativeExpressAdViewDelegate.h" + +@protocol BUNativeAdsManagerDelegate; + +NS_ASSUME_NONNULL_BEGIN +/// Bunativeadsmanager class can request multiple ad data per time. +@interface BUNativeAdsManager : NSObject + +@property (nonatomic, strong, nullable) BUAdSlot *adslot; +@property (nonatomic, strong, nullable) NSArray *data; +/// The delegate for receiving state change messages such as requests succeeding/failing. +/// The delegate can be set to any object which conforming to . +@property (nonatomic, weak, nullable) id delegate; +/// The delegate for receiving messages when is render template +@property (nonatomic, weak, nullable) id nativeExpressAdViewDelegate; +/// Valid only in native Feed +@property (nonatomic, assign, readwrite) CGSize adSize; +- (instancetype)initWithSlot:(BUAdSlot * _Nullable) slot; + +/** + It is recommended to request no more than 3 ads. + The maximum is 10. + */ +- (void)loadAdDataWithCount:(NSInteger)count; + +@end + +@protocol BUNativeAdsManagerDelegate + +@optional + +- (void)nativeAdsManagerSuccessToLoad:(BUNativeAdsManager *)adsManager nativeAds:(NSArray *_Nullable)nativeAdDataArray; + +- (void)nativeAdsManager:(BUNativeAdsManager *)adsManager didFailWithError:(NSError *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdsManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdsManager.h.meta new file mode 100644 index 00000000..9deda527 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeAdsManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9dc2e08e2492044fd905c1295c694d8e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdManager.h new file mode 100755 index 00000000..e8186013 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdManager.h @@ -0,0 +1,52 @@ +// +// BUNativeExpressAdManager.h +// BUAdSDK +// +// Created by bytedance on 2019/1/20. +// Copyright © 2019年 bytedance. All rights reserved. +// + +#import +#import +#import "BUAdSlot.h" +#import "BUMaterialMeta.h" +#import "BUNativeExpressAdView.h" +#import "BUDislikeWords.h" +#import "BUPlayerPublicDefine.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUNativeExpressAdViewDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressAdManager : NSObject + +@property (nonatomic, strong, nullable) BUAdSlot *adslot; + +@property (nonatomic, assign, readwrite) CGSize adSize; + +/** + The delegate for receiving state change messages from a BUNativeExpressAdManager + */ +@property (nonatomic, weak, nullable) id delegate; + + +/** + @param size expected ad view size,when size.height is zero, acture height will match size.width + */ +- (instancetype)initWithSlot:(BUAdSlot * _Nullable)slot adSize:(CGSize)size; + +/** + The number of ads requested,The maximum is 3 + */ +- (void)loadAdDataWithCount:(NSInteger)count; +@end + +@interface BUNativeExpressAdManager (Deprecated) +- (void)loadAd:(NSInteger)count __attribute__((deprecated("Use loadAdDataWithCount: instead."))); +@end + + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdManager.h.meta new file mode 100644 index 00000000..d1611692 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 829ab4a2bb6604cccbfeb03195396279 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdView.h new file mode 100755 index 00000000..e26a9615 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdView.h @@ -0,0 +1,49 @@ +// +// BUNativeExpressAdView.h +// BUAdSDK +// +// Created by bytedance on 2019/1/20. +// Copyright © 2019年 bytedance. All rights reserved. +// + +#import +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + + +@interface BUNativeExpressAdView : UIView +/** + * Whether render is ready + */ +@property (nonatomic, assign, readonly) BOOL isReady; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/// video duration. +@property (nonatomic,assign, readonly) NSInteger videoDuration; + +/// Get the already played time. +@property (nonatomic,assign, readonly) CGFloat currentPlayedTime; + +/* + required. + Root view controller for handling ad actions. + */ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** + required + */ +- (void)render; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdView.h.meta new file mode 100644 index 00000000..801afe66 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 20d9e445a8bca4c4fbbc88f887f0c09b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdViewDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdViewDelegate.h new file mode 100755 index 00000000..748b9b86 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdViewDelegate.h @@ -0,0 +1,89 @@ +// +// BUNativeExpressAdViewDelegate.h +// BUAdSDK +// +// Created by Rush.D.Xzj on 2020/10/12. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" + +NS_ASSUME_NONNULL_BEGIN + + +@class BUNativeExpressAdManager; +@class BUNativeExpressAdView; +@class BUDislikeWords; + +@protocol BUNativeExpressAdViewDelegate + +@optional +/** + * Sent when views successfully load ad + */ +- (void)nativeExpressAdSuccessToLoad:(BUNativeExpressAdManager *)nativeExpressAdManager views:(NSArray<__kindof BUNativeExpressAdView *> *)views; + +/** + * Sent when views fail to load ad + */ +- (void)nativeExpressAdFailToLoad:(BUNativeExpressAdManager *)nativeExpressAdManager error:(NSError *_Nullable)error; + +/** + * This method is called when rendering a nativeExpressAdView successed, and nativeExpressAdView.size.height has been updated + */ +- (void)nativeExpressAdViewRenderSuccess:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + * This method is called when a nativeExpressAdView failed to render + */ +- (void)nativeExpressAdViewRenderFail:(BUNativeExpressAdView *)nativeExpressAdView error:(NSError *_Nullable)error; + +/** + * Sent when an ad view is about to present modal content + */ +- (void)nativeExpressAdViewWillShow:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + * Sent when an ad view is clicked + */ +- (void)nativeExpressAdViewDidClick:(BUNativeExpressAdView *)nativeExpressAdView; + +/** +Sent when a playerw playback status changed. +@param playerState : player state after changed +*/ +- (void)nativeExpressAdView:(BUNativeExpressAdView *)nativeExpressAdView stateDidChanged:(BUPlayerPlayState)playerState; + +/** + * Sent when a player finished + * @param error : error of player + */ +- (void)nativeExpressAdViewPlayerDidPlayFinish:(BUNativeExpressAdView *)nativeExpressAdView error:(NSError *)error; + +/** + * Sent when a user clicked dislike reasons. + * @param filterWords : the array of reasons why the user dislikes the ad + */ +- (void)nativeExpressAdView:(BUNativeExpressAdView *)nativeExpressAdView dislikeWithReason:(NSArray *)filterWords; + +/** + * Sent after an ad view is clicked, a ad landscape view will present modal content + */ +- (void)nativeExpressAdViewWillPresentScreen:(BUNativeExpressAdView *)nativeExpressAdView; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressAdViewDidCloseOtherController:(BUNativeExpressAdView *)nativeExpressAdView interactionType:(BUInteractionType)interactionType; + + +/** + This method is called when the Ad view container is forced to be removed. + @param nativeExpressAdView : Ad view container + */ +- (void)nativeExpressAdViewDidRemoved:(BUNativeExpressAdView *)nativeExpressAdView; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdViewDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdViewDelegate.h.meta new file mode 100644 index 00000000..deadba4b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressAdViewDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5b1f4abe98ced4755a99100425baa28f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressBannerView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressBannerView.h new file mode 100755 index 00000000..501f779d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressBannerView.h @@ -0,0 +1,156 @@ +// +// BUNativeExpressBannerView.h +// BUAdSDK +// +// Created by xxx on 2019/5/17. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class BUNativeExpressBannerView; +@class BUDislikeWords; +@class BUSize; + +@protocol BUNativeExpressBannerViewDelegate + +@optional +/** + This method is called when bannerAdView ad slot loaded successfully. + @param bannerAdView : view for bannerAdView + */ +- (void)nativeExpressBannerAdViewDidLoad:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when bannerAdView ad slot failed to load. + @param error : the reason of error + */ +- (void)nativeExpressBannerAdView:(BUNativeExpressBannerView *)bannerAdView didLoadFailWithError:(NSError *_Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpressBannerAdViewRenderSuccess:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressBannerAdViewRenderFail:(BUNativeExpressBannerView *)bannerAdView error:(NSError * __nullable)error; + +/** + This method is called when bannerAdView ad slot showed new ad. + */ +- (void)nativeExpressBannerAdViewWillBecomVisible:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when bannerAdView is clicked. + */ +- (void)nativeExpressBannerAdViewDidClick:(BUNativeExpressBannerView *)bannerAdView; + +/** + This method is called when the user clicked dislike button and chose dislike reasons. + @param filterwords : the array of reasons for dislike. + */ +- (void)nativeExpressBannerAdView:(BUNativeExpressBannerView *)bannerAdView dislikeWithReason:(NSArray *_Nullable)filterwords; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressBannerAdViewDidCloseOtherController:(BUNativeExpressBannerView *)bannerAdView interactionType:(BUInteractionType)interactionType; + +/** + This method is called when the Ad view container is forced to be removed. + @param bannerAdView : Express Banner Ad view container + */ +- (void)nativeExpressBannerAdViewDidRemoved:(BUNativeExpressBannerView *)bannerAdView; +@end + +@interface BUNativeExpressBannerView : UIView + +@property (nonatomic, weak, nullable) id delegate; + +/** + The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + */ +@property (nonatomic, assign, readonly) NSInteger interval; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes express banner ad. + @param slotID The unique identifier of banner ad. + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize; + +/** + Initializes carousel express banner ad. + @param slotID The unique identifier of banner ad. + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @param interval The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + interval:(NSInteger)interval; + +/** + Initializes express banner ad. + @param slot A object, through which you can pass in the banner unique identifier, ad type, and so on + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize; + +/** + Initializes carousel express banner ad. + @param slot A object, through which you can pass in the banner unique identifier, ad type, and so on + @param rootViewController The root controller where the banner is located. + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @param interval The carousel interval, in seconds, is set in the range of 30~120s, and is passed during initialization. If it does not meet the requirements, it will not be in carousel ad. + @return BUNativeExpressBannerView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + interval:(NSInteger)interval; + +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + +@interface BUNativeExpressBannerView (Deprecated) +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + IsSupportDeepLink:(BOOL)isSupportDeepLink DEPRECATED_MSG_ATTRIBUTE("Use initWithSlotID:rootViewController:adSize: instead."); +- (instancetype)initWithSlotID:(NSString *)slotID + rootViewController:(UIViewController *)rootViewController + adSize:(CGSize)adsize + IsSupportDeepLink:(BOOL)isSupportDeepLink + interval:(NSInteger)interval DEPRECATED_MSG_ATTRIBUTE("Use initWithSlotID:rootViewController:adSize:interval: instead."); +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressBannerView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressBannerView.h.meta new file mode 100644 index 00000000..47d33bdf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressBannerView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7a764bfa0b9294ed48657c83023df10d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressFullscreenVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressFullscreenVideoAd.h new file mode 100755 index 00000000..1422825c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressFullscreenVideoAd.h @@ -0,0 +1,176 @@ +// +// BUNativeExpressFullscreenVideoAd.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressFullscreenVideoAd; + +//define the type of native express video ad +typedef NS_ENUM(NSUInteger, BUNativeExpressFullScreenAdType) { + BUNativeExpressFullScreenAdTypeEndcard = 0, // video + endcard + BUNativeExpressFullScreenAdTypeVideoPlayable = 1, // video + playable + BUNativeExpressFullScreenAdTypePurePlayable = 2 // pure playable +}; + +NS_ASSUME_NONNULL_BEGIN +@protocol BUNativeExpressFullscreenVideoAdDelegate + +@optional +/** + This method is called when video ad material loaded successfully. + */ +- (void)nativeExpressFullscreenVideoAdDidLoad:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAd:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + It will happen when ad is show. + */ +- (void)nativeExpressFullscreenVideoAdViewRenderSuccess:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAdViewRenderFail:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + For a better user experience, it is recommended to display video ads at this time. + And you can call [BUNativeExpressFullscreenVideoAd showAdFromRootViewController:]. + */ +- (void)nativeExpressFullscreenVideoAdDidDownLoadVideo:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)nativeExpressFullscreenVideoAdWillVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)nativeExpressFullscreenVideoAdDidVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)nativeExpressFullscreenVideoAdDidClick:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when the user clicked skip button. + */ +- (void)nativeExpressFullscreenVideoAdDidClickSkip:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)nativeExpressFullscreenVideoAdWillClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)nativeExpressFullscreenVideoAdDidClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)nativeExpressFullscreenVideoAdDidPlayFinish:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; + +/** +This method is used to get the type of nativeExpressFullScreenVideo ad + */ +- (void)nativeExpressFullscreenVideoAdCallback:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd withType:(BUNativeExpressFullScreenAdType) nativeExpressVideoAdType; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressFullscreenVideoAdDidCloseOtherController:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressFullscreenVideoAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use nativeExpressFullscreenVideoAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Initializes video ad with slot id. + @param slotID : the unique identifier of video ad. + @return BUFullscreenVideoAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID; + +/** + Initializes video ad with slot. + @param slot : A object, through which you can pass in the fullscreen unique identifier, ad type, and so on. + @return BUNativeExpressFullscreenVideoAd +*/ +- (instancetype)initWithSlot:(BUAdSlot *)slot; + +/** + Load video ad datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param sceneDescirbe : optional. Identifies a custom description of the presentation scenario. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressFullscreenVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressFullscreenVideoAd.h.meta new file mode 100644 index 00000000..7cd6d7e2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressFullscreenVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9194efff350e2445d92715f5f64eca31 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressInterstitialAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressInterstitialAd.h new file mode 100755 index 00000000..400c841f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressInterstitialAd.h @@ -0,0 +1,117 @@ +// +// BUNativeExpressInterstitialAd.h +// BUAdSDK +// +// Created by xxx on 2019/5/16. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class BUSize; +@class BUNativeExpressInterstitialAd; + +@protocol BUNativeExpresInterstitialAdDelegate + +@optional +/** + This method is called when interstitial ad material loaded successfully. + */ +- (void)nativeExpresInterstitialAdDidLoad:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad material failed to load. + @param error : the reason of error + */ +- (void)nativeExpresInterstitialAd:(BUNativeExpressInterstitialAd *)interstitialAd didFailWithError:(NSError * __nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpresInterstitialAdRenderSuccess:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpresInterstitialAdRenderFail:(BUNativeExpressInterstitialAd *)interstitialAd error:(NSError * __nullable)error; + +/** + This method is called when interstitial ad slot will be showing. + */ +- (void)nativeExpresInterstitialAdWillVisible:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is clicked. + */ +- (void)nativeExpresInterstitialAdDidClick:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is about to close. + */ +- (void)nativeExpresInterstitialAdWillClose:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when interstitial ad is closed. + */ +- (void)nativeExpresInterstitialAdDidClose:(BUNativeExpressInterstitialAd *)interstitialAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpresInterstitialAdDidCloseOtherController:(BUNativeExpressInterstitialAd *)interstitialAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressInterstitialAd : NSObject + +@property (nonatomic, weak, nullable) id delegate; + +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes interstitial ad. + @param slotID : The unique identifier of interstitial ad. + @param adsize : custom size of ad view. + @return BUNativeExpressInterstitialAd + */ +- (instancetype)initWithSlotID:(NSString *)slotID adSize:(CGSize)adsize; + +/** + Initializes express intersitial ad. + @param slot A object, through which you can pass in the interstitial unique identifier, ad type, and so on + @param adsize Customize the size of the view. Please make sure that the width and height passed in are available. + @return BUNativeExpressInterstitialAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot adSize:(CGSize)adsize; + +/** + Load interstitial ad datas. + */ +- (void)loadAdData; + +/** + Display interstitial ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressInterstitialAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressInterstitialAd.h.meta new file mode 100644 index 00000000..a9b848de --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressInterstitialAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 758f26327673546f1b56d8470ddfe6ce +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressRewardedVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressRewardedVideoAd.h new file mode 100755 index 00000000..8bde857a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressRewardedVideoAd.h @@ -0,0 +1,197 @@ +// +// BUNativeExpressRewardedVideoAd.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUAdSDKDefines.h" +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressRewardedVideoAd; +@class BURewardedVideoModel; + +NS_ASSUME_NONNULL_BEGIN + +/// define the type of native express rewarded video Ad +typedef NS_ENUM(NSUInteger, BUNativeExpressRewardedVideoAdType) { + BUNativeExpressRewardedVideoAdTypeEndcard = 0, // video + endcard + BUNativeExpressRewardedVideoAdTypeVideoPlayable = 1, // video + playable + BUNativeExpressRewardedVideoAdTypePurePlayable = 2, // pure playable +}; + +@protocol BUNativeExpressRewardedVideoAdDelegate + +@optional +/** + This method is called when video ad material loaded successfully. + */ +- (void)nativeExpressRewardedVideoAdDidLoad:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAd:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; +/** + this methods is to tell delegate the type of native express rewarded video Ad + */ +- (void)nativeExpressRewardedVideoAdCallback:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd withType:(BUNativeExpressRewardedVideoAdType)nativeExpressVideoType; + +/** + This method is called when cached successfully. + For a better user experience, it is recommended to display video ads at this time. + And you can call [BUNativeExpressRewardedVideoAd showAdFromRootViewController:]. + */ +- (void)nativeExpressRewardedVideoAdDidDownLoadVideo:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when rendering a nativeExpressAdView successed. + It will happen when ad is show. + */ +- (void)nativeExpressRewardedVideoAdViewRenderSuccess:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAdViewRenderFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when video ad slot will be showing. + */ +- (void)nativeExpressRewardedVideoAdWillVisible:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)nativeExpressRewardedVideoAdDidVisible:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)nativeExpressRewardedVideoAdWillClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)nativeExpressRewardedVideoAdDidClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)nativeExpressRewardedVideoAdDidClick:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when the user clicked skip button. + */ +- (void)nativeExpressRewardedVideoAdDidClickSkip:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)nativeExpressRewardedVideoAdDidPlayFinish:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + Server verification which is requested asynchronously is succeeded. now include two v erify methods: + 1. C2C need server verify 2. S2S don't need server verify + @param verify :return YES when return value is 2000. + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidSucceed:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify; + +/** + Server verification which is requested asynchronously is failed. + Return value is not 2000. + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd __attribute__((deprecated("Use nativeExpressRewardedVideoAdServerRewardDidFail: error: instead."))); + +/** + Server verification which is requested asynchronously is failed. + @param rewardedVideoAd express rewardVideo Ad + @param error request error info + */ +- (void)nativeExpressRewardedVideoAdServerRewardDidFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressRewardedVideoAdDidCloseOtherController:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd interactionType:(BUInteractionType)interactionType; + +@end + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressRewardedVideoAd : NSObject +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, weak, nullable) id rewardPlayAgainInteractionDelegate; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. +*/ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning:Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp; + +/** + Whether material is effective. + Setted to YES when data is not empty and has not been displayed. + Repeated display is not billed. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use nativeExpressRewardedVideoAdDidLoad: instead."))); + +- (instancetype)initWithSlotID:(NSString *)slotID rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Initializes Rewarded video ad with ad slot and frame. + @param slot A object, through which you can pass in the reward unique identifier, ad type, and so on. + @param model Rewarded video model. + @return BUNativeExpressRewardedVideoAd +*/ +- (instancetype)initWithSlot:(BUAdSlot *)slot rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +- (void)loadAdData; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; + +/** + If ritSceneType is custom, you need to pass in the values for sceneDescirbe. + @param ritSceneType : optional. Identifies a custom description of the presentation scenario. + @param sceneDescirbe : optional. Identify the scene of presentation. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritScene:(BURitSceneType)ritSceneType ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressRewardedVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressRewardedVideoAd.h.meta new file mode 100644 index 00000000..256b6eec --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressRewardedVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 87c7efdf932ae4cde9017955c3be71eb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressSplashView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressSplashView.h new file mode 100755 index 00000000..cf7b6c6b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressSplashView.h @@ -0,0 +1,143 @@ +// +// BUNativeExpressSplashView.h +// BUAdSDK +// +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +@class BUNativeExpressSplashView; + +NS_ASSUME_NONNULL_BEGIN +@protocol BUNativeExpressSplashViewDelegate +/** + This method is called when splash ad material loaded successfully. + */ +- (void)nativeExpressSplashViewDidLoad:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when splash ad material failed to load. + @param error : the reason of error + */ +- (void)nativeExpressSplashView:(BUNativeExpressSplashView *)splashAdView didFailWithError:(NSError * _Nullable)error; + +/** + This method is called when rendering a nativeExpressAdView successed. + */ +- (void)nativeExpressSplashViewRenderSuccess:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when a nativeExpressAdView failed to render. + @param error : the reason of error + */ +- (void)nativeExpressSplashViewRenderFail:(BUNativeExpressSplashView *)splashAdView error:(NSError * __nullable)error; + +/** + This method is called when nativeExpressSplashAdView will be showing. + */ +- (void)nativeExpressSplashViewWillVisible:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView is clicked. + */ +- (void)nativeExpressSplashViewDidClick:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView's skip button is clicked. + */ +- (void)nativeExpressSplashViewDidClickSkip:(BUNativeExpressSplashView *)splashAdView; +/** + This method is called when nativeExpressSplashAdView countdown equals to zero + */ +- (void)nativeExpressSplashViewCountdownToZero:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when nativeExpressSplashAdView closed. + */ +- (void)nativeExpressSplashViewDidClose:(BUNativeExpressSplashView *)splashAdView; + +/** + This method is called when when video ad play completed or an error occurred. + */ +- (void)nativeExpressSplashViewFinishPlayDidPlayFinish:(BUNativeExpressSplashView *)splashView didFailWithError:(NSError *)error; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeExpressSplashViewDidCloseOtherController:(BUNativeExpressSplashView *)splashView interactionType:(BUInteractionType)interactionType; + +@end + + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUNativeExpressSplashView : UIView +/** + The delegate for receiving state change messages. + */ +@property (nonatomic, weak, nullable) id delegate; + +/** + Maximum allowable load timeout, default 3s, unit s. + */ +@property (nonatomic, assign) NSTimeInterval tolerateTimeout; + +/** + Whether hide skip button, default NO. + If you hide the skip button, you need to customize the countdown. + */ +@property (nonatomic, assign) BOOL hideSkipButton; + +/** + Whether the splash ad data has been loaded. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Initializes native express splash ad with slot id and frame. + @param slotID : the unique identifier of splash ad + @param adSize : the adSize of native express splashAd view. It is recommended for the mobile phone screen. + @param rootViewController : the root controller for present splash. + @return BUNativeExpressSplashView + */ +- (instancetype)initWithSlotID:(NSString *)slotID adSize:(CGSize)adSize rootViewController:(UIViewController *)rootViewController; + +/** + Initializes Express Splash video ad with ad slot, adSize and rootViewController. + @param slot A object, through which you can pass in the splash unique identifier, ad type, and so on. + @param adSize the adSize of native express splashAd view. It is recommended for the mobile phone screen. + @param rootViewController the root controller for present splash. + @return BUNativeExpressSplashView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot adSize:(CGSize)adSize rootViewController:(UIViewController *)rootViewController; + + +/** + Load splash ad datas. + Start the countdown(@tolerateTimeout) as soon as you request datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Remove splash view. + Stop the countdown as soon as you call this method. + 移除开屏视图 + 一旦调用这个方法,倒计时将自动停止 + */ +- (void)removeSplashView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressSplashView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressSplashView.h.meta new file mode 100644 index 00000000..e4ff590f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUNativeExpressSplashView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a1a10d85961664001ada8c54661598dc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPersonalizationPrompts.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPersonalizationPrompts.h new file mode 100755 index 00000000..52b38818 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPersonalizationPrompts.h @@ -0,0 +1,24 @@ +// +// BUPersonalizationPrompts.h +// BUAdSDK +// +// Created by bytedance on 2020/11/10. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + + +@interface BUPersonalizationPrompts : NSObject +/// personalization prompts's name +@property (nonatomic, copy) NSString *personalizationName; +/// personalization prompts's url +@property (nonatomic, copy) NSString *personalizationUrl; +/// personalization prompts valid or not +- (BOOL)validPersonalPrompts; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPersonalizationPrompts.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPersonalizationPrompts.h.meta new file mode 100644 index 00000000..e2a97e66 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPersonalizationPrompts.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7343ecc0d6667493ab93239081b8815e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPlayerPublicDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPlayerPublicDefine.h new file mode 100755 index 00000000..dfd13772 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPlayerPublicDefine.h @@ -0,0 +1,20 @@ +// +// BUPlayerPublicDefine.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#ifndef BUPlayerPublicDefine_h +#define BUPlayerPublicDefine_h + +typedef NS_ENUM(NSInteger, BUPlayerPlayState) { + BUPlayerStateFailed = 0, + BUPlayerStateBuffering = 1, + BUPlayerStatePlaying = 2, + BUPlayerStateStopped = 3, + BUPlayerStatePause = 4, + BUPlayerStateDefalt = 5 +}; + +#endif /* BUPlayerPublicDefine_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPlayerPublicDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPlayerPublicDefine.h.meta new file mode 100644 index 00000000..03ca22f6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUPlayerPublicDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1f883b7fc455f4ad7b650c876eae2fa1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoAd.h new file mode 100755 index 00000000..cf53136c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoAd.h @@ -0,0 +1,176 @@ +// +// BURewardedVideoAd.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUAdSDKDefines.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +/// define the type of rewarded video ad +typedef NS_ENUM(NSUInteger, BURewardedVideoAdType) { + BURewardedVideoAdTypeEndcard = 0, // video + endcard + BURewardedVideoAdTypeVideoPlayable = 1, // video + playable + BURewardedVideoAdTypePurePlayable = 2 // pure playable +}; + +@protocol BURewardedVideoAdDelegate; +@class BURewardedVideoModel; + +@interface BURewardedVideoAd : NSObject +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, weak, nullable) id rewardPlayAgainInteractionDelegate; +/** + Whether material is effective. + Setted to YES when data is not empty and has not been displayed. + Repeated display is not billed. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use rewardedVideoAdDidLoad: instead."))); + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/** + Is materialMeta from the preload, default is NO + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload; + +/** + The expiration timestamp of materialMeta + @warning: Pure playable, the value of this field is accurate after the material is downloaded successfully. For others, the value of this field needs to be accurate after the video is downloaded successfully. + @Note : This field is only useful in China area. + */ +@property (nonatomic, assign,readonly) NSTimeInterval expireTimestamp; + +- (instancetype)initWithSlotID:(NSString *)slotID rewardedVideoModel:(BURewardedVideoModel *)model; + +/** + Initializes Rewarded video ad with ad slot and frame. + @param slot A object, through which you can pass in the reward unique identifier, ad type, and so on. + @param model Rewarded video model. + @return BURewardedVideoAd + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot rewardedVideoModel:(BURewardedVideoModel *)model; + + +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @return : whether it is successfully displayed. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; +/** + If ritSceneType is custom, you need to pass in the values for sceneDescirbe. + @param ritSceneType : optional. Identifies a custom description of the presentation scenario. + @param sceneDescirbe : optional. Identify the scene of presentation. + */ +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritScene:(BURitSceneType)ritSceneType ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; + +/** + Get the expiration timestamp of materialMeta + @warning: The value of this field is only accurate after the video is downloaded successfully or after the access is successfully obtained + @Note : This API is only useful in China area. + */ +- (NSTimeInterval)getExpireTimestamp; + +@end + +@protocol BURewardedVideoAdDelegate + +@optional + +/** + This method is called when video ad material loaded successfully. + */ +- (void)rewardedVideoAdDidLoad:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)rewardedVideoAd:(BURewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when video cached successfully. + */ +- (void)rewardedVideoAdVideoDidLoad:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot will be showing. + */ +- (void)rewardedVideoAdWillVisible:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)rewardedVideoAdDidVisible:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)rewardedVideoAdWillClose:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is closed. + */ +- (void)rewardedVideoAdDidClose:(BURewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)rewardedVideoAdDidClick:(BURewardedVideoAd *)rewardedVideoAd; + + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)rewardedVideoAdDidPlayFinish:(BURewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; + +/** + Server verification which is requested asynchronously is succeeded. + @param verify :return YES when return value is 2000. + */ +- (void)rewardedVideoAdServerRewardDidSucceed:(BURewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify; + +/** + Server verification which is requested asynchronously is failed. + Return value is not 2000. + */ +- (void)rewardedVideoAdServerRewardDidFail:(BURewardedVideoAd *)rewardedVideoAd __attribute__((deprecated("Use rewardedVideoAdServerRewardDidFail: error: instead."))); + +/** + Server verification which is requested asynchronously is failed. + @param rewardedVideoAd rewarded Video ad + @param error request error info + */ +- (void)rewardedVideoAdServerRewardDidFail:(BURewardedVideoAd *)rewardedVideoAd error:(NSError *)error; + +/** + This method is called when the user clicked skip button. + */ +- (void)rewardedVideoAdDidClickSkip:(BURewardedVideoAd *)rewardedVideoAd; + +/** + this method is used to get type of rewarded video Ad + */ +- (void)rewardedVideoAdCallback:(BURewardedVideoAd *)rewardedVideoAd withType:(BURewardedVideoAdType)rewardedVideoAdType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoAd.h.meta new file mode 100644 index 00000000..18693c53 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 793b84e2132314931bd420aa97e73a2b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoModel.h new file mode 100755 index 00000000..7b22ffa7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoModel.h @@ -0,0 +1,31 @@ +// +// BURewardedVideoModel.h +// BUAdSDK +// +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +@interface BURewardedVideoModel : NSObject + +/** + optional. + Third-party game user_id identity. + Mainly used in the reward issuance, it is the callback pass-through parameter from server-to-server. + It is the unique identifier of each user. + In the non-server callback mode, it will also be pass-through when the video is finished playing. + Only the string can be passed in this case, not nil. + */ +@property (nonatomic, copy) NSString *userId; + +//optional. serialized string. +@property (nonatomic, copy) NSString *extra; + +//reward name. It will assigned value when the ads back. +@property (nonatomic, copy) NSString *rewardName; + +//number of rewards. It will assigned value when the ads back. +@property (nonatomic, assign) NSInteger rewardAmount; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoModel.h.meta new file mode 100644 index 00000000..12d4dc3d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BURewardedVideoModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 47b9ce076ec624a9993c0cf59af5faef +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSize.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSize.h new file mode 100755 index 00000000..7bab35bc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSize.h @@ -0,0 +1,46 @@ +// +// BUSize.h +// BUAdSDK +// +// Copyright © 2017 bytedance. All rights reserved. +// + +#import + +/** + Get the view with the best results by using the predefined size in pixels. + When it comes to view display, it is recommended to use the same scaling. +*/ +typedef NS_ENUM(NSInteger, BUProposalSize) { + BUProposalSize_Banner600_90, + BUProposalSize_Banner640_100, + BUProposalSize_Banner600_150, + BUProposalSize_Banner600_260, + BUProposalSize_Banner600_286, + BUProposalSize_Banner600_300, + BUProposalSize_Banner690_388, + BUProposalSize_Banner600_400, + BUProposalSize_Banner600_500, + BUProposalSize_Feed228_150, + BUProposalSize_Feed690_388, + BUProposalSize_Interstitial600_400, + BUProposalSize_Interstitial600_600, + BUProposalSize_Interstitial600_900, + BUProposalSize_DrawFullScreen +}; + +@interface BUSize : NSObject + +// width unit pixel. +@property (nonatomic, assign) NSInteger width; + +// height unit pixel. +@property (nonatomic, assign) NSInteger height; + +- (NSDictionary *)dictionaryValue; + +@end + +@interface BUSize (BU_SizeFactory) ++ (instancetype)sizeBy:(BUProposalSize)proposalSize; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSize.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSize.h.meta new file mode 100644 index 00000000..947a304c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSize.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0c53ad375215e4cab82b2ce83f2c1425 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSlotABManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSlotABManager.h new file mode 100755 index 00000000..bf385bd0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSlotABManager.h @@ -0,0 +1,26 @@ +// +// BUSlotABManager.h +// BUAdSDK +// +// Created by shenqichen on 2021/11/2. +// + +#import +#import "BUAdSlot.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void (^BUSlotABFetchCompletion)(NSString * _Nullable slotId, BUAdSlotAdType slotType, NSError * _Nullable error); + +@interface BUSlotABManager : NSObject + ++ (instancetype)sharedInstance; + +/// Decide the slot to load ad for AB test. +/// @param codeGroupId unique id for slot ab test +/// @param completion callback in main thread, return the slot info to load ad +- (void)fetchSlotWithCodeGroupId:(NSInteger)codeGroupId completion:(BUSlotABFetchCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSlotABManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSlotABManager.h.meta new file mode 100644 index 00000000..28816c25 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSlotABManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb558cf83c80b4683ac0b7fc051b9437 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashAdView.h new file mode 100755 index 00000000..b8496b36 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashAdView.h @@ -0,0 +1,144 @@ +// +// BUSplashAdView.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" +#import "BUSplashZoomOutView.h" +#import "BUMopubAdMarkUpDelegate.h" +#import "BUAdClientBiddingProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUSplashAdDelegate; + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUSplashAdView : UIView +/** +The unique identifier of splash ad. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *slotID; + +/** + Maximum allowable load timeout, default 3s, unit s. + */ +@property (nonatomic, assign) NSTimeInterval tolerateTimeout; + + +/** + Whether hide skip button, default NO. + If you hide the skip button, you need to customize the countdown. + */ +@property (nonatomic, assign) BOOL hideSkipButton; + +/** + The delegate for receiving state change messages. + */ +@property (nonatomic, weak, nullable) id delegate; + +/* + required. + Root view controller for handling ad actions. + */ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** + Whether the splash ad data has been loaded. + */ +@property (nonatomic, getter=isAdValid, readonly) BOOL adValid; + +/// media configuration parameters. +@property (nonatomic, copy, readonly) NSDictionary *mediaExt; + +/// When it is a zoom out advertisement, it has value. +@property (nonatomic, strong, readonly, nullable) BUSplashZoomOutView *zoomOutView; + +/** + Initializes splash ad with slot id and frame. + Note: use in the main thread. + @param slotID : the unique identifier of splash ad + @param frame : the frame of splashAd view. It is recommended for the mobile phone screen. + @return BUSplashAdView + */ +- (instancetype)initWithSlotID:(NSString *)slotID frame:(CGRect)frame; + +/** + Initializes splash ad with ad slot and frame. + Note: use in the main thread. + @param slot A object, through which you can pass in the splash unique identifier、ad type, and so on + @param frame the frame of splashAd view. It is recommended for the mobile phone screen. + @return BUSplashAdView + */ +- (instancetype)initWithSlot:(BUAdSlot *)slot frame:(CGRect)frame; + +/** + Load splash ad datas. + Start the countdown(@tolerateTimeout) as soon as you request datas. + */ +- (void)loadAdData; + +/** + Ad slot material id + */ +- (NSString *)getAdCreativeToken; + +@end + + +@protocol BUSplashAdDelegate + +@optional +/** + This method is called when splash ad material loaded successfully. + */ +- (void)splashAdDidLoad:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad material failed to load. + @param error : the reason of error + */ +- (void)splashAd:(BUSplashAdView *)splashAd didFailWithError:(NSError * _Nullable)error; + +/** + This method is called when splash ad slot will be showing. + */ +- (void)splashAdWillVisible:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is clicked. + */ +- (void)splashAdDidClick:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is closed. + */ +- (void)splashAdDidClose:(BUSplashAdView *)splashAd; + +/** + This method is called when splash ad is about to close. + */ +- (void)splashAdWillClose:(BUSplashAdView *)splashAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)splashAdDidCloseOtherController:(BUSplashAdView *)splashAd interactionType:(BUInteractionType)interactionType; + +/** + This method is called when spalashAd skip button is clicked. + */ +- (void)splashAdDidClickSkip:(BUSplashAdView *)splashAd; + +/** + This method is called when spalashAd countdown equals to zero + */ +- (void)splashAdCountdownToZero:(BUSplashAdView *)splashAd; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashAdView.h.meta new file mode 100644 index 00000000..c6690989 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 60b6fb32dd20b4ddb81ffaaf987eedcc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashZoomOutView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashZoomOutView.h new file mode 100755 index 00000000..cfb0e2ee --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashZoomOutView.h @@ -0,0 +1,58 @@ +// +// BUSplashZoomOutView.h +// BUAdSDK +// +// Created by wangyanlin on 2020/6/17. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import "BUMaterialMeta.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUSplashZoomOutViewDelegate; + +/// Please note: This Class does not take effect on Pangle global, only use it when you have traffic from mainland China. +@interface BUSplashZoomOutView : UIView +/* +required. +Root view controller for handling ad actions. +*/ +@property (nonatomic, weak) UIViewController *rootViewController; + +/** +Suggested size for show. +*/ +@property (nonatomic, assign, readonly) CGSize showSize; + +/** +The delegate for receiving state change messages. +*/ +@property (nonatomic, weak) id delegate; +@end + +@protocol BUSplashZoomOutViewDelegate +/** + This method is called when splash ad is clicked. + */ +- (void)splashZoomOutViewAdDidClick:(BUSplashZoomOutView *)splashAd; + +/** + This method is called when splash ad is closed. + */ +- (void)splashZoomOutViewAdDidClose:(BUSplashZoomOutView *)splashAd; + +/** +This method is called when spalashAd automatically dimiss afte countdown equals to zero +*/ +- (void)splashZoomOutViewAdDidAutoDimiss:(BUSplashZoomOutView *)splashAd; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)splashZoomOutViewAdDidCloseOtherController:(BUSplashZoomOutView *)splashAd interactionType:(BUInteractionType)interactionType; + +@end +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashZoomOutView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashZoomOutView.h.meta new file mode 100644 index 00000000..210cb687 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUSplashZoomOutView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea68afa5b27bb4bf4ba3164d446c13e7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdDelegate.h new file mode 100755 index 00000000..ae6e26dd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdDelegate.h @@ -0,0 +1,58 @@ +// +// BUVideoAdDelegate.h +// BUAdSDK +// +// Created by 李盛 on 2018/8/3. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BURewardedVideoAd.h" + +/** + 用于插屏视频 激励视频 接口统一配置 + */ +@protocol BUVideoAdDelegate + +@property (nonatomic, assign) BOOL isRewardedVideo; + +/** + 视频点击即将关闭 + */ +- (void)videoAdWillClose; + +/** + 视频点击关闭 + */ +- (void)videoAdDidClose; + +/** + 视频/落地页点击 + */ +- (void)videoAdDidClick; + +/** + 视频播放完成 + */ +- (void)videoAdDidPlayFinishWithError:(NSError *)error; + + +@optional +@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel; +/** + 视频点击跳过 + */ +- (void)videoAdDidClickSkip; + +/** + 服务器校验奖励成功发放. 2800进行了修改,包含了两种方式. + 1.C2C 不走服务端验证,直接根据时间发放奖励 2.S2S 老逻辑需要服务端验证 + */ +- (void)videoAdServerRewardDidSucceedVerify:(BOOL)verify; + +/** + 服务器校验奖励接口请求失败 + */ +- (void)videoAdServerRewardDidFailWithError:(NSError *)error; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdDelegate.h.meta new file mode 100644 index 00000000..6d2b4520 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 50abc103f2cb549a08801ddb0c0584e4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdReportor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdReportor.h new file mode 100755 index 00000000..64c13c57 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdReportor.h @@ -0,0 +1,65 @@ +// +// BUVideoAdReportor.h +// BUAdSDK +// +// Created by bytedance on 2020/8/3. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// the reportor of video ad in feed, auto created by system if video ads in feed is customd. +@protocol BUVideoAdReportor + +@required + +/// report start play video +- (void)startPlayVideo; + +/// report did start play video +/// @param duration total duration of video, unit ms +- (void)didStartPlayVideoWithVideoDuration:(NSTimeInterval)duration; + +/// report did start play video auto, designed by developer +/// @param duration total duration of video, unit ms +- (void)didAutoStartPlayWithVideoDuration:(NSTimeInterval)duration; + +/// report did play to the end of video +- (void)didFinishVideo; + +/// report did pause video +/// @param duration duration of video that user watched +- (void)didPauseVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did resume video from paused +/// @param duration duration of video that user watched +- (void)didResumeVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did break video playing, maybe change another video or disappear from screen and so on +/// @param duration duration of video that user watched +- (void)didBreakVideoWithCurrentDuration:(NSTimeInterval)duration; + +/// report did click video view, auto implement, developers need not call this method +/// @param duration duration of video that user watched +- (void)didClickVideoViewWithCurrentDuration:(NSTimeInterval)duration; + +/// report sth. wrong with playing +/// @param error error +- (void)didPlayFailedWithError:(NSError *)error; + +/// report sth. wrong with play start +/// @param error error +- (void)didPlayStartFailedWithError:(NSError *)error; + +/// reprot did buffering video +- (void)didPlayBufferStart; + +/// reprot did buffering video ended +- (void)didPlayBufferEnd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdReportor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdReportor.h.meta new file mode 100644 index 00000000..622d7135 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdReportor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 570228d7ab06d40af9e4a757a9d65e79 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdView.h new file mode 100755 index 00000000..af216672 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdView.h @@ -0,0 +1,125 @@ +// +// BUVideoAdView.h +// BUAdSDK +// +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerPublicDefine.h" +#import "BUMaterialMeta.h" + +@class BUMaterialMeta; + +NS_ASSUME_NONNULL_BEGIN + +/** + Control TikTok Audience Network video player. + */ +@protocol BUVideoEngine + +/** + Get the already played time. + */ +- (CGFloat)currentPlayTime; + +/** + Set video play when you support CustomMode + **/ +- (void)play; + +/** + Set video pause when you support CustomMode +**/ +- (void)pause; + +@end + +@protocol BUVideoAdViewDelegate; + +@interface BUVideoAdView : UIView + +@property (nonatomic, weak, nullable) id delegate; +/** +required. Root view controller for handling ad actions. + **/ +@property (nonatomic, weak, readwrite) UIViewController *rootViewController; + +/** + Whether to allow pausing the video by clicking, default NO. Only for draw video(vertical video ads). + **/ +@property (nonatomic, assign) BOOL drawVideoClickEnable; + +/** +AdType information. +*/ +@property (nonatomic, assign) NSInteger AdType; + +/** + material information. + */ +@property (nonatomic, strong, readwrite, nullable) BUMaterialMeta *materialMeta; + +/** + Set your Video autoPlayMode when you support CustomMode + if support CustomMode , default autoplay Video + **/ +@property (nonatomic, assign) BOOL supportAutoPlay; + + +- (instancetype)initWithMaterial:(BUMaterialMeta *)materialMeta; + +/** + Support configuration for pause button. + @param playImg : the image of the button + @param playSize : the size of the button. Set as cgsizezero to use default icon size. + */ +- (void)playerPlayIncon:(UIImage *)playImg playInconSize:(CGSize)playSize; + +@end + +@protocol BUVideoAdViewDelegate + +@optional + +/** + This method is called when videoadview failed to play. + @param error : the reason of error + */ +- (void)videoAdView:(BUVideoAdView *)videoAdView didLoadFailWithError:(NSError *_Nullable)error; + +/** + This method is called when videoadview ready to play. + */ +- (void)playerReadyToPlay:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview playback status changed. + @param playerState : player state after changed + */ +- (void)videoAdView:(BUVideoAdView *)videoAdView stateDidChanged:(BUPlayerPlayState)playerState; + +/** + This method is called when videoadview end of play. + */ +- (void)playerDidPlayFinish:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview is clicked. + */ +- (void)videoAdViewDidClick:(BUVideoAdView *)videoAdView; + +/** + This method is called when videoadview's finish view is clicked. + */ +- (void)videoAdViewFinishViewDidClick:(BUVideoAdView *)videoAdView; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)videoAdViewDidCloseOtherController:(BUVideoAdView *)videoAdView interactionType:(BUInteractionType)interactionType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdView.h.meta new file mode 100644 index 00000000..683d827e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUAdSDK.framework/Versions/Current/Headers/BUVideoAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a3595df932b2b440fb821887afa30c05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework.meta new file mode 100644 index 00000000..60d987c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 2d38f2bf3c58a482cae8330a68b0f882 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/BUCNAuxiliary b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/BUCNAuxiliary new file mode 100755 index 00000000..55764164 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/BUCNAuxiliary differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/BUCNAuxiliary.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/BUCNAuxiliary.meta new file mode 100644 index 00000000..f014c633 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/BUCNAuxiliary.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 782f43031fce44720b3343bc33082d62 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions.meta new file mode 100644 index 00000000..0d03fa82 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bdf18a8f6d81f4c7993f9db875af43e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A.meta new file mode 100644 index 00000000..12876783 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1329beaebfc2541888a21a36d713fb4b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A/BUCNAuxiliary b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A/BUCNAuxiliary new file mode 100755 index 00000000..55764164 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A/BUCNAuxiliary differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A/BUCNAuxiliary.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A/BUCNAuxiliary.meta new file mode 100644 index 00000000..cd3c289f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/A/BUCNAuxiliary.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1b372e263d6b54688992b815bc4c543a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current.meta new file mode 100644 index 00000000..055046c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f09440d3b711f49848b6b796f83547e5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current/BUCNAuxiliary b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current/BUCNAuxiliary new file mode 100755 index 00000000..55764164 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current/BUCNAuxiliary differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current/BUCNAuxiliary.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current/BUCNAuxiliary.meta new file mode 100644 index 00000000..8c02fcbb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUCNAuxiliary.framework/Versions/Current/BUCNAuxiliary.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5132144c0e0154d01832fd5cdb354da1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework.meta new file mode 100644 index 00000000..6c2474b8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: e8c405e69ee494357bf444e9750fa2c4 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/BUFoundation b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/BUFoundation new file mode 100755 index 00000000..9d63b9e5 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/BUFoundation differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/BUFoundation.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/BUFoundation.meta new file mode 100644 index 00000000..c055aa38 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/BUFoundation.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f81544548386c4a20bccd218fe99900e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers.meta new file mode 100644 index 00000000..a127aa2a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 02f5997a499b24ec493ccd882a2f30af +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUAudioSessionHandler.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUAudioSessionHandler.h new file mode 100755 index 00000000..242a510a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUAudioSessionHandler.h @@ -0,0 +1,55 @@ +// +// BUMuteMonitor.h +// BUFoundation +// +// Created by bytedance on 2021/9/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + 用于回调当前静音按钮是否为静音状态的block + + @param isMute 如果静音按钮当前为静音状态,则为YES,否则为NO + */ +typedef void(^MuteBlock)(BOOL isMute); + +/** + 用于回调当前真实音量的block + + @param currentRealVolume 当前的真实音量 + */ +typedef void(^RealVolumeBlock)(CGFloat currentRealVolume); + +/** + 用于监听音量变化的block + @param newVolume 新的音量值 + */ +typedef void(^VolumeChangeBlock)(CGFloat newVolume); + +@interface BUAudioSessionSetting : NSObject + +@property (nonatomic, assign) BOOL allowModifyAudioSessionSetting; + +@property (nonatomic, copy) NSString *sourcePath; + ++ (instancetype)shareInstance; + +- (void)monitorMute; + +- (void)saveAudioSessionOriginCategory; + +@end + + +@interface BUAudioSessionHandler : NSObject + +- (void)resetAudioSessionCategoryToOriginStatus; + +- (void)interruptOtherAudioPlayingWithMute:(BOOL)mute; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUAudioSessionHandler.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUAudioSessionHandler.h.meta new file mode 100644 index 00000000..ef104c9b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUAudioSessionHandler.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2cba2792d07e543e6a807f57d5ef6872 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUBase64.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUBase64.h new file mode 100755 index 00000000..85ca5704 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUBase64.h @@ -0,0 +1,53 @@ +// +// Base64.h +// +// Version 1.2 +// +// Created by Nick Lockwood on 12/01/2012. +// Copyright (C) 2012 Charcoal Design +// +// Distributed under the permissive zlib License +// Get the latest version from here: +// +// https://github.com/nicklockwood/Base64 +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// + +#import + + +@interface NSData (BUBase64) + ++ (NSData *)bu_dataWithBase64EncodedString:(NSString *)string; +- (NSString *)bu_base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth; +- (NSString *)bu_base64EncodedString; + +@end + + +@interface NSString (BUBase64) + ++ (NSString *)bu_stringWithBase64EncodedString:(NSString *)string; +- (NSString *)bu_base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth; +- (NSString *)bu_base64EncodedString; +- (NSString *)bu_base64DecodedString; +- (NSData *)bu_base64DecodedData; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUBase64.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUBase64.h.meta new file mode 100644 index 00000000..dfd86140 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUBase64.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 95d4563736bd94da68671e93487f9b5c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCacheManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCacheManager.h new file mode 100755 index 00000000..2bc5f635 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCacheManager.h @@ -0,0 +1,45 @@ +// +// BUCacheManager.h +// BUAdSDK +// +// Created by 李盛 on 2018/9/19. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + + +extern NSString *BUCacheConfigurationKey; +extern NSString *BUCacheFinishedErrorKey; + +@class BUCacheConfiguration; +@interface BUCacheManager : NSObject + ++ (instancetype)shared; + +// 设置缓存目录 ++ (void)setCacheDirectory:(NSString *)cacheDirectory; + +// 获取缓存目录 ++ (NSString *)cacheDirectory; + +/// 获取视频本地缓存 +/// @param url 服务端视频地址 ++ (NSString *)cachedFilePathForURL:(NSURL *)url; + +/// 获取视频配置文件 +/// @param url 服务端视频地址 ++ (BUCacheConfiguration *)cacheConfigurationForURL:(NSURL *)url; + +/// 删除本地超出缓存大小的缓存文件 +/// 当该文件正在缓存、或正在被播放器占用时不会被删除 +/// 内部使用异步线程删除,线程非阻塞 +- (void)clearOverSizeCache; + +- (void)cacheResourceUseBegin:(NSURL *)url; + +- (void)cacheResourceUseEnd:(NSURL *)url; + +- (void)clearSpecifiedResource:(NSURL *)url; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCacheManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCacheManager.h.meta new file mode 100644 index 00000000..e5a686ee --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCacheManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f0195ea63822b46cd90b8974529f3b65 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCommonMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCommonMacros.h new file mode 100755 index 00000000..9bbca2b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCommonMacros.h @@ -0,0 +1,197 @@ +// +// BUCommonMacros.h +// BUAdSDK +// +// Created by 崔亚楠 on 2018/10/23. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import + +#import "BULogMacros.h" + +FOUNDATION_EXPORT NSString * const BUSDKVersion; + +/// 标记是否是开发状态,正式上线发版时置 0 +#define DevEnv 0 + +/** String **/ +#define BUEmptyString (@""); +#define BUSafeString(__string) ((__string && [__string isKindOfClass:[NSString class]]) ? __string :@"") +#define BUSafeDictionary(__aDictionary) ((__aDictionary && [__aDictionary isKindOfClass:[NSDictionary class]]) ? __aDictionary :@{}) + +/** VALID CHECKING**/ +#define BUCheckValidString(__string) (__string && [__string isKindOfClass:[NSString class]] && [__string length]) +#define BUCheckValidNumber(__aNumber) (__aNumber && [__aNumber isKindOfClass:[NSNumber class]]) +#define BUCheckValidArray(__aArray) (__aArray && [__aArray isKindOfClass:[NSArray class]] && [__aArray count]) +#define BUCheckValidDictionary(__aDictionary) (__aDictionary && [__aDictionary isKindOfClass:[NSDictionary class]] && [__aDictionary count]) +#define BUCheckValidDate(__aDate) (__aDate && [__aDate isKindOfClass:[NSDate class]]) +#define BUCheckValidData(__aData) (__aData && [__aData isKindOfClass:[NSData class]]) + +/** Color String**/ +#define BUColorString(__string) [UIColor bu_colorWithHexString:(__string)] + +/*********************************************************************************************************/ +//强弱引用转换,用于解决代码块(block)与强引用对象之间的循环引用问题 +#ifndef bu_weakify +#if __has_feature(objc_arc) +#define bu_weakify(object) __weak __typeof__(object) weak##object = object; +#else +#define bu_weakify(object) __block __typeof__(object) block##object = object; +#endif +#endif +#ifndef bu_strongify +#if __has_feature(objc_arc) +#define bu_strongify(object) __typeof__(object) object = weak##object; +#else +#define bu_strongify(object) __typeof__(object) object = block##object; +#endif +#endif +/*********************************************************************************************************/ + +#ifndef BUisEmptyString +#define BUisEmptyString(str) (!str || ![str isKindOfClass:[NSString class]] || str.length == 0) +#endif + +#ifndef BUIsEmptyArray +#define BUIsEmptyArray(array) (!array || ![array isKindOfClass:[NSArray class]] || array.count == 0) +#endif + +#ifndef BUIsEmptyDictionary +#define BUIsEmptyDictionary(dict) (!dict || ![dict isKindOfClass:[NSDictionary class]] || ((NSDictionary *)dict).count == 0) +#endif + + +#ifndef BUMinX +#define BUMinX(view) CGRectGetMinX(view.frame) +#endif + +#ifndef BUMinY +#define BUMinY(view) CGRectGetMinY(view.frame) +#endif + +#ifndef BUMaxX +#define BUMaxX(view) CGRectGetMaxX(view.frame) +#endif + +#ifndef BUMaxY +#define BUMaxY(view) CGRectGetMaxY(view.frame) +#endif + +#ifndef BUWidth +#define BUWidth(view) view.frame.size.width +#endif + +#ifndef BUHeight +#define BUHeight(view) view.frame.size.height +#endif + +#ifndef BUScreenWidth +#define BUScreenWidth [[UIScreen mainScreen] bounds].size.width +#endif + +#ifndef BUScreenHeight +#define BUScreenHeight [[UIScreen mainScreen] bounds].size.height +#endif + +#ifndef BUMINScreenSide +#define BUMINScreenSide MIN([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) +#endif + +#ifndef BUMAXScreenSide +#define BUMAXScreenSide MAX([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) +#endif + +#define BUIsNotchScreen bu_is_notch_screen() +#define BUiPhoneX BUIsNotchScreen +#define kBUDefaultNavigationBarHeight (BUiPhoneX?88:64) // 导航条高度 +#define kBUSafeTopMargin (BUiPhoneX?24:0) +#define kBUDefaultStautsBarHeight (BUiPhoneX?44:20) // 状态栏高度 + +#define BUOnePixel (1.0f/[[UIScreen mainScreen] scale]) + +///全局队列 +#ifndef BUDispatchGetGlobalQueue +#define BUDispatchGetGlobalQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) +#endif + +#ifndef BUDispatchGetHighQueue +#define BUDispatchGetHighQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0) +#endif + +//单例 +#define BU_SINGLETION(...) \ ++ (instancetype)sharedInstance NS_SWIFT_NAME(shared()); + +#define BU_DEF_SINGLETION(...) \ ++ (instancetype)sharedInstance \ +{ \ +static dispatch_once_t once; \ +static id __singletion; \ +dispatch_once(&once,^{__singletion = [[self alloc] init];}); \ +return __singletion; \ +} + +FOUNDATION_EXPORT void bu_safe_dispatch_sync_main_queue(void (^block)(void)); +FOUNDATION_EXPORT void bu_safe_dispatch_async_main_queue(void (^block)(void)); + +FOUNDATION_EXPORT id BU_JSONObjectByRemovingKeysWithNullValues(id JSONObject); + +FOUNDATION_EXPORT BOOL bu_is_notch_screen(void); + +FOUNDATION_EXPORT UIEdgeInsets portraitAdSafeInsets(void); + + +#pragma mark - 锁 + +#define BU_USE_OS_UNFAIR_LOCK (__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_10_0) + +#ifndef BU_LOCK_DECLARE +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK_DECLARE(lock) os_unfair_lock lock +#else +#define BU_LOCK_DECLARE(lock) os_unfair_lock lock API_AVAILABLE(ios(10.0), tvos(10), watchos(3), macos(10.12)); \ +OSSpinLock lock##_deprecated; +#endif +#endif + +#ifndef BU_LOCK_INIT +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK_INIT(lock) lock = OS_UNFAIR_LOCK_INIT +#else +#define BU_LOCK_INIT(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) lock = OS_UNFAIR_LOCK_INIT; \ +else lock##_deprecated = OS_SPINLOCK_INIT; +#endif +#endif + +#ifndef BU_LOCK +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK(lock) os_unfair_lock_lock(&lock) +#else +#define BU_LOCK(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) os_unfair_lock_lock(&lock); \ +else OSSpinLockLock(&lock##_deprecated); +#endif +#endif + +#ifndef BU_UNLOCK +#if BU_USE_OS_UNFAIR_LOCK +#define BU_UNLOCK(lock) os_unfair_lock_unlock(&lock) +#else +#define BU_UNLOCK(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) os_unfair_lock_unlock(&lock); \ +else OSSpinLockUnlock(&lock##_deprecated); +#endif +#endif + +@protocol BUDictionarify +@required +- (NSDictionary *)toDictionary; +@end + + + +// 对枚举值进行日志字符串转换, 例如对于一个枚举值 1表示激励视频广告的意思, 将返回: 激励视频广告(value:1) +FOUNDATION_EXPORT NSString *NSStringLogFromBUAdEnumItem(NSInteger enumItem, NSDictionary *dic, NSString *defaultValue); +// 对枚举值进行字符串转换 例如对于一个枚举值 1表示rewarded_ad的字符串, 将返回: rewarded_ad +FOUNDATION_EXPORT NSString *NSStringFromBUAdEnumItem(NSInteger enumItem, NSDictionary *dic, NSString *defaultValue); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCommonMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCommonMacros.h.meta new file mode 100644 index 00000000..36ddcf14 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUCommonMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c9a271774bd8345a6a744d13b867b9c9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUConditionTracker.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUConditionTracker.h new file mode 100755 index 00000000..904e0300 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUConditionTracker.h @@ -0,0 +1,33 @@ +// +// BUConditionTracker.h +// BUFoundation +// +// Created by Willie on 2021/4/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef BOOL (^BUConditionBlock)(void); +typedef void (^BUActionBlock)(void); + +/// 条件轮询器:每秒轮询指定的条件,若条件满足则执行指定的行为 +@interface BUConditionTracker : NSObject + +/// 通过指定的条件 block 和行为 block 来构建一个 +/// @param condition 每秒轮询的条件,需要返回一个 BOOL 值 +/// @param action 当轮询条件满足时,需要执行的行为 +/// @param retryCount 轮询次数,当实际轮询次数超过指定次数后轮询自动停止,并释放条件和行为 block +- (instancetype)initWithConditon:(BUConditionBlock)condition + action:(BUActionBlock)action + retryCount:(NSInteger)retryCount; + +/// 开始轮询 +- (void)start; +/// 停止轮询并释放资源 +- (void)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUConditionTracker.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUConditionTracker.h.meta new file mode 100644 index 00000000..1b0db270 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUConditionTracker.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1aa6159f92ab44794800c987eeb90d05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDownloadSpeedServer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDownloadSpeedServer.h new file mode 100755 index 00000000..8070c186 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDownloadSpeedServer.h @@ -0,0 +1,40 @@ +// +// BUDownloadSpeedServer.h +// BUFoundation +// +// Created by bytedance on 2021/4/22. +// + +#import + +@class BUDownloadSpeedModel; + +NS_ASSUME_NONNULL_BEGIN + +@interface BUDownloadSpeedServer : NSObject + ++ (instancetype)server; + +- (void)startDownloadWithUrl:(NSURL *)url; + +- (BUDownloadSpeedModel *)downloadingWithUrl:(NSURL *)url; + +- (void)finishDownloadWithUrl:(NSURL *)url; + +- (double)downloadSpeeds; + +@end + +@interface BUDownloadSpeedModel : NSObject + +@property (atomic, assign) NSTimeInterval startDownloadTime; + +@property (atomic, assign) NSTimeInterval finishDownloadTime; + +@property (atomic, assign) NSInteger downloadSize; + +@property (nonatomic, assign) double speed; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDownloadSpeedServer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDownloadSpeedServer.h.meta new file mode 100644 index 00000000..c9980c1b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDownloadSpeedServer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 90e2307b92f2a43199958586c6bb68d7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDynamicPlugin.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDynamicPlugin.h new file mode 100755 index 00000000..a95d41f5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDynamicPlugin.h @@ -0,0 +1,38 @@ +// +// BUDynamicPlugin.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BURexxarEngine.h" + + +//推荐使用动态的方式 +/** + 使用方法: + 1.继承BUDynamicPlugin + 2.在.h中使用宏 BU_EXPORT_HANDLER(abc)声明需要暴露的方法 + 3.在.m中实现此方法, 输入-(void)abc 即可获得ide补全提示 + 4.通过传入的callback来回调执行结果. 注意.无论成功与否都必须执行这个callback + */ +@interface BUDynamicPlugin : NSObject + +/** + plugin执行时所处的engine + */ +@property (nonatomic, weak) id engine; + + +/** + BUJSBInstanceTypeGlobal时 需要实现此方法, 没有特殊需要 不推荐使用 + + @return 单例plugin + */ ++ (instancetype)sharedPlugin; + ++ (BUJSBInstanceType)instanceType; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDynamicPlugin.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDynamicPlugin.h.meta new file mode 100644 index 00000000..f09cb038 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUDynamicPlugin.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 67127968a8de8411c8c245884f29e174 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUEnvironment.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUEnvironment.h new file mode 100755 index 00000000..219833be --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUEnvironment.h @@ -0,0 +1,21 @@ +// +// BUEnvironment.h +// BUFoundation +// +// Created by bytedance on 2020/10/29. +// Copyright © 2020 Union. All rights reserved. +// + +#ifndef BUEnvironment_h +#define BUEnvironment_h + +#import +#import + +CTTelephonyNetworkInfo *BUDefaultTelephonyNetworkInfo(void); + +@interface BUEnvironment : NSObject + +@end + +#endif /* BUEnvironment_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUEnvironment.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUEnvironment.h.meta new file mode 100644 index 00000000..063dbe11 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUEnvironment.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f6da8b83ac0b44482949f4a235d6c7eb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundation.h new file mode 100755 index 00000000..f186cbc5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundation.h @@ -0,0 +1,135 @@ +// +// BUFoundation.h +// BUFoundation +// +// Created by Siwant on 2019/8/26. +// Copyright © 2019 Union. All rights reserved. +// + + + + +/// Public-Utils +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/// Public-Category +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + + +/// Public-Gif +#import +#import + +/// Service-BUPersistent +#import + +/// Service-BUQueueManagerMode +#import +#import + + +/// Service-JSBridge +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/// Service-Log +#import +#import + + + +/// a-n-u +#import +#import + + +#import +#import + + + + +// SD +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import + +// yy +#import +/************************************ ThirdParty***********************************/ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundation.h.meta new file mode 100644 index 00000000..f8d03d3b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 42cb9a22bbc62417690c14e10abae161 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundationAddress.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundationAddress.h new file mode 100755 index 00000000..33461056 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundationAddress.h @@ -0,0 +1,21 @@ +// +// BUFoundationAddress.h +// BUFoundation +// +// Created by Siwant on 2020/2/5. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUFoundationAddress : NSObject + ++ (int64_t)bu_beginAddress; + ++ (int64_t)bu_endAddress; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundationAddress.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundationAddress.h.meta new file mode 100644 index 00000000..ab40286c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUFoundationAddress.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ebecf9d8527e24d34973d24f92d9a277 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGeckoPreloadManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGeckoPreloadManager.h new file mode 100755 index 00000000..9b2aea2f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGeckoPreloadManager.h @@ -0,0 +1,62 @@ +// +// BUGeckoPreloadManager.h +// BUAdSDK +// +// Created by wangyanlin on 2020/6/29. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +extern NSString * const kBUGeckoInitDoneNotificationName; + +typedef void (^BUPreloadCompletion)(NSData * _Nullable data,NSDictionary * _Nullable respHeader); +typedef void (^BUPreloadTrackBlock)(NSObject *model,NSString *label,NSDictionary *parameter); +typedef void (^BUSyncDataCompletion)(BOOL success,NSDictionary *info); +@interface BUGeckoPreloadManager : NSObject + +@property (nonatomic, strong) NSMapTable *mapTable; + +@property (nonatomic, strong) NSMutableDictionary *geckoDict; + +@property (nonatomic, copy) BUPreloadTrackBlock trackBlock; + ++ (instancetype)sharedInstance; + ++ (void)setupSDKWithTerritory:(NSString *)territory + IESGeckoKitAppId:(NSString *)IESGeckoKitAppId + IESGeckoKit_CACHE_DIRECTORY:(NSString *)IESGeckoKit_CACHE_DIRECTORY + IESGeckoKitAccessKey:(NSString *)IESGeckoKitAccessKey + IESGeckoKit_Domains:(NSArray *)IESGeckoKit_Domains + ZipBlock:(id)zipBlock; + +//1.本地zip 包已经被删除了,自动去下载 +//2.如果zip需要更新,会自动更新 +//3.本地有zip, 并且不需要更新. 不做处理 ++ (void)syncResourcesParamsWithChannel:(NSArray *)materialArray hosts:(NSArray *)hosts; + ++ (BOOL)geckoDidSetup; ++ (void)registAccessKey:(NSString *)ak; ++ (void)setGeckoDeviceID:(NSString *)deviceID; ++ (void)syncResourcesParamsWithAccessKey:(NSString *)ak + channels:(NSArray *)channelIds + hosts:(NSArray *)hosts + completion:(BUSyncDataCompletion _Nullable)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info + accessKey:(NSString *)ak + channel:(NSString *)channel + completion:(BUPreloadCompletion)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info completion:(BUPreloadCompletion)completion; + +/** +* @brief 返回文件版本;如果文件未激活,则返回0 +*/ ++ (uint64_t)packageVersionForAccessKey:(NSString *)accessKey channel:(NSString *)channel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGeckoPreloadManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGeckoPreloadManager.h.meta new file mode 100644 index 00000000..06ac8cc5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGeckoPreloadManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c6cf6a36dcd05475498bc9af7c26d8f9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImage.h new file mode 100755 index 00000000..571be786 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImage.h @@ -0,0 +1,25 @@ +// +// BUGifImage.h +// BUGif +// +// Created by Johnil on 14-3-6. +// Copyright (c) 2014年 Johnil. All rights reserved. +// + +#import + +@interface BUGifImage : UIImage + +@property (nonatomic,assign) NSInteger currentPlayIndex; +@property (nonatomic,strong) NSData *data; + ++ (instancetype)gifWithData:(NSData *)data; + +- (UIImage *)nextImage; +- (NSInteger)count; +- (CGFloat)frameDuration; +- (void)resumeIndex; +/// 是否还有下一桢 +- (BOOL) hasNextImage; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImage.h.meta new file mode 100644 index 00000000..1cf23fc4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: af9b59b73ea054c258a3540ec2132515 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImageView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImageView.h new file mode 100755 index 00000000..66fecbde --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImageView.h @@ -0,0 +1,26 @@ +// +// TTGifImageView.h +// Article +// +// Created by carl on 2017/5/21. +// +// + +#import +#import "BUGifImage.h" + +@protocol BUAnimationImageView +@property (nonatomic, assign) BOOL repeats; +@property (nonatomic, copy) void (^completionHandler)(BOOL); +@property (nonatomic, strong, readonly) BUGifImage *gifImage; +@property (nonatomic, assign) NSInteger currentPlayIndex; +@property (nonatomic, assign) BOOL delayDuration; +@end + +@interface BUGifImageView : UIImageView +@property (nonatomic, assign) BOOL repeats; +@property (nonatomic, copy) void (^completionHandler)(BOOL); +@property (nonatomic, strong, readonly) BUGifImage *gifImage; +@property (nonatomic, assign) NSInteger currentPlayIndex; +@property (nonatomic, assign) BOOL delayDuration; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImageView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImageView.h.meta new file mode 100644 index 00000000..0e5d27e2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUGifImageView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4fa335a7e5c68427499938dec473dd58 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUImageUtility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUImageUtility.h new file mode 100755 index 00000000..b05a4345 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUImageUtility.h @@ -0,0 +1,19 @@ +// +// BUImageUtility.h +// BUAdSDK +// +// Created by Siwant on 2019/8/8. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUImageUtility : NSObject +/// 返回类型不只是UIImage,也包括BUGifImage ++ (UIImage *_Nullable)imageWithData:(NSData *_Nullable)data; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUImageUtility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUImageUtility.h.meta new file mode 100644 index 00000000..879df081 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUImageUtility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1805a89d2065244d59258e8e8f1d7d5b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBAuthorization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBAuthorization.h new file mode 100755 index 00000000..0f4aa74a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBAuthorization.h @@ -0,0 +1,38 @@ +// +// BUJSBAuthorization.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BUJSBCommand.h" +#import "BURexxarEngine.h" + +@protocol BUJSBAuthorization + + +/** + 验证是否有权限执行这个JSB + + @param engine 上下文engine + @param command JSBCommand + @param domain 所在页面 + @return 是否有权限 + */ +- (BOOL)engine:(id)engine isAuthorizedJSB:(BUJSBCommand *)command domain:(NSString *)domain; + + +/** + fireEvent发送之前 验证是否有权限发送这个事件 + + @param engine 上下文engine + @param eventName 事件名字 + @param domain 所在页面 + @return 是否有权限 + */ +- (BOOL)engine:(id)engine isAuthorizedEvent:(NSString *)eventName domain:(NSString *)domain; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBAuthorization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBAuthorization.h.meta new file mode 100644 index 00000000..ca9005e8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBAuthorization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1213f927557ea4e3283c7ecf5d84e620 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBCommand.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBCommand.h new file mode 100755 index 00000000..a58453f1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBCommand.h @@ -0,0 +1,51 @@ +// +// BUJSBMessage.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import + +@interface BUJSBCommand : NSObject + +@property (nonatomic, copy) NSString *messageType; + +@property (nonatomic, copy) NSString *eventID; + +@property (nonatomic, copy) NSString *callbackID; + +@property (nonatomic, copy) NSDictionary *params; + + +/** + 前端传过来的方法名, 有"isLogin" 和 "TTRLogin.isLogin"两种格式 + */ +@property(nonatomic, copy) NSString *fullName; + +/** + 经过别名映射后, 该property为 映射前的fullName + */ +@property(nonatomic, copy) NSString *origName; + +/** + 动态plugin的 类名 + */ +@property(nonatomic, copy) NSString *className; + + +/** + 动态plugin的 方法名 + */ +@property(nonatomic, copy) NSString *methodName; + +/** + 没卵用 + */ +@property(nonatomic, copy) NSString *JSSDKVersion; + +- (instancetype)initWithDictonary:(NSDictionary *)dic; + +- (NSString *)toJSONString; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBCommand.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBCommand.h.meta new file mode 100644 index 00000000..78a195c7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBCommand.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d5149622adff94b789edac0787df39d2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBDefine.h new file mode 100755 index 00000000..d30272c2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBDefine.h @@ -0,0 +1,76 @@ +// +// BUJSBDefine.h +// BURexxar +// +// Created by muhuai on 2017/5/5. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +//#import "BURexxarEngine.h" + +#define BU_EXPORT_HANDLER(NAME) - (void)NAME##WithParam:(NSDictionary *)param callback:(BUJSBResponse)callback webView:(UIView *)webview controller:(UIViewController *)controller; + +#define _BU_HANDLER_SET(NAME, HANDLERS) \ +- (NSSet *)NAME { \ +if (![HANDLERS isKindOfClass:[NSArray class]]) {\ +return nil;\ +}\ +return [NSSet setWithArray:HANDLERS];\ +} + +#define ARRAY(...) [NSArray arrayWithObjects: (id []){ __VA_ARGS__ } count: sizeof((id []){ __VA_ARGS__ }) / sizeof(id)] + +#define BU_PROTECTED_HANDLER(...) \ +_BU_HANDLER_SET(protectedHandlerSet, ARRAY(__VA_ARGS__)) + +#define BU_PRIVATE_HANDLER(...) \ +_BU_HANDLER_SET(privateHandlerSet, ARRAY(__VA_ARGS__)) + +#define BU_CALLBACK_SUCCESS \ +if (callback) {\ +callback(BUJSBMsgSuccess, @{@"code": @"1"});\ +}\ + +#define BU_CALLBACK_FAILED \ +if (callback) {\ +callback(BUJSBMsgFailed, @{@"code": @"0"});\ +}\ + +#define BU_CALLBACK_FAILED_MSG(msg) \ +if (callback) {\ +callback(BUJSBMsgFailed, @{@"code": @"0", @"msg": [NSString stringWithFormat:msg]? :@""});\ +}\ + +#define BU_CALLBACK_WITH_MSG(status, msg) \ +if (callback) {\ +callback(status, @{@"code": status == BUJSBMsgSuccess? @"1": @"0", @"msg": [NSString stringWithFormat:msg]? [NSString stringWithFormat:msg] :@""});\ +}\ + + +typedef NS_ENUM(NSUInteger, BUJSBInstanceType) { + BUJSBInstanceTypeNormal, //每次调用都是不同实例(默认, 推荐) + BUJSBInstanceTypeGlobal, //全局单例, 需要实现 +(instance)sharedPlugin; + BUJSBInstanceTypeWebView, //对同一个webview复用一个实例 +}; + +typedef NS_ENUM(NSUInteger, BUJSBAuthType){ + BUJSBAuthPublic, // 所有均可调用(默认) + BUJSBAuthProtected, //内部domain,及外部授权可调用 + BUJSBAuthPrivate // 仅内部domain,appinfo不可见 +}; + +typedef enum : NSUInteger { + BUJSBMsgSuccess, + BUJSBMsgFailed, + BUJSBMsgParamError, + BUJSBMsgNoHandler, + BUJSBMsgNoPermission +} BUJSBMsg; + +typedef NS_ENUM(NSInteger, BUJSBResultCode){ + BUJSBResultCodeError = -2, // jsb结果错误cod回传 + BUJSBResultCodeSuccess = 200, // jsb结果成功cod回传 +}; + +typedef void(^BUJSBResponse)(BUJSBMsg, NSDictionary *); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBDefine.h.meta new file mode 100644 index 00000000..a94a540a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e042e03650b9c48339070afb16faf505 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBForwarding.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBForwarding.h new file mode 100755 index 00000000..ed013103 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBForwarding.h @@ -0,0 +1,45 @@ +// +// BUJSBForwarding.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBCommand.h" +#import "BURexxarEngine.h" +#import "BUJSBDefine.h" + +@interface BUJSBForwarding : NSObject + ++ (instancetype)sharedInstance; + + +/** + 转发到对应的插件 + + @param command JSB命令 + @param engine Hybrid容器, 可是webview, RNView, weex. 实现此协议即可 + @param completion 完成回调 + */ +- (void)forwardJSBWithCommand:(BUJSBCommand *)command engine:(id)engine completion:(BUJSBResponse)completion; + +/** + 注册JSBridge别名 + + @param alias 新名 + @param orig 原名 + */ +- (void)registeJSBAlias:(NSString *)alias for:(NSString *)orig; + + +/** + 原名 -> 别名 + + @param orig 原名 + @return 别名 + */ +- (NSString *)aliasJSBForOrig:(NSString *)orig; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBForwarding.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBForwarding.h.meta new file mode 100644 index 00000000..6335888c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSBForwarding.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 367a117b5971e4843a568056308b86a1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSInjector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSInjector.h new file mode 100755 index 00000000..f0ea8ddf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSInjector.h @@ -0,0 +1,72 @@ +// +// BUJSInjector.h +// BURexxar +// +// Created by muhuai on 2017/6/17. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import + +@protocol BUWebView; +/** + BUWebView的JS注入器 + 当页面加载完成后, 注入器会向WebView容器里注入一段JS脚本. + + 使用场景: + 容器是其他人提供的, 但是你需要往里面注入一些脚本. + + 有两个级别: + 1. webview级别, 只对当前webview生效. BUWebView.injector + 2. 全局级别, 对所有webview生效. [BUJSInjector sharedInstance] + + 请自行根据需求使用, 不要滥用全局级别 + + */ + +@interface BUJSInjector : NSObject + +/** + 全局级别的注入器. + 需评估影响范围, 慎用 + + @return 注入器 + */ ++ (instancetype)sharedInstance; + +/** + 对匹配正则的页面注入脚本 + 非线程安全 + + @param script 脚本 + @param regex 正则表达式 + @param key 该条规则的key, 用于remove和 检验规则唯一性 + @note 如果有多条规则成功匹配, 则会注入多段JS脚本 + 多段注入会按照注册先后顺序, 并且web级别 > 全局级别 + */ +- (void)addInjectRuleWithScript:(NSString *)script regex:(NSString *)regex key:(NSString *)key; + +/** + 移除指定规则 + 非线程安全 + + @param key 规则的key + */ +- (void)removeScriptWithKey:(NSString *)key; + +/** + 移除全部规则. + 非线程安全 + + 慎用..小心被人打... + */ +- (void)removeAllScript; + +/** + 对webview注入 符合规则的脚本 + + @param webview BUWebView + */ +- (void)injectScriptInWebView:(UIView *)webview; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSInjector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSInjector.h.meta new file mode 100644 index 00000000..a23c2500 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUJSInjector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ec996a299d8ce42efbf39bcc253601a9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogMacros.h new file mode 100755 index 00000000..c8249a18 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogMacros.h @@ -0,0 +1,39 @@ +// +// BULogMacros.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/2/2. +// + +#import +#import "BULogManager.h" + + + + +/** LOG **/ +#define BU_Log_Foundation(frmt, ...) BU_LOG_MAYBE(BUFoundationLog, BU_LOG_ENABLED, frmt, ##__VA_ARGS__) + +#define BU_LOG_MAYBE(BULogTypeString, flg, frmt, ...) \ +do { \ +if(flg) [BULogManager debugLogWithFormat:@"[BUAdSDK-%@]-[debug]-[%@]%@", BUSDKVersion, BULogTypeString, [NSString stringWithFormat:frmt,##__VA_ARGS__]]; \ +} while(0) + +#define BU_LogErrorD(BULogType, frmt, ...) BU_LogBaseD(error, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogWaringD(BULogType, frmt, ...) BU_LogBaseD(warning, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogInfoD(BULogType, frmt, ...) BU_LogBaseD(info, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogDebugD(BULogType, frmt, ...) BU_LogBaseD(debug, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogVerboseD(BULogType, frmt, ...) BU_LogBaseD(verbose, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogInternalD(BULogType, frmt, ...) BU_LogBaseD(internal, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogServerD(BULogType, frmt, ...) BU_LogBaseD(server, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogBaseD(level, BULogType, frmt, ...) [BULogManager level##LogWithFormat:@"[BUAdSDK-%@]-[%s]-[%@]%@", BUSDKVersion, #level, BULogType, [NSString stringWithFormat:frmt, ##__VA_ARGS__]]; + +#define BU_LogDevInfo(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🟠", frmt, ##__VA_ARGS__) +#define BU_LogDevSucc(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🟢", frmt, ##__VA_ARGS__) +#define BU_LogDevFail(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🔴", frmt, ##__VA_ARGS__) +#define BU_LogDevBase(BULogType, mark, frmt, ...) [BULogManager internalLogWithFormat:@"[BUAdSDK-%@]-[%@ %@]-[%@ %d] %@", BUSDKVersion, BULogType, mark, [NSURL fileURLWithPath:@__FILE__].lastPathComponent, __LINE__, [NSString stringWithFormat:frmt, ##__VA_ARGS__]]; + +FOUNDATION_EXPORT NSString * const BUFoundationLog; +FOUNDATION_EXPORT BOOL BU_LOG_ENABLED; + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogMacros.h.meta new file mode 100644 index 00000000..fcb521f7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ce28c92dfc3e14f90ba74b60f086e78e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogManager.h new file mode 100755 index 00000000..dd6b7d75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogManager.h @@ -0,0 +1,44 @@ +// +// BULogManager.h +// BUAdSDK +// +// Created by bytedance on 2020/6/9. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +// 这里跟 BUAdSDKLogLevel 对齐 +typedef NS_ENUM(NSInteger, BULogManagerLevel) { + BULogManagerLevelNone, + BULogManagerLevelError, + BULogManagerLevelWarning, + BULogManagerLevelInfo, + BULogManagerLevelDebug, + BULogManagerLevelVerbose, +}; + +typedef NS_ENUM(NSInteger, BULogServerControlMode) { + BULogManagerServerControlCloseMode, + BULogManagerServerControlDebugMode, +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface BULogManager : NSObject + +@property (nonatomic, assign) BULogManagerLevel level; +@property (nonatomic, assign) BULogServerControlMode mode; + ++ (void)errorLogWithFormat:(NSString *)format, ...; ++ (void)warningLogWithFormat:(NSString *)format, ...; ++ (void)infoLogWithFormat:(NSString *)format, ...; ++ (void)debugLogWithFormat:(NSString *)format, ...; ++ (void)verboseLogWithFormat:(NSString *)format, ...; ++ (void)internalLogWithFormat:(NSString *)format, ...; ++ (void)serverLogWithFormat:(NSString *)format, ...; + ++ (instancetype)sharedInstance; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogManager.h.meta new file mode 100644 index 00000000..e05515df --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BULogManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b9289b0adb91049bbb371f6b7f264db7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUNetworkRequest.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUNetworkRequest.h new file mode 100755 index 00000000..395e7567 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUNetworkRequest.h @@ -0,0 +1,51 @@ +// +// BUAdNetworkRequest.h +// BUFoundation +// +// Created by bytedance on 2020/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUNetworkRequest : BUBaseRequest + +@property (nonatomic,copy ) NSString *buRequestUrl; +@property (nonatomic,strong) NSDictionary *parameter; +@property (nonatomic,assign) BURequestMethod method; +@property (nonatomic,assign) BURequestSerializerType buRequestSerializerType; +@property (nonatomic,assign) BUResponseSerializerType buResponseSerializerType; + +- (instancetype)initWithUrl:(NSString * _Nullable)url + method:(BURequestMethod)method + parameter:(NSDictionary * _Nullable)parameter; + ++ (instancetype)requestWithURL:(NSString *)url + method:(BURequestMethod)method + parameter:(NSDictionary *)paraDic + completionWithSuccess:(BURequestCompletionBlock _Nullable)success + failure:(BURequestCompletionBlock _Nullable)failure; + ++ (instancetype)requestWithURL:(NSString *)url + parameter:(NSDictionary *)paraDic + completionWithSuccess:(BURequestCompletionBlock _Nullable)success + failure:(BURequestCompletionBlock _Nullable)failure; + + + +@end + +@interface BUNetworkRequest (TNC) +// 使用TNC服务的标识,自定义,唯一即可 +- (NSString *)TNCServiceKey; + +// 请求失败回调,如果需要TNC,请使用`failureCompletionBlockWithTNC`替换`failureCompletionBlock`的实现 +- (BURequestCompletionBlock)failureCompletionBlockWithTNC; + +// 请求成功回调,如果需要TNC,请使用`successCompletionBlockWithTNC`替换`successCompletionBlock`的实现 +- (BURequestCompletionBlock)successCompletionBlockWithTNC; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUNetworkRequest.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUNetworkRequest.h.meta new file mode 100644 index 00000000..9e845758 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUNetworkRequest.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1adb8a99855c64840ba01abc4a77abde +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPersistence.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPersistence.h new file mode 100755 index 00000000..bc6b70f8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPersistence.h @@ -0,0 +1,80 @@ +// +// BUPersistence.h +// BUPersistence +// +// Created by Chen Hong on 2017/1/10. +// Copyright © 2017年 Chen Hong. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +typedef NS_ENUM(NSUInteger, BUPersistentType) { + BUPersistentTypePlist, + BUPersistentTypeKeyChain, + BUPersistentTypeCustom, +}; + +@interface BUPersistenceOption : NSObject + +@property (nonatomic, assign) BUPersistentType type; + +@property (nonatomic, assign) BOOL shouldRemoveAllObjectsOnMemoryWarning; + +@property (nonatomic, assign) BOOL shouldRemoveAllObjectsWhenEnteringBackground; + +@property (nonatomic, assign) BOOL supportNSCoding; + +// 默认YES +@property (nonatomic, assign) BOOL isThreadSafe; + +@end + +@protocol BUPersistenceProtocol + +- (NSArray *)allObjects; + +- (nullable id)objectForKey:(nullable NSString *)key; + +- (nullable NSArray *)objectsForKeys:(NSArray *)keys; + +- (void)updateObjectsForKeys:(NSArray *)keys WithBlock:(NSDictionary * (^)(NSArray *objects))block; + +- (BOOL)setObject:(nullable id)object forKey:(nullable NSString *)key; + +- (BOOL)hasObjectForKey:(nullable NSString *)key; + +- (BOOL)removeAll; + +- (BOOL)removeObjectsForKeys:(NSArray *)keys; + +- (BOOL)save; + +@end + +@interface BUPersistence : NSObject + + ++ (nullable instancetype)persistenceWithName:(NSString *)name; + +/// 公共的BUPersistence 实例对象 +/// 当不需要特定的设置name时,可以使用commonPersistence +/// @Warning , 当使用commonPersistence时, key值的设置请注意唯一性,防止key值覆盖的问题发生 ++ (nullable instancetype)commonPersistence; + ++ (nullable instancetype)persistenceWithName:(NSString *)name option:(BUPersistenceOption *)option; + +//+ (void)deleteWithName:(NSString *)name; +// ++ (NSString *)cacheDirectory; + + +#pragma mark - Publick ++ (void)setSDKVersion:(NSString *)sdkVersion; ++ (NSString *)sdkVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPersistence.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPersistence.h.meta new file mode 100644 index 00000000..75d93737 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPersistence.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2e8b93513b855406e802cf94bb4e4247 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayer.h new file mode 100755 index 00000000..f63e2b61 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayer.h @@ -0,0 +1,167 @@ +// +// BUPlayer.h +// BUAdSDK +// +// Created by hlw on 2017/12/21. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerDefine.h" +#import "BUPlayerInternalDefine.h" +#import "BUPlayerSettingsProtocol.h" + +@class BUPlayerItem; +@interface BUPlayer : NSObject + +@property (nonatomic, weak) id delegate; + +/** + * 播放内容视图 + */ +@property (nonatomic, strong, readonly) UIView *view; + +/** + * 播放器状态 + * 支持KVO + */ +@property (nonatomic, assign, readonly) BUVideoPlayerState state; + +/// 播放器播放模式改变 +@property (nonatomic, assign, readonly) BUVideoPlayerDecoeMode decodeMode; + +/** + * 播放资源总时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval duration; + +/** + * 当前可播放时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval playableDuration; + +/** + * 实际观看时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval watchedDuration; + +/** + * 当前播放时间 + */ +@property (nonatomic, assign, readonly) CGFloat currentPlayTime; + + +/// 当前播放链接 +@property (nonatomic, strong, readonly) NSURL *currentPlayURL; + +/** + * 当前播放资源Item + */ +@property (nonatomic, strong, readonly) BUPlayerItem *currentPlayerItem; + +/** + * 播放器控制层容器,默认视图支持部分定制或完全自定义 + * 默认显示控制层全部元素,可以定制部分视图元素显示/隐藏 + * 若完全自定义,需先隐藏全部默认视图元素 再在容器上添加自定义视图 + */ +@property (nonatomic, strong, readonly) UIView *controlContainer; + +/** + * 播放内容视图填充方式 + * 默认:等比例填充,直到一个维度到达区域边界 + */ +@property (nonatomic, assign) BUPlayerLayerGravity playerLayerGravity; + +/** + * 播放视图上手势操作选项开关 + * 默认全开 + */ +@property (nonatomic, assign) BUPlayerGestureOption option; + +/** + * 静音设置 + */ +@property (nonatomic, assign) BOOL mute; + +/** + * 当前是否全屏显示 + */ +@property (nonatomic, assign, readonly) BOOL isFullScreen; + +/** 设置自定义ControlView */ +@property (nonatomic, strong) UIView *controlView; + +/** + * 支持自动转屏,默认NO + */ +@property (nonatomic, assign) BOOL shouldAutoRotate; + +/** +* jsb changeVideoState 暂停视频后,视频过一秒会继续开始播放.因为 timer 会调用 checkToPlayOrPause. +* 所以用属性进行标记 +* 影响范围: 模板/非模板 的激励全屏视频 +*/ +@property (nonatomic, assign) BOOL isJSBPauseVideo; + ++ (instancetype)playerWithPlayerItem:(BUPlayerItem *)item; + +- (void)replaceCurrentItemWithPlayerItem:(BUPlayerItem *)item; + + +- (void)insertGaosiMohuWithLayer:(CALayer *)layer; + +- (void)insertGaosiMohuWithView:(UIView *)view; + + +/// 设置指定时间回调 +/// @param time 时间点 +- (void)setPlayerBoundaryTime:(NSInteger)time; + +/// 移除播放器定时回调 +- (void)removePlayerBoundaryTime; +@end + +@interface BUPlayer (BUPlayerControl) + +/** + * 播放 + */ +- (void)play; + +/** + * 暂停 + */ +- (void)pause; + +/** + * 重播 + */ +- (void)replay; + +/** + * 停止 + */ +- (void)stop; + +/** + * 跳到指定时间播放 + */ +- (void)seekToTime:(NSTimeInterval)time completion:(void(^)(BOOL success))completion; + +/** + * 全屏/竖屏 切换显示 + */ +- (void)changeOrientationScreen; + + +/** + * 处于后台模式 + */ +- (BOOL)isEnterBackground; + +@end + +@interface BUPlayer (BUTrack) +@property (nonatomic, strong) NSString *startTimestamp; +@property (nonatomic, strong) NSString *endTimestamp; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayer.h.meta new file mode 100644 index 00000000..73676e0e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc9671c8939534824956b6eda78bc677 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerDefine.h new file mode 100755 index 00000000..b206dc0a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerDefine.h @@ -0,0 +1,82 @@ +// +// BUPlayerDefine.h +// BUAdSDK +// +// Created by carl on 2017/12/24. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +/** + * playerLayer的填充模式 + */ +typedef NS_ENUM(NSInteger, BUPlayerLayerGravity) { + BUPlayerLayerGravityResize, // 非均匀模式。两个维度完全填充至整个视图区域 + BUPlayerLayerGravityResizeAspect, // 等比例填充,直到一个维度到达区域边界 + BUPlayerLayerGravityResizeAspectFill // 等比例填充,直到填充满整个视图区域,其中一个维度的部分区域会被裁剪 +}; + +/** + * 手势交互操作 + */ +typedef NS_OPTIONS(NSInteger, BUPlayerGestureOption) { + BUPlayerGestureOptionNone = 0, + BUPlayerGestureOptionVolumeEnabled = 1 << 0, + BUPlayerGestureOptionBrightnessEnabled = 1 << 1, + BUPlayerGestureOptionFastSkipEnabled = 1 << 2, + BUPlayerGestureOptionSigleTapEnabled = 1 << 3, + BUPlayerGestureOptionDoubleTapEnabled = 1 << 4, +}; +/** + * 默认的控制视图或完成视图的元素 + */ +typedef NS_OPTIONS(NSInteger, BUPlayerDefaultControlElement) { + BUPlayerControlElementNone = 0, + BUPlayerControlElementTop = 1 << 0, + BUPlayerControlElementBottom = 1 << 1, + BUPlayerControlElementActivity = 1 << 2, + BUPlayerControlElementFailHint = 1 << 3, + BUPlayerControlElementProgress = 1 << 4, + BUPlayerControlElementPlay = 1 << 5, + BUPlayerControlElementReplay = 1 << 6, +}; + +typedef NSString * BUPlayerUIControlImage; +typedef NSString * BUPlayerUIControlLocalizedString; + +#define BUPlayerUIControlImage_LeftBack @"bu_leftback" +#define BUPlayerUIControlImage_TopShadow @"bu_topShadow" +#define BUPlayerUIControlImage_BottomShadow @"bu_bottomShadow" +#define BUPlayerUIControlImage_BottomPlay @"bu_bottomPlay" +#define BUPlayerUIControlImage_BottomPause @"bu_bottomPause" +#define BUPlayerUIControlImage_FullClose @"bu_fullClose" +#define BUPlayerUIControlImage_SliderDot @"bu_sliderDot" +#define BUPlayerUIControlImage_FullScreen @"bu_fullScreen" +#define BUPlayerUIControlImage_ShrinkScreen @"bu_shrinkScreen" +#define BUPlayerUIControlImage_Replay @"bu_replay" +#define BUPlayerUIControlImage_Play @"bu_play" +#define BUPlayerUIControlImage_Pause @"bu_pause" +#define BUPlayerUIControlImage_FastForward @"bu_fastForward" +#define BUPlayerUIControlImage_FastBackward @"bu_fastBackward" + +#define BUPlayerUIControlLocalizedString_Close @"bu_LoStr_Close" + +@protocol BUPlayerControlViewProtocol + +- (instancetype)initWithContrlResourceBundle:(NSBundle *)bundle + images:(NSDictionary *)images + localizedStrings:(NSDictionary *)localizedStrings; + +/** + * 设置默认控制视图或完成视图的元素组合方式 + * 默认显示全部 + */ +- (void)setPlayerDefaultControlElement:(BUPlayerDefaultControlElement)element; +/** + * 获取播放完成视图容器 + * 若需自定义可先移除BUPlayerControlElementReplay,再添加自定义视图 + */ +- (UIView *)finishedContainer; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerDefine.h.meta new file mode 100644 index 00000000..49ef389c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06b943223dd8f4c689098b9c76b9588b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerInternalDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerInternalDefine.h new file mode 100755 index 00000000..e8593952 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerInternalDefine.h @@ -0,0 +1,81 @@ +// +// BUPlayerInternalDefine.h +// BUFoundation +// +// Created by bytedance on 2020/12/17. +// + +#ifndef BUPlayerInternalDefine_h +#define BUPlayerInternalDefine_h + +typedef NS_ENUM(NSInteger, BUVideoPlayerState) { + BUVideoPlayerStateFailed = 0, + BUVideoPlayerStateBuffering = 1, + BUVideoPlayerStatePlaying = 2, + BUVideoPlayerStateStopped = 3, + BUVideoPlayerStatePause = 4, + BUVideoPlayerStateDefault = 5 +}; + +typedef NS_ENUM(NSUInteger, BUVideoPlayerDecoeMode) { + BUVideoPlayerDecoeMode_H265_Local = 0, + BUVideoPlayerDecoeMode_H265_Cache = 1, + BUVideoPlayerDecoeMode_H265_Remote = 2, + + BUVideoPlayerDecoeMode_H264_Local = 3, + BUVideoPlayerDecoeMode_H264_Cache = 4, + BUVideoPlayerDecoeMode_H264_Remote = 5, + BUVideoPlayerDecoeMode_Last = 5, +}; + +@class BUPlayer; + +@protocol BUVideoPlayerDelegate + +@optional +/** + This method is called when the player status changes. + */ +- (void)player:(BUPlayer *)player stateDidChanged:(BUVideoPlayerState)playerState; + + +/// 播放器播放模式改变,当播放失败时会逐级降级 +/// @param player 播放器播放模式改变 +/// @param democeMode 播放模式 +- (void)player:(BUPlayer *)player decodeModeChanged:(BUVideoPlayerDecoeMode)democeMode; + +/** + This method is called when the player is ready. + */ +- (void)playerReadyToPlay:(BUPlayer *)player; + +/** + This method is called when the player is ready, while application in background. + */ +- (void)playerReadyToPlayWhenApplicationEnterBackground:(BUPlayer *)player; + +/** + This method is called when the player plays completion or occurrs error. + */ +- (void)playerDidPlayFinish:(BUPlayer *)player error:(NSError *)error; + +/** + This method is called when the player is clicked. + */ +- (void)player:(BUPlayer *)player recognizeTapGesture:(UITapGestureRecognizer *)gesture; + + +/** + This method is called when the view is clicked during ad play. + */ +- (void)playerTouchesBegan:(BUPlayer *)player; + + +/// Will be called when set BoundaryTime. +/// @param player player +- (void)playerBoundaryTimeReached:(BUPlayer *)player; + +@end + + +#endif /* BUPlayerInternalDefine_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerInternalDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerInternalDefine.h.meta new file mode 100644 index 00000000..f3a371f2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerInternalDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1913da6aa567b483794798d08879e091 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerItem.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerItem.h new file mode 100755 index 00000000..5174c472 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerItem.h @@ -0,0 +1,54 @@ +// +// BUPlayerItem.h +// BUAdSDK +// +// Created by hlw on 2017/12/21. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUPlayerItem : NSObject + +/// 视频标题 +@property (nonatomic, copy) NSString *title; + +/// 视频URL - H.264 - 远程 +@property (nonatomic, strong) NSURL *videoURL_H264_Remote; + +/// 视频URL - H.264 - 本地 兼容方案,激励视频由上层控制 +@property (nonatomic, strong) NSURL *videoURL_H264_Local; + +/// 视频URL - HEVC - 远程 +@property (nonatomic, strong) NSURL *videoURL_H265_Remote; + +/// 视频URL - HEVC - 本地 +@property (nonatomic, strong) NSURL *videoURL_H265_Local; + +/// 允许使用 H265 进行播放 +@property (nonatomic, assign) BOOL enableH265; + +/// H265 下允许降级播放 +@property (nonatomic, assign) BOOL enableH265DowngradePlay; + +/// H264 下允许降级播放 +@property (nonatomic, assign) BOOL enableH264DowngradePlay; + +/// 允许使用边下边播 +@property (nonatomic, assign) BOOL enableCache; + +/// 视频封面网络图片url +@property (nonatomic, copy) NSString *placeholderImageURLString; +/** 视频封面本地图片 */ +@property (nonatomic, strong) UIImage *placeholderImage; +/// 默认图的展示形式 +@property (nonatomic, assign) UIViewContentMode placeholderImageContentMode; + +/// 从xx秒开始播放视频(默认0) +@property (nonatomic, assign) NSInteger seekTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerItem.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerItem.h.meta new file mode 100644 index 00000000..7ff7f3aa --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerItem.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 112a936c47af347a68603fc8c220f958 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerSettingsProtocol.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerSettingsProtocol.h new file mode 100755 index 00000000..2c31f51c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerSettingsProtocol.h @@ -0,0 +1,26 @@ +// +// BUPlayerSettingsProtocol.h +// BUFoundation +// +// Created by bytedance on 2020/12/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUPlayerSettingsProtocol + +@optional ++ (NSString *)videoCachePath; + ++ (NSBundle *)playerResourceBundle; + ++ (NSDictionary *)playerControlViewImages; + ++ (NSDictionary *)playerControlLocalizedString; + ++ (void)audioSessionSetting; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerSettingsProtocol.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerSettingsProtocol.h.meta new file mode 100644 index 00000000..daee2326 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUPlayerSettingsProtocol.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a35f0d4a79e6a4e3db2a394fba4c1da1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManager.h new file mode 100755 index 00000000..ff316970 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManager.h @@ -0,0 +1,29 @@ +// +// BUQueueManager.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/8/6. +// + +#import +#import "BUQueueManagerConfig.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BUQueueManager : NSObject + +@property (nonatomic, strong, readonly) BUQueueManagerConfig *config; + +- (void)updateConfig:(BUQueueManagerConfig *)config; + ++ (NSString *)serialQueuePrefixLabel; ++ (NSString *)concurrentQueuePrefixLabel; + +- (void)associateObject:(id)object withSerialQueue:(dispatch_queue_t)serialQueue; +- (void)associateObject:(id)object withConcurrentQueue:(dispatch_queue_t)concurrentQueue; + +#pragma mark - Signal ++ (instancetype)sharedInstance; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManager.h.meta new file mode 100644 index 00000000..327316f9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cac6b4af3f6b54e19ad06f298822046a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManagerConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManagerConfig.h new file mode 100755 index 00000000..1fdfeec9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManagerConfig.h @@ -0,0 +1,20 @@ +// +// BUQueueManagerConfig.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/8/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUQueueManagerConfig : NSObject + +@property (nonatomic, copy) NSString *queuePrefixLabel; + ++ (instancetype)defaultConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManagerConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManagerConfig.h.meta new file mode 100644 index 00000000..0f408c72 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUQueueManagerConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e69ef9b75e7004a69b0c29a2073b7670 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUReachability.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUReachability.h new file mode 100755 index 00000000..23160eba --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUReachability.h @@ -0,0 +1,186 @@ +/* + File: BUReachability.h + Abstract: Basic demonstration of how to use the SystemConfiguration Reachablity APIs. + Version: 3.5 + + Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple + Inc. ("Apple") in consideration of your agreement to the following + terms, and your use, installation, modification or redistribution of + this Apple software constitutes acceptance of these terms. If you do + not agree with these terms, please do not use, install, modify or + redistribute this Apple software. + + In consideration of your agreement to abide by the following terms, and + subject to these terms, Apple grants you a personal, non-exclusive + license, under Apple's copyrights in this original Apple software (the + "Apple Software"), to use, reproduce, modify and redistribute the Apple + Software, with or without modifications, in source and/or binary forms; + provided that if you redistribute the Apple Software in its entirety and + without modifications, you must retain this notice and the following + text and disclaimers in all such redistributions of the Apple Software. + Neither the name, trademarks, service marks or logos of Apple Inc. may + be used to endorse or promote products derived from the Apple Software + without specific prior written permission from Apple. Except as + expressly stated in this notice, no other rights or licenses, express or + implied, are granted by Apple herein, including but not limited to any + patent rights that may be infringed by your derivative works or by other + works in which the Apple Software may be incorporated. + + The Apple Software is provided by Apple on an "AS IS" basis. APPLE + MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION + THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND + OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. + + IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, + MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED + AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), + STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + Copyright (C) 2014 Apple Inc. All Rights Reserved. + + */ + +#import +#import +#import + +typedef NS_ENUM(NSInteger, BUNetWorkTypeCode) { + // 初始状态,未连接 + BUNetWorkTypeCode_None = -1, + // 未知 + BUNetWorkTypeCode_Unknown = 0, + BUNetWorkTypeCode_Mobile = 1, + BUNetWorkTypeCode_2G = 2, + BUNetWorkTypeCode_3G = 3, + BUNetWorkTypeCode_Wifi = 4, + BUNetWorkTypeCode_4G = 5, + BUNetWorkTypeCode_5G = 6, +}; + +typedef NS_ENUM(NSInteger) { + // 程序无法判断出 App 的网络权限设置 + kBUNetworkAuthorizationStatusCantDetermined = 0, + // App 未开启蜂窝数据网络权限 + kBUNetworkAuthorizationStatusCellNotPermitted, + // App 未开启无线局域网与蜂窝移动网络权限,此项仅可能在国行 iPhone 手机上出现 + kBUNetworkAuthorizationStatusWLANAndCellNotPermitted, +} kBUNetworkAuthorizationStatus; + +extern NSString *kBUReachabilityChangedNotification; + +// 是否开启 “网络状态检测” 的优化,需要外部调用方以 [[NSUserDefaults standardUserDefaults] setBool:forKey:] 方式写入 +extern NSString * const BUReachabilityDetectOptimizeKey; + +@interface BUReachability : NSObject + + +/** + 判断指定域名的连通性 + + @param hostName 域名 + @return BUReachability对象 + */ ++ (instancetype)reachabilityWithHostName:(NSString *)hostName; + + +/** + 判断指定IP地址的连通性 + + @param hostAddress IP地址 + @return BUReachability对象 + */ ++ (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress; + +/** + 判断网络默认连接的连通性(应用连接到指定host主机时除外) + + @return BUReachability对象 + */ ++ (instancetype)reachabilityForInternetConnection; + +/** + 开始在当前runloop监听连通性通知 + + @return 是否成功开始监听 + */ +- (BOOL)startNotifier; + + +/** + 结束监听连通性通知 + */ +- (void)stopNotifier; + + +/** + 当前连通性状态 + + @return NetworkStatus枚举值 + */ +- (BUNetWorkTypeCode)currentReachabilityStatus; + +/** + 是否需要连接。如WWAN需要首先建立一个可用连接才能被激活。WiFi可能需要一个VPN连接等 + + @return 是否需要连接 + */ +- (BOOL)connectionRequired; + + +/** + 获取 App 当前的网络权限设置状态 + + 因苹果尚未提供网络权限判断的 API,此方法目前只是在网络 NotReachable 时检查系统连接状态, + 利用排除法推断出 App 当前没有 蜂窝数据网络权限 或者 WIFI及蜂窝数据网络权限,排除原理参见 + https://wiki.bytedance.net/pages/viewpage.action?pageId=107808003 + + 在其它情况下(例如网络 Reachable 或者飞行模式)均返回 CantDetermined,上层业务调用方需注意 + + @return 参见 kBUNetworkAuthorizationStatus 定义 + */ +- (kBUNetworkAuthorizationStatus)currentNetworkAuthorizationStatus; + +@end + + +@interface BUReachability (Cellular) + +/** + 2G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is2GConnected; + +/** + 3G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is3GConnected; + +/** + 4G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is4GConnected; + + +/** + 2017.5.22添加 + 借鉴微信方式判断当前网络是否连通 + + @return 网络是否可以联调 + */ ++ (BOOL)isNetworkConnected; + +@end + + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUReachability.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUReachability.h.meta new file mode 100644 index 00000000..1c1e3d1b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUReachability.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ed825971f1e964faaa52430f87e1efae +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURexxarEngine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURexxarEngine.h new file mode 100755 index 00000000..af868ace --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURexxarEngine.h @@ -0,0 +1,59 @@ +// +// BURexxarEngine.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BUStaticPlugin.h" + +@protocol BUJSBAuthorization; +@protocol BURexxarEngine + +@required + +/** + engine所在的ViewController, 提供JSBridge更多的上下文. 可为空. + */ +@property (nonatomic, weak) UIViewController *ttr_sourceController; + +/** + engine所挂载的静态plugin集合 + */ +@property (nonatomic, strong) BUStaticPlugin *ttr_staticPlugin; + +/** + engine当前页面地址 + */ +@property (nonatomic, strong, readonly) NSURL *ttr_url; + +@optional +/** + JSBridge授权器, 每个业务方可自行注入. 默认为nil, 全部public权限 + */ +@property (nonatomic, strong) id ttr_authorization; + +#pragma mark - Executing JavaScript +@required + +/** + 注入JavaScrip + + @param script 需要注入的script + @param completion 完成的回调 + */ +- (void)ttr_evaluateJavaScript:(NSString *)script completionHandler:(void (^)(id result, NSError *error))completion; + + + +/** + 对容器内发送通知 + + @param event 通知名称 + @param data 携带的信息 + */ +- (void)ttr_fireEvent:(NSString *)event data:(NSDictionary *)data; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURexxarEngine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURexxarEngine.h.meta new file mode 100644 index 00000000..9f673935 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURexxarEngine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 51b061ceccebc4fe299ca67d6c0a04c9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURouter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURouter.h new file mode 100755 index 00000000..93176fa6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURouter.h @@ -0,0 +1,17 @@ +// +// BUActionHelper.h +// BUAdSDK +// +// Created by carl on 2018/1/4. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import "UIViewController+BUUtilities.h" + +@interface BURouter : NSObject ++ (void)presentFromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC; + ++ (void)presentFromViewControllerOverFullScreen:(UIViewController *)fromVC toViewController:(UIViewController *)toVC; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURouter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURouter.h.meta new file mode 100644 index 00000000..ca320192 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BURouter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 27a3f5b22d03a4b89b8c68313d057c08 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUScreenHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUScreenHelper.h new file mode 100755 index 00000000..71ae0255 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUScreenHelper.h @@ -0,0 +1,119 @@ +// +// BDUScreenHelp.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/11/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import + +//设备类型 +typedef NS_ENUM(NSInteger, BUDeviceMode) { + //iPad + BUDeviceModePad, + //iPhone6plus,iPhone6Splus + BUDeviceMode736, + //iPhone6,iPhone6S + BUDeviceMode667, + //iPhone5,iPhone5C,iPhone5S,iPhoneSE + BUDeviceMode568, + //iPhone4,iPhone4s + BUDeviceMode480, + //iPhoneX,iphoneXS + BUDeviceMode812, + //iphoneXR,iphoneRS Max + BUDeviceMode896 +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface BUScreenHelper: NSObject + +/** + * 判断设备是iPhone4, iPhone4S + * + * @return Yes or No + */ ++ (BOOL)is480Screen; + +/** + * 判断设备是iPhone5, iPhone5C, iPhone5S, iPhoneSE + * + * @return Yes or No + */ ++ (BOOL)is568Screen; + +/** + * 判断设备是iPhone6,iPhone6S + * + * @return Yes or No + */ ++ (BOOL)is667Screen; + +/** + * 判断设备是iPhone6plus, iPhone6Splus + * + * @return Yes or No + */ ++ (BOOL)is736Screen; +// iphone6,iphone6 plus + +/** + * 判断设备是iPhoneX,iphoneXS + * + * @return Yes or No + */ ++ (BOOL)is812Screen; + +/** + * 判断设备是iphoneXR,iphoneRS Max + * + * @return Yes or No + */ ++ (BOOL)is896Screen; + +/** + * 判断设备的宽度大于320 + * + * @return Yes or No + */ ++ (BOOL)isScreenWidthLarge320; + +/** + * 判断设备是iPad + * + * @return Yes or No + */ ++ (BOOL)isPadDevice; + +/** + * 判断设备是iPad pro + * + * @return Yes or No + */ ++ (BOOL)isIpadProDevice; + +/** + * 获取设备类型 + * + * @return BUDeviceType类型 + */ ++ (BUDeviceMode)getDeviceType; + +/** + * 分辨率,区分横竖屏,形如@"414*736" + * @return 横竖屏返回样式,横屏样式@"736*414",竖屏样式@"414*736" + */ ++ (nullable NSString *)resolutionString; + +/** + * 分辨率,区分横竖屏,形如@"414x736" + * @return 横竖屏返回样式,横屏样式@"736x414",竖屏样式@"414x736" + */ ++ (NSString *)displayDensity; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUScreenHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUScreenHelper.h.meta new file mode 100644 index 00000000..fb093adb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUScreenHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f7ff922213fa845a0b65b9280865ff3b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUStaticPlugin.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUStaticPlugin.h new file mode 100755 index 00000000..72ac7dd2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUStaticPlugin.h @@ -0,0 +1,22 @@ +// +// BUStaticPlugin.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BUJSBCommand.h" + +@protocol BURexxarEngine; + +typedef void(^BUJSBStaticHandler)(NSDictionary *params, BUJSBResponse completion); + +@interface BUStaticPlugin : NSObject + +- (void)registerHandlerBlock:(BUJSBStaticHandler)handler forMethodName:(NSString*)method; + +- (BOOL)callHandlerWithCommand:(BUJSBCommand *)command engine:(id)engine completion:(BUJSBResponse)completion; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUStaticPlugin.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUStaticPlugin.h.meta new file mode 100644 index 00000000..fc650b8c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUStaticPlugin.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1d4f07be5588e4aea8ea50231c079a8d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCRequestParam.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCRequestParam.h new file mode 100755 index 00000000..e78f0002 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCRequestParam.h @@ -0,0 +1,16 @@ +// +// Created by bytedance on 2020/12/16. +// + +#import +#import "BUCommonMacros.h" + +@interface BUTNCRequestParam : NSObject + +@property (nonatomic, copy) NSString *version; + +@property (nonatomic, copy) NSString *deviceDid; + +@property (nonatomic, copy) NSString *ssAppID; + +@end \ No newline at end of file diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCRequestParam.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCRequestParam.h.meta new file mode 100644 index 00000000..8924348b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCRequestParam.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01cd664b2f8294a8c87718756432b7f7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCServiceManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCServiceManager.h new file mode 100755 index 00000000..3bd7ac85 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCServiceManager.h @@ -0,0 +1,31 @@ +// +// Created by bytedance on 2020/12/15. +// + +#import +#import "BUTNCRequestParam.h" + +@class BUNetworkRequest; + +@interface BUTNCServiceConfig : NSObject + +@property (nonatomic, copy, readonly) NSString *appKey; + +@property(nonatomic, copy, readonly) NSString *tncPath; + +@property(nonatomic, copy, readonly) NSArray *tncDomains; + +@property(nonatomic, copy, readonly) BUTNCRequestParam *(^tncRequestParam)(void); +@end + +__attribute__((objc_subclassing_restricted)) +@interface BUTNCServiceManager : NSObject + ++ (void)registerTNCServiceWithAppKey:(NSString *)appKey tncDomains:(NSArray *)tncDomains tncPath:(NSString *)tncPath requestParam:(BUTNCRequestParam * (^)(void))param; + ++ (void)unregisterTNCServiceWithAppKey:(NSString *)appKey; + ++ (NSString *)TNCUrlWithBaseUrl:(NSString *)baseUrl forRequest:(BUNetworkRequest *)request; + ++ (void)refreshTNCDomainsWithAppKey:(NSString *)appKey; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCServiceManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCServiceManager.h.meta new file mode 100644 index 00000000..789fcf92 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTNCServiceManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d4c0222f135ed4fd5a4a0302f08ed56d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeDictionary.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeDictionary.h new file mode 100755 index 00000000..4fea93c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeDictionary.h @@ -0,0 +1,19 @@ + +// BUThreadSafeDictionary.h +// Created by Siwant on 2018/1/22. +// Copyright © 2018年 bytedance. All rights reserved. + +#import + +@interface BUThreadSafeDictionary: NSMutableDictionary +- (id)objectForKey:(id )aKey; +- (id)valueForKey:(id)aKey; +- (void)setObject:(id)object forKey:(id )aKey; +- (void)setValue:(id)value forKey:(NSString *)key; +- (void)removeAllObjects; +- (void)removeObjectForKey:(id )aKey; +- (NSDictionary *)dictionary; +- (NSArray *)allKeys; +- (NSArray *)allValues; +- (void)removeObjectsForKeys:(NSArray *)keyArray; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeDictionary.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeDictionary.h.meta new file mode 100644 index 00000000..0fed9653 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeDictionary.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2769663a59bc9435fa0b89314ac35b30 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeMutableArray.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeMutableArray.h new file mode 100755 index 00000000..081469f1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeMutableArray.h @@ -0,0 +1,17 @@ +// +// BUThreadSafeMutableArray.h +// BUAdSDK +// +// Created by 李盛 on 2019/1/3. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUThreadSafeMutableArray : NSMutableArray + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeMutableArray.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeMutableArray.h.meta new file mode 100644 index 00000000..7cd0bf08 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUThreadSafeMutableArray.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9708ae5ec5fbb480caff7ddf90349c1b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTimer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTimer.h new file mode 100755 index 00000000..f861d62f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTimer.h @@ -0,0 +1,36 @@ +// +// BUTimer.h +// BUAdSDK +// +// Created by 李盛 on 2018/6/20. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUTimer : NSObject + +@property (nonatomic, copy) NSString *runLoopMode; + ++ (BUTimer *)timerWithTimeInterval:(NSTimeInterval)seconds + target:(nullable id)target + selector:(SEL)aSelector + repeats:(BOOL)repeats; + ++ (BUTimer *)timerWithTimeInterval:(NSTimeInterval)seconds + repeats:(BOOL)repeats + block:(void (^)(BUTimer *timer))block; + +- (BOOL)isValid; +- (void)invalidate; +- (BOOL)isScheduled; +- (BOOL)scheduleNow; +- (BOOL)pause; +- (BOOL)resume; +- (NSTimeInterval)initialTimeInterval; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTimer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTimer.h.meta new file mode 100644 index 00000000..02f3bef5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUTimer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d3a99369c8fdb424a9f7dfc8ef1665f9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUIResponderHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUIResponderHelper.h new file mode 100755 index 00000000..77152a43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUIResponderHelper.h @@ -0,0 +1,38 @@ +// +// BUUIResponderHelper.h +// BUSDKProject +// +// Created by ranny_90 on 2017/5/20. +// Copyright © 2017年 ranny_90. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUUIResponderHelper : NSObject + +// 获取当前应用的广义mainWindow ++ (nullable UIWindow *)mainWindow __attribute__((deprecated("Use bu_mainWindow in UIWindow+BUUtilities instead."))); + +// 广义mainWindow的大小(兼容iOS7) ++ (CGSize)windowSize __attribute__((deprecated("Use bu_windowSize in UIWindow+BUUtilities instead."))); + + +// 获取广义mainWindow的rootViewController ++ (nullable UIViewController*)mainWindowRootViewController __attribute__((deprecated("Use bu_mainWindowRootViewController in UIViewController+BUUtilities instead."))); + +// 获取指定UIResponder的链下游第一个ViewController对象 ++ (nullable UIViewController*)nextViewControllerFor:(UIResponder* _Nullable)responder __attribute__((deprecated("Use bu_nextViewControllerFor: in UIViewController+BUUtilities instead."))); + +// 获取指定UIResponder的链下游第一个UINavigationController对象 ++ (nullable UINavigationController*)nextNavigationControllerFor:(UIResponder* _Nullable)responder __attribute__((deprecated("Use bu_nextNavigationControllerFor: in UIViewController+BUUtilities instead."))); + +/** 查找当前显示的ViewController*/ ++ (UIViewController *)topViewController __attribute__((deprecated("Use bu_topViewController in UIViewController+BUUtilities instead."))); + ++ (UIViewController *)recursiveFindCurrentShowViewControllerFromViewController:(UIViewController *)fromVC __attribute__((deprecated("Use bu_recursiveFindCurrentShowViewControllerFromViewController: in UIViewController+BUUtilities instead."))); +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUIResponderHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUIResponderHelper.h.meta new file mode 100644 index 00000000..091c350c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUIResponderHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 71bf75e3bcc5240bda908a12266143cc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUserAgentHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUserAgentHelper.h new file mode 100755 index 00000000..6b36117b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUserAgentHelper.h @@ -0,0 +1,18 @@ +// +// BUUserAgentHelper.h +// BUAdSDK +// +// Created by cuiyanan on 2019/9/3. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import +#import "BUCommonMacros.h" + +@interface BUUserAgentHelper : NSObject +BU_SINGLETION(BUUserAgentHelper); + +- (NSString *)userAgent; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUserAgentHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUserAgentHelper.h.meta new file mode 100644 index 00000000..46228481 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUUserAgentHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 462df39214c32425d87ec21daa978e87 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUVideoPrefetchManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUVideoPrefetchManager.h new file mode 100755 index 00000000..871d2360 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUVideoPrefetchManager.h @@ -0,0 +1,44 @@ +// +// BUVideoPrefetchManager.h +// BUAdSDK +// +// Created by 李盛 on 2018/9/20. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerSettingsProtocol.h" + +typedef void (^prefetchVideoCancelBlock)(NSInteger preloadSize); + +@interface BUVideoPrefetchManager : NSObject + ++ (instancetype)sharedInstance; + +/// 预加载视频 +/// @param videoUrl 视频 URL +/// @param storgeName 视频文件存储名称 +/// @param prefetchSize 预加载大小 +/// @param prefetchStartBlock 预加载开始回调 +/// @param prefetchFinshBlock 预加载结束回调 +- (void)prefetchWithVideoUrl:(NSURL *)videoUrl + storgeName:(NSString *)storgeName + prefetchSize:(NSUInteger)prefetchSize + prefetchStartBlock:(void(^)(void))prefetchStartBlock + prefetchFinshBlock:(void(^)(BOOL, NSInteger, NSError *, NSString *))prefetchFinshBlock + prefetchCancelBlock:(prefetchVideoCancelBlock)prefetchCancelBlock; + +/// 判断url是否正在下载 +/// @param videoURL 视频 URL +- (BOOL)prefetchUrlInQueue:(NSURL *)videoURL; + +/// 取消预加载,播放时应先取消预加载。 +/// @param videoURL 视频 URL +- (void)cancelPrefetch:(NSURL *)videoURL; + + +/// 查询视频预加载大小 +/// @param videoUrl 视频 URL +- (NSInteger)queryPrefetchSizeWithVideoUrl:(NSURL *)videoUrl; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUVideoPrefetchManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUVideoPrefetchManager.h.meta new file mode 100644 index 00000000..a065b489 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUVideoPrefetchManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 582b301119c5a4050b5998ce58901ac4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWKWebView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWKWebView.h new file mode 100755 index 00000000..65a12a66 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWKWebView.h @@ -0,0 +1,25 @@ +// +// BUWKWebView.h +// BURexxar +// +// Created by muhuai on 2017/5/5. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BUWebViewDefine.h" + +@interface BUWKWebView : WKWebView +/// 白屏检测 +- (void)bu_detectBlankWebViewCompleteBlock:(void(^)(BOOL, NSError *))block; + +/// 白屏检测百分比 +- (void)bu_detectBlankPercentCompleteBlock:(void(^)(CGFloat bgColorPercent, NSError *error))block; +/// jsbridge 白屏检测百分比 +- (void)bu_detectBlankPercentWithImageStr:(NSString *)imageStr completeBlock:(void(^)(CGFloat bgColorPercent, NSError *))block; + +- (void)ttr_fireEvent:(NSString *)event data:(NSDictionary *)data completion:(void (^)(id result, NSError *error))completionHandler; + +@property (nonatomic, assign) BOOL reallySuccess; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWKWebView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWKWebView.h.meta new file mode 100644 index 00000000..19e50ab6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWKWebView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f503b5bdf5a6b41abaa89c10c30017a9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebImageDataCacheManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebImageDataCacheManager.h new file mode 100755 index 00000000..cafb88ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebImageDataCacheManager.h @@ -0,0 +1,21 @@ +// +// LCDWebImageDataCache.h +// LCDSamples +// +// Created by yuxr on 2021/7/8. +// Copyright © 2021 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUWebImageDataCacheManager : NSObject + ++ (instancetype)sharedManager; +- (NSData *)imageDataForKey:(NSString *)key; +- (void)storeImageData:(NSData *)imageData forKey:(NSString *)key; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebImageDataCacheManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebImageDataCacheManager.h.meta new file mode 100644 index 00000000..cb4c9ed7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebImageDataCacheManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6aac5f9aba7ac4d85b9d061d87fc1e8f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewDefine.h new file mode 100755 index 00000000..964bab7a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewDefine.h @@ -0,0 +1,103 @@ +// +// BUWebViewDefine.h +// BURexxar +// +// Created by muhuai on 2017/5/17. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BURexxarEngine.h" +#import "BUJSInjector.h" + +typedef NS_ENUM(NSInteger, BUWebViewNavigationType) { + BUWebViewNavigationTypeLinkClicked, + BUWebViewNavigationTypeFormSubmitted, + BUWebViewNavigationTypeBackForward, + BUWebViewNavigationTypeReload, + BUWebViewNavigationTypeFormResubmitted, + BUWebViewNavigationTypeOther +}; + +@protocol BUWebView; + +@protocol BUWebViewDelegate + +@optional +- (BOOL)webView:(UIView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(BUWebViewNavigationType)navigationType; + +- (void)webViewDidStartLoad:(UIView *)webView; + +- (void)webViewDidFinishLoad:(UIView *)webView; + +- (void)webView:(UIView *)webView didFailLoadWithError:(NSError *)error; + +- (void)webViewWebContentProcessDidTerminate:(UIView *)webView API_AVAILABLE(macosx(10.11), ios(9.0)); + +//二方页面有 domReady回调 +- (void)webViewDomReady:(UIView *)webView; +@end + + +/** + BUWKWebView 都会实现此协议, 用来对平两个容器之间API的差异 + */ +@protocol BUWebView + +@property (nonatomic, strong ,readonly) UIScrollView *ttr_scrollView; + +/** + JS脚本注入器 使用说明见:BUJSInjector.h + */ +@property (nonatomic, strong, readonly) BUJSInjector *ttr_injector; +#pragma mark - Loading Content + +- (void)ttr_loadRequest:(NSURLRequest *)request; + +- (void)ttr_loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; + + +/** + WK下特有的方法 + + @param URL 本地文件URL, 注意需要为file:// + @param readAccessURL WK下可以指定获取一个本地目录的权限 + */ +- (void)ttr_loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL; + +- (void)ttr_stopLoading; + +- (void)ttr_reload; + +#pragma mark - Moving Back and Forward +- (BOOL)ttr_canGoBack; + +- (BOOL)ttr_canGoForward; + +- (void)ttr_goBack; + +- (void)ttr_goForward; + + +#pragma mark - Multi Delegate +/** +BUWKWebView内部实现成多路代理, 按注册的顺序来依次询问. + + @param delegate webview代理 + */ +- (void)ttr_addDelegate:(id)delegate; + +/** + 移除指定代理 + + @param delegate 需要移除的代理 + */ +- (void)ttr_removeDelegate:(id)delegate; + +/** + 移除所有代理 + */ +- (void)ttr_removeAllDelegate; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewDefine.h.meta new file mode 100644 index 00000000..d2758115 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 695832475e4744d648ef2086faebf0b2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewProgressView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewProgressView.h new file mode 100755 index 00000000..f920a98b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewProgressView.h @@ -0,0 +1,25 @@ +// +// BUWebViewProgressView.h +// BURexxar +// +// Created by muhuai on 2017/6/13. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import "BUWebViewDefine.h" + +#import +#import + + +/** + 假进度条 + 使用方法: + 1.addSubView到 WebView中 + 2.通过多路代理将此控件设为其中一个子代理 + */ +@interface BUWebViewProgressView : UIView + +@property (nonatomic, strong) UIColor *lineFillColor; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewProgressView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewProgressView.h.meta new file mode 100644 index 00000000..250055af --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUWebViewProgressView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c24fef82c9519429fb7c88e2743f9864 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYClassInfo.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYClassInfo.h new file mode 100755 index 00000000..04d59cc9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYClassInfo.h @@ -0,0 +1,197 @@ +// +// BUYYClassInfo.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Type encoding's type. + */ +typedef NS_OPTIONS(NSUInteger, BUYYEncodingType) { + BUYYEncodingTypeMask = 0xFF, ///< mask of type value + BUYYEncodingTypeUnknown = 0, ///< unknown + BUYYEncodingTypeVoid = 1, ///< void + BUYYEncodingTypeBool = 2, ///< bool + BUYYEncodingTypeInt8 = 3, ///< char / BOOL + BUYYEncodingTypeUInt8 = 4, ///< unsigned char + BUYYEncodingTypeInt16 = 5, ///< short + BUYYEncodingTypeUInt16 = 6, ///< unsigned short + BUYYEncodingTypeInt32 = 7, ///< int + BUYYEncodingTypeUInt32 = 8, ///< unsigned int + BUYYEncodingTypeInt64 = 9, ///< long long + BUYYEncodingTypeUInt64 = 10, ///< unsigned long long + BUYYEncodingTypeFloat = 11, ///< float + BUYYEncodingTypeDouble = 12, ///< double + BUYYEncodingTypeLongDouble = 13, ///< long double + BUYYEncodingTypeObject = 14, ///< id + BUYYEncodingTypeClass = 15, ///< Class + BUYYEncodingTypeSEL = 16, ///< SEL + BUYYEncodingTypeBlock = 17, ///< block + BUYYEncodingTypePointer = 18, ///< void* + BUYYEncodingTypeStruct = 19, ///< struct + BUYYEncodingTypeUnion = 20, ///< union + BUYYEncodingTypeCString = 21, ///< char* + BUYYEncodingTypeCArray = 22, ///< char[10] (for example) + + BUYYEncodingTypeQualifierMask = 0xFF00, ///< mask of qualifier + BUYYEncodingTypeQualifierConst = 1 << 8, ///< const + BUYYEncodingTypeQualifierIn = 1 << 9, ///< in + BUYYEncodingTypeQualifierInout = 1 << 10, ///< inout + BUYYEncodingTypeQualifierOut = 1 << 11, ///< out + BUYYEncodingTypeQualifierBycopy = 1 << 12, ///< bycopy + BUYYEncodingTypeQualifierByref = 1 << 13, ///< byref + BUYYEncodingTypeQualifierOneway = 1 << 14, ///< oneway + + BUYYEncodingTypePropertyMask = 0xFF0000, ///< mask of property + BUYYEncodingTypePropertyReadonly = 1 << 16, ///< readonly + BUYYEncodingTypePropertyCopy = 1 << 17, ///< copy + BUYYEncodingTypePropertyRetain = 1 << 18, ///< retain + BUYYEncodingTypePropertyNonatomic = 1 << 19, ///< nonatomic + BUYYEncodingTypePropertyWeak = 1 << 20, ///< weak + BUYYEncodingTypePropertyCustomGetter = 1 << 21, ///< getter= + BUYYEncodingTypePropertyCustomSetter = 1 << 22, ///< setter= + BUYYEncodingTypePropertyDynamic = 1 << 23, ///< @dynamic +}; + +/** + Get the type from a Type-Encoding string. + + @discussion See also: + https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html + https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtPropertyIntrospection.html + + @param typeEncoding A Type-Encoding string. + @return The encoding type. + */ +BUYYEncodingType BUYYEncodingGetType(const char *typeEncoding); + + +/** + Instance variable information. + */ +@interface BUYYClassIvarInfo : NSObject +@property (nonatomic, assign, readonly) Ivar ivar; ///< ivar opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< Ivar's name +@property (nonatomic, assign, readonly) ptrdiff_t offset; ///< Ivar's offset +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< Ivar's type encoding +@property (nonatomic, assign, readonly) BUYYEncodingType type; ///< Ivar's type + +/** + Creates and returns an ivar info object. + + @param ivar ivar opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithIvar:(Ivar)ivar; +@end + + +/** + Method information. + */ +@interface BUYYClassMethodInfo : NSObject +@property (nonatomic, assign, readonly) Method method; ///< method opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< method name +@property (nonatomic, assign, readonly) SEL sel; ///< method's selector +@property (nonatomic, assign, readonly) IMP imp; ///< method's implementation +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< method's parameter and return types +@property (nonatomic, strong, readonly) NSString *returnTypeEncoding; ///< return value's type +@property (nullable, nonatomic, strong, readonly) NSArray *argumentTypeEncodings; ///< array of arguments' type + +/** + Creates and returns a method info object. + + @param method method opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithMethod:(Method)method; +@end + + +/** + Property information. + */ +@interface BUYYClassPropertyInfo : NSObject +@property (nonatomic, assign, readonly) objc_property_t property; ///< property's opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< property's name +@property (nonatomic, assign, readonly) BUYYEncodingType type; ///< property's type +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< property's encoding value +@property (nonatomic, strong, readonly) NSString *ivarName; ///< property's ivar name +@property (nullable, nonatomic, assign, readonly) Class cls; ///< may be nil +@property (nullable, nonatomic, strong, readonly) NSArray *protocols; ///< may nil +@property (nonatomic, assign, readonly) SEL getter; ///< getter (nonnull) +@property (nonatomic, assign, readonly) SEL setter; ///< setter (nonnull) + +/** + Creates and returns a property info object. + + @param property property opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithProperty:(objc_property_t)property; +@end + + +/** + Class information for a class. + */ +@interface BUYYClassInfo : NSObject +@property (nonatomic, assign, readonly) Class cls; ///< class object +@property (nullable, nonatomic, assign, readonly) Class superCls; ///< super class object +@property (nullable, nonatomic, assign, readonly) Class metaCls; ///< class's meta class object +@property (nonatomic, readonly) BOOL isMeta; ///< whether this class is meta class +@property (nonatomic, strong, readonly) NSString *name; ///< class name +@property (nullable, nonatomic, strong, readonly) BUYYClassInfo *superClassInfo; ///< super class's class info +@property (nullable, nonatomic, strong, readonly) NSDictionary *ivarInfos; ///< ivars +@property (nullable, nonatomic, strong, readonly) NSDictionary *methodInfos; ///< methods +@property (nullable, nonatomic, strong, readonly) NSDictionary *propertyInfos; ///< properties + +/** + If the class is changed (for example: you add a method to this class with + 'class_addMethod()'), you should call this method to refresh the class info cache. + + After called this method, `needUpdate` will returns `YES`, and you should call + 'classInfoWithClass' or 'classInfoWithClassName' to get the updated class info. + */ +- (void)setNeedUpdate; + +/** + If this method returns `YES`, you should stop using this instance and call + `classInfoWithClass` or `classInfoWithClassName` to get the updated class info. + + @return Whether this class info need update. + */ +- (BOOL)needUpdate; + +/** + Get the class info of a specified Class. + + @discussion This method will cache the class info and super-class info + at the first access to the Class. This method is thread-safe. + + @param cls A class. + @return A class info, or nil if an error occurs. + */ ++ (nullable instancetype)classInfoWithClass:(Class)cls; + +/** + Get the class info of a specified Class. + + @discussion This method will cache the class info and super-class info + at the first access to the Class. This method is thread-safe. + + @param className A class name. + @return A class info, or nil if an error occurs. + */ ++ (nullable instancetype)classInfoWithClassName:(NSString *)className; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYClassInfo.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYClassInfo.h.meta new file mode 100644 index 00000000..75f075da --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYClassInfo.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01178a12e39fe4eca83bcbfe933f9612 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYModel.h new file mode 100755 index 00000000..e925d4bb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYModel.h @@ -0,0 +1,10 @@ +// +// BUYYModel.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "NSObject+BUYYModel.h" +#import "BUYYClassInfo.h" diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYModel.h.meta new file mode 100644 index 00000000..72d909ed --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUYYModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7ff4d90a060ea4f8182797bfa405c95a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUZipCommon.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUZipCommon.h new file mode 100755 index 00000000..0711048c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUZipCommon.h @@ -0,0 +1,68 @@ +#ifndef BUZipCommon +#define BUZipCommon + +// typedefs moved from mz_compat.h to here for public access + +/* unz_global_info structure contain global data about the ZIPfile + These data comes from the end of central dir */ +typedef struct bu_unz_global_info64_s +{ + uint64_t number_entry; /* total number of entries in the central dir on this disk */ + uint32_t number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */ + uint16_t size_comment; /* size of the global comment of the zipfile */ +} bu_unz_global_info64; + +typedef struct bu_unz_global_info_s +{ + uint32_t number_entry; /* total number of entries in the central dir on this disk */ + uint32_t number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */ + uint16_t size_comment; /* size of the global comment of the zipfile */ +} bu_unz_global_info; + +/* unz_file_info contain information about a file in the zipfile */ +/* https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT */ +typedef struct bu_unz_file_info64_s +{ + uint16_t version; /* version made by 2 bytes */ + uint16_t version_needed; /* version needed to extract 2 bytes */ + uint16_t flag; /* general purpose bit flag 2 bytes */ + uint16_t compression_method; /* compression method 2 bytes */ + uint32_t dos_date; /* last mod file date in Dos fmt 4 bytes */ + uint32_t crc; /* crc-32 4 bytes */ + uint64_t compressed_size; /* compressed size 8 bytes */ + uint64_t uncompressed_size; /* uncompressed size 8 bytes */ + uint16_t size_filename; /* filename length 2 bytes */ + uint16_t size_file_extra; /* extra field length 2 bytes */ + uint16_t size_file_comment; /* file comment length 2 bytes */ + + uint32_t disk_num_start; /* disk number start 4 bytes */ + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ + + uint64_t disk_offset; + + uint16_t size_file_extra_internal; +} bu_unz_file_info64; + +typedef struct bu_unz_file_info_s +{ + uint16_t version; /* version made by 2 bytes */ + uint16_t version_needed; /* version needed to extract 2 bytes */ + uint16_t flag; /* general purpose bit flag 2 bytes */ + uint16_t compression_method; /* compression method 2 bytes */ + uint32_t dos_date; /* last mod file date in Dos fmt 4 bytes */ + uint32_t crc; /* crc-32 4 bytes */ + uint32_t compressed_size; /* compressed size 4 bytes */ + uint32_t uncompressed_size; /* uncompressed size 4 bytes */ + uint16_t size_filename; /* filename length 2 bytes */ + uint16_t size_file_extra; /* extra field length 2 bytes */ + uint16_t size_file_comment; /* file comment length 2 bytes */ + + uint16_t disk_num_start; /* disk number start 2 bytes */ + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ + + uint64_t disk_offset; +} bu_unz_file_info; + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUZipCommon.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUZipCommon.h.meta new file mode 100644 index 00000000..bdbc79b1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BUZipCommon.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e5c61e56710e34fc688c446b68f7eba9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImage.h new file mode 100755 index 00000000..e0a29498 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImage.h @@ -0,0 +1,107 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageCoder.h" + + +/** + This is the protocol for BU_SDAnimatedImage class only but not for . If you want to provide a custom animated image class with full advanced function, you can conform to this instead of the base protocol. + */ +@protocol BU_SDAnimatedImage + +@required +/** + Initializes and returns the image object with the specified data, scale factor and possible animation decoding options. + @note We use this to create animated image instance for normal animation decoding. + + @param data The data object containing the image data. + @param scale The scale factor to assume when interpreting the image data. Applying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the `size` property. + @param options A dictionary containing any animation decoding options. + @return An initialized object + */ +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale options:(nullable SDImageCoderOptions *)options; + +/** + Initializes the image with an animated coder. You can use the coder to decode the image frame later. + @note We use this with animated coder which conforms to `SDProgressiveImageCoder` for progressive animation decoding. + + @param animatedCoder An animated coder which conform `` protocol + @param scale The scale factor to assume when interpreting the image data. Applying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the `size` property. + @return An initialized object + */ +- (nullable instancetype)initWithAnimatedCoder:(nonnull id)animatedCoder scale:(CGFloat)scale; + +@optional +// These methods are used for optional advanced feature, like image frame preloading. +/** + Pre-load all animated image frame into memory. Then later frame image request can directly return the frame for index without decoding. + This method may be called on background thread. + + @note If one image instance is shared by lots of imageViews, the CPU performance for large animated image will drop down because the request frame index will be random (not in order) and the decoder should take extra effort to keep it re-entrant. You can use this to reduce CPU usage if need. Attention this will consume more memory usage. + */ +- (void)preloadAllFrames; + +/** + Unload all animated image frame from memory if are already pre-loaded. Then later frame image request need decoding. You can use this to free up the memory usage if need. + */ +//- (void)unloadAllFrames; + +/** + Returns a Boolean value indicating whether all animated image frames are already pre-loaded into memory. + */ +@property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded; + +@end + +/** + The image class which supports animating on `SDAnimatedImageView`. You can also use it on normal UIImageView/NSImageView. + */ +@interface BU_SDAnimatedImage : UIImage + +// This class override these methods from UIImage(NSImage), and it supports NSSecureCoding. +// You should use these methods to create a new animated image. Use other methods just call super instead. ++ (nullable instancetype)imageNamed:(nonnull NSString *)name; // Cache in memory, no Asset Catalog support +#if __has_include() ++ (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection; // Cache in memory, no Asset Catalog support +#else ++ (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle; // Cache in memory, no Asset Catalog support +#endif ++ (nullable instancetype)imageWithContentsOfFile:(nonnull NSString *)path; ++ (nullable instancetype)imageWithData:(nonnull NSData *)data; ++ (nullable instancetype)imageWithData:(nonnull NSData *)data scale:(CGFloat)scale; +- (nullable instancetype)initWithContentsOfFile:(nonnull NSString *)path; +- (nullable instancetype)initWithData:(nonnull NSData *)data; +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale; + +/** + Current animated image format. + */ +@property (nonatomic, assign, readonly) BU_SDImageFormat animatedImageFormat; + +/** + Current animated image data, you can use this to grab the compressed format data and create another animated image instance. + If this image instance is an animated image created by using animated image coder (which means using the API listed above or using `initWithAnimatedCoder:scale:`), this property is non-nil. + */ +@property (nonatomic, copy, readonly, nullable) NSData *animatedImageData; + +/** + The scale factor of the image. + + @note For UIKit, this just call super instead. + @note For AppKit, `NSImage` can contains multiple image representations with different scales. However, this class does not do that from the design. We processs the scale like UIKit. This wil actually be calculated from image size and pixel size. + */ +@property (nonatomic, readonly) CGFloat scale; + +// By default, animated image frames are returned by decoding just in time without keeping into memory. But you can choose to preload them into memory as well, See the decsription in `BU_SDAnimatedImage` protocol. +// After preloaded, there is no huge difference on performance between this and UIImage's `animatedImageWithImages:duration:`. But UIImage's animation have some issues such like blanking and pausing during segue when using in `UIImageView`. It's recommend to use only if need. +- (void)preloadAllFrames; +//- (void)unloadAllFrames; +@property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImage.h.meta new file mode 100644 index 00000000..8a6e98e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dd9a55777b1f040448af296e6aca3c81 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImageRep.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImageRep.h new file mode 100755 index 00000000..93f808c3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImageRep.h @@ -0,0 +1,22 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +/** + A subclass of `NSBitmapImageRep` to fix that GIF loop count issue because `NSBitmapImageRep` will reset `NSImageCurrentFrameDuration` by using `kCGImagePropertyGIFDelayTime` but not `kCGImagePropertyGIFUnclampedDelayTime`. + Built in GIF coder use this instead of `NSBitmapImageRep` for better GIF rendering. If you do not want this, only enable `SDImageIOCoder`, which just call `NSImage` API and actually use `NSBitmapImageRep` for GIF image. + This also support APNG format using `SDImageAPNGCoder`. Which provide full alpha-channel support and the correct duration match the `kBUCGImagePropertyAPNGUnclampedDelayTime`. + */ +@interface BU_SDAnimatedImageRep : NSBitmapImageRep + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImageRep.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImageRep.h.meta new file mode 100644 index 00000000..ae4288f2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAnimatedImageRep.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: de6d5a7a07e4041b5bbeec2eb6ad10aa +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAsyncBlockOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAsyncBlockOperation.h new file mode 100755 index 00000000..3a90277e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAsyncBlockOperation.h @@ -0,0 +1,20 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDAsyncBlockOperation; +typedef void (^SDAsyncBlock)(BU_SDAsyncBlockOperation * __nonnull asyncOperation); + +@interface BU_SDAsyncBlockOperation : NSOperation + +- (nonnull instancetype)initWithBlock:(nonnull SDAsyncBlock)block; ++ (nonnull instancetype)blockOperationWithBlock:(nonnull SDAsyncBlock)block; +- (void)complete; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAsyncBlockOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAsyncBlockOperation.h.meta new file mode 100644 index 00000000..19d686df --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDAsyncBlockOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f2ef0645f570d44ddbec2ebc0cc0792b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDDiskCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDDiskCache.h new file mode 100755 index 00000000..20fe547a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDDiskCache.h @@ -0,0 +1,113 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDImageCacheConfig; +/** + A protocol to allow custom disk cache used in SDImageCache. + */ +@protocol BU_SDDiskCache + +// All of these method are called from the same global queue to avoid blocking on main queue and thread-safe problem. But it's also recommend to ensure thread-safe yourself using lock or other ways. +@required +/** + Create a new disk cache based on the specified path. You can check `maxDiskSize` and `maxDiskAge` used for disk cache. + + @param cachePath Full path of a directory in which the cache will write data. + Once initialized you should not read and write to this directory. + @param config The cache config to be used to create the cache. + + @return A new cache object, or nil if an error occurs. + */ +- (nullable instancetype)initWithCachePath:(nonnull NSString *)cachePath config:(nonnull BU_SDImageCacheConfig *)config; + +/** + Returns a boolean value that indicates whether a given key is in cache. + This method may blocks the calling thread until file read finished. + + @param key A string identifying the data. If nil, just return NO. + @return Whether the key is in cache. + */ +- (BOOL)containsDataForKey:(nonnull NSString *)key; + +/** + Returns the data associated with a given key. + This method may blocks the calling thread until file read finished. + + @param key A string identifying the data. If nil, just return nil. + @return The value associated with key, or nil if no value is associated with key. + */ +- (nullable NSData *)dataForKey:(nonnull NSString *)key; + +/** + Sets the value of the specified key in the cache. + This method may blocks the calling thread until file write finished. + + @param data The data to be stored in the cache. + @param key The key with which to associate the value. If nil, this method has no effect. + */ +- (void)setData:(nullable NSData *)data forKey:(nonnull NSString *)key; + +/** + Removes the value of the specified key in the cache. + This method may blocks the calling thread until file delete finished. + + @param key The key identifying the value to be removed. If nil, this method has no effect. + */ +- (void)removeDataForKey:(nonnull NSString *)key; + +/** + Empties the cache. + This method may blocks the calling thread until file delete finished. + */ +- (void)removeAllData; + +/** + Removes the expired data from the cache. You can choose the data to remove base on `ageLimit`, `countLimit` and `sizeLimit` options. + */ +- (void)removeExpiredData; + +/** + The cache path for key + + @param key A string identifying the value + @return The cache path for key. Or nil if the key can not associate to a path + */ +- (nullable NSString *)cachePathForKey:(nonnull NSString *)key; + +/** + Returns the number of data in this cache. + This method may blocks the calling thread until file read finished. + + @return The total data count. + */ +- (NSUInteger)totalCount; + +/** + Returns the total size (in bytes) of data in this cache. + This method may blocks the calling thread until file read finished. + + @return The total data size in bytes. + */ +- (NSUInteger)totalSize; + +@end + +/** + The built-in disk cache. + */ +@interface BU_SDDiskCache : NSObject +/** + Cache Config object - storing all kind of settings. + */ +@property (nonatomic, strong, readonly, nonnull) BU_SDImageCacheConfig *config; + +- (nonnull instancetype)init NS_UNAVAILABLE; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDDiskCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDDiskCache.h.meta new file mode 100644 index 00000000..2d4ab06a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDDiskCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 732c58d90383f4e6f965a1273e0a1ed6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoder.h new file mode 100755 index 00000000..2aa20a72 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoder.h @@ -0,0 +1,19 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder using ImageIO that supports APNG encoding/decoding + */ +@interface BU_SDImageAPNGCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageAPNGCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoder.h.meta new file mode 100644 index 00000000..1607bac7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4d7ec4e784bd643ea9e8d9224a8c15ef +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoderInternal.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoderInternal.h new file mode 100755 index 00000000..56ac0661 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoderInternal.h @@ -0,0 +1,17 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageAPNGCoder.h" + +@interface BU_SDImageAPNGCoder () + +- (float)sdBu_frameDurationAtIndex:(NSUInteger)index source:(nonnull CGImageSourceRef)source; +- (NSUInteger)sdBu_imageLoopCountWithSource:(nonnull CGImageSourceRef)source; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoderInternal.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoderInternal.h.meta new file mode 100644 index 00000000..957b7e9f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAPNGCoderInternal.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cdbce8021ca70425bbeb0342d6158b7f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAssetManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAssetManager.h new file mode 100755 index 00000000..9ad4e2ff --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAssetManager.h @@ -0,0 +1,23 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +// Apple parse the Asset Catalog compiled file(`Assets.car`) by CoreUI.framework, however it's a private framework and there are no other ways to directly get the data. So we just process the normal bundle files :) + +@interface BU_SDImageAssetManager : NSObject + +@property (nonatomic, strong, nonnull) NSMapTable *imageTable; + ++ (nonnull instancetype)sharedAssetManager; +- (nullable NSString *)getPathForName:(nonnull NSString *)name bundle:(nonnull NSBundle *)bundle preferredScale:(nonnull CGFloat *)scale; +- (nullable UIImage *)imageForName:(nonnull NSString *)name; +- (void)storeImage:(nonnull UIImage *)image forName:(nonnull NSString *)name; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAssetManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAssetManager.h.meta new file mode 100644 index 00000000..7da8a6c9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageAssetManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a7a3449430c24692a5ab318c455da17 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCache.h new file mode 100755 index 00000000..9afc696b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCache.h @@ -0,0 +1,369 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDImageCacheConfig.h" +#import "BU_SDImageCacheDefine.h" +#import "BU_SDMemoryCache.h" +#import "BU_SDDiskCache.h" + +/// Image Cache Options +typedef NS_OPTIONS(NSUInteger, BU_SDImageCacheOptions) { + /** + * By default, we do not query image data when the image is already cached in memory. This mask can force to query image data at the same time. However, this query is asynchronously unless you specify `SDImageCacheQueryMemoryDataSync` + */ + BU_SDImageCacheQueryMemoryData = 1 << 0, + /** + * By default, when you only specify `SDImageCacheQueryMemoryData`, we query the memory image data asynchronously. Combined this mask as well to query the memory image data synchronously. + */ + BU_SDImageCacheQueryMemoryDataSync = 1 << 1, + /** + * By default, when the memory cache miss, we query the disk cache asynchronously. This mask can force to query disk cache (when memory cache miss) synchronously. + @note These 3 query options can be combined together. For the full list about these masks combination, see wiki page. + */ + BU_SDImageCacheQueryDiskDataSync = 1 << 2, + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + */ + BU_SDImageCacheScaleDownLargeImages = 1 << 3, + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + BU_SDImageCacheAvoidDecodeImage = 1 << 4, + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + BU_SDImageCacheDecodeFirstFrameOnly = 1 << 5, + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. This flag actually trigger `preloadAllAnimatedImageFrames = YES` after image load from disk cache + */ + BU_SDImageCachePreloadAllFrames = 1 << 6, + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution. + * Using this option, can ensure we always produce image with your provided class. If failed, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDImageCacheDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + BU_SDImageCacheMatchAnimatedImageClass = 1 << 7, +}; + +/** + * SDImageCache maintains a memory cache and a disk cache. Disk cache write operations are performed + * asynchronous so it doesn’t add unnecessary latency to the UI. + */ +@interface BU_SDImageCache : NSObject + +#pragma mark - Properties + +/** + * Cache Config object - storing all kind of settings. + * The property is copy so change of currrent config will not accidentally affect other cache's config. + */ +@property (nonatomic, copy, nonnull, readonly) BU_SDImageCacheConfig *config; + +/** + * The memory cache implementation object used for current image cache. + * By default we use `SDMemoryCache` class, you can also use this to call your own implementation class method. + * @note To customize this class, check `SDImageCacheConfig.memoryCacheClass` property. + */ +@property (nonatomic, strong, readonly, nonnull) id memoryCache; + +/** + * The disk cache implementation object used for current image cache. + * By default we use `SDMemoryCache` class, you can also use this to call your own implementation class method. + * @note To customize this class, check `SDImageCacheConfig.diskCacheClass` property. + * @warning When calling method about read/write in disk cache, be sure to either make your disk cache implementation IO-safe or using the same access queue to avoid issues. + */ +@property (nonatomic, strong, readonly, nonnull) id diskCache; + +/** + * The disk cache's root path + */ +@property (nonatomic, copy, nonnull, readonly) NSString *diskCachePath; + +/** + * The additional disk cache path to check if the query from disk cache not exist; + * The `key` param is the image cache key. The returned file path will be used to load the disk cache. If return nil, ignore it. + * Useful if you want to bundle pre-loaded images with your app + */ +@property (nonatomic, copy, nullable) SDImageCacheAdditionalCachePathBlock additionalCachePathBlock; + +#pragma mark - Singleton and initialization + +/** + * Returns global shared cache instance + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCache *sharedImageCache; + +/** + * Init a new cache store with a specific namespace + * + * @param ns The namespace to use for this cache store + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns; + +/** + * Init a new cache store with a specific namespace and directory. + * If you don't provide the disk cache directory, we will use the User Cache directory with prefix (~/Library/Caches/com.hackemist.SDImageCache/). + * + * @param ns The namespace to use for this cache store + * @param directory Directory to cache disk images in + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns + diskCacheDirectory:(nullable NSString *)directory; + +/** + * Init a new cache store with a specific namespace, directory and file manager + * The final disk cache directory should looks like ($directory/$namespace). And the default config of shared cache, should result in (~/Library/Caches/com.hackemist.SDImageCache/default/) + * + * @param ns The namespace to use for this cache store + * @param directory Directory to cache disk images in + * @param config The cache config to be used to create the cache. You can provide custom memory cache or disk cache class in the cache config + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns + diskCacheDirectory:(nullable NSString *)directory + config:(nullable BU_SDImageCacheConfig *)config NS_DESIGNATED_INITIALIZER; + +#pragma mark - Cache paths + +/** + Get the cache path for a certain key + + @param key The unique image cache key + @return The cache path. You can check `lastPathComponent` to grab the file name. + */ +- (nullable NSString *)cachePathForKey:(nullable NSString *)key; + +#pragma mark - Store Ops + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + * @param completionBlock A block executed after the operation is finished + */ +//- (void)storeImage:(nullable UIImage *)image +// forKey:(nullable NSString *)key +// completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously + * @param completionBlock A block executed after the operation is finished + */ +//- (void)storeImage:(nullable UIImage *)image +// forKey:(nullable NSString *)key +// toDisk:(BOOL)toDisk +// completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param imageData The image data as returned by the server, this representation will be used for disk storage + * instead of converting the given image object into a storable/compressed image format in order + * to save quality and CPU + * @param key The unique image cache key, usually it's image absolute URL + * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously + * @param completionBlock A block executed after the operation is finished + */ +- (void)storeImage:(nullable UIImage *)image + imageData:(nullable NSData *)imageData + forKey:(nullable NSString *)key + toDisk:(BOOL)toDisk + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Synchronously store image into memory cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + */ +//- (void)storeImageToMemory:(nullable UIImage*)image +// forKey:(nullable NSString *)key; + +/** + * Synchronously store image data into disk cache at the given key. + * + * @param imageData The image data to store + * @param key The unique image cache key, usually it's image absolute URL + */ +//- (void)storeImageDataToDisk:(nullable NSData *)imageData +// forKey:(nullable NSString *)key; + + +#pragma mark - Contains and Check Ops + +/** + * Asynchronously check if image exists in disk cache already (does not load the image) + * + * @param key the key describing the url + * @param completionBlock the block to be executed when the check is done. + * @note the completion block will be always executed on the main queue + */ +- (void)diskImageExistsWithKey:(nullable NSString *)key completion:(nullable SDImageCacheCheckCompletionBlock)completionBlock; + +/** + * Synchronously check if image data exists in disk cache already (does not load the image) + * + * @param key the key describing the url + */ +//- (BOOL)diskImageDataExistsWithKey:(nullable NSString *)key; + +#pragma mark - Query and Retrieve Ops + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * Query the image data for the given key synchronously. + * + * @param key The unique key used to store the wanted image + * @return The image data for the given key, or nil if not found. + */ +- (nullable NSData *)diskImageDataForKey:(nullable NSString *)key; + +/** + * Operation that queries the cache asynchronously and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +//- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param options A mask to specify options to use for this cache query + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(BU_SDImageCacheOptions)options done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param options A mask to specify options to use for this cache query + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(BU_SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Synchronously query the memory cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromMemoryCacheForKey:(nullable NSString *)key; + +/** + * Synchronously query the disk cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key; + +/** + * Synchronously query the cache (memory and or disk) after checking the memory cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key; + +#pragma mark - Remove Ops + +/** + * Asynchronously remove the image from memory and disk cache + * + * @param key The unique image cache key + * @param completion A block that should be executed after the image has been removed (optional) + */ +//- (void)removeImageForKey:(nullable NSString *)key withCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + * Asynchronously remove the image from memory and optionally disk cache + * + * @param key The unique image cache key + * @param fromDisk Also remove cache entry from disk if YES. If NO, the completion block is called synchronously + * @param completion A block that should be executed after the image has been removed (optional) + */ +- (void)removeImageForKey:(nullable NSString *)key fromDisk:(BOOL)fromDisk withCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + Synchronously remove the image from memory cache. + + @param key The unique image cache key + */ +//- (void)removeImageFromMemoryForKey:(nullable NSString *)key; + +/** + Synchronously remove the image from disk cache. + + @param key The unique image cache key + */ +//- (void)removeImageFromDiskForKey:(nullable NSString *)key; + +#pragma mark - Cache clean Ops + +/** + * Synchronously Clear all memory cached images + */ +- (void)clearMemory; + +/** + * Asynchronously clear all disk cached images. Non-blocking method - returns immediately. + * @param completion A block that should be executed after cache expiration completes (optional) + */ +- (void)clearDiskOnCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + * Asynchronously remove all expired cached image from disk. Non-blocking method - returns immediately. + * @param completionBlock A block that should be executed after cache expiration completes (optional) + */ +- (void)deleteOldFilesWithCompletionBlock:(nullable SDWebImageNoParamsBlock)completionBlock; + +#pragma mark - Cache Info + +/** + * Get the total bytes size of images in the disk cache + */ +- (NSUInteger)totalDiskSize; + +/** + * Get the number of images in the disk cache + */ +- (NSUInteger)totalDiskCount; + +/** + * Asynchronously calculate the disk cache's size. + */ +//- (void)calculateSizeWithCompletionBlock:(nullable SDImageCacheCalculateSizeBlock)completionBlock; + +@end + +/** + * SDImageCache is the built-in image cache implementation for web image manager. It adopts `SDImageCache` protocol to provide the function for web image manager to use for image loading process. + */ +@interface BU_SDImageCache (BU_SDImageCache) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCache.h.meta new file mode 100644 index 00000000..3eb36915 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e41212ddc457a49b48384c0ff33d840e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheConfig.h new file mode 100755 index 00000000..f1f0bb4b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheConfig.h @@ -0,0 +1,129 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/// Image Cache Expire Type +typedef NS_ENUM(NSUInteger, BU_SDImageCacheConfigExpireType) { + /** + * When the image is accessed it will update this value + */ + BU_SDImageCacheConfigExpireTypeAccessDate, + /** + * The image was obtained from the disk cache (Default) + */ + BU_SDImageCacheConfigExpireTypeModificationDate +}; + +/** + The class contains all the config for image cache + @note This class conform to NSCopying, make sure to add the property in `copyWithZone:` as well. + */ +@interface BU_SDImageCacheConfig : NSObject + +/** + Gets the default cache config used for shared instance or initialization when it does not provide any cache config. Such as `SDImageCache.sharedImageCache`. + @note You can modify the property on default cache config, which can be used for later created cache instance. The already created cache instance does not get affected. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCacheConfig *defaultCacheConfig; + +/** + * Whether or not to disable iCloud backup + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldDisableiCloud; + +/** + * Whether or not to use memory cache + * @note When the memory cache is disabled, the weak memory cache will also be disabled. + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldCacheImagesInMemory; + +/* + * The option to control weak memory cache for images. When enable, `SDImageCache`'s memory cache will use a weak maptable to store the image at the same time when it stored to memory, and get removed at the same time. + * However when memory warning is triggered, since the weak maptable does not hold a strong reference to image instance, even when the memory cache itself is purged, some images which are held strongly by UIImageViews or other live instances can be recovered again, to avoid later re-query from disk cache or network. This may be helpful for the case, for example, when app enter background and memory is purged, cause cell flashing after re-enter foreground. + * Defautls to YES. You can change this option dynamically. + */ +@property (assign, nonatomic) BOOL shouldUseWeakMemoryCache; + +/** + * Whether or not to remove the expired disk data when application entering the background. (Not works for macOS) + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldRemoveExpiredDataWhenEnterBackground; + +/** + * The reading options while reading cache from disk. + * Defaults to 0. You can set this to `NSDataReadingMappedIfSafe` to improve performance. + */ +@property (assign, nonatomic) NSDataReadingOptions diskCacheReadingOptions; + +/** + * The writing options while writing cache to disk. + * Defaults to `NSDataWritingAtomic`. You can set this to `NSDataWritingWithoutOverwriting` to prevent overwriting an existing file. + */ +@property (assign, nonatomic) NSDataWritingOptions diskCacheWritingOptions; + +/** + * The maximum length of time to keep an image in the disk cache, in seconds. + * Setting this to a negative value means no expiring. + * Setting this to zero means that all cached files would be removed when do expiration check. + * Defaults to 1 week. + */ +@property (assign, nonatomic) NSTimeInterval maxDiskAge; + +/** + * The maximum size of the disk cache, in bytes. + * Defaults to 0. Which means there is no cache size limit. + */ +@property (assign, nonatomic) NSUInteger maxDiskSize; + +/** + * The maximum "total cost" of the in-memory image cache. The cost function is the bytes size held in memory. + * @note The memory cost is bytes size in memory, but not simple pixels count. For common ARGB8888 image, one pixel is 4 bytes (32 bits). + * Defaults to 0. Which means there is no memory cost limit. + */ +@property (assign, nonatomic) NSUInteger maxMemoryCost; + +/** + * The maximum number of objects in-memory image cache should hold. + * Defaults to 0. Which means there is no memory count limit. + */ +@property (assign, nonatomic) NSUInteger maxMemoryCount; + +/* + * The attribute which the clear cache will be checked against when clearing the disk cache + * Default is Modified Date + */ +@property (assign, nonatomic) BU_SDImageCacheConfigExpireType diskCacheExpireType; + +/** + * The custom file manager for disk cache. Pass nil to let disk cache choose the proper file manager. + * Defaults to nil. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + * @note Since `NSFileManager` does not support `NSCopying`. We just pass this by reference during copying. So it's not recommend to set this value on `defaultCacheConfig`. + */ +@property (strong, nonatomic, nullable) NSFileManager *fileManager; + +/** + * The custom memory cache class. Provided class instance must conform to `SDMemoryCache` protocol to allow usage. + * Defaults to built-in `SDMemoryCache` class. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + */ +@property (assign, nonatomic, nonnull) Class memoryCacheClass; + +/** + * The custom disk cache class. Provided class instance must conform to `SDDiskCache` protocol to allow usage. + * Defaults to built-in `SDDiskCache` class. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + */ +@property (assign ,nonatomic, nonnull) Class diskCacheClass; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheConfig.h.meta new file mode 100644 index 00000000..12b7473b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2e2ca9f5f37f34c17b0cdefb0cfb8771 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheDefine.h new file mode 100755 index 00000000..55a75880 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheDefine.h @@ -0,0 +1,125 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDWebImageDefine.h" + +/// Image Cache Type +typedef NS_ENUM(NSInteger, BU_SDImageCacheType) { + /** + * For query and contains op in response, means the image isn't available in the image cache + * For op in request, this type is not available and take no effect. + */ + BU_SDImageCacheTypeNone, + /** + * For query and contains op in response, means the image was obtained from the disk cache. + * For op in request, means process only disk cache. + */ + BU_SDImageCacheTypeDisk, + /** + * For query and contains op in response, means the image was obtained from the memory cache. + * For op in request, means process only memory cache. + */ + BU_SDImageCacheTypeMemory, + /** + * For query and contains op in response, this type is not available and take no effect. + * For op in request, means process both memory cache and disk cache. + */ + BU_SDImageCacheTypeAll +}; + +typedef void(^SDImageCacheCheckCompletionBlock)(BOOL isInCache); +typedef void(^SDImageCacheCalculateSizeBlock)(NSUInteger fileCount, NSUInteger totalSize); +typedef NSString * _Nullable (^SDImageCacheAdditionalCachePathBlock)(NSString * _Nonnull key); +typedef void(^BU_SDImageCacheQueryCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, BU_SDImageCacheType cacheType); +typedef void(^BU_SDImageCacheContainsCompletionBlock)(BU_SDImageCacheType containsCacheType); + +/** + This is the built-in decoding process for image query from cache. + @note If you want to implement your custom loader with `queryImageForKey:options:context:completion:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the cache. Should not be nil + @param cacheKey The image cache key from the input. Should not be nil + @param options The options arg from the input + @param context The context arg from the input + @return The decoded image for current image data query from cache + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSString * _Nonnull cacheKey, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + This is the image cache protocol to provide custom image cache for `SDWebImageManager`. + Though the best practice to custom image cache, is to write your own class which conform `SDMemoryCache` or `SDDiskCache` protocol for `SDImageCache` class (See more on `SDImageCacheConfig.memoryCacheClass & SDImageCacheConfig.diskCacheClass`). + However, if your own cache implementation contains more advanced feature beyond `SDImageCache` itself, you can consider to provide this instead. For example, you can even use a cache manager like `SDImageCachesManager` to register multiple caches. + */ +@protocol BU_SDImageCache + +@required +/** + Query the cached image from image cache for given key. The operation can be used to cancel the query. + If image is cached in memory, completion is called synchronously, else aynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`) + + @param key The image cache key + @param options A mask to specify options to use for this query + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @param completionBlock The completion block. Will not get called if the operation is cancelled + @return The operation for this query + */ +- (nullable id)queryImageForKey:(nullable NSString *)key + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + completion:(nullable BU_SDImageCacheQueryCompletionBlock)completionBlock; + +/** + Store the image into image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param image The image to store + @param imageData The image data to be used for disk storage + @param key The image cache key + @param cacheType The image store op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)storeImage:(nullable UIImage *)image + imageData:(nullable NSData *)imageData + forKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + Remove the image from image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param key The image cache key + @param cacheType The image remove op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)removeImageForKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + Check if image cache contains the image for the given key (does not load the image). If image is cached in memory, completion is called synchronously, else aynchronously. + + @param key The image cache key + @param cacheType The image contains op cache type + @param completionBlock A block executed after the operation is finished. + */ +- (void)containsImageForKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable BU_SDImageCacheContainsCompletionBlock)completionBlock; + +/** + Clear all the cached images for image cache. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param cacheType The image clear op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)clearWithCacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheDefine.h.meta new file mode 100644 index 00000000..cb69dc59 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCacheDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 38f948b901b0d4a3d9a0126c341fe455 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManager.h new file mode 100755 index 00000000..c7612392 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManager.h @@ -0,0 +1,81 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCacheDefine.h" + +/// Policy for cache operation +typedef NS_ENUM(NSUInteger, SDImageCachesManagerOperationPolicy) { + SDImageCachesManagerOperationPolicySerial, // process all caches serially (from the highest priority to the lowest priority cache by order) + SDImageCachesManagerOperationPolicyConcurrent, // process all caches concurrently + SDImageCachesManagerOperationPolicyHighestOnly, // process the highest priority cache only + SDImageCachesManagerOperationPolicyLowestOnly // process the lowest priority cache only +}; + +/** + A caches manager to manage multiple caches. + */ +@interface BU_SDImageCachesManager : NSObject + +/** + Returns the global shared caches manager instance. By default we will set [`SDImageCache.sharedImageCache`] into the caches array. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCachesManager *sharedManager; + +// These are op policy for cache manager. + +/** + Operation policy for query op. + Defaults to `Serial`, means query all caches serially (one completion called then next begin) until one cache query success (`image` != nil). + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy queryOperationPolicy; + +/** + Operation policy for store op. + Defaults to `HighestOnly`, means store to the highest priority cache only. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy storeOperationPolicy; + +/** + Operation policy for remove op. + Defaults to `Concurrent`, means remove all caches concurrently. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy removeOperationPolicy; + +/** + Operation policy for contains op. + Defaults to `Serial`, means check all caches serially (one completion called then next begin) until one cache check success (`containsCacheType` != None). + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy containsOperationPolicy; + +/** + Operation policy for clear op. + Defaults to `Concurrent`, means clear all caches concurrently. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy clearOperationPolicy; + +/** + All caches in caches manager. The caches array is a priority queue, which means the later added cache will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray> *caches; + +/** + Add a new cache to the end of caches array. Which has the highest priority. + + @param cache cache + */ +//- (void)addCache:(nonnull id)cache; + +/** + Remove a cache in the caches array. + + @param cache cache + */ +//- (void)removeCache:(nonnull id)cache; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManager.h.meta new file mode 100644 index 00000000..2a015fdc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0b878bd691f5d4a59882f85ce6dc0637 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManagerOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManagerOperation.h new file mode 100755 index 00000000..0ba9d3c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManagerOperation.h @@ -0,0 +1,21 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +// This is used for operation management, but not for operation queue execute +@interface BU_SDImageCachesManagerOperation : NSOperation + +@property (nonatomic, assign, readonly) NSUInteger pendingCount; + +- (void)beginWithTotalCount:(NSUInteger)totalCount; +- (void)completeOne; +- (void)done; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManagerOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManagerOperation.h.meta new file mode 100644 index 00000000..4424fb69 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCachesManagerOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 805537d2702f44b16b0a0d937bde8ae4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoder.h new file mode 100755 index 00000000..987845c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoder.h @@ -0,0 +1,234 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +typedef NSString * SDImageCoderOption NS_STRING_ENUM; +typedef NSDictionary SDImageCoderOptions; +typedef NSMutableDictionary SDImageCoderMutableOptions; + +#pragma mark - Coder Options +// These options are for image decoding +/** + A Boolean value indicating whether to decode the first frame only for animated image during decoding. (NSNumber). If not provide, decode animated image if need. + @note works for `SDImageCoder`. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeFirstFrameOnly; +/** + A CGFloat value which is greater than or equal to 1.0. This value specify the image scale factor for decoding. If not provide, use 1.0. (NSNumber) + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeScaleFactor; + +// These options are for image encoding +/** + A Boolean value indicating whether to encode the first frame only for animated image during encoding. (NSNumber). If not provide, encode animated image if need. + @note works for `SDImageCoder`. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderEncodeFirstFrameOnly; +/** + A double value between 0.0-1.0 indicating the encode compression quality to produce the image data. 1.0 resulting in no compression and 0.0 resulting in the maximum compression possible. If not provide, use 1.0. (NSNumber) + @note works for `SDImageCoder` + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderEncodeCompressionQuality; + +/** + A SDWebImageContext object which hold the original context options from top-level API. (SDWebImageContext) + This option is ignored for all built-in coders and take no effect. + But this may be useful for some custom coders, because some business logic may dependent on things other than image or image data inforamtion only. + See `SDWebImageContext` for more detailed information. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderWebImageContext; + +/** + A Boolean value indicating whether to keep the original aspect ratio when generating thumbnail images (or bitmap images from vector format). + Defaults to YES. + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodePreserveAspectRatio; + +/** + A CGSize value indicating whether or not to generate the thumbnail images (or bitmap images from vector format). When this value is provided, the decoder will generate a thumbnail image which pixel size is smaller than or equal to (depends the `.preserveAspectRatio`) the value size. + Defaults to CGSizeZero, which means no thumbnail generation at all. + @note Supports for animated image as well. + @note When you pass `.preserveAspectRatio == NO`, the thumbnail image is stretched to match each dimension. When `.preserveAspectRatio == YES`, the thumbnail image's width is limited to pixel size's width, the thumbnail image's height is limited to pixel size's height. For common cases, you can just pass a square size to limit both. + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeThumbnailPixelSize; + +#pragma mark - Coder +/** + This is the image coder protocol to provide custom image decoding/encoding. + These methods are all required to implement. + @note Pay attention that these methods are not called from main queue. + */ +@protocol BU_SDImageCoder + +@required +#pragma mark - Decoding +/** + Returns YES if this coder can decode some data. Otherwise, the data should be passed to another coder. + + @param data The image data so we can look at it + @return YES if this coder can decode the data, NO otherwise + */ +- (BOOL)canDecodeFromData:(nullable NSData *)data; + +/** + Decode the image data to image. + @note This protocol may supports decode animated image frames. You can use `+[SDImageCoderHelper animatedImageWithFrames:]` to produce an animated image with frames. + + @param data The image data to be decoded + @param options A dictionary containing any decoding options. Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for image. Pass @{BU_SDImageCoderDecodeFirstFrameOnly: @(YES)} to decode the first frame only. + @return The decoded image from data + */ +- (nullable UIImage *)decodedImageWithData:(nullable NSData *)data + options:(nullable SDImageCoderOptions *)options; + +#pragma mark - Encoding + +/** + Returns YES if this coder can encode some image. Otherwise, it should be passed to another coder. + For custom coder which introduce new image format, you'd better define a new `BU_SDImageFormat` using like this. If you're creating public coder plugin for new image format, also update `https://github.com/rs/SDWebImage/wiki/Coder-Plugin-List` to avoid same value been defined twice. + * @code + static const BU_SDImageFormat BU_SDImageFormatHEIF = 10; + * @endcode + + @param format The image format + @return YES if this coder can encode the image, NO otherwise + */ +- (BOOL)canEncodeToFormat:(BU_SDImageFormat)format NS_SWIFT_NAME(canEncode(to:)); + +/** + Encode the image to image data. + @note This protocol may supports encode animated image frames. You can use `+[SDImageCoderHelper framesFromAnimatedImage:]` to assemble an animated image with frames. + + @param image The image to be encoded + @param format The image format to encode, you should note `BU_SDImageFormatUndefined` format is also possible + @param options A dictionary containing any encoding options. Pass @{BU_SDImageCoderEncodeCompressionQuality: @(1)} to specify compression quality. + @return The encoded image data + */ +- (nullable NSData *)encodedDataWithImage:(nullable UIImage *)image + format:(BU_SDImageFormat)format + options:(nullable SDImageCoderOptions *)options; + +@end + +#pragma mark - Progressive Coder +/** + This is the image coder protocol to provide custom progressive image decoding. + These methods are all required to implement. + @note Pay attention that these methods are not called from main queue. + */ +@protocol BU_SDProgressiveImageCoder + +@required +/** + Returns YES if this coder can incremental decode some data. Otherwise, it should be passed to another coder. + + @param data The image data so we can look at it + @return YES if this coder can decode the data, NO otherwise + */ +- (BOOL)canIncrementalDecodeFromData:(nullable NSData *)data; + +/** + Because incremental decoding need to keep the decoded context, we will alloc a new instance with the same class for each download operation to avoid conflicts + This init method should not return nil + + @param options A dictionary containing any progressive decoding options (instance-level). Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for progressive animated image (each frames should use the same scale). + @return A new instance to do incremental decoding for the specify image format + */ +- (nonnull instancetype)initIncrementalWithOptions:(nullable SDImageCoderOptions *)options; + +/** + Update the incremental decoding when new image data available + + @param data The image data has been downloaded so far + @param finished Whether the download has finished + */ +- (void)updateIncrementalData:(nullable NSData *)data finished:(BOOL)finished; + +/** + Incremental decode the current image data to image. + @note Due to the performance issue for progressive decoding and the integration for image view. This method may only return the first frame image even if the image data is animated image. If you want progressive animated image decoding, conform to `` protocol as well and use `animatedImageFrameAtIndex:` instead. + + @param options A dictionary containing any progressive decoding options. Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for progressive image + @return The decoded image from current data + */ +- (nullable UIImage *)incrementalDecodedImageWithOptions:(nullable SDImageCoderOptions *)options; + +@end + +#pragma mark - Animated Image Provider +/** + This is the animated image protocol to provide the basic function for animated image rendering. It's adopted by `BU_SDAnimatedImage` and `` + */ +@protocol BU_SDAnimatedImageProvider + +@required +/** + The original animated image data for current image. If current image is not an animated format, return nil. + We may use this method to grab back the original image data if need, such as NSCoding or compare. + + @return The animated image data + */ +@property (nonatomic, copy, readonly, nullable) NSData *animatedImageData; + +/** + Total animated frame count. + If the frame count is less than 1, then the methods below will be ignored. + + @return Total animated frame count. + */ +@property (nonatomic, assign, readonly) NSUInteger animatedImageFrameCount; +/** + Animation loop count, 0 means infinite looping. + + @return Animation loop count + */ +@property (nonatomic, assign, readonly) NSUInteger animatedImageLoopCount; +/** + Returns the frame image from a specified index. + @note The index maybe randomly if one image was set to different imageViews, keep it re-entrant. (It's not recommend to store the images into array because it's memory consuming) + + @param index Frame index (zero based). + @return Frame's image + */ +- (nullable UIImage *)animatedImageFrameAtIndex:(NSUInteger)index; +/** + Returns the frames's duration from a specified index. + @note The index maybe randomly if one image was set to different imageViews, keep it re-entrant. (It's recommend to store the durations into array because it's not memory-consuming) + + @param index Frame index (zero based). + @return Frame's duration + */ +- (NSTimeInterval)animatedImageDurationAtIndex:(NSUInteger)index; + +@end + +#pragma mark - Animated Coder +/** + This is the animated image coder protocol for custom animated image class like `BU_SDAnimatedImage`. Through it inherit from `SDImageCoder`. We currentlly only use the method `canDecodeFromData:` to detect the proper coder for specify animated image format. + */ +@protocol BU_SDAnimatedImageCoder + +@required +/** + Because animated image coder should keep the original data, we will alloc a new instance with the same class for the specify animated image data + The init method should return nil if it can't decode the specify animated image data to produce any frame. + After the instance created, we may call methods in `BU_SDAnimatedImageProvider` to produce animated image frame. + + @param data The animated image data to be decode + @param options A dictionary containing any animated decoding options (instance-level). Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for animated image (each frames should use the same scale). + @return A new instance to do animated decoding for specify image data + */ +- (nullable instancetype)initWithAnimatedImageData:(nullable NSData *)data options:(nullable SDImageCoderOptions *)options; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoder.h.meta new file mode 100644 index 00000000..42632cfa --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1de2f4c7ed7374762b9ef9379357dbde +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoderHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoderHelper.h new file mode 100755 index 00000000..9534d7a4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoderHelper.h @@ -0,0 +1,110 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageFrame.h" + +/** + Provide some common helper methods for building the image decoder/encoder. + */ +@interface BU_SDImageCoderHelper : NSObject + +/** + Return an animated image with frames array. + For UIKit, this will apply the patch and then create animated UIImage. The patch is because that `+[UIImage animatedImageWithImages:duration:]` just use the average of duration for each image. So it will not work if different frame has different duration. Therefore we repeat the specify frame for specify times to let it work. + For AppKit, NSImage does not support animates other than GIF. This will try to encode the frames to GIF format and then create an animated NSImage for rendering. Attention the animated image may loss some detail if the input frames contain full alpha channel because GIF only supports 1 bit alpha channel. (For 1 pixel, either transparent or not) + + @param frames The frames array. If no frames or frames is empty, return nil + @return A animated image for rendering on UIImageView(UIKit) or NSImageView(AppKit) + */ ++ (UIImage * _Nullable)animatedImageWithFrames:(NSArray * _Nullable)frames; + +/** + Return frames array from an animated image. + For UIKit, this will unapply the patch for the description above and then create frames array. This will also work for normal animated UIImage. + For AppKit, NSImage does not support animates other than GIF. This will try to decode the GIF imageRep and then create frames array. + + @param animatedImage A animated image. If it's not animated, return nil + @return The frames array + */ ++ (NSArray * _Nullable)framesFromAnimatedImage:(UIImage * _Nullable)animatedImage NS_SWIFT_NAME(frames(from:)); + +/** + Return the shared device-dependent RGB color space. This follows The Get Rule. + On iOS, it's created with deviceRGB (if available, use sRGB). + On macOS, it's from the screen colorspace (if failed, use deviceRGB) + Because it's shared, you should not retain or release this object. + + @return The device-dependent RGB color space + */ ++ (CGColorSpaceRef _Nonnull)colorSpaceGetDeviceRGB CF_RETURNS_NOT_RETAINED; + +/** + Check whether CGImage contains alpha channel. + + @param cgImage The CGImage + @return Return YES if CGImage contains alpha channel, otherwise return NO + */ ++ (BOOL)CGImageContainsAlpha:(_Nonnull CGImageRef)cgImage; + +/** + Create a decoded CGImage by the provided CGImage. This follows The Create Rule and you are response to call release after usage. + It will detect whether image contains alpha channel, then create a new bitmap context with the same size of image, and draw it. This can ensure that the image do not need extra decoding after been set to the imageView. + @note This actually call `CGImageCreateDecoded:orientation:` with the Up orientation. + + @param cgImage The CGImage + @return A new created decoded image + */ ++ (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage CF_RETURNS_RETAINED; + +/** + Create a decoded CGImage by the provided CGImage and orientation. This follows The Create Rule and you are response to call release after usage. + It will detect whether image contains alpha channel, then create a new bitmap context with the same size of image, and draw it. This can ensure that the image do not need extra decoding after been set to the imageView. + + @param cgImage The CGImage + @param orientation The EXIF image orientation. + @return A new created decoded image + */ ++ (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage orientation:(CGImagePropertyOrientation)orientation CF_RETURNS_RETAINED; + +/** + Return the decoded image by the provided image. This one unlike `CGImageCreateDecoded:`, will not decode the image which contains alpha channel or animated image + @param image The image to be decoded + @return The decoded image + */ ++ (UIImage * _Nullable)decodedImageWithImage:(UIImage * _Nullable)image; + +/** + Return the decoded and probably scaled down image by the provided image. If the image is large than the limit size, will try to scale down. Or just works as `decodedImageWithImage:` + + @param image The image to be decoded and scaled down + @param bytes The limit bytes size. Provide 0 to use the build-in limit. + @return The decoded and probably scaled down image + */ ++ (UIImage * _Nullable)decodedAndScaledDownImageWithImage:(UIImage * _Nullable)image limitBytes:(NSUInteger)bytes; + +#if SD_UIKIT || SD_WATCH +/** + Convert an EXIF image orientation to an iOS one. + + @param exifOrientation EXIF orientation + @return iOS orientation + */ ++ (UIImageOrientation)imageOrientationFromEXIFOrientation:(CGImagePropertyOrientation)exifOrientation NS_SWIFT_NAME(imageOrientation(from:)); + +/** + Convert an iOS orientation to an EXIF image orientation. + + @param imageOrientation iOS orientation + @return EXIF orientation + */ ++ (CGImagePropertyOrientation)exifOrientationFromImageOrientation:(UIImageOrientation)imageOrientation; +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoderHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoderHelper.h.meta new file mode 100644 index 00000000..d555df93 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCoderHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 973d56ce7a8134340b820cc15a4023ad +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCodersManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCodersManager.h new file mode 100755 index 00000000..703ae3e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCodersManager.h @@ -0,0 +1,58 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Global object holding the array of coders, so that we avoid passing them from object to object. + Uses a priority queue behind scenes, which means the latest added coders have the highest priority. + This is done so when encoding/decoding something, we go through the list and ask each coder if they can handle the current data. + That way, users can add their custom coders while preserving our existing prebuilt ones + + Note: the `coders` getter will return the coders in their reversed order + Example: + - by default we internally set coders = `IOCoder`, `GIFCoder`, `APNGCoder` + - calling `coders` will return `@[IOCoder, GIFCoder, APNGCoder]` + - call `[addCoder:[MyCrazyCoder new]]` + - calling `coders` now returns `@[IOCoder, GIFCoder, APNGCoder, MyCrazyCoder]` + + Coders + ------ + A coder must conform to the `SDImageCoder` protocol or even to `SDProgressiveImageCoder` if it supports progressive decoding + Conformance is important because that way, they will implement `canDecodeFromData` or `canEncodeToFormat` + Those methods are called on each coder in the array (using the priority order) until one of them returns YES. + That means that coder can decode that data / encode to that format + */ +@interface BU_SDImageCodersManager : NSObject + +/** + Returns the global shared coders manager instance. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCodersManager *sharedManager; + +/** + All coders in coders manager. The coders array is a priority queue, which means the later added coder will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray> *coders; + +/** + Add a new coder to the end of coders array. Which has the highest priority. + + @param coder coder + */ +//- (void)addCoder:(nonnull id)coder; + +/** + Remove a coder in the coders array. + + @param coder coder + */ +//- (void)removeCoder:(nonnull id)coder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCodersManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCodersManager.h.meta new file mode 100644 index 00000000..44fd7f7a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageCodersManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f91d74b3c59124a1c8c9cc65c4828741 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageFrame.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageFrame.h new file mode 100755 index 00000000..7d964f58 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageFrame.h @@ -0,0 +1,36 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/** + This class is used for creating animated images via `animatedImageWithFrames` in `SDImageCoderHelper`. + @note If you need to specify animated images loop count, use `sdBu_imageLoopCount` property in `UIImage+BUMetadata.h`. + */ +@interface BU_SDImageFrame : NSObject + +/** + The image of current frame. You should not set an animated image. + */ +@property (nonatomic, strong, readonly, nonnull) UIImage *image; +/** + The duration of current frame to be displayed. The number is seconds but not milliseconds. You should not set this to zero. + */ +@property (nonatomic, readonly, assign) NSTimeInterval duration; + +/** + Create a frame instance with specify image and duration + + @param image current frame's image + @param duration current frame's duration + @return frame instance + */ ++ (instancetype _Nonnull)frameWithImage:(UIImage * _Nonnull)image duration:(NSTimeInterval)duration; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageFrame.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageFrame.h.meta new file mode 100644 index 00000000..825fe837 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageFrame.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 12ca44a725f32447d9c6a570e4f02cf4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoder.h new file mode 100755 index 00000000..579b806e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoder.h @@ -0,0 +1,22 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder using ImageIO that supports animated GIF encoding/decoding + @note `SDImageIOCoder` supports GIF but only as static (will use the 1st frame). + @note Use `SDImageGIFCoder` for fully animated GIFs. For `UIImageView`, it will produce animated `UIImage`(`NSImage` on macOS) for rendering. For `SDAnimatedImageView`, it will use `BU_SDAnimatedImage` for rendering. + @note The recommended approach for animated GIFs is using `BU_SDAnimatedImage` with `SDAnimatedImageView`. It's more performant than `UIImageView` for GIF displaying(especially on memory usage) + */ +@interface BU_SDImageGIFCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageGIFCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoder.h.meta new file mode 100644 index 00000000..dcbb7a10 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 04fb321ff0fd94a21a4e5edc838691eb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoderInternal.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoderInternal.h new file mode 100755 index 00000000..e0fe94c2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoderInternal.h @@ -0,0 +1,16 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageGIFCoder.h" + +@interface BU_SDImageGIFCoder () + +- (float)sdBu_frameDurationAtIndex:(NSUInteger)index source:(nonnull CGImageSourceRef)source; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoderInternal.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoderInternal.h.meta new file mode 100644 index 00000000..ff14d25f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGIFCoderInternal.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5aebaba4208b04357a1cc96902f90da0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGraphics.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGraphics.h new file mode 100755 index 00000000..c6f459bb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGraphics.h @@ -0,0 +1,27 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import + +/** + These following graphics context method are provided to easily write cross-platform(AppKit/UIKit) code. + For UIKit, these methods just call the same method in `UIGraphics.h`. See the documentation for usage. + For AppKit, these methods use `NSGraphicsContext` to create image context and match the behavior like UIKit. + */ + +/// Returns the current graphics context. +FOUNDATION_EXPORT CGContextRef __nullable BU_SDGraphicsGetCurrentContext(void) CF_RETURNS_NOT_RETAINED; +/// Creates a bitmap-based graphics context and makes it the current context. +FOUNDATION_EXPORT void BU_SDGraphicsBeginImageContext(CGSize size); +/// Creates a bitmap-based graphics context with the specified options. +FOUNDATION_EXPORT void BU_BU_SDGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale); +/// Removes the current bitmap-based graphics context from the top of the stack. +FOUNDATION_EXPORT void BU_SDGraphicsEndImageContext(void); +/// Returns an image based on the contents of the current bitmap-based graphics context. +FOUNDATION_EXPORT UIImage * __nullable BU_SDGraphicsGetImageFromCurrentImageContext(void); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGraphics.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGraphics.h.meta new file mode 100644 index 00000000..a19fd22b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageGraphics.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a64443b7b6ba943aca90387aa11f4370 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageIOCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageIOCoder.h new file mode 100755 index 00000000..e26a25fd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageIOCoder.h @@ -0,0 +1,30 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder that supports PNG, JPEG, TIFF, includes support for progressive decoding. + + GIF + Also supports static GIF (meaning will only handle the 1st frame). + For a full GIF support, we recommend `SDAnimatedImageView` to keep both CPU and memory balanced. + + HEIC + This coder also supports HEIC format because ImageIO supports it natively. But it depends on the system capabilities, so it won't work on all devices, see: https://devstreaming-cdn.apple.com/videos/wwdc/2017/511tj33587vdhds/511/511_working_with_heif_and_hevc.pdf + Decode(Software): !Simulator && (iOS 11 || tvOS 11 || macOS 10.13) + Decode(Hardware): !Simulator && ((iOS 11 && A9Chip) || (macOS 10.13 && 6thGenerationIntelCPU)) + Encode(Software): macOS 10.13 + Encode(Hardware): !Simulator && ((iOS 11 && A10FusionChip) || (macOS 10.13 && 6thGenerationIntelCPU)) + */ +@interface BU_SDImageIOCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageIOCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageIOCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageIOCoder.h.meta new file mode 100644 index 00000000..338f6810 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageIOCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6738f693b9a1642fbabeae5902e86270 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoader.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoader.h new file mode 100755 index 00000000..8e1cb465 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoader.h @@ -0,0 +1,101 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageOperation.h" + +typedef void(^SDImageLoaderProgressBlock)(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL); +typedef void(^SDImageLoaderCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished); + +#pragma mark - Context Options + +/** + A `UIImage` instance from `SDWebImageManager` when you specify `SDWebImageRefreshCached` and image cache hit. + This can be a hint for image loader to load the image from network and refresh the image from remote location if needed. If the image from remote location does not change, you should call the completion with `SDWebImageErrorCacheNotModified` error. (UIImage) + @note If you don't implement `SDWebImageRefreshCached` support, you do not need to care abot this context option. + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextLoaderCachedImage; + +#pragma mark - Helper method + +/** + This is the built-in decoding process for image download from network or local file. + @note If you want to implement your custom loader with `requestImageWithURL:options:context:progress:completed:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the network. Should not be nil + @param imageURL The image URL from the input. Should not be nil + @param options The options arg from the input + @param context The context arg from the input + @return The decoded image for current image data load from the network + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageLoaderDecodeImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + This is the built-in decoding process for image progressive download from network. It's used when `SDWebImageProgressiveLoad` option is set. (It's not required when your loader does not support progressive image loading) + @note If you want to implement your custom loader with `requestImageWithURL:options:context:progress:completed:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the network so far. Should not be nil + @param imageURL The image URL from the input. Should not be nil + @param finished Pass NO to specify the download process has not finished. Pass YES when all image data has finished. + @param operation The loader operation associated with current progressive download. Why to provide this is because progressive decoding need to store the partial decoded context for each operation to avoid conflict. You should provide the operation from `loadImageWithURL:` method return value. + @param options The options arg from the input + @param context The context arg from the input + @return The decoded progressive image for current image data load from the network + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageLoaderDecodeProgressiveImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, BOOL finished, id _Nonnull operation, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +#pragma mark - SDImageLoader + +/** + This is the protocol to specify custom image load process. You can create your own class to conform this protocol and use as a image loader to load image from network or any avaiable remote resources defined by yourself. + If you want to implement custom loader for image download from network or local file, you just need to concentrate on image data download only. After the download finish, call `BU_SDImageLoaderDecodeImageData` or `BU_SDImageLoaderDecodeProgressiveImageData` to use the built-in decoding process and produce image (Remember to call in the global queue). And finally callback the completion block. + If you directlly get the image instance using some third-party SDKs, such as image directlly from Photos framework. You can process the image data and image instance by yourself without that built-in decoding process. And finally callback the completion block. + @note It's your responsibility to load the image in the desired global queue(to avoid block main queue). We do not dispatch these method call in a global queue but just from the call queue (For `SDWebImageManager`, it typically call from the main queue). +*/ +@protocol BU_SDImageLoader + +/** + Whether current image loader supports to load the provide image URL. + This will be checked everytime a new image request come for loader. If this return NO, we will mark this image load as failed. If return YES, we will start to call `requestImageWithURL:options:context:progress:completed:`. + + @param url The image URL to be loaded. + @return YES to continue download, NO to stop download. + */ +- (BOOL)canRequestImageForURL:(nullable NSURL *)url; + +/** + Load the image and image data with the given URL and return the image data. You're responsible for producing the image instance. + + @param url The URL represent the image. Note this may not be a HTTP URL + @param options A mask to specify options to use for this request + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + @param completedBlock A block called when operation has been completed. + @return An operation which allow the user to cancel the current request. + */ +- (nullable id)requestImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable SDImageLoaderCompletedBlock)completedBlock; + + +/** + Whether the error from image loader should be marked indded un-recoverable or not. + If this return YES, failed URL which does not using `SDWebImageRetryFailed` will be blocked into black list. Else not. + + @param url The URL represent the image. Note this may not be a HTTP URL + @param error The URL's loading error, from previous `requestImageWithURL:options:context:progress:completed:` completedBlock's error. + @return Whether to block this url or not. Return YES to mark this URL as failed. + */ +- (BOOL)shouldBlockFailedURLWithURL:(nonnull NSURL *)url + error:(nonnull NSError *)error; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoader.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoader.h.meta new file mode 100644 index 00000000..4a8334df --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoader.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea4d9b9547885450c93f67067bfd6147 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoadersManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoadersManager.h new file mode 100755 index 00000000..822e1cde --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoadersManager.h @@ -0,0 +1,40 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDImageLoader.h" + +/** + A loaders manager to manage multiple loaders + */ +@interface BU_SDImageLoadersManager : NSObject + +/** + Returns the global shared loaders manager instance. By default we will set [`SDWebImageDownloader.sharedDownloader`] into the loaders array. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageLoadersManager *sharedManager; + +/** + All image loaders in manager. The loaders array is a priority queue, which means the later added loader will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray>* loaders; + +/** + Add a new image loader to the end of loaders array. Which has the highest priority. + + @param loader loader + */ +//- (void)addLoader:(nonnull id)loader; +// +///** +// Remove a image loader in the loaders array. +// +// @param loader loader +// */ +//- (void)removeLoader:(nonnull id)loader; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoadersManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoadersManager.h.meta new file mode 100644 index 00000000..400d4842 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageLoadersManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 72f833b042c8e4d88b6d24684365ffb0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageTransformer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageTransformer.h new file mode 100755 index 00000000..bb6cc721 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageTransformer.h @@ -0,0 +1,231 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "UIImage+BUTransform.h" + +/** + Return the transformed cache key which applied with specify transformerKey. + + @param key The original cache key + @param transformerKey The transformer key from the transformer + @return The transformed cache key + */ +FOUNDATION_EXPORT NSString * _Nullable BU_SDTransformedKeyForKey(NSString * _Nullable key, NSString * _Nonnull transformerKey); + +/** + A transformer protocol to transform the image load from cache or from download. + You can provide transformer to cache and manager (Through the `transformer` property or context option `BU_SDWebImageContextImageTransformer`). + + @note The transform process is called from a global queue in order to not to block the main queue. + */ +@protocol BU_SDImageTransformer + +@required +/** + For each transformer, it must contains its cache key to used to store the image cache or query from the cache. This key will be appened after the original cache key generated by URL or from user. + + @return The cache key to appended after the original cache key. Should not be nil. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *transformerKey; + +/** + Transform the image to another image. + + @param image The image to be transformed + @param key The cache key associated to the image + @return The transformed image, or nil if transform failed + */ +- (nullable UIImage *)transformedImageWithImage:(nonnull UIImage *)image forKey:(nonnull NSString *)key; + +@end + +#pragma mark - Pipeline + +/** + Pipeline transformer. Which you can bind multiple transformers together to let the image to be transformed one by one in order and generate the final image. + @note Because transformers are lightweight, if you want to append or arrange transfomers, create another pipeline transformer instead. This class is considered as immutable. + */ +//@interface BU_SDImagePipelineTransformer : NSObject +// +///** +// All transformers in pipeline +// */ +//@property (nonatomic, copy, readonly, nonnull) NSArray> *transformers; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithTransformers:(nonnull NSArray> *)transformers; +// +//@end + +// There are some built-in transformers based on the `UIImage+BUTransformer` category to provide the common image geometry, image blending and image effect process. Those transform are useful for static image only but you can create your own to support animated image as well. +// Because transformers are lightweight, these class are considered as immutable. +#pragma mark - Image Geometry + +/** + Image round corner transformer + */ +@interface BU_SDImageRoundCornerTransformer: NSObject + +/** + The radius of each corner oval. Values larger than half the + rectangle's width or height are clamped appropriately to + half the width or height. + */ +@property (nonatomic, assign, readonly) CGFloat cornerRadius; + +/** + A bitmask value that identifies the corners that you want + rounded. You can use this parameter to round only a subset + of the corners of the rectangle. + */ +@property (nonatomic, assign, readonly) BU_SDRectCorner corners; + +/** + The inset border line width. Values larger than half the rectangle's + width or height are clamped appropriately to half the width + or height. + */ +@property (nonatomic, assign, readonly) CGFloat borderWidth; + +/** + The border stroke color. nil means clear color. + */ +@property (nonatomic, strong, readonly, nullable) UIColor *borderColor; + +- (nonnull instancetype)init NS_UNAVAILABLE; ++ (nonnull instancetype)transformerWithRadius:(CGFloat)cornerRadius corners:(BU_SDRectCorner)corners borderWidth:(CGFloat)borderWidth borderColor:(nullable UIColor *)borderColor; + +@end + +/** + Image resizing transformer + */ +//@interface BU_SDImageResizingTransformer : NSObject +// +///** +// The new size to be resized, values should be positive. +// */ +//@property (nonatomic, assign, readonly) CGSize size; +// +///** +// The scale mode for image content. +// */ +//@property (nonatomic, assign, readonly) BU_SDImageScaleMode scaleMode; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithSize:(CGSize)size scaleMode:(BU_SDImageScaleMode)scaleMode; +// +//@end + +/** + Image cropping transformer + */ +//@interface BU_SDImageCroppingTransformer : NSObject +// +///** +// Image's inner rect. +// */ +//@property (nonatomic, assign, readonly) CGRect rect; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithRect:(CGRect)rect; +// +//@end + +/** + Image flipping transformer + */ +//@interface BU_SDImageFlippingTransformer : NSObject +// +///** +// YES to flip the image horizontally. ⇋ +// */ +//@property (nonatomic, assign, readonly) BOOL horizontal; +// +///** +// YES to flip the image vertically. ⥯ +// */ +//@property (nonatomic, assign, readonly) BOOL vertical; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithHorizontal:(BOOL)horizontal vertical:(BOOL)vertical; +// +//@end + +/** + Image rotation transformer + */ +//@interface BU_SDImageRotationTransformer : NSObject +// +///** +// Rotated radians in counterclockwise.⟲ +// */ +//@property (nonatomic, assign, readonly) CGFloat angle; +// +///** +// YES: new image's size is extend to fit all content. +// NO: image's size will not change, content may be clipped. +// */ +//@property (nonatomic, assign, readonly) BOOL fitSize; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithAngle:(CGFloat)angle fitSize:(BOOL)fitSize; +// +//@end + +#pragma mark - Image Blending + +/** + Image tint color transformer + */ +//@interface BU_SDImageTintTransformer : NSObject +// +///** +// The tint color. +// */ +//@property (nonatomic, strong, readonly, nonnull) UIColor *tintColor; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithColor:(nonnull UIColor *)tintColor; +// +//@end + +#pragma mark - Image Effect + +/** + Image blur effect transformer + */ +@interface BU_SDImageBlurTransformer : NSObject + +/** + The radius of the blur in points, 0 means no blur effect. + */ +@property (nonatomic, assign, readonly) CGFloat blurRadius; + +- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithRadius:(CGFloat)blurRadius; + +@end + +//#if SD_UIKIT || SD_MAC +///** +// Core Image filter transformer +// */ +//@interface BU_SDImageFilterTransformer: NSObject +// +///** +// The CIFilter to be applied to the image. +// */ +//@property (nonatomic, strong, readonly, nonnull) CIFilter *filter; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithFilter:(nonnull CIFilter *)filter; +// +//@end +//#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageTransformer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageTransformer.h.meta new file mode 100644 index 00000000..f6b5651f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDImageTransformer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 870d3244351a44d6c81c339ad484929d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDInternalMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDInternalMacros.h new file mode 100755 index 00000000..3f6e937e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDInternalMacros.h @@ -0,0 +1,65 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDmetamacros.h" + +#ifndef SD_LOCK +#define SD_LOCK(lock) dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER); +#endif + +#ifndef SD_UNLOCK +#define SD_UNLOCK(lock) dispatch_semaphore_signal(lock); +#endif + +#ifndef SD_OPTIONS_CONTAINS +#define SD_OPTIONS_CONTAINS(options, value) (((options) & (value)) == (value)) +#endif + +#ifndef weakify +#define weakify(...) \ +sd_keywordify \ +metamacro_foreach_cxt(sd_weakify_,, __weak, __VA_ARGS__) +#endif + +#ifndef strongify +#define strongify(...) \ +sd_keywordify \ +_Pragma("clang diagnostic push") \ +_Pragma("clang diagnostic ignored \"-Wshadow\"") \ +metamacro_foreach(sd_strongify_,, __VA_ARGS__) \ +_Pragma("clang diagnostic pop") +#endif + +#define sd_weakify_(INDEX, CONTEXT, VAR) \ +CONTEXT __typeof__(VAR) metamacro_concat(VAR, _weak_) = (VAR); + +#define sd_strongify_(INDEX, VAR) \ +__strong __typeof__(VAR) VAR = metamacro_concat(VAR, _weak_); + +#if DEBUG +#define sd_keywordify autoreleasepool {} +#else +#define sd_keywordify try {} @catch (...) {} +#endif + +#ifndef onExit +#define onExit \ +sd_keywordify \ +__strong bu_sd_cleanupBlock_t metamacro_concat(sd_exitBlock_, __LINE__) __attribute__((cleanup(bu_sd_executeCleanupBlock), unused)) = ^ +#endif + +typedef void (^bu_sd_cleanupBlock_t)(void); + +#if defined(__cplusplus) +extern "C" { +#endif + void bu_sd_executeCleanupBlock (__strong bu_sd_cleanupBlock_t *block); +#if defined(__cplusplus) +} +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDInternalMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDInternalMacros.h.meta new file mode 100644 index 00000000..da522159 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDInternalMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 76275b65d0f794e8bafe8356180dddfe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDMemoryCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDMemoryCache.h new file mode 100755 index 00000000..a31e8313 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDMemoryCache.h @@ -0,0 +1,77 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDImageCacheConfig; +/** + A protocol to allow custom memory cache used in SDImageCache. + */ +@protocol BU_SDMemoryCache + +@required +/** + Create a new memory cache instance with the specify cache config. You can check `maxMemoryCost` and `maxMemoryCount` used for memory cache. + + @param config The cache config to be used to create the cache. + @return The new memory cache instance. + */ +- (nonnull instancetype)initWithConfig:(nonnull BU_SDImageCacheConfig *)config; + +/** + Returns the value associated with a given key. + + @param key An object identifying the value. If nil, just return nil. + @return The value associated with key, or nil if no value is associated with key. + */ +- (nullable id)objectForKey:(nonnull id)key; + +/** + Sets the value of the specified key in the cache (0 cost). + + @param object The object to be stored in the cache. If nil, it calls `removeObjectForKey:`. + @param key The key with which to associate the value. If nil, this method has no effect. + @discussion Unlike an NSMutableDictionary object, a cache does not copy the key + objects that are put into it. + */ +- (void)setObject:(nullable id)object forKey:(nonnull id)key; + +/** + Sets the value of the specified key in the cache, and associates the key-value + pair with the specified cost. + + @param object The object to store in the cache. If nil, it calls `removeObjectForKey`. + @param key The key with which to associate the value. If nil, this method has no effect. + @param cost The cost with which to associate the key-value pair. + @discussion Unlike an NSMutableDictionary object, a cache does not copy the key + objects that are put into it. + */ +- (void)setObject:(nullable id)object forKey:(nonnull id)key cost:(NSUInteger)cost; + +/** + Removes the value of the specified key in the cache. + + @param key The key identifying the value to be removed. If nil, this method has no effect. + */ +- (void)removeObjectForKey:(nonnull id)key; + +/** + Empties the cache immediately. + */ +- (void)removeAllObjects; + +@end + +/** + A memory cache which auto purge the cache on memory warning and support weak cache. + */ +@interface BU_SDMemoryCache : NSCache + +@property (nonatomic, strong, nonnull, readonly) BU_SDImageCacheConfig *config; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDMemoryCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDMemoryCache.h.meta new file mode 100644 index 00000000..e8e9c8ac --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDMemoryCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0dd568d4500e0432fa1926fd234d3fa0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWeakProxy.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWeakProxy.h new file mode 100755 index 00000000..7da33c43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWeakProxy.h @@ -0,0 +1,19 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +@interface BU_SDWeakProxy : NSProxy + +@property (nonatomic, weak, readonly, nullable) id target; + +- (nonnull instancetype)initWithTarget:(nonnull id)target; ++ (nonnull instancetype)proxyWithTarget:(nonnull id)target; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWeakProxy.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWeakProxy.h.meta new file mode 100644 index 00000000..b063f87c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWeakProxy.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06f17d09174b4415d9f2bd67a1f0ff5d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheKeyFilter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheKeyFilter.h new file mode 100755 index 00000000..fafc2904 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheKeyFilter.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSString * _Nullable(^SDWebImageCacheKeyFilterBlock)(NSURL * _Nonnull url); + +/** + This is the protocol for cache key filter. + We can use a block to specify the cache key filter. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol BU_SDWebImageCacheKeyFilter + +- (nullable NSString *)cacheKeyForURL:(nonnull NSURL *)url; + +@end + +/** + A cache key filter class with block. + */ +@interface BU_SDWebImageCacheKeyFilter : NSObject +// +- (nonnull instancetype)initWithBlock:(nonnull SDWebImageCacheKeyFilterBlock)block; +//+ (nonnull instancetype)cacheKeyFilterWithBlock:(nonnull SDWebImageCacheKeyFilterBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheKeyFilter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheKeyFilter.h.meta new file mode 100644 index 00000000..f734f212 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheKeyFilter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 788df3797039c418cbeafd59f8594fe8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheSerializer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheSerializer.h new file mode 100755 index 00000000..27690a2c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheSerializer.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSData * _Nullable(^BU_SDWebImageCacheSerializerBlock)(UIImage * _Nonnull image, NSData * _Nullable data, NSURL * _Nullable imageURL); + +/** + This is the protocol for cache serializer. + We can use a block to specify the cache serializer. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol BU_SDWebImageCacheSerializer + +- (nullable NSData *)cacheDataWithImage:(nonnull UIImage *)image originalData:(nullable NSData *)data imageURL:(nullable NSURL *)imageURL; + +@end + +/** + A cache serializer class with block. + */ +@interface BU_SDWebImageCacheSerializer : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull BU_SDWebImageCacheSerializerBlock)block; +//+ (nonnull instancetype)cacheSerializerWithBlock:(nonnull BU_SDWebImageCacheSerializerBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheSerializer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheSerializer.h.meta new file mode 100644 index 00000000..25cc4d61 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCacheSerializer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 365b7ba8e0fe74005b566e78dd699714 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCompat.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCompat.h new file mode 100755 index 00000000..f47a248a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCompat.h @@ -0,0 +1,95 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Jamie Pinkham + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import + +#ifdef __OBJC_GC__ + #error SDWebImage does not support Objective-C Garbage Collection +#endif + +// Seems like TARGET_OS_MAC is always defined (on all platforms). +// To determine if we are running on macOS, use TARGET_OS_OSX in Xcode 8 +#if TARGET_OS_OSX + #define SD_MAC 1 +#else + #define SD_MAC 0 +#endif + +// iOS and tvOS are very similar, UIKit exists on both platforms +// Note: watchOS also has UIKit, but it's very limited +#if TARGET_OS_IOS || TARGET_OS_TV + #define SD_UIKIT 1 +#else + #define SD_UIKIT 0 +#endif + +#if TARGET_OS_IOS + #define SD_IOS 1 +#else + #define SD_IOS 0 +#endif + +#if TARGET_OS_TV + #define SD_TV 1 +#else + #define SD_TV 0 +#endif + +#if TARGET_OS_WATCH + #define SD_WATCH 1 +#else + #define SD_WATCH 0 +#endif + + +#if SD_MAC + #import + #ifndef UIImage + #define UIImage NSImage + #endif + #ifndef UIImageView + #define UIImageView NSImageView + #endif + #ifndef UIView + #define UIView NSView + #endif + #ifndef UIColor + #define UIColor NSColor + #endif +#else + #if SD_UIKIT + #import + #endif + #if SD_WATCH + #import + #ifndef UIView + #define UIView WKInterfaceObject + #endif + #ifndef UIImageView + #define UIImageView WKInterfaceImage + #endif + #endif +#endif + +#ifndef NS_ENUM +#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type +#endif + +#ifndef NS_OPTIONS +#define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type +#endif + +#ifndef dispatch_main_async_safe +#define dispatch_main_async_safe(block)\ + if (dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL) == dispatch_queue_get_label(dispatch_get_main_queue())) {\ + block();\ + } else {\ + dispatch_async(dispatch_get_main_queue(), block);\ + } +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCompat.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCompat.h.meta new file mode 100644 index 00000000..9fe74fa8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageCompat.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d1994e31d707a4e97b24068b55dd0bfe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDefine.h new file mode 100755 index 00000000..21176e48 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDefine.h @@ -0,0 +1,244 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +typedef void(^SDWebImageNoParamsBlock)(void); +typedef NSString * BU_SDWebImageContextOption NS_EXTENSIBLE_STRING_ENUM; +typedef NSDictionary SDWebImageContext; +typedef NSMutableDictionary SDWebImageMutableContext; + +#pragma mark - Image scale + +/** + Return the image scale factor for the specify key, supports file name and url key. + This is the built-in way to check the scale factor when we have no context about it. Because scale factor is not stored in image data (It's typically from filename). + However, you can also provide custom scale factor as well, see `BU_SDWebImageContextImageScaleFactor`. + + @param key The image cache key + @return The scale factor for image + */ +FOUNDATION_EXPORT CGFloat BU_SDImageScaleFactorForKey(NSString * _Nullable key); + +/** + Scale the image with the scale factor for the specify key. If no need to scale, return the original image. + This works for `UIImage`(UIKit) or `NSImage`(AppKit). And this function also preserve the associated value in `UIImage+BUMetadata.h`. + @note This is actually a convenience function, which firstlly call `BU_SDImageScaleFactorForKey` and then call `BU_SDScaledImageForScaleFactor`, kept for backward compatibility. + + @param key The image cache key + @param image The image + @return The scaled image + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDScaledImageForKey(NSString * _Nullable key, UIImage * _Nullable image); + +/** + Scale the image with the scale factor. If no need to scale, return the original image. + This works for `UIImage`(UIKit) or `NSImage`(AppKit). And this function also preserve the associated value in `UIImage+BUMetadata.h`. + + @param scale The image scale factor + @param image The image + @return The scaled image + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDScaledImageForScaleFactor(CGFloat scale, UIImage * _Nullable image); + +#pragma mark - WebCache Options + +/// BU_WebCache options +typedef NS_OPTIONS(NSUInteger, BU_SDWebImageOptions) { + /** + * By default, when a URL fail to be downloaded, the URL is blacklisted so the library won't keep trying. + * This flag disable this blacklisting. + */ + BU_SDWebImageRetryFailed = 1 << 0, + + /** + * By default, image downloads are started during UI interactions, this flags disable this feature, + * leading to delayed download on UIScrollView deceleration for instance. + */ + BU_SDWebImageLowPriority = 1 << 1, + + /** + * This flag enables progressive download, the image is displayed progressively during download as a browser would do. + * By default, the image is only displayed once completely downloaded. + */ + BU_SDWebImageProgressiveLoad = 1 << 2, + + /** + * Even if the image is cached, respect the HTTP response cache control, and refresh the image from remote location if needed. + * The disk caching will be handled by NSURLCache instead of SDWebImage leading to slight performance degradation. + * This option helps deal with images changing behind the same request URL, e.g. Facebook graph api profile pics. + * If a cached image is refreshed, the completion block is called once with the cached image and again with the final image. + * + * Use this flag only if you can't make your URLs static with embedded cache busting parameter. + */ + BU_SDWebImageRefreshCached = 1 << 3, + + /** + * In iOS 4+, continue the download of the image if the app goes to background. This is achieved by asking the system for + * extra time in background to let the request finish. If the background task expires the operation will be cancelled. + */ + BU_SDWebImageContinueInBackground = 1 << 4, + + /** + * Handles cookies stored in NSHTTPCookieStore by setting + * NSMutableURLRequest.HTTPShouldHandleCookies = YES; + */ + BU_SDWebImageHandleCookies = 1 << 5, + + /** + * Enable to allow untrusted SSL certificates. + * Useful for testing purposes. Use with caution in production. + */ + BU_SDWebImageAllowInvalidSSLCertificates = 1 << 6, + + /** + * By default, images are loaded in the order in which they were queued. This flag moves them to + * the front of the queue. + */ + BU_SDWebImageHighPriority = 1 << 7, + + /** + * By default, placeholder images are loaded while the image is loading. This flag will delay the loading + * of the placeholder image until after the image has finished loading. + */ + BU_SDWebImageDelayPlaceholder = 1 << 8, + + /** + * We usually don't apply transform on animated images as most transformers could not manage animated images. + * Use this flag to transform them anyway. + */ + BU_SDWebImageTransformAnimatedImage = 1 << 9, + + /** + * By default, image is added to the imageView after download. But in some cases, we want to + * have the hand before setting the image (apply a filter or add it with cross-fade animation for instance) + * Use this flag if you want to manually set the image in the completion when success + */ + BU_SDWebImageAvoidAutoSetImage = 1 << 10, + + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + * This flag take no effect if `SDWebImageAvoidDecodeImage` is set. And it will be ignored if `SDWebImageProgressiveLoad` is set. + */ + BU_SDWebImageScaleDownLargeImages = 1 << 11, + + /** + * By default, we do not query image data when the image is already cached in memory. This mask can force to query image data at the same time. However, this query is asynchronously unless you specify `SDWebImageQueryMemoryDataSync` + */ + BU_SDWebImageQueryMemoryData = 1 << 12, + + /** + * By default, when you only specify `SDWebImageQueryMemoryData`, we query the memory image data asynchronously. Combined this mask as well to query the memory image data synchronously. + * @note Query data synchronously is not recommend, unless you want to ensure the image is loaded in the same runloop to avoid flashing during cell reusing. + */ + BU_SDWebImageQueryMemoryDataSync = 1 << 13, + + /** + * By default, when the memory cache miss, we query the disk cache asynchronously. This mask can force to query disk cache (when memory cache miss) synchronously. + * @note These 3 query options can be combined together. For the full list about these masks combination, see wiki page. + * @note Query data synchronously is not recommend, unless you want to ensure the image is loaded in the same runloop to avoid flashing during cell reusing. + */ + BU_SDWebImageQueryDiskDataSync = 1 << 14, + + /** + * By default, when the cache missed, the image is load from the loader. This flag can prevent this to load from cache only. + */ + BU_SDWebImageFromCacheOnly = 1 << 15, + + /** + * By default, we query the cache before the image is load from the loader. This flag can prevent this to load from loader only. + */ + BU_SDWebImageFromLoaderOnly = 1 << 16, + + /** + * By default, when you use `SDWebImageTransition` to do some view transition after the image load finished, this transition is only applied for image download from the network. This mask can force to apply view transition for memory and disk cache as well. + */ + BU_SDWebImageForceTransition = 1 << 17, + + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + BU_SDWebImageAvoidDecodeImage = 1 << 18, + + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + BU_SDWebImageDecodeFirstFrameOnly = 1 << 19, + + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. However, you can specify to preload all frames into memory to reduce CPU usage when the animated image is shared by lots of imageViews. + * This will actually trigger `preloadAllAnimatedImageFrames` in the background queue(Disk Cache & Download only). + */ + BU_SDWebImagePreloadAllFrames = 1 << 20, + + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available to produce one exactlly matching your custom class as a fallback solution. + * Using this option, can ensure we always callback image with your provided class. If failed to produce one, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDWebImageDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + BU_SDWebImageMatchAnimatedImageClass = 1 << 21, +}; + + +#pragma mark - Context Options + +/** + A String to be used as the operation key for view category to store the image load operation. This is used for view instance which supports different image loading process. If nil, will use the class name as operation key. (NSString *) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextSetImageOperationKey; + +/** + A SDWebImageManager instance to control the image download and cache process using in UIImageView+BU_WebCache category and likes. If not provided, use the shared manager (SDWebImageManager *) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCustomManager; + +/** + A id instance which conforms `BU_SDImageTransformer` protocol. It's used for image transform after the image load finished and store the transformed image to cache. If you provide one, it will ignore the `transformer` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextImageTransformer; + +/** + A CGFloat raw value which specify the image scale factor. The number should be greater than or equal to 1.0. If not provide or the number is invalid, we will use the cache key to specify the scale factor. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextImageScaleFactor; + +/** + A BU_SDImageCacheType raw value which specify the store cache type when the image has just been downloaded and will be stored to the cache. Specify `BU_SDImageCacheTypeNone` to disable cache storage; `BU_SDImageCacheTypeDisk` to store in disk cache only; `BU_SDImageCacheTypeMemory` to store in memory only. And `BU_SDImageCacheTypeAll` to store in both memory cache and disk cache. + If you use image transformer feature, this actually apply for the transformed image, but not the original image itself. Use `BU_SDWebImageContextOriginalStoreCacheType` if you want to control the original image's store cache type at the same time. + If not provide or the value is invalid, we will use `BU_SDImageCacheTypeAll`. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextStoreCacheType; + +/** + The same behavior like `BU_SDWebImageContextStoreCacheType`, but control the store cache type for the original image when you use image transformer feature. This allows the detail control of cache storage for these two images. For example, if you want to store the transformed image into both memory/disk cache, store the original image into disk cache only, use `[.storeCacheType : .all, .originalStoreCacheType : .disk]` + If not provide or the value is invalid, we will use `BU_SDImageCacheTypeNone`, which does not store the original image into cache. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextOriginalStoreCacheType; + +/** + A Class object which the instance is a `UIImage/NSImage` subclass and adopt `BU_SDAnimatedImage` protocol. We will call `initWithData:scale:options:` to create the instance (or `initWithAnimatedCoder:scale:` when using progressive download) . If the instance create failed, fallback to normal `UIImage/NSImage`. + This can be used to improve animated images rendering performance (especially memory usage on big animated images) with `SDAnimatedImageView` (Class). + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextAnimatedImageClass; + +/** + A id instance to modify the image download request. It's used for downloader to modify the original request from URL and options. If you provide one, it will ignore the `requestModifier` in downloader and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextDownloadRequestModifier; + +/** + A id instance to convert an URL into a cache key. It's used when manager need cache key to use image cache. If you provide one, it will ignore the `cacheKeyFilter` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCacheKeyFilter; + +/** + A id instance to convert the decoded image, the source downloaded data, to the actual data. It's used for manager to store image to the disk cache. If you provide one, it will ignore the `cacheSerializer` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCacheSerializer; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDefine.h.meta new file mode 100644 index 00000000..8886d0e6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a4313f36b882c440992b6f0d33a2920a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloader.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloader.h new file mode 100755 index 00000000..2e094496 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloader.h @@ -0,0 +1,290 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDWebImageDownloaderConfig.h" +#import "BU_SDWebImageDownloaderRequestModifier.h" +#import "BU_SDImageLoader.h" + +/// Downloader options +typedef NS_OPTIONS(NSUInteger, SDWebImageDownloaderOptions) { + /** + * Put the download in the low queue priority and task priority. + */ + SDWebImageDownloaderLowPriority = 1 << 0, + + /** + * This flag enables progressive download, the image is displayed progressively during download as a browser would do. + */ + SDWebImageDownloaderProgressiveLoad = 1 << 1, + + /** + * By default, request prevent the use of NSURLCache. With this flag, NSURLCache + * is used with default policies. + */ + SDWebImageDownloaderUseNSURLCache = 1 << 2, + + /** + * Call completion block with nil image/imageData if the image was read from NSURLCache + * And the error code is `SDWebImageErrorCacheNotModified` + * This flag should be combined with `SDWebImageDownloaderUseNSURLCache`. + */ + SDWebImageDownloaderIgnoreCachedResponse = 1 << 3, + + /** + * In iOS 4+, continue the download of the image if the app goes to background. This is achieved by asking the system for + * extra time in background to let the request finish. If the background task expires the operation will be cancelled. + */ + SDWebImageDownloaderContinueInBackground = 1 << 4, + + /** + * Handles cookies stored in NSHTTPCookieStore by setting + * NSMutableURLRequest.HTTPShouldHandleCookies = YES; + */ + SDWebImageDownloaderHandleCookies = 1 << 5, + + /** + * Enable to allow untrusted SSL certificates. + * Useful for testing purposes. Use with caution in production. + */ + SDWebImageDownloaderAllowInvalidSSLCertificates = 1 << 6, + + /** + * Put the download in the high queue priority and task priority. + */ + SDWebImageDownloaderHighPriority = 1 << 7, + + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + * This flag take no effect if `SDWebImageDownloaderAvoidDecodeImage` is set. And it will be ignored if `SDWebImageDownloaderProgressiveLoad` is set. + */ + SDWebImageDownloaderScaleDownLargeImages = 1 << 8, + + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + SDWebImageDownloaderAvoidDecodeImage = 1 << 9, + + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + SDWebImageDownloaderDecodeFirstFrameOnly = 1 << 10, + + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. This flag actually trigger `preloadAllAnimatedImageFrames = YES` after image load from network + */ + SDWebImageDownloaderPreloadAllFrames = 1 << 11, + + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution. + * Using this option, can ensure we always produce image with your provided class. If failed, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDWebImageDownloaderDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + SDWebImageDownloaderMatchAnimatedImageClass = 1 << 12, +}; + +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadStartNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadReceiveResponseNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadStopNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadFinishNotification; + +typedef SDImageLoaderProgressBlock SDWebImageDownloaderProgressBlock; +typedef SDImageLoaderCompletedBlock SDWebImageDownloaderCompletedBlock; + +/** + * A token associated with each download. Can be used to cancel a download + */ +@interface BU_SDWebImageDownloadToken : NSObject + +/** + Cancel the current download. + */ +- (void)cancel; + +/** + The download's URL. + */ +@property (nonatomic, strong, nullable, readonly) NSURL *url; + +/** + The download's request. + */ +@property (nonatomic, strong, nullable, readonly) NSURLRequest *request; + +/** + The download's response. + */ +@property (nonatomic, strong, nullable, readonly) NSURLResponse *response; + +@end + + +/** + * Asynchronous downloader dedicated and optimized for image loading. + */ +@interface BU_SDWebImageDownloader : NSObject + +/** + * Downloader Config object - storing all kind of settings. + * Most config properties support dynamic changes during download, except something like `sessionConfiguration`, see `BU_SDWebImageDownloaderConfig` for more detail. + */ +@property (nonatomic, copy, readonly, nonnull) BU_SDWebImageDownloaderConfig *config; + +/** + * Set the request modifier to modify the original download request before image load. + * This request modifier method will be called for each downloading image request. Return the original request means no modication. Return nil will cancel the download request. + * Defaults to nil, means does not modify the original download request. + * @note If you want to modify single request, consider using `BU_SDWebImageContextDownloadRequestModifier` context option. + */ +@property (nonatomic, strong, nullable) id requestModifier; + +/** + * The configuration in use by the internal NSURLSession. If you want to provide a custom sessionConfiguration, use `BU_SDWebImageDownloaderConfig.sessionConfiguration` and create a new downloader instance. + @note This is immutable according to NSURLSession's documentation. Mutating this object directly has no effect. + */ +@property (nonatomic, readonly, nonnull) NSURLSessionConfiguration *sessionConfiguration; + +/** + * Gets/Sets the download queue suspension state. + */ +@property (nonatomic, assign, getter=isSuspended) BOOL suspended; + +/** + * Shows the current amount of downloads that still need to be downloaded + */ +@property (nonatomic, assign, readonly) NSUInteger currentDownloadCount; + +/** + * Returns the global shared downloader instance. Which use the `BU_SDWebImageDownloaderConfig.defaultDownloaderConfig` config. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageDownloader *sharedDownloader; + +/** + Creates an instance of a downloader with specified downloader config. + You can specify session configuration, timeout or operation class through downloader config. + + @param config The downloader config. If you specify nil, the `defaultDownloaderConfig` will be used. + @return new instance of downloader class + */ +- (nonnull instancetype)initWithConfig:(nullable BU_SDWebImageDownloaderConfig *)config NS_DESIGNATED_INITIALIZER; + +/** + * Set a value for a HTTP header to be appended to each download HTTP request. + * + * @param value The value for the header field. Use `nil` value to remove the header field. + * @param field The name of the header field to set. + */ +- (void)setValue:(nullable NSString *)value forHTTPHeaderField:(nullable NSString *)field; + +/** + * Returns the value of the specified HTTP header field. + * + * @return The value associated with the header field field, or `nil` if there is no corresponding header field. + */ +- (nullable NSString *)valueForHTTPHeaderField:(nullable NSString *)field; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param completedBlock A block called once the download is completed. + * If the download succeeded, the image parameter is set, in case of error, + * error parameter is set with the error. The last parameter is always YES + * if SDWebImageDownloaderProgressiveDownload isn't use. With the + * SDWebImageDownloaderProgressiveDownload option, this block is called + * repeatedly with the partial image object and the finished argument set to NO + * before to be called a last time with the full image and finished argument + * set to YES. In case of error, the finished argument is always YES. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +//- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url +// completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param options The options to be used for this download + * @param progressBlock A block called repeatedly while the image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called once the download is completed. + * If the download succeeded, the image parameter is set, in case of error, + * error parameter is set with the error. The last parameter is always YES + * if SDWebImageDownloaderProgressiveLoad isn't use. With the + * SDWebImageDownloaderProgressiveLoad option, this block is called + * repeatedly with the partial image object and the finished argument set to NO + * before to be called a last time with the full image and finished argument + * set to YES. In case of error, the finished argument is always YES. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url + options:(SDWebImageDownloaderOptions)options + progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param options The options to be used for this download + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called repeatedly while the image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called once the download is completed. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Cancels all download operations in the queue + */ +//- (void)cancelAllDownloads; + +/** + * Invalidates the managed session, optionally canceling pending operations. + * @note If you use custom downloader instead of the shared downloader, you need call this method when you do not use it to avoid memory leak + * @param cancelPendingOperations Whether or not to cancel pending operations. + * @note Calling this method on the shared downloader has no effect. + */ +//- (void)invalidateSessionAndCancel:(BOOL)cancelPendingOperations; + +@end + + +/** + SDWebImageDownloader is the built-in image loader conform to `SDImageLoader`. Which provide the HTTP/HTTPS/FTP download, or local file URL using NSURLSession. + However, this downloader class itself also support customization for advanced users. You can specify `operationClass` in download config to custom download operation, See `SDWebImageDownloaderOperation`. + If you want to provide some image loader which beyond network or local file, consider to create your own custom class conform to `SDImageLoader`. + */ +@interface BU_SDWebImageDownloader (SDImageLoader) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloader.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloader.h.meta new file mode 100644 index 00000000..3bca0fd5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloader.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aab2c4d7f05014108b6db0f6bee8f718 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderConfig.h new file mode 100755 index 00000000..bda4eae1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderConfig.h @@ -0,0 +1,98 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/// Operation execution order +typedef NS_ENUM(NSInteger, SDWebImageDownloaderExecutionOrder) { + /** + * Default value. All download operations will execute in queue style (first-in-first-out). + */ + SDWebImageDownloaderFIFOExecutionOrder, + + /** + * All download operations will execute in stack style (last-in-first-out). + */ + SDWebImageDownloaderLIFOExecutionOrder +}; + +/** + The class contains all the config for image downloader + @note This class conform to NSCopying, make sure to add the property in `copyWithZone:` as well. + */ +@interface BU_SDWebImageDownloaderConfig : NSObject + +/** + Gets the default downloader config used for shared instance or initialization when it does not provide any downloader config. Such as `SDWebImageDownloader.sharedDownloader`. + @note You can modify the property on default downloader config, which can be used for later created downloader instance. The already created downloader instance does not get affected. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageDownloaderConfig *defaultDownloaderConfig; + +/** + * The maximum number of concurrent downloads. + * Defaults to 6. + */ +@property (nonatomic, assign) NSInteger maxConcurrentDownloads; + +/** + * The timeout value (in seconds) for each download operation. + * Defaults to 15.0. + */ +@property (nonatomic, assign) NSTimeInterval downloadTimeout; + +/** + * The minimum interval about progress percent during network downloading. Which means the next progress callback and current progress callback's progress percent difference should be larger or equal to this value. However, the final finish download progress callback does not get effected. + * The value should be 0.0-1.0. + * @note If you're using progressive decoding feature, this will also effect the image refresh rate. + * @note This value may enhance the performance if you don't want progress callback too frequently. + * Defaults to 0, which means each time we receive the new data from URLSession, we callback the progressBlock immediately. + */ +@property (nonatomic, assign) double minimumProgressInterval; + +/** + * The custom session configuration in use by NSURLSession. If you don't provide one, we will use `defaultSessionConfiguration` instead. + * Defatuls to nil. + * @note This property does not support dynamic changes, means it's immutable after the downloader instance initialized. + */ +@property (nonatomic, strong, nullable) NSURLSessionConfiguration *sessionConfiguration; + +/** + * Gets/Sets a subclass of `SDWebImageDownloaderOperation` as the default + * `NSOperation` to be used each time SDWebImage constructs a request + * operation to download an image. + * Defaults to nil. + * @note Passing `NSOperation` to set as default. Passing `nil` will revert to `SDWebImageDownloaderOperation`. + */ +@property (nonatomic, assign, nullable) Class operationClass; + +/** + * Changes download operations execution order. + * Defaults to `SDWebImageDownloaderFIFOExecutionOrder`. + */ +@property (nonatomic, assign) SDWebImageDownloaderExecutionOrder executionOrder; + +/** + * Set the default URL credential to be set for request operations. + * Defaults to nil. + */ +@property (nonatomic, copy, nullable) NSURLCredential *urlCredential; + +/** + * Set username using for HTTP Basic authentication. + * Defaults to nil. + */ +@property (nonatomic, copy, nullable) NSString *username; + +/** + * Set password using for HTTP Basic authentication. + * Defautls to nil. + */ +@property (nonatomic, copy, nullable) NSString *password; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderConfig.h.meta new file mode 100644 index 00000000..1d4d0639 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 269fce0cadf184f1994c7c04cc1677fe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderOperation.h new file mode 100755 index 00000000..1c719e15 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderOperation.h @@ -0,0 +1,146 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageDownloader.h" +#import "BU_SDWebImageOperation.h" + +/** + Describes a downloader operation. If one wants to use a custom downloader op, it needs to inherit from `NSOperation` and conform to this protocol + For the description about these methods, see `SDWebImageDownloaderOperation` + @note If your custom operation class does not use `NSURLSession` at all, do not implement the optional methods and session delegate methods. + */ +@protocol SDWebImageDownloaderOperation +@required +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options; + +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context; + +- (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +- (BOOL)cancel:(nullable id)token; + +@property (strong, nonatomic, readonly, nullable) NSURLRequest *request; +@property (strong, nonatomic, readonly, nullable) NSURLResponse *response; + +@optional +@property (strong, nonatomic, readonly, nullable) NSURLSessionTask *dataTask; +@property (strong, nonatomic, nullable) NSURLCredential *credential; +@property (assign, nonatomic) double minimumProgressInterval; + +@end + + +/** + The download operation class for SDWebImageDownloader. + */ +@interface BU_SDWebImageDownloaderOperation : NSOperation + +/** + * The request used by the operation's task. + */ +@property (strong, nonatomic, readonly, nullable) NSURLRequest *request; + +/** + * The response returned by the operation's task. + */ +@property (strong, nonatomic, readonly, nullable) NSURLResponse *response; + +/** + * The operation's task + */ +@property (strong, nonatomic, readonly, nullable) NSURLSessionTask *dataTask; + +/** + * The credential used for authentication challenges in `-URLSession:task:didReceiveChallenge:completionHandler:`. + * + * This will be overridden by any shared credentials that exist for the username or password of the request URL, if present. + */ +@property (strong, nonatomic, nullable) NSURLCredential *credential; + +/** + * The minimum interval about progress percent during network downloading. Which means the next progress callback and current progress callback's progress percent difference should be larger or equal to this value. However, the final finish download progress callback does not get effected. + * The value should be 0.0-1.0. + * @note If you're using progressive decoding feature, this will also effect the image refresh rate. + * @note This value may enhance the performance if you don't want progress callback too frequently. + * Defaults to 0, which means each time we receive the new data from URLSession, we callback the progressBlock immediately. + */ +@property (assign, nonatomic) double minimumProgressInterval; + +/** + * The options for the receiver. + */ +@property (assign, nonatomic, readonly) SDWebImageDownloaderOptions options; + +/** + * The context for the receiver. + */ +@property (copy, nonatomic, readonly, nullable) SDWebImageContext *context; + +/** + * Initializes a `SDWebImageDownloaderOperation` object + * + * @see SDWebImageDownloaderOperation + * + * @param request the URL request + * @param session the URL session in which this operation will run + * @param options downloader options + * + * @return the initialized instance + */ +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options; + +/** + * Initializes a `SDWebImageDownloaderOperation` object + * + * @see SDWebImageDownloaderOperation + * + * @param request the URL request + * @param session the URL session in which this operation will run + * @param options downloader options + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * + * @return the initialized instance + */ +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context NS_DESIGNATED_INITIALIZER; + +/** + * Adds handlers for progress and completion. Returns a tokent that can be passed to -cancel: to cancel this set of + * callbacks. + * + * @param progressBlock the block executed when a new chunk of data arrives. + * @note the progress block is executed on a background queue + * @param completedBlock the block executed when the download is done. + * @note the completed block is executed on the main queue for success. If errors are found, there is a chance the block will be executed on a background queue + * + * @return the token to use to cancel this set of handlers + */ +- (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Cancels a set of callbacks. Once all callbacks are canceled, the operation is cancelled. + * + * @param token the token representing a set of callbacks to cancel + * + * @return YES if the operation was stopped because this was the last token to be canceled. NO otherwise. + */ +- (BOOL)cancel:(nullable id)token; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderOperation.h.meta new file mode 100644 index 00000000..5b05ef37 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 894a757dc61a745b8848f805de87c971 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderRequestModifier.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderRequestModifier.h new file mode 100755 index 00000000..a6431450 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderRequestModifier.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSURLRequest * _Nullable (^SDWebImageDownloaderRequestModifierBlock)(NSURLRequest * _Nonnull request); + +/** + This is the protocol for downloader request modifier. + We can use a block to specify the downloader request modifier. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol SDWebImageDownloaderRequestModifier + +- (nullable NSURLRequest *)modifiedRequestWithRequest:(nonnull NSURLRequest *)request; + +@end + +/** + A downloader request modifier class with block. + */ +@interface BU_SDWebImageDownloaderRequestModifier : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull SDWebImageDownloaderRequestModifierBlock)block; ++ (nonnull instancetype)requestModifierWithBlock:(nonnull SDWebImageDownloaderRequestModifierBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta new file mode 100644 index 00000000..257e5a9f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2f525ebe805f94f5f88aea0561ac4b58 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageError.h new file mode 100755 index 00000000..90d1da46 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageError.h @@ -0,0 +1,25 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Jamie Pinkham + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +FOUNDATION_EXPORT NSErrorDomain const _Nonnull BU_SDWebImageErrorDomain; + +/// The HTTP status code for invalid download response (NSNumber *) +FOUNDATION_EXPORT NSErrorUserInfoKey const _Nonnull BU_SDWebImageErrorDownloadStatusCodeKey; + +/// SDWebImage error domain and codes +typedef NS_ERROR_ENUM(BU_SDWebImageErrorDomain, SDWebImageError) { + SDWebImageErrorInvalidURL = 1000, // The URL is invalid, such as nil URL or corrupted URL + SDWebImageErrorBadImageData = 1001, // The image data can not be decoded to image, or the image data is empty + SDWebImageErrorCacheNotModified = 1002, // The remote location specify that the cached image is not modified, such as the HTTP response 304 code. It's useful for `SDWebImageRefreshCached` + SDWebImageErrorInvalidDownloadOperation = 2000, // The image download operation is invalid, such as nil operation or unexpected error occur when operation initialized + SDWebImageErrorInvalidDownloadStatusCode = 2001, // The image download response a invalid status code. You can check the status code in error's userInfo under `BU_SDWebImageErrorDownloadStatusCodeKey` + SDWebImageErrorCancelled = 2002, // The image loading operation is cancelled before finished, during either async disk cache query, or waiting before actual network request. For actual network request error, check `NSURLErrorDomain` error domain and code. +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageError.h.meta new file mode 100644 index 00000000..d9fb87f3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9523bb04a32ed431e8bbca3179d3d306 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageIndicator.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageIndicator.h new file mode 100755 index 00000000..0573515c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageIndicator.h @@ -0,0 +1,115 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT || SD_MAC + +/** + A protocol to custom the indicator during the image loading. + All of these methods are called from main queue. + */ +@protocol SDWebImageIndicator + +@required +/** + The view associate to the indicator. + + @return The indicator view + */ +@property (nonatomic, strong, readonly, nonnull) UIView *indicatorView; + +/** + Start the animating for indicator. + */ +- (void)startAnimatingIndicator; + +/** + Stop the animating for indicator. + */ +- (void)stopAnimatingIndicator; + +@optional +/** + Update the loading progress (0-1.0) for indicator. Optional + + @param progress The progress, value between 0 and 1.0 + */ +- (void)updateIndicatorProgress:(double)progress; + +@end + +#pragma mark - Activity Indicator + +/** + Activity indicator class. + for UIKit(macOS), it use a `UIActivityIndicatorView`. + for AppKit(macOS), it use a `NSProgressIndicator` with the spinning style. + */ +//@interface BU_SDWebImageActivityIndicator : NSObject +// +//#if SD_UIKIT +//@property (nonatomic, strong, readonly, nonnull) UIActivityIndicatorView *indicatorView; +//#else +//@property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView; +//#endif +// +//@end +// +///** +// Convenience way to use activity indicator. +// */ +//@interface BU_SDWebImageActivityIndicator (Conveniences) +// +///// These indicator use the fixed color without dark mode support +///// gray-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *grayIndicator; +///// large gray-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *grayLargeIndicator; +///// white-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *whiteIndicator; +///// large white-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *whiteLargeIndicator; +///// These indicator use the system style, supports dark mode if available (iOS 13+/macOS 10.14+) +///// large activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *largeIndicator; +///// medium activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *mediumIndicator; +// +//@end + +#pragma mark - Progress Indicator + +/** + Progress indicator class. + for UIKit(macOS), it use a `UIProgressView`. + for AppKit(macOS), it use a `NSProgressIndicator` with the bar style. + */ +//@interface BU_SDWebImageProgressIndicator : NSObject +// +//#if SD_UIKIT +//@property (nonatomic, strong, readonly, nonnull) UIProgressView *indicatorView; +//#else +//@property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView; +//#endif +// +//@end + +/** + Convenience way to create progress indicator. Remember to specify the indicator width or use layout constraint if need. +// */ +//@interface BU_SDWebImageProgressIndicator (Conveniences) +// +///// default-style progress indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageProgressIndicator *defaultIndicator; +///// bar-style progress indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageProgressIndicator *barIndicator API_UNAVAILABLE(macos, tvos); +// +//@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageIndicator.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageIndicator.h.meta new file mode 100644 index 00000000..2f12ae3d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageIndicator.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ae9801cc53dbc4566b8951698b773d20 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageManager.h new file mode 100755 index 00000000..544840e4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageManager.h @@ -0,0 +1,269 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDImageCacheDefine.h" +#import "BU_SDImageLoader.h" +#import "BU_SDImageTransformer.h" +#import "BU_SDWebImageCacheKeyFilter.h" +#import "BU_SDWebImageCacheSerializer.h" +#import "BU_SDWebImageOptionsProcessor.h" + +typedef void(^BU_SDExternalCompletionBlock)(UIImage * _Nullable image, NSError * _Nullable error, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); + +typedef void(^BU_SDInternalCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BU_SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL); + +/** + A combined operation representing the cache and loader operation. You can use it to cancel the load process. + */ +@interface BU_SDWebImageCombinedOperation : NSObject + +/** + Cancel the current operation, including cache and loader process + */ +- (void)cancel; + +/** + The cache operation from the image cache query + */ +@property (strong, nonatomic, nullable, readonly) id cacheOperation; + +/** + The loader operation from the image loader (such as download operation) + */ +@property (strong, nonatomic, nullable, readonly) id loaderOperation; + +@end + + +@class BU_SDWebImageManager; + +/** + The manager delegate protocol. + */ +@protocol BU_SDWebImageManagerDelegate + +@optional + +/** + * Controls which image should be downloaded when the image is not found in the cache. + * + * @param imageManager The current `SDWebImageManager` + * @param imageURL The url of the image to be downloaded + * + * @return Return NO to prevent the downloading of the image on cache misses. If not implemented, YES is implied. + */ +- (BOOL)imageManager:(nonnull BU_SDWebImageManager *)imageManager shouldDownloadImageForURL:(nonnull NSURL *)imageURL; + +/** + * Controls the complicated logic to mark as failed URLs when download error occur. + * If the delegate implement this method, we will not use the built-in way to mark URL as failed based on error code; + @param imageManager The current `SDWebImageManager` + @param imageURL The url of the image + @param error The download error for the url + @return Whether to block this url or not. Return YES to mark this URL as failed. + */ +- (BOOL)imageManager:(nonnull BU_SDWebImageManager *)imageManager shouldBlockFailedURL:(nonnull NSURL *)imageURL withError:(nonnull NSError *)error; + +@end + +/** + * The SDWebImageManager is the class behind the UIImageView+BU_WebCache category and likes. + * It ties the asynchronous downloader (SDWebImageDownloader) with the image cache store (SDImageCache). + * You can use this class directly to benefit from web image downloading with caching in another context than + * a UIView. + * + * Here is a simple example of how to use SDWebImageManager: + * + * @code + +SDWebImageManager *manager = [SDWebImageManager sharedManager]; +[manager loadImageWithURL:imageURL + options:0 + progress:nil + completed:^(UIImage *image, NSError *error, BU_SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { + if (image) { + // do something with image + } + }]; + + * @endcode + */ +@interface BU_SDWebImageManager : NSObject + +/** + * The delegate for manager. Defatuls to nil. + */ +@property (weak, nonatomic, nullable) id delegate; + +/** + * The image cache used by manager to query image cache. + */ +@property (strong, nonatomic, readonly, nonnull) id imageCache; + +/** + * The image loader used by manager to load image. + */ +@property (strong, nonatomic, readonly, nonnull) id imageLoader; + +/** + The image transformer for manager. It's used for image transform after the image load finished and store the transformed image to cache, see `BU_SDImageTransformer`. + Defaults to nil, which means no transform is applied. + @note This will affect all the load requests for this manager if you provide. However, you can pass `BU_SDWebImageContextImageTransformer` in context arg to explicitly use that transformer instead. + */ +@property (strong, nonatomic, nullable) id transformer; + +/** + * The cache filter is used to convert an URL into a cache key each time SDWebImageManager need cache key to use image cache. + * + * The following example sets a filter in the application delegate that will remove any query-string from the + * URL before to use it as a cache key: + * + * @code + SDWebImageManager.sharedManager.cacheKeyFilter =[BU_SDWebImageCacheKeyFilter cacheKeyFilterWithBlock:^NSString * _Nullable(NSURL * _Nonnull url) { + url = [[NSURL alloc] initWithScheme:url.scheme host:url.host path:url.path]; + return [url absoluteString]; + }]; + * @endcode + */ +@property (nonatomic, strong, nullable) id cacheKeyFilter; + +/** + * The cache serializer is used to convert the decoded image, the source downloaded data, to the actual data used for storing to the disk cache. If you return nil, means to generate the data from the image instance, see `SDImageCache`. + * For example, if you are using WebP images and facing the slow decoding time issue when later retriving from disk cache again. You can try to encode the decoded image to JPEG/PNG format to disk cache instead of source downloaded data. + * @note The `image` arg is nonnull, but when you also provide a image transformer and the image is transformed, the `data` arg may be nil, take attention to this case. + * @note This method is called from a global queue in order to not to block the main thread. + * @code + SDWebImageManager.sharedManager.cacheSerializer = [BU_SDWebImageCacheSerializer cacheSerializerWithBlock:^NSData * _Nullable(UIImage * _Nonnull image, NSData * _Nullable data, NSURL * _Nullable imageURL) { + BU_SDImageFormat format = [NSData sdBu_imageFormatForImageData:data]; + switch (format) { + case BU_SDImageFormatWebP: + return image.images ? data : nil; + default: + return data; + } +}]; + * @endcode + * The default value is nil. Means we just store the source downloaded data to disk cache. + */ +@property (nonatomic, strong, nullable) id cacheSerializer; + +/** + The options processor is used, to have a global control for all the image request options and context option for current manager. + @note If you use `transformer`, `cacheKeyFilter` or `cacheSerializer` property of manager, the input context option already apply those properties before passed. This options processor is a better replacement for those property in common usage. + For example, you can control the global options, based on the URL or original context option like the below code. + + @code + SDWebImageManager.sharedManager.optionsProcessor = [BU_SDWebImageOptionsProcessor optionsProcessorWithBlock:^BU_SDWebImageOptionsResult * _Nullable(NSURL * _Nullable url, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context) { + // Only do animation on `SDAnimatedImageView` + if (!context[BU_SDWebImageContextAnimatedImageClass]) { + options |= SDWebImageDecodeFirstFrameOnly; + } + // Do not force decode for png url + if ([url.lastPathComponent isEqualToString:@"png"]) { + options |= SDWebImageAvoidDecodeImage; + } + // Always use screen scale factor + SDWebImageMutableContext *mutableContext = [NSDictionary dictionaryWithDictionary:context]; + mutableContext[BU_SDWebImageContextImageScaleFactor] = @(UIScreen.mainScreen.scale); + context = [mutableContext copy]; + + return [[BU_SDWebImageOptionsResult alloc] initWithOptions:options context:context]; + }]; + @endcode + */ +@property (nonatomic, strong, nullable) id optionsProcessor; + +/** + * Check one or more operations running + */ +@property (nonatomic, assign, readonly, getter=isRunning) BOOL running; + +/** + The default image cache when the manager which is created with no arguments. Such as shared manager or init. + Defaults to nil. Means using `SDImageCache.sharedImageCache` + */ +@property (nonatomic, class, nullable) id defaultImageCache; + +/** + The default image loader for manager which is created with no arguments. Such as shared manager or init. + Defaults to nil. Means using `SDWebImageDownloader.sharedDownloader` + */ +@property (nonatomic, class, nullable) id defaultImageLoader; + +/** + * Returns global shared manager instance. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageManager *sharedManager; + +/** + * Allows to specify instance of cache and image loader used with image manager. + * @return new instance of `SDWebImageManager` with specified cache and loader. + */ +- (nonnull instancetype)initWithCache:(nonnull id)cache loader:(nonnull id)loader NS_DESIGNATED_INITIALIZER; + +/** + * Downloads the image at the given URL if not present in cache or return the cached version otherwise. + * + * @param url The URL to the image + * @param options A mask to specify options to use for this request + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * + * This parameter is required. + * + * This block has no return value and takes the requested UIImage as first parameter and the NSData representation as second parameter. + * In case of error the image parameter is nil and the third parameter may contain an NSError. + * + * The forth parameter is an `BU_SDImageCacheType` enum indicating if the image was retrieved from the local cache + * or from the memory cache or from the network. + * + * The fith parameter is set to NO when the SDWebImageProgressiveLoad option is used and the image is + * downloading. This block is thus called repeatedly with a partial image. When image is fully downloaded, the + * block is called a last time with the full image and the last parameter set to YES. + * + * The last parameter is the original image URL + * + * @return Returns an instance of BU_SDWebImageCombinedOperation, which you can cancel the loading process. + */ +- (nullable BU_SDWebImageCombinedOperation *)loadImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nonnull BU_SDInternalCompletionBlock)completedBlock; + +/** + * Downloads the image at the given URL if not present in cache or return the cached version otherwise. + * + * @param url The URL to the image + * @param options A mask to specify options to use for this request + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * + * @return Returns an instance of BU_SDWebImageCombinedOperation, which you can cancel the loading process. + */ +- (nullable BU_SDWebImageCombinedOperation *)loadImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nonnull BU_SDInternalCompletionBlock)completedBlock; + +/** + * Cancel all current operations + */ +//- (void)cancelAll; + +/** + * Return the cache key for a given URL + */ +- (nullable NSString *)cacheKeyForURL:(nullable NSURL *)url; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageManager.h.meta new file mode 100644 index 00000000..282061aa --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c97c468335bb9475cbab0e3f2e6adbf8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOperation.h new file mode 100755 index 00000000..3940e9e5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOperation.h @@ -0,0 +1,21 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import + +/// A protocol represents cancelable operation. +@protocol BU_SDWebImageOperation + +- (void)cancel; + +@end + +/// NSOperation conform to `BU_SDWebImageOperation`. +@interface NSOperation (BU_SDWebImageOperation) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOperation.h.meta new file mode 100644 index 00000000..c139b3ba --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 21ea6e6ae03924107b876ce959e3b96c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOptionsProcessor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOptionsProcessor.h new file mode 100755 index 00000000..99e295c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOptionsProcessor.h @@ -0,0 +1,72 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" + +@class BU_SDWebImageOptionsResult; + +typedef BU_SDWebImageOptionsResult * _Nullable(^BU_SDWebImageOptionsProcessorBlock)(NSURL * _Nullable url, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + The options result contains both options and context. + */ +@interface BU_SDWebImageOptionsResult : NSObject + +/** + BU_WebCache options. + */ +@property (nonatomic, assign, readonly) BU_SDWebImageOptions options; + +/** + Context options. + */ +@property (nonatomic, copy, readonly, nullable) SDWebImageContext *context; + +/** + Create a new options result. + + @param options options + @param context context + @return The options result contains both options and context. + */ +- (nonnull instancetype)initWithOptions:(BU_SDWebImageOptions)options context:(nullable SDWebImageContext *)context; + +@end + +/** + This is the protocol for options processor. + Options processor can be used, to control the final result for individual image request's `BU_SDWebImageOptions` and `SDWebImageContext` + Implements the protocol to have a global control for each indivadual image request's option. + */ +@protocol BU_SDWebImageOptionsProcessor + +/** + Return the processed options result for specify image URL, with its options and context + + @param url The URL to the image + @param options A mask to specify options to use for this request + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @return The processed result, contains both options and context + */ +- (nullable BU_SDWebImageOptionsResult *)processedResultForURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +@end + +/** + A options processor class with block. + */ +@interface BU_SDWebImageOptionsProcessor : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull BU_SDWebImageOptionsProcessorBlock)block; ++ (nonnull instancetype)optionsProcessorWithBlock:(nonnull BU_SDWebImageOptionsProcessorBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOptionsProcessor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOptionsProcessor.h.meta new file mode 100644 index 00000000..7e1a7b7f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageOptionsProcessor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e5517f29e12ed41d8a369d7f3db991e7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImagePrefetcher.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImagePrefetcher.h new file mode 100755 index 00000000..1e0eb5d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImagePrefetcher.h @@ -0,0 +1,143 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageManager.h" + +@class BU_SDWebImagePrefetcher; + +/** + A token represents a list of URLs, can be used to cancel the download. + */ +@interface BU_SDWebImagePrefetchToken : NSObject + +/** + * Cancel the current prefetching. + */ +- (void)cancel; + +/** + list of URLs of current prefetching. + */ +@property (nonatomic, copy, readonly, nullable) NSArray *urls; + +@end + +/** + The prefetcher delegate protocol + */ +@protocol BU_SDWebImagePrefetcherDelegate + +@optional + +/** + * Called when an image was prefetched. Which means it's called when one URL from any of prefetching finished. + * + * @param imagePrefetcher The current image prefetcher + * @param imageURL The image url that was prefetched + * @param finishedCount The total number of images that were prefetched (successful or not) + * @param totalCount The total number of images that were to be prefetched + */ +- (void)imagePrefetcher:(nonnull BU_SDWebImagePrefetcher *)imagePrefetcher didPrefetchURL:(nullable NSURL *)imageURL finishedCount:(NSUInteger)finishedCount totalCount:(NSUInteger)totalCount; + +/** + * Called when all images are prefetched. Which means it's called when all URLs from all of prefetching finished. + * @param imagePrefetcher The current image prefetcher + * @param totalCount The total number of images that were prefetched (whether successful or not) + * @param skippedCount The total number of images that were skipped + */ +- (void)imagePrefetcher:(nonnull BU_SDWebImagePrefetcher *)imagePrefetcher didFinishWithTotalCount:(NSUInteger)totalCount skippedCount:(NSUInteger)skippedCount; + +@end + +typedef void(^SDWebImagePrefetcherProgressBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfTotalUrls); +typedef void(^SDWebImagePrefetcherCompletionBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls); + +/** + * Prefetch some URLs in the cache for future use. Images are downloaded in low priority. + */ +@interface BU_SDWebImagePrefetcher : NSObject + +/** + * The web image manager used by prefetcher to prefetch images. + * @note You can specify a standalone manager and downloader with custom configuration suitable for image prefetching. Such as `currentDownloadCount` or `downloadTimeout`. + */ +@property (strong, nonatomic, readonly, nonnull) BU_SDWebImageManager *manager; + +/** + * Maximum number of URLs to prefetch at the same time. Defaults to 3. + */ +@property (nonatomic, assign) NSUInteger maxConcurrentPrefetchCount; + +/** + * The options for prefetcher. Defaults to SDWebImageLowPriority. + */ +@property (nonatomic, assign) BU_SDWebImageOptions options; + +/** + * The context for prefetcher. Defaults to nil. + */ +@property (nonatomic, copy, nullable) SDWebImageContext *context; + +/** + * Queue options for prefetcher when call the progressBlock, completionBlock and delegate methods. Defaults to Main Queue. + * @note The call is asynchronously to avoid blocking target queue. + * @note The delegate queue should be set before any prefetching start and may not be changed during prefetching to avoid thread-safe problem. + */ +@property (strong, nonatomic, nonnull) dispatch_queue_t delegateQueue; + +/** + * The delegate for the prefetcher. Defatuls to nil. + */ +@property (weak, nonatomic, nullable) id delegate; + +/** + * Returns the global shared image prefetcher instance. It use a standalone manager which is different from shared manager. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImagePrefetcher *sharedImagePrefetcher; + +/** + * Allows you to instantiate a prefetcher with any arbitrary image manager. + */ +- (nonnull instancetype)initWithImageManager:(nonnull BU_SDWebImageManager *)manager NS_DESIGNATED_INITIALIZER; + +/** + * Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching. It based on the image manager so the image may from the cache and network according to the `options` property. + * Prefetching is seperate to each other, which means the progressBlock and completionBlock you provide is bind to the prefetching for the list of urls. + * Attention that call this will not cancel previous fetched urls. You should keep the token return by this to cancel or cancel all the prefetch. + * + * @param urls list of URLs to prefetch + * @return the token to cancel the current prefetching. + */ +//- (nullable BU_SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray *)urls; + +/** + * Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching. It based on the image manager so the image may from the cache and network according to the `options` property. + * Prefetching is seperate to each other, which means the progressBlock and completionBlock you provide is bind to the prefetching for the list of urls. + * Attention that call this will not cancel previous fetched urls. You should keep the token return by this to cancel or cancel all the prefetch. + * + * @param urls list of URLs to prefetch + * @param progressBlock block to be called when progress updates; + * first parameter is the number of completed (successful or not) requests, + * second parameter is the total number of images originally requested to be prefetched + * @param completionBlock block to be called when the current prefetching is completed + * first param is the number of completed (successful or not) requests, + * second parameter is the number of skipped requests + * @return the token to cancel the current prefetching. + */ +- (nullable BU_SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray *)urls + progress:(nullable SDWebImagePrefetcherProgressBlock)progressBlock + completed:(nullable SDWebImagePrefetcherCompletionBlock)completionBlock; + +/** + * Remove and cancel all the prefeching for the prefetcher. + */ +//- (void)cancelPrefetching; + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImagePrefetcher.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImagePrefetcher.h.meta new file mode 100644 index 00000000..13526afa --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImagePrefetcher.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01f274d76f56547deb5b59ec7f078451 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageTransition.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageTransition.h new file mode 100755 index 00000000..c0e3ea37 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageTransition.h @@ -0,0 +1,89 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT || SD_MAC +#import "BU_SDImageCache.h" + +#if SD_UIKIT +typedef UIViewAnimationOptions SDWebImageAnimationOptions; +#else +typedef NS_OPTIONS(NSUInteger, SDWebImageAnimationOptions) { + SDWebImageAnimationOptionAllowsImplicitAnimation = 1 << 0, // specify `allowsImplicitAnimation` for the `NSAnimationContext` +}; +#endif + +typedef void (^SDWebImageTransitionPreparesBlock)(__kindof UIView * _Nonnull view, UIImage * _Nullable image, NSData * _Nullable imageData, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); +typedef void (^SDWebImageTransitionAnimationsBlock)(__kindof UIView * _Nonnull view, UIImage * _Nullable image); +typedef void (^SDWebImageTransitionCompletionBlock)(BOOL finished); + +/** + This class is used to provide a transition animation after the view category load image finished. Use this on `sdBu_imageTransition` in UIView+BU_WebCache.h + for UIKit(iOS & tvOS), we use `+[UIView transitionWithView:duration:options:animations:completion]` for transition animation. + for AppKit(macOS), we use `+[NSAnimationContext runAnimationGroup:completionHandler:]` for transition animation. You can call `+[NSAnimationContext currentContext]` to grab the context during animations block. + @note These transition are provided for basic usage. If you need complicated animation, consider to directly use Core Animation or use `SDWebImageAvoidAutoSetImage` and implement your own after image load finished. + */ +@interface BU_SDWebImageTransition : NSObject + +/** + By default, we set the image to the view at the beginning of the animtions. You can disable this and provide custom set image process + */ +@property (nonatomic, assign) BOOL avoidAutoSetImage; +/** + The duration of the transition animation, measured in seconds. Defaults to 0.5. + */ +@property (nonatomic, assign) NSTimeInterval duration; +/** + The timing function used for all animations within this transition animation (macOS). + */ +@property (nonatomic, strong, nullable) CAMediaTimingFunction *timingFunction API_UNAVAILABLE(ios, tvos, watchos); +/** + A mask of options indicating how you want to perform the animations. + */ +@property (nonatomic, assign) SDWebImageAnimationOptions animationOptions; +/** + A block object to be executed before the animation sequence starts. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionPreparesBlock prepares; +/** + A block object that contains the changes you want to make to the specified view. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionAnimationsBlock animations; +/** + A block object to be executed when the animation sequence ends. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionCompletionBlock completion; + +@end + +/** + Convenience way to create transition. Remember to specify the duration if needed. + for UIKit, these transition just use the correspond `animationOptions`. By default we enable `UIViewAnimationOptionAllowUserInteraction` to allow user interaction during transition. + for AppKit, these transition use Core Animation in `animations`. So your view must be layer-backed. Set `wantsLayer = YES` before you apply it. + */ +//@interface BU_SDWebImageTransition (Conveniences) +// +///// Fade transition. +////@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *fadeTransition; +///// Flip from left transition. +////@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromLeftTransition; +///// Flip from right transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromRightTransition; +///// Flip from top transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromTopTransition; +///// Flip from bottom transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromBottomTransition; +///// Curl up transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *curlUpTransition; +///// Curl down transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *curlDownTransition; +// +//@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageTransition.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageTransition.h.meta new file mode 100644 index 00000000..d2d4a4fd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDWebImageTransition.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0ff4c5787460c4ef1bbf2e91b0ec2a07 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDmetamacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDmetamacros.h new file mode 100755 index 00000000..dd90d99b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDmetamacros.h @@ -0,0 +1,667 @@ +/** + * Macros for metaprogramming + * ExtendedC + * + * Copyright (C) 2012 Justin Spahr-Summers + * Released under the MIT license + */ + +#ifndef EXTC_METAMACROS_H +#define EXTC_METAMACROS_H + + +/** + * Executes one or more expressions (which may have a void type, such as a call + * to a function that returns no value) and always returns true. + */ +#define metamacro_exprify(...) \ + ((__VA_ARGS__), true) + +/** + * Returns a string representation of VALUE after full macro expansion. + */ +#define metamacro_stringify(VALUE) \ + metamacro_stringify_(VALUE) + +/** + * Returns A and B concatenated after full macro expansion. + */ +#define metamacro_concat(A, B) \ + metamacro_concat_(A, B) + +/** + * Returns the Nth variadic argument (starting from zero). At least + * N + 1 variadic arguments must be given. N must be between zero and twenty, + * inclusive. + */ +#define metamacro_at(N, ...) \ + metamacro_concat(metamacro_at, N)(__VA_ARGS__) + +/** + * Returns the number of arguments (up to twenty) provided to the macro. At + * least one argument must be provided. + * + * Inspired by P99: http://p99.gforge.inria.fr + */ +#define metamacro_argcount(...) \ + metamacro_at(20, __VA_ARGS__, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) + +/** + * Identical to #metamacro_foreach_cxt, except that no CONTEXT argument is + * given. Only the index and current argument will thus be passed to MACRO. + */ +#define metamacro_foreach(MACRO, SEP, ...) \ + metamacro_foreach_cxt(metamacro_foreach_iter, SEP, MACRO, __VA_ARGS__) + +/** + * For each consecutive variadic argument (up to twenty), MACRO is passed the + * zero-based index of the current argument, CONTEXT, and then the argument + * itself. The results of adjoining invocations of MACRO are then separated by + * SEP. + * + * Inspired by P99: http://p99.gforge.inria.fr + */ +#define metamacro_foreach_cxt(MACRO, SEP, CONTEXT, ...) \ + metamacro_concat(metamacro_foreach_cxt, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__) + +/** + * Identical to #metamacro_foreach_cxt. This can be used when the former would + * fail due to recursive macro expansion. + */ +#define metamacro_foreach_cxt_recursive(MACRO, SEP, CONTEXT, ...) \ + metamacro_concat(metamacro_foreach_cxt_recursive, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__) + +/** + * In consecutive order, appends each variadic argument (up to twenty) onto + * BASE. The resulting concatenations are then separated by SEP. + * + * This is primarily useful to manipulate a list of macro invocations into instead + * invoking a different, possibly related macro. + */ +#define metamacro_foreach_concat(BASE, SEP, ...) \ + metamacro_foreach_cxt(metamacro_foreach_concat_iter, SEP, BASE, __VA_ARGS__) + +/** + * Iterates COUNT times, each time invoking MACRO with the current index + * (starting at zero) and CONTEXT. The results of adjoining invocations of MACRO + * are then separated by SEP. + * + * COUNT must be an integer between zero and twenty, inclusive. + */ +#define metamacro_for_cxt(COUNT, MACRO, SEP, CONTEXT) \ + metamacro_concat(metamacro_for_cxt, COUNT)(MACRO, SEP, CONTEXT) + +/** + * Returns the first argument given. At least one argument must be provided. + * + * This is useful when implementing a variadic macro, where you may have only + * one variadic argument, but no way to retrieve it (for example, because \c ... + * always needs to match at least one argument). + * + * @code + +#define varmacro(...) \ + metamacro_head(__VA_ARGS__) + + * @endcode + */ +#define metamacro_head(...) \ + metamacro_head_(__VA_ARGS__, 0) + +/** + * Returns every argument except the first. At least two arguments must be + * provided. + */ +#define metamacro_tail(...) \ + metamacro_tail_(__VA_ARGS__) + +/** + * Returns the first N (up to twenty) variadic arguments as a new argument list. + * At least N variadic arguments must be provided. + */ +#define metamacro_take(N, ...) \ + metamacro_concat(metamacro_take, N)(__VA_ARGS__) + +/** + * Removes the first N (up to twenty) variadic arguments from the given argument + * list. At least N variadic arguments must be provided. + */ +#define metamacro_drop(N, ...) \ + metamacro_concat(metamacro_drop, N)(__VA_ARGS__) + +/** + * Decrements VAL, which must be a number between zero and twenty, inclusive. + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_dec(VAL) \ + metamacro_at(VAL, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) + +/** + * Increments VAL, which must be a number between zero and twenty, inclusive. + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_inc(VAL) \ + metamacro_at(VAL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) + +/** + * If A is equal to B, the next argument list is expanded; otherwise, the + * argument list after that is expanded. A and B must be numbers between zero + * and twenty, inclusive. Additionally, B must be greater than or equal to A. + * + * @code + +// expands to true +metamacro_if_eq(0, 0)(true)(false) + +// expands to false +metamacro_if_eq(0, 1)(true)(false) + + * @endcode + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_if_eq(A, B) \ + metamacro_concat(metamacro_if_eq, A)(B) + +/** + * Identical to #metamacro_if_eq. This can be used when the former would fail + * due to recursive macro expansion. + */ +#define metamacro_if_eq_recursive(A, B) \ + metamacro_concat(metamacro_if_eq_recursive, A)(B) + +/** + * Returns 1 if N is an even number, or 0 otherwise. N must be between zero and + * twenty, inclusive. + * + * For the purposes of this test, zero is considered even. + */ +#define metamacro_is_even(N) \ + metamacro_at(N, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1) + +/** + * Returns the logical NOT of B, which must be the number zero or one. + */ +#define metamacro_not(B) \ + metamacro_at(B, 1, 0) + +// IMPLEMENTATION DETAILS FOLLOW! +// Do not write code that depends on anything below this line. +#define metamacro_stringify_(VALUE) # VALUE +#define metamacro_concat_(A, B) A ## B +#define metamacro_foreach_iter(INDEX, MACRO, ARG) MACRO(INDEX, ARG) +#define metamacro_head_(FIRST, ...) FIRST +#define metamacro_tail_(FIRST, ...) __VA_ARGS__ +#define metamacro_consume_(...) +#define metamacro_expand_(...) __VA_ARGS__ + +// implemented from scratch so that metamacro_concat() doesn't end up nesting +#define metamacro_foreach_concat_iter(INDEX, BASE, ARG) metamacro_foreach_concat_iter_(BASE, ARG) +#define metamacro_foreach_concat_iter_(BASE, ARG) BASE ## ARG + +// metamacro_at expansions +#define metamacro_at0(...) metamacro_head(__VA_ARGS__) +#define metamacro_at1(_0, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at2(_0, _1, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at3(_0, _1, _2, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at4(_0, _1, _2, _3, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at5(_0, _1, _2, _3, _4, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at6(_0, _1, _2, _3, _4, _5, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at7(_0, _1, _2, _3, _4, _5, _6, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at8(_0, _1, _2, _3, _4, _5, _6, _7, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at9(_0, _1, _2, _3, _4, _5, _6, _7, _8, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at11(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at12(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at13(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at14(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at15(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at16(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, ...) metamacro_head(__VA_ARGS__) + +// metamacro_foreach_cxt expansions +#define metamacro_foreach_cxt0(MACRO, SEP, CONTEXT) +#define metamacro_foreach_cxt1(MACRO, SEP, CONTEXT, _0) MACRO(0, CONTEXT, _0) + +#define metamacro_foreach_cxt2(MACRO, SEP, CONTEXT, _0, _1) \ + metamacro_foreach_cxt1(MACRO, SEP, CONTEXT, _0) \ + SEP \ + MACRO(1, CONTEXT, _1) + +#define metamacro_foreach_cxt3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + metamacro_foreach_cxt2(MACRO, SEP, CONTEXT, _0, _1) \ + SEP \ + MACRO(2, CONTEXT, _2) + +#define metamacro_foreach_cxt4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + metamacro_foreach_cxt3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + SEP \ + MACRO(3, CONTEXT, _3) + +#define metamacro_foreach_cxt5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + metamacro_foreach_cxt4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + SEP \ + MACRO(4, CONTEXT, _4) + +#define metamacro_foreach_cxt6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + metamacro_foreach_cxt5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + SEP \ + MACRO(5, CONTEXT, _5) + +#define metamacro_foreach_cxt7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + metamacro_foreach_cxt6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + SEP \ + MACRO(6, CONTEXT, _6) + +#define metamacro_foreach_cxt8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + metamacro_foreach_cxt7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + SEP \ + MACRO(7, CONTEXT, _7) + +#define metamacro_foreach_cxt9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + metamacro_foreach_cxt8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + SEP \ + MACRO(8, CONTEXT, _8) + +#define metamacro_foreach_cxt10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + metamacro_foreach_cxt9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + SEP \ + MACRO(9, CONTEXT, _9) + +#define metamacro_foreach_cxt11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + metamacro_foreach_cxt10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + SEP \ + MACRO(10, CONTEXT, _10) + +#define metamacro_foreach_cxt12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + metamacro_foreach_cxt11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + SEP \ + MACRO(11, CONTEXT, _11) + +#define metamacro_foreach_cxt13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + metamacro_foreach_cxt12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + SEP \ + MACRO(12, CONTEXT, _12) + +#define metamacro_foreach_cxt14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + metamacro_foreach_cxt13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + SEP \ + MACRO(13, CONTEXT, _13) + +#define metamacro_foreach_cxt15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + metamacro_foreach_cxt14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + SEP \ + MACRO(14, CONTEXT, _14) + +#define metamacro_foreach_cxt16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + metamacro_foreach_cxt15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + SEP \ + MACRO(15, CONTEXT, _15) + +#define metamacro_foreach_cxt17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + metamacro_foreach_cxt16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + SEP \ + MACRO(16, CONTEXT, _16) + +#define metamacro_foreach_cxt18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + metamacro_foreach_cxt17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + SEP \ + MACRO(17, CONTEXT, _17) + +#define metamacro_foreach_cxt19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + metamacro_foreach_cxt18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + SEP \ + MACRO(18, CONTEXT, _18) + +#define metamacro_foreach_cxt20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + metamacro_foreach_cxt19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + SEP \ + MACRO(19, CONTEXT, _19) + +// metamacro_foreach_cxt_recursive expansions +#define metamacro_foreach_cxt_recursive0(MACRO, SEP, CONTEXT) +#define metamacro_foreach_cxt_recursive1(MACRO, SEP, CONTEXT, _0) MACRO(0, CONTEXT, _0) + +#define metamacro_foreach_cxt_recursive2(MACRO, SEP, CONTEXT, _0, _1) \ + metamacro_foreach_cxt_recursive1(MACRO, SEP, CONTEXT, _0) \ + SEP \ + MACRO(1, CONTEXT, _1) + +#define metamacro_foreach_cxt_recursive3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + metamacro_foreach_cxt_recursive2(MACRO, SEP, CONTEXT, _0, _1) \ + SEP \ + MACRO(2, CONTEXT, _2) + +#define metamacro_foreach_cxt_recursive4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + metamacro_foreach_cxt_recursive3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + SEP \ + MACRO(3, CONTEXT, _3) + +#define metamacro_foreach_cxt_recursive5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + metamacro_foreach_cxt_recursive4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + SEP \ + MACRO(4, CONTEXT, _4) + +#define metamacro_foreach_cxt_recursive6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + metamacro_foreach_cxt_recursive5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + SEP \ + MACRO(5, CONTEXT, _5) + +#define metamacro_foreach_cxt_recursive7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + metamacro_foreach_cxt_recursive6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + SEP \ + MACRO(6, CONTEXT, _6) + +#define metamacro_foreach_cxt_recursive8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + metamacro_foreach_cxt_recursive7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + SEP \ + MACRO(7, CONTEXT, _7) + +#define metamacro_foreach_cxt_recursive9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + metamacro_foreach_cxt_recursive8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + SEP \ + MACRO(8, CONTEXT, _8) + +#define metamacro_foreach_cxt_recursive10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + metamacro_foreach_cxt_recursive9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + SEP \ + MACRO(9, CONTEXT, _9) + +#define metamacro_foreach_cxt_recursive11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + metamacro_foreach_cxt_recursive10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + SEP \ + MACRO(10, CONTEXT, _10) + +#define metamacro_foreach_cxt_recursive12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + metamacro_foreach_cxt_recursive11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + SEP \ + MACRO(11, CONTEXT, _11) + +#define metamacro_foreach_cxt_recursive13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + metamacro_foreach_cxt_recursive12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + SEP \ + MACRO(12, CONTEXT, _12) + +#define metamacro_foreach_cxt_recursive14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + metamacro_foreach_cxt_recursive13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + SEP \ + MACRO(13, CONTEXT, _13) + +#define metamacro_foreach_cxt_recursive15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + metamacro_foreach_cxt_recursive14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + SEP \ + MACRO(14, CONTEXT, _14) + +#define metamacro_foreach_cxt_recursive16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + metamacro_foreach_cxt_recursive15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + SEP \ + MACRO(15, CONTEXT, _15) + +#define metamacro_foreach_cxt_recursive17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + metamacro_foreach_cxt_recursive16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + SEP \ + MACRO(16, CONTEXT, _16) + +#define metamacro_foreach_cxt_recursive18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + metamacro_foreach_cxt_recursive17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + SEP \ + MACRO(17, CONTEXT, _17) + +#define metamacro_foreach_cxt_recursive19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + metamacro_foreach_cxt_recursive18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + SEP \ + MACRO(18, CONTEXT, _18) + +#define metamacro_foreach_cxt_recursive20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + metamacro_foreach_cxt_recursive19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + SEP \ + MACRO(19, CONTEXT, _19) + +// metamacro_for_cxt expansions +#define metamacro_for_cxt0(MACRO, SEP, CONTEXT) +#define metamacro_for_cxt1(MACRO, SEP, CONTEXT) MACRO(0, CONTEXT) + +#define metamacro_for_cxt2(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt1(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(1, CONTEXT) + +#define metamacro_for_cxt3(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt2(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(2, CONTEXT) + +#define metamacro_for_cxt4(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt3(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(3, CONTEXT) + +#define metamacro_for_cxt5(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt4(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(4, CONTEXT) + +#define metamacro_for_cxt6(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt5(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(5, CONTEXT) + +#define metamacro_for_cxt7(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt6(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(6, CONTEXT) + +#define metamacro_for_cxt8(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt7(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(7, CONTEXT) + +#define metamacro_for_cxt9(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt8(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(8, CONTEXT) + +#define metamacro_for_cxt10(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt9(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(9, CONTEXT) + +#define metamacro_for_cxt11(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt10(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(10, CONTEXT) + +#define metamacro_for_cxt12(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt11(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(11, CONTEXT) + +#define metamacro_for_cxt13(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt12(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(12, CONTEXT) + +#define metamacro_for_cxt14(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt13(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(13, CONTEXT) + +#define metamacro_for_cxt15(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt14(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(14, CONTEXT) + +#define metamacro_for_cxt16(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt15(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(15, CONTEXT) + +#define metamacro_for_cxt17(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt16(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(16, CONTEXT) + +#define metamacro_for_cxt18(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt17(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(17, CONTEXT) + +#define metamacro_for_cxt19(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt18(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(18, CONTEXT) + +#define metamacro_for_cxt20(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt19(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(19, CONTEXT) + +// metamacro_if_eq expansions +#define metamacro_if_eq0(VALUE) \ + metamacro_concat(metamacro_if_eq0_, VALUE) + +#define metamacro_if_eq0_0(...) __VA_ARGS__ metamacro_consume_ +#define metamacro_if_eq0_1(...) metamacro_expand_ +#define metamacro_if_eq0_2(...) metamacro_expand_ +#define metamacro_if_eq0_3(...) metamacro_expand_ +#define metamacro_if_eq0_4(...) metamacro_expand_ +#define metamacro_if_eq0_5(...) metamacro_expand_ +#define metamacro_if_eq0_6(...) metamacro_expand_ +#define metamacro_if_eq0_7(...) metamacro_expand_ +#define metamacro_if_eq0_8(...) metamacro_expand_ +#define metamacro_if_eq0_9(...) metamacro_expand_ +#define metamacro_if_eq0_10(...) metamacro_expand_ +#define metamacro_if_eq0_11(...) metamacro_expand_ +#define metamacro_if_eq0_12(...) metamacro_expand_ +#define metamacro_if_eq0_13(...) metamacro_expand_ +#define metamacro_if_eq0_14(...) metamacro_expand_ +#define metamacro_if_eq0_15(...) metamacro_expand_ +#define metamacro_if_eq0_16(...) metamacro_expand_ +#define metamacro_if_eq0_17(...) metamacro_expand_ +#define metamacro_if_eq0_18(...) metamacro_expand_ +#define metamacro_if_eq0_19(...) metamacro_expand_ +#define metamacro_if_eq0_20(...) metamacro_expand_ + +#define metamacro_if_eq1(VALUE) metamacro_if_eq0(metamacro_dec(VALUE)) +#define metamacro_if_eq2(VALUE) metamacro_if_eq1(metamacro_dec(VALUE)) +#define metamacro_if_eq3(VALUE) metamacro_if_eq2(metamacro_dec(VALUE)) +#define metamacro_if_eq4(VALUE) metamacro_if_eq3(metamacro_dec(VALUE)) +#define metamacro_if_eq5(VALUE) metamacro_if_eq4(metamacro_dec(VALUE)) +#define metamacro_if_eq6(VALUE) metamacro_if_eq5(metamacro_dec(VALUE)) +#define metamacro_if_eq7(VALUE) metamacro_if_eq6(metamacro_dec(VALUE)) +#define metamacro_if_eq8(VALUE) metamacro_if_eq7(metamacro_dec(VALUE)) +#define metamacro_if_eq9(VALUE) metamacro_if_eq8(metamacro_dec(VALUE)) +#define metamacro_if_eq10(VALUE) metamacro_if_eq9(metamacro_dec(VALUE)) +#define metamacro_if_eq11(VALUE) metamacro_if_eq10(metamacro_dec(VALUE)) +#define metamacro_if_eq12(VALUE) metamacro_if_eq11(metamacro_dec(VALUE)) +#define metamacro_if_eq13(VALUE) metamacro_if_eq12(metamacro_dec(VALUE)) +#define metamacro_if_eq14(VALUE) metamacro_if_eq13(metamacro_dec(VALUE)) +#define metamacro_if_eq15(VALUE) metamacro_if_eq14(metamacro_dec(VALUE)) +#define metamacro_if_eq16(VALUE) metamacro_if_eq15(metamacro_dec(VALUE)) +#define metamacro_if_eq17(VALUE) metamacro_if_eq16(metamacro_dec(VALUE)) +#define metamacro_if_eq18(VALUE) metamacro_if_eq17(metamacro_dec(VALUE)) +#define metamacro_if_eq19(VALUE) metamacro_if_eq18(metamacro_dec(VALUE)) +#define metamacro_if_eq20(VALUE) metamacro_if_eq19(metamacro_dec(VALUE)) + +// metamacro_if_eq_recursive expansions +#define metamacro_if_eq_recursive0(VALUE) \ + metamacro_concat(metamacro_if_eq_recursive0_, VALUE) + +#define metamacro_if_eq_recursive0_0(...) __VA_ARGS__ metamacro_consume_ +#define metamacro_if_eq_recursive0_1(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_2(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_3(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_4(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_5(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_6(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_7(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_8(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_9(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_10(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_11(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_12(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_13(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_14(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_15(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_16(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_17(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_18(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_19(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_20(...) metamacro_expand_ + +#define metamacro_if_eq_recursive1(VALUE) metamacro_if_eq_recursive0(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive2(VALUE) metamacro_if_eq_recursive1(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive3(VALUE) metamacro_if_eq_recursive2(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive4(VALUE) metamacro_if_eq_recursive3(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive5(VALUE) metamacro_if_eq_recursive4(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive6(VALUE) metamacro_if_eq_recursive5(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive7(VALUE) metamacro_if_eq_recursive6(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive8(VALUE) metamacro_if_eq_recursive7(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive9(VALUE) metamacro_if_eq_recursive8(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive10(VALUE) metamacro_if_eq_recursive9(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive11(VALUE) metamacro_if_eq_recursive10(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive12(VALUE) metamacro_if_eq_recursive11(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive13(VALUE) metamacro_if_eq_recursive12(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive14(VALUE) metamacro_if_eq_recursive13(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive15(VALUE) metamacro_if_eq_recursive14(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive16(VALUE) metamacro_if_eq_recursive15(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive17(VALUE) metamacro_if_eq_recursive16(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive18(VALUE) metamacro_if_eq_recursive17(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive19(VALUE) metamacro_if_eq_recursive18(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive20(VALUE) metamacro_if_eq_recursive19(metamacro_dec(VALUE)) + +// metamacro_take expansions +#define metamacro_take0(...) +#define metamacro_take1(...) metamacro_head(__VA_ARGS__) +#define metamacro_take2(...) metamacro_head(__VA_ARGS__), metamacro_take1(metamacro_tail(__VA_ARGS__)) +#define metamacro_take3(...) metamacro_head(__VA_ARGS__), metamacro_take2(metamacro_tail(__VA_ARGS__)) +#define metamacro_take4(...) metamacro_head(__VA_ARGS__), metamacro_take3(metamacro_tail(__VA_ARGS__)) +#define metamacro_take5(...) metamacro_head(__VA_ARGS__), metamacro_take4(metamacro_tail(__VA_ARGS__)) +#define metamacro_take6(...) metamacro_head(__VA_ARGS__), metamacro_take5(metamacro_tail(__VA_ARGS__)) +#define metamacro_take7(...) metamacro_head(__VA_ARGS__), metamacro_take6(metamacro_tail(__VA_ARGS__)) +#define metamacro_take8(...) metamacro_head(__VA_ARGS__), metamacro_take7(metamacro_tail(__VA_ARGS__)) +#define metamacro_take9(...) metamacro_head(__VA_ARGS__), metamacro_take8(metamacro_tail(__VA_ARGS__)) +#define metamacro_take10(...) metamacro_head(__VA_ARGS__), metamacro_take9(metamacro_tail(__VA_ARGS__)) +#define metamacro_take11(...) metamacro_head(__VA_ARGS__), metamacro_take10(metamacro_tail(__VA_ARGS__)) +#define metamacro_take12(...) metamacro_head(__VA_ARGS__), metamacro_take11(metamacro_tail(__VA_ARGS__)) +#define metamacro_take13(...) metamacro_head(__VA_ARGS__), metamacro_take12(metamacro_tail(__VA_ARGS__)) +#define metamacro_take14(...) metamacro_head(__VA_ARGS__), metamacro_take13(metamacro_tail(__VA_ARGS__)) +#define metamacro_take15(...) metamacro_head(__VA_ARGS__), metamacro_take14(metamacro_tail(__VA_ARGS__)) +#define metamacro_take16(...) metamacro_head(__VA_ARGS__), metamacro_take15(metamacro_tail(__VA_ARGS__)) +#define metamacro_take17(...) metamacro_head(__VA_ARGS__), metamacro_take16(metamacro_tail(__VA_ARGS__)) +#define metamacro_take18(...) metamacro_head(__VA_ARGS__), metamacro_take17(metamacro_tail(__VA_ARGS__)) +#define metamacro_take19(...) metamacro_head(__VA_ARGS__), metamacro_take18(metamacro_tail(__VA_ARGS__)) +#define metamacro_take20(...) metamacro_head(__VA_ARGS__), metamacro_take19(metamacro_tail(__VA_ARGS__)) + +// metamacro_drop expansions +#define metamacro_drop0(...) __VA_ARGS__ +#define metamacro_drop1(...) metamacro_tail(__VA_ARGS__) +#define metamacro_drop2(...) metamacro_drop1(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop3(...) metamacro_drop2(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop4(...) metamacro_drop3(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop5(...) metamacro_drop4(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop6(...) metamacro_drop5(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop7(...) metamacro_drop6(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop8(...) metamacro_drop7(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop9(...) metamacro_drop8(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop10(...) metamacro_drop9(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop11(...) metamacro_drop10(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop12(...) metamacro_drop11(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop13(...) metamacro_drop12(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop14(...) metamacro_drop13(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop15(...) metamacro_drop14(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop16(...) metamacro_drop15(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop17(...) metamacro_drop16(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop18(...) metamacro_drop17(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop19(...) metamacro_drop18(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop20(...) metamacro_drop19(metamacro_tail(__VA_ARGS__)) + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDmetamacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDmetamacros.h.meta new file mode 100644 index 00000000..51bf7f30 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_SDmetamacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7ce885c4b838a40feae5a4a385323bc1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayer.h new file mode 100755 index 00000000..ea3b3d22 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayer.h @@ -0,0 +1,32 @@ +// +// ZFPlayer.h +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import "BUPlayer.h" +#import "BUPlayerDefine.h" +#import "UIImageView+BU_ZFCache.h" +#import "BU_ZFPlayerControlView.h" +#import "BUPlayerInternalDefine.h" +#import "BUPlayerSettingsProtocol.h" +#import "BUPlayerItem.h" +#import "BUVideoPrefetchManager.h" +#import "BUCacheManager.h" diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayer.h.meta new file mode 100644 index 00000000..a996564f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e44a320c6822d4b97a933f8e17e0a882 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayerControlView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayerControlView.h new file mode 100755 index 00000000..7d52ddef --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayerControlView.h @@ -0,0 +1,31 @@ +// +// ZFPlayerControlView.h +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import "BUPlayerDefine.h" + +@interface BU_ZFPlayerControlView : UIView + +- (void)hideControlView; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayerControlView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayerControlView.h.meta new file mode 100644 index 00000000..a8bbb0c6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZFPlayerControlView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c241f3aba5d3143b49cc63627873561c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZipArchiveUtility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZipArchiveUtility.h new file mode 100755 index 00000000..a58e54b9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZipArchiveUtility.h @@ -0,0 +1,153 @@ +// +// BU_ZipArchiveUtility.h +// BU_ZipArchiveUtility +// +// Created by Sam Soffes on 7/21/10. +// Copyright (c) Sam Soffes 2010-2015. All rights reserved. +// + +#ifndef _BUZipArchive_H +#define _BUZipArchive_H + +#import +#import "BUZipCommon.h" + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const BUZipArchiveErrorDomain; +typedef NS_ENUM(NSInteger, BUZipArchiveErrorCode) { + BUZipArchiveErrorCodeFailedOpenZipFile = -1, + BUZipArchiveErrorCodeFailedOpenFileInZip = -2, + BUZipArchiveErrorCodeFileInfoNotLoadable = -3, + BUZipArchiveErrorCodeFileContentNotReadable = -4, + BUZipArchiveErrorCodeFailedToWriteFile = -5, + BUZipArchiveErrorCodeInvalidArguments = -6, +}; + +@protocol BUZipArchiveDelegate; + +@interface BU_ZipArchiveUtility : NSObject + + +// Password check +//+ (BOOL)isFilePasswordProtectedAtPath:(NSString *)path; +//+ (BOOL)isPasswordValidForArchiveAtPath:(NSString *)path password:(NSString *)pw error:(NSError * _Nullable * _Nullable)error NS_SWIFT_NOTHROW; + +// Total payload size +//+ (NSNumber *)payloadSizeForArchiveAtPath:(NSString *)path error:(NSError **)error; + +// Unzip ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination; ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination delegate:(nullable id)delegate; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// error:(NSError * *)error; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + overwrite:(BOOL)overwrite + needRename:(BOOL)needRename + password:(nullable NSString *)password + error:(NSError * *)error + delegate:(nullable id)delegate NS_REFINED_FOR_SWIFT; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// preserveAttributes:(BOOL)preserveAttributes +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// error:(NSError * *)error +// delegate:(nullable id)delegate; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler +// completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler +// completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + preserveAttributes:(BOOL)preserveAttributes + overwrite:(BOOL)overwrite + needRename:(BOOL)needRename + nestedZipLevel:(NSInteger)nestedZipLevel + password:(nullable NSString *)password + error:(NSError **)error + delegate:(nullable id)delegate + progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + +// Zip +// default compression level is Z_DEFAULT_COMPRESSION (from "zlib.h") +// keepParentDirectory: if YES, then unzipping will give `directoryName/fileName`. If NO, then unzipping will just give `fileName`. Default is NO. + +// without password +//+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath; +// +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory; + +// with optional password, default encryption is AES +// don't use AES if you need compatibility with native macOS unzip and Archive Utility +//+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path +// withContentsOfDirectory:(NSString *)directoryPath +// keepParentDirectory:(BOOL)keepParentDirectory +// withPassword:(nullable NSString *)password +// andProgressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; +//+ (BOOL)createZipFileAtPath:(NSString *)path +// withContentsOfDirectory:(NSString *)directoryPath +// keepParentDirectory:(BOOL)keepParentDirectory +// compressionLevel:(int)compressionLevel +// password:(nullable NSString *)password +// AES:(BOOL)aes +// progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; + +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)initWithPath:(NSString *)path NS_DESIGNATED_INITIALIZER; +- (BOOL)open; + +/// write empty folder +- (BOOL)writeFolderAtPath:(NSString *)path withFolderName:(NSString *)folderName withPassword:(nullable NSString *)password; +/// write file +- (BOOL)writeFile:(NSString *)path withPassword:(nullable NSString *)password; +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName withPassword:(nullable NSString *)password; +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; +/// write data +//- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename withPassword:(nullable NSString *)password; +- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; + +- (BOOL)close; + +@end + +@protocol BUZipArchiveDelegate + +@optional + +- (void)zipArchiveWillUnzipArchiveAtPath:(NSString *)path zipInfo:(bu_unz_global_info)zipInfo; +- (void)zipArchiveDidUnzipArchiveAtPath:(NSString *)path zipInfo:(bu_unz_global_info)zipInfo unzippedPath:(NSString *)unzippedPath; + +- (BOOL)zipArchiveShouldUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveWillUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath unzippedFilePath:(NSString *)unzippedFilePath; + +- (void)zipArchiveProgressEvent:(unsigned long long)loaded total:(unsigned long long)total; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* _BUZipArchive_H */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZipArchiveUtility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZipArchiveUtility.h.meta new file mode 100644 index 00000000..c6532ac9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/BU_ZipArchiveUtility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4dee2ced4e43e4320b7f6a1aef0eefc7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSArray+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSArray+BUUtilities.h new file mode 100755 index 00000000..4c818589 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSArray+BUUtilities.h @@ -0,0 +1,58 @@ +// +// NSMutableArray+Utilities.h +// BUAdSDK +// +// Created by 李盛 on 2018/2/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSMutableArray (BU_Utilities) + +- (void)bu_safeAddObject:(id)object; +- (void)bu_safeAddNilObject; +- (void)bu_safeInsertObject:(id)object atIndex:(NSUInteger)index; +- (void)bu_safeInsertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes; +- (void)bu_safeRemoveObject:(id)object; +- (nullable id)bu_objectAtIndexSafely:(NSUInteger)index; +- (void)bu_removeObjectAtIndexSafely:(NSUInteger)index; + + + + + + +@end + +@interface NSArray(BU_JSONValue) +- (nullable NSString *)bu_JSONRepresentation:(NSError **)error; + + + +- (void)bu_forEachWithBlock:(void(^)(id item))block; +- (void)bu_forEachWithIndexBlock:(void(^)(id item, NSInteger index))indexBlock; + +- (NSArray *)bu_mapWithBlock:(id(^)(id item))block; +- (NSArray *)bu_mapWithIndexBlock:(id(^)(id item, NSInteger index))indexBlock; + +- (NSArray *)bu_filterWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (NSArray *)bu_filterWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (BOOL)bu_someWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (BOOL)bu_someWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (BOOL)bu_everyWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (BOOL)bu_everyWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (id)bu_reduceWithBlock:(id(^)(id item1, id item2))block initial:(id)initial; + + + +- (id)bu_findWithConditionBlock:(id(^)(id item))conditionBlock; +- (id)bu_findWithIndexConditionBlock:(id(^)(id item, NSInteger index))indexConditionBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSArray+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSArray+BUUtilities.h.meta new file mode 100644 index 00000000..dc3e4588 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSArray+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1997b175419c94458a916321a7ced230 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSBezierPath+BURoundedCorners.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSBezierPath+BURoundedCorners.h new file mode 100755 index 00000000..8576286b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSBezierPath+BURoundedCorners.h @@ -0,0 +1,24 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +#import "UIImage+BUTransform.h" + +@interface NSBezierPath (RoundedCorners) + +/** + Convenience way to create a bezier path with the specify rounding corners on macOS. Same as the one on `UIBezierPath`. + */ ++ (nonnull instancetype)sdBu_bezierPathWithRoundedRect:(NSRect)rect byRoundingCorners:(BU_SDRectCorner)corners cornerRadius:(CGFloat)cornerRadius; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSBezierPath+BURoundedCorners.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSBezierPath+BURoundedCorners.h.meta new file mode 100644 index 00000000..0e1a5581 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSBezierPath+BURoundedCorners.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 59053a3d783d54ddc9c8cd3e8d548c46 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSButton+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSButton+BUWebCache.h new file mode 100755 index 00000000..8f445e8e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSButton+BUWebCache.h @@ -0,0 +1,340 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with NSButton. + */ +@interface NSButton (WebCache) + +#pragma mark - Image + +/** + * Get the current image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentImageURL; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Alternate Image + +/** + * Get the current alternateImage URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentAlternateImageURL; + +/** + * Set the button `alternateImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @see sdBu_setAlternateImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `alternateImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while alternateImage is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while alternateImage is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Cancel + +/** + * Cancel the current image download + */ +- (void)sdBu_cancelCurrentImageLoad; + +/** + * Cancel the current alternateImage download + */ +- (void)sdBu_cancelCurrentAlternateImageLoad; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSButton+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSButton+BUWebCache.h.meta new file mode 100644 index 00000000..1b8351c2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSButton+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2131e35d11e144e68a7fc1d989fba283 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSData+BUImageContentType.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSData+BUImageContentType.h new file mode 100755 index 00000000..81880423 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSData+BUImageContentType.h @@ -0,0 +1,59 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Fabrice Aneche + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/** + You can use switch case like normal enum. It's also recommended to add a default case. You should not assume anything about the raw value. + For custom coder plugin, it can also extern the enum for supported format. See `SDImageCoder` for more detailed information. + */ +typedef NSInteger BU_SDImageFormat NS_TYPED_EXTENSIBLE_ENUM; +static const BU_SDImageFormat BU_SDImageFormatUndefined = -1; +static const BU_SDImageFormat BU_SDImageFormatJPEG = 0; +static const BU_SDImageFormat BU_SDImageFormatPNG = 1; +static const BU_SDImageFormat BU_SDImageFormatGIF = 2; +static const BU_SDImageFormat BU_SDImageFormatTIFF = 3; +static const BU_SDImageFormat BU_SDImageFormatWebP = 4; +static const BU_SDImageFormat BU_SDImageFormatHEIC = 5; +static const BU_SDImageFormat BU_SDImageFormatHEIF = 6; +static const BU_SDImageFormat BU_SDImageFormatPDF = 7; +static const BU_SDImageFormat BU_SDImageFormatSVG = 8; + +/** + NSData category about the image content type and UTI. + */ +@interface NSData (BU_ImageContentType) + +/** + * Return image format + * + * @param data the input image data + * + * @return the image format as `BU_SDImageFormat` (enum) + */ ++ (BU_SDImageFormat)sdBu_imageFormatForImageData:(nullable NSData *)data; + +/** + * Convert BU_SDImageFormat to UTType + * + * @param format Format as BU_SDImageFormat + * @return The UTType as CFStringRef + */ ++ (nonnull CFStringRef)sdBu_UTTypeFromImageFormat:(BU_SDImageFormat)format CF_RETURNS_NOT_RETAINED NS_SWIFT_NAME(sdBu_UTType(from:)); + +/** + * Convert UTTyppe to BU_SDImageFormat + * + * @param uttype The UTType as CFStringRef + * @return The Format as BU_SDImageFormat + */ ++ (BU_SDImageFormat)sdBu_imageFormatFromUTType:(nonnull CFStringRef)uttype; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSData+BUImageContentType.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSData+BUImageContentType.h.meta new file mode 100644 index 00000000..3e7f2222 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSData+BUImageContentType.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9e8c1327603914f2296efb4eee9046f4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSDictionary+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSDictionary+BUUtilities.h new file mode 100755 index 00000000..9e1d3d29 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSDictionary+BUUtilities.h @@ -0,0 +1,58 @@ +// +// NSMutableDictionary+Utilities.h +// BUAdSDK +// +// Created by 李盛 on 2018/2/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSDictionary (BU_Helper) + +#pragma mark - Safe Value Type From Key +- (nullable NSString *)bu_stringForKey:(NSString *)key defaultValue:(nullable NSString *)defalutValue; +- (BOOL)bu_boolForKey:(NSString *)key defaultValue:(BOOL)defalutValue; +- (NSInteger)bu_integerForKey:(NSString *)key defaultValue:(NSInteger)defalutValue; +- (long)bu_longForKey:(NSString *)key defaultValue:(long)defalutValue; +- (long long)bu_longLongForKey:(NSString *)key defaultValue:(long long)defalutValue; +- (NSTimeInterval)bu_timeIntervalForKey:(NSString *)key defaultValue:(NSTimeInterval)defalutValue; +- (float)bu_floatForKey:(NSString *)key defaultValue:(float)defalutValue; +- (nullable NSArray *)bu_arrayForKey:(NSString *)key defaultValue:(nullable NSArray *)defalutValue; +- (nullable NSDictionary *)bu_dictionaryForKey:(NSString *)key defaultValue:(nullable NSDictionary *)defalutValue; + +@end + +@interface NSDictionary(BU_JSONValue) + +- (nullable NSString *)bu_JSONRepresentation:(NSError **)error; ++ (nullable NSDictionary *)bu_dictionaryWithJSONData:(nullable NSData *)inData error:(NSError **)outError; ++ (nullable NSDictionary *)bu_dictionaryWithJSONString:(NSString *)inJSON error:(NSError **)outError; + + + + +- (void)bu_forEachWithBlock:(void(^)(id key, id value))block; + + + + + +@end + +@interface NSDictionary(BU_Formate) + +- (void)bu_parserWithKey:(NSString *)key stringValue:(NSString *_Nullable*_Nullable)stringValue dictValue:(NSDictionary *_Nullable*_Nullable)dictValue aryValue:(NSArray *_Nullable*_Nullable)aryValue; + +@end + +@interface NSMutableDictionary (BU_Helper) + +#pragma mark - Safe Set Object For Key +- (void)bu_setObject:(nullable id)object forKey:(nullable id)key; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSDictionary+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSDictionary+BUUtilities.h.meta new file mode 100644 index 00000000..97bfa0bf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSDictionary+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b6295f9e022d64664a52a18db9d49c2d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSImage+BUCompatibility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSImage+BUCompatibility.h new file mode 100755 index 00000000..6c705a99 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSImage+BUCompatibility.h @@ -0,0 +1,53 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +/** + This category is provided to easily write cross-platform(AppKit/UIKit) code. For common usage, see `UIImage+BUMetadata.h`. + */ +@interface NSImage (Compatibility) + +/** +The underlying Core Graphics image object. This will actually use `CGImageForProposedRect` with the image size. + */ +@property (nonatomic, readonly, nullable) CGImageRef CGImage; +/** + The scale factor of the image. This wil actually use `bestRepresentationForRect` with image size and pixel size to calculate the scale factor. If failed, use the default value 1.0. Should be greater than or equal to 1.0. + */ +@property (nonatomic, readonly) CGFloat scale; + +// These are convenience methods to make AppKit's `NSImage` match UIKit's `UIImage` behavior. The scale factor should be greater than or equal to 1.0. + +/** + Returns an image object with the scale factor and orientation. The representation is created from the Core Graphics image object. + @note The difference between this and `initWithCGImage:size` is that `initWithCGImage:size` will actually create a `NSCGImageSnapshotRep` representation and always use `backingScaleFactor` as scale factor. So we should avoid it and use `NSBitmapImageRep` with `initWithCGImage:` instead. + @note The difference between this and UIKit's `UIImage` equivalent method is the way to process orientation. If the provided image orientation is not equal to Up orientation, this method will firstly rotate the CGImage to the correct orientation to work compatible with `NSImageView`. However, UIKit will not actually rotate CGImage and just store it as `imageOrientation` property. + + @param cgImage A Core Graphics image object + @param scale The image scale factor + @param orientation The orientation of the image data + @return The image object + */ +- (nonnull instancetype)initWithCGImage:(nonnull CGImageRef)cgImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation; + +/** + Returns an image object with the scale factor. The representation is created from the image data. + @note The difference between these this and `initWithData:` is that `initWithData:` will always use `backingScaleFactor` as scale factor. + + @param data The image data + @param scale The image scale factor + @return The image object + */ +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSImage+BUCompatibility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSImage+BUCompatibility.h.meta new file mode 100644 index 00000000..711458c5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSImage+BUCompatibility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 177ce51fd34ab425489e0cc4e1f6042b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSJSONSerialization+BUSafeSerializaiton.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSJSONSerialization+BUSafeSerializaiton.h new file mode 100755 index 00000000..3589bb04 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSJSONSerialization+BUSafeSerializaiton.h @@ -0,0 +1,18 @@ +// +// NSJSONSerialization+BUSafeSerializaiton.h +// BUFoundation +// +// Created by bytedance on 2020/10/10. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSJSONSerialization (BUSafeSerializaiton) ++ (nonnull NSString *)bu_stringJsonSerializationWithObject:(id)object options:(NSJSONWritingOptions)opt error:(NSError **)error; ++ (nullable NSData *)bu_dataJsonSerializationWithObject:(id)object options:(NSJSONWritingOptions)opt error:(NSError **)error; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta new file mode 100644 index 00000000..6369d27d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7168d2aec79be4bcf881b477647fafad +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSKeyedArchiver+BUKeyedArchiver.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSKeyedArchiver+BUKeyedArchiver.h new file mode 100755 index 00000000..6a6a8e50 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSKeyedArchiver+BUKeyedArchiver.h @@ -0,0 +1,16 @@ +// +// NSKeyedArchiver+BUKeyedArchiver.h +// BUFoundation +// +// Created by Eason on 2021/4/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSKeyedArchiver (BUKeyedArchiver) ++ (NSData *)bu_archivedDataWithRootObject:(id)rootObject; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta new file mode 100644 index 00000000..8b48da83 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1fd3eb00169f143db99c1aeb133869ad +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUSafeKVO.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUSafeKVO.h new file mode 100755 index 00000000..93f5d9ed --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUSafeKVO.h @@ -0,0 +1,25 @@ +// +// NSObject+BUSafeKVO.h +// BUFoundation +// +// Created by Siwant on 2019/9/2. +// Copyright © 2019 Union. All rights reserved. +// + +#import + +@interface NSObject (BUSafeKVO) + +- (void)bu_addObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath + options:(NSKeyValueObservingOptions)options + context:(void *)context; + +- (void)bu_removeObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath + context:(void *)context; + +- (void)bu_removeObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUSafeKVO.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUSafeKVO.h.meta new file mode 100644 index 00000000..243dde2c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUSafeKVO.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db432f884069d4cfc839afd95f5dcead +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUUtils.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUUtils.h new file mode 100755 index 00000000..107d150e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUUtils.h @@ -0,0 +1,22 @@ +// +// NSObject+BUUtils.h +// BUFoundation +// +// Created by wangyanlin on 2020/12/7. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSObject (BUUtils) + ++ (NSString *)bu_convertToStringWithOrignalObj:(id)obj; + ++ (NSDictionary *)bu_dictAfterFormatWithOriginDict:(NSDictionary *)originDict; ++ (NSArray *)bu_aryAfterFormatWithOriginAry:(NSArray *)originAry; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUUtils.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUUtils.h.meta new file mode 100644 index 00000000..0ce5865f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUUtils.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 09a92484cf240446dbe1061e0175c349 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUYYModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUYYModel.h new file mode 100755 index 00000000..456a5ab3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUYYModel.h @@ -0,0 +1,427 @@ +// +// NSObject+BUYYModel.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Provide some data-model method: + + * Convert json to any object, or convert any object to json. + * Set object properties with a key-value dictionary (like KVC). + * Implementations of `NSCoding`, `NSCopying`, `-hash` and `-isEqual:`. + + See `BUYYModel` protocol for custom methods. + + + Sample Code: + + ********************** json convertor ********************* + [at]interface BUYYAuthor : NSObject + @property (nonatomic, strong) NSString *name; + @property (nonatomic, assign) NSDate *birthday; + @end + @implementation BUYYAuthor + @end + + [at]interface BUYYBook : NSObject + @property (nonatomic, copy) NSString *name; + @property (nonatomic, assign) NSUInteger pages; + @property (nonatomic, strong) BUYYAuthor *author; + @end + @implementation BUYYBook + @end + + int main() { + // create model from json + BUYYBook *book = [BUYYBook BUYY_modelWithJSON:@"{\"name\": \"Harry Potter\", \"pages\": 256, \"author\": {\"name\": \"J.K.Rowling\", \"birthday\": \"1965-07-31\" }}"]; + + // convert model to json + NSString *json = [book BUYY_modelToJSONString]; + // {"author":{"name":"J.K.Rowling","birthday":"1965-07-31T00:00:00+0000"},"name":"Harry Potter","pages":256} + } + + ********************** Coding/Copying/hash/equal ********************* + [at]interface BUYYShadow :NSObject + @property (nonatomic, copy) NSString *name; + @property (nonatomic, assign) CGSize size; + @end + + @implementation BUYYShadow + - (void)encodeWithCoder:(NSCoder *)aCoder { [self BUYY_modelEncodeWithCoder:aCoder]; } + - (id)initWithCoder:(NSCoder *)aDecoder { self = [super init]; return [self BUYY_modelInitWithCoder:aDecoder]; } + - (id)copyWithZone:(NSZone *)zone { return [self BUYY_modelCopy]; } + - (NSUInteger)hash { return [self BUYY_modelHash]; } + - (BOOL)isEqual:(id)object { return [self BUYY_modelIsEqual:object]; } + @end + + */ +@interface NSObject (BUYYModel) + +/** + Creates and returns a new instance of the receiver from a json. + This method is thread-safe. + + @param json A json object in `NSDictionary`, `NSString` or `NSData`. + + @return A new instance created from the json, or nil if an error occurs. + */ ++ (nullable instancetype)BUYY_modelWithJSON:(id)json; + +/** + Creates and returns a new instance of the receiver from a key-value dictionary. + This method is thread-safe. + + @param dictionary A key-value dictionary mapped to the instance's properties. + Any invalid key-value pair in dictionary will be ignored. + + @return A new instance created from the dictionary, or nil if an error occurs. + + @discussion The key in `dictionary` will mapped to the reciever's property name, + and the value will set to the property. If the value's type does not match the + property, this method will try to convert the value based on these rules: + + `NSString` or `NSNumber` -> c number, such as BOOL, int, long, float, NSUInteger... + `NSString` -> NSDate, parsed with format "BUYYBUYY-MM-dd'T'HH:mm:ssZ", "BUYYBUYY-MM-dd HH:mm:ss" or "BUYYBUYY-MM-dd". + `NSString` -> NSURL. + `NSValue` -> struct or union, such as CGRect, CGSize, ... + `NSString` -> SEL, Class. + */ ++ (nullable instancetype)BUYY_modelWithDictionary:(NSDictionary *)dictionary; + +/** + Set the receiver's properties with a json object. + + @discussion Any invalid data in json will be ignored. + + @param json A json object of `NSDictionary`, `NSString` or `NSData`, mapped to the + receiver's properties. + + @return Whether succeed. + */ +- (BOOL)BUYY_modelSetWithJSON:(id)json; + +/** + Set the receiver's properties with a key-value dictionary. + + @param dic A key-value dictionary mapped to the receiver's properties. + Any invalid key-value pair in dictionary will be ignored. + + @discussion The key in `dictionary` will mapped to the reciever's property name, + and the value will set to the property. If the value's type doesn't match the + property, this method will try to convert the value based on these rules: + + `NSString`, `NSNumber` -> c number, such as BOOL, int, long, float, NSUInteger... + `NSString` -> NSDate, parsed with format "BUYYBUYY-MM-dd'T'HH:mm:ssZ", "BUYYBUYY-MM-dd HH:mm:ss" or "BUYYBUYY-MM-dd". + `NSString` -> NSURL. + `NSValue` -> struct or union, such as CGRect, CGSize, ... + `NSString` -> SEL, Class. + + @return Whether succeed. + */ +- (BOOL)BUYY_modelSetWithDictionary:(NSDictionary *)dic; + +/** + Generate a json object from the receiver's properties. + + @return A json object in `NSDictionary` or `NSArray`, or nil if an error occurs. + See [NSJSONSerialization isValidJSONObject] for more information. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it just convert + the inner object to json object. + */ +- (nullable id)BUYY_modelToJSONObject; + +/** + Generate a json string's data from the receiver's properties. + + @return A json string's data, or nil if an error occurs. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it will also convert the + inner object to json string. + */ +- (nullable NSData *)BUYY_modelToJSONData; + +/** + Generate a json string from the receiver's properties. + + @return A json string, or nil if an error occurs. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it will also convert the + inner object to json string. + */ +- (nullable NSString *)BUYY_modelToJSONString; + +/** + Copy a instance with the receiver's properties. + + @return A copied instance, or nil if an error occurs. + */ +- (nullable id)BUYY_modelCopy; + +/** + Encode the receiver's properties to a coder. + + @param aCoder An archiver object. + */ +- (void)BUYY_modelEncodeWithCoder:(NSCoder *)aCoder; + +/** + Decode the receiver's properties from a decoder. + + @param aDecoder An archiver object. + + @return self + */ +- (id)BUYY_modelInitWithCoder:(NSCoder *)aDecoder; + +/** + Get a hash code with the receiver's properties. + + @return Hash code. + */ +- (NSUInteger)BUYY_modelHash; + +/** + Compares the receiver with another object for equality, based on properties. + + @param model Another object. + + @return `YES` if the reciever is equal to the object, otherwise `NO`. + */ +- (BOOL)BUYY_modelIsEqual:(id)model; + +/** + Description method for debugging purposes based on properties. + + @return A string that describes the contents of the receiver. + */ +- (NSString *)BUYY_modelDescription; + +@end + + + +/** + Provide some data-model method for NSArray. + */ +@interface NSArray (BUYYModel) + +/** + Creates and returns an array from a json-array. + This method is thread-safe. + + @param cls The instance's class in array. + @param json A json array of `NSArray`, `NSString` or `NSData`. + Example: [{"name","Mary"},{name:"Joe"}] + + @return A array, or nil if an error occurs. + */ ++ (nullable NSArray *)BUYY_modelArrayWithClass:(Class)cls json:(id)json; + +@end + + + +/** + Provide some data-model method for NSDictionary. + */ +@interface NSDictionary (BUYYModel) + +/** + Creates and returns a dictionary from a json. + This method is thread-safe. + + @param cls The value instance's class in dictionary. + @param json A json dictionary of `NSDictionary`, `NSString` or `NSData`. + Example: {"user1":{"name","Mary"}, "user2": {name:"Joe"}} + + @return A dictionary, or nil if an error occurs. + */ ++ (nullable NSDictionary *)BUYY_modelDictionaryWithClass:(Class)cls json:(id)json; +@end + + + +/** + If the default model transform does not fit to your model class, implement one or + more method in this protocol to change the default key-value transform process. + There's no need to add '' to your class header. + */ +@protocol BUYYModel +@optional + +/** + Custom property mapper. + + @discussion If the key in JSON/Dictionary does not match to the model's property name, + implements this method and returns the additional mapper. + + Example: + + json: + { + "n":"Harry Pottery", + "p": 256, + "ext" : { + "desc" : "A book written by J.K.Rowling." + }, + "ID" : 100010 + } + + model: + [at]interface BUYYBook : NSObject + @property NSString *name; + @property NSInteger page; + @property NSString *desc; + @property NSString *bookID; + @end + + @implementation BUYYBook + + (NSDictionary *)modelCustomPropertyMapper { + return @{@"name" : @"n", + @"page" : @"p", + @"desc" : @"ext.desc", + @"bookID": @[@"id", @"ID", @"book_id"]}; + } + @end + + @return A custom mapper for properties. + */ ++ (nullable NSDictionary *)modelCustomPropertyMapper; + +/** + The generic class mapper for container properties. + + @discussion If the property is a container object, such as NSArray/NSSet/NSDictionary, + implements this method and returns a property->class mapper, tells which kind of + object will be add to the array/set/dictionary. + + Example: + [at]class BUYYShadow, BUYYBorder, BUYYAttachment; + + [at]interface BUYYAttributes + @property NSString *name; + @property NSArray *shadows; + @property NSSet *borders; + @property NSDictionary *attachments; + @end + + @implementation BUYYAttributes + + (NSDictionary *)modelContainerPropertyGenericClass { + return @{@"shadows" : [BUYYShadow class], + @"borders" : BUYYBorder.class, + @"attachments" : @"BUYYAttachment" }; + } + @end + + @return A class mapper. + */ ++ (nullable NSDictionary *)modelContainerPropertyGenericClass; + +/** + If you need to create instances of different classes during json->object transform, + use the method to choose custom class based on dictionary data. + + @discussion If the model implements this method, it will be called to determine resulting class + during `+modelWithJSON:`, `+modelWithDictionary:`, conveting object of properties of parent objects + (both singular and containers via `+modelContainerPropertyGenericClass`). + + Example: + [at]class BUYYCircle, BUYYRectangle, BUYYLine; + + @implementation BUYYShape + + + (Class)modelCustomClassForDictionary:(NSDictionary*)dictionary { + if (dictionary[@"radius"] != nil) { + return [BUYYCircle class]; + } else if (dictionary[@"width"] != nil) { + return [BUYYRectangle class]; + } else if (dictionary[@"y2"] != nil) { + return [BUYYLine class]; + } else { + return [self class]; + } + } + + @end + + @param dictionary The json/kv dictionary. + + @return Class to create from this dictionary, `nil` to use current class. + + */ ++ (nullable Class)modelCustomClassForDictionary:(NSDictionary *)dictionary; + +/** + All the properties in blacklist will be ignored in model transform process. + Returns nil to ignore this feature. + + @return An array of property's name. + */ ++ (nullable NSArray *)modelPropertyBlacklist; + +/** + If a property is not in the whitelist, it will be ignored in model transform process. + Returns nil to ignore this feature. + + @return An array of property's name. + */ ++ (nullable NSArray *)modelPropertyWhitelist; + +/** + This method's behavior is similar to `- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic;`, + but be called before the model transform. + + @discussion If the model implements this method, it will be called before + `+modelWithJSON:`, `+modelWithDictionary:`, `-modelSetWithJSON:` and `-modelSetWithDictionary:`. + If this method returns nil, the transform process will ignore this model. + + @param dic The json/kv dictionary. + + @return Returns the modified dictionary, or nil to ignore this model. + */ +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic; + +/** + If the default json-to-model transform does not fit to your model object, implement + this method to do additional process. You can also use this method to validate the + model's properties. + + @discussion If the model implements this method, it will be called at the end of + `+modelWithJSON:`, `+modelWithDictionary:`, `-modelSetWithJSON:` and `-modelSetWithDictionary:`. + If this method returns NO, the transform process will ignore this model. + + @param dic The json/kv dictionary. + + @return Returns YES if the model is valid, or NO to ignore this model. + */ +- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic; + +/** + If the default model-to-json transform does not fit to your model class, implement + this method to do additional process. You can also use this method to validate the + json dictionary. + + @discussion If the model implements this method, it will be called at the end of + `-modelToJSONObject` and `-modelToJSONString`. + If this method returns NO, the transform process will ignore this json dictionary. + + @param dic The json dictionary. + + @return Returns YES if the model is valid, or NO to ignore this model. + */ +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUYYModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUYYModel.h.meta new file mode 100644 index 00000000..ec4bfc31 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSObject+BUYYModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ad8f2ff34532a46f1b64afd06e48d878 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSPointerArray+BUSafely.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSPointerArray+BUSafely.h new file mode 100755 index 00000000..579fb0e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSPointerArray+BUSafely.h @@ -0,0 +1,13 @@ +// +// NSPointerArray+Safely.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/6/21. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +@interface NSPointerArray (BU_Safely) +- (id)bu_safelyAccessObjectAtIndex:(NSUInteger)index; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSPointerArray+BUSafely.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSPointerArray+BUSafely.h.meta new file mode 100644 index 00000000..484a01da --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSPointerArray+BUSafely.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a470d9bb64cda43b5ad10fe6efcf51d3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSString+BUAddtion.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSString+BUAddtion.h new file mode 100755 index 00000000..87cea50d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSString+BUAddtion.h @@ -0,0 +1,135 @@ +// +// NSString+URLEncoding.h +// BUAdSDK +// +// Created by carl on 2017/10/26. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, BULanguageType) {//"万"转换规则 + BULanguageType_showWan = 0, //直接拼接万,默认 + BULanguageType_showNum = 1, //直接展示数字 +}; + +@interface NSString (BU_URLCoding) +- (nullable NSString *)bu_URLEncodedString; +- (nullable NSString *)bu_URLDecodedString; +- (nullable NSString *)bu_URLEncodedStringWithCustomSet; +@end + +@interface NSString (BU_Encryption) +- (nullable NSString *)bu_sha256; +/** + * @brief 返回自身的md5 + * @return 返回自身的md5的16进制字串 + */ +- (nullable NSString *)bu_MD5HashString; +@end + +@interface NSString (BU_NumberToWan) +/// 数字转换成x万(以1w为界限,小于1w显示原始数字) 没有”万“走另一套展示逻辑 ++ (NSString *)bu_numberToWan:(NSInteger)target wan:(NSString *)wan; + +/// 大于1w就用k表示,不大于就直接展示多少个评分 ++ (NSString *)bu_numberToThousand:(NSInteger)target; + +@end + +@interface NSString (BU_URLStringAppend) +/* + * + string转URL + */ ++ (nullable NSURL *)bu_URLWithURLString:(NSString *)str; +/* + * + string转字典 + */ ++ (NSDictionary*)bu_parametersOfURLQueryString:(NSString*)urlString; + +/* + * + url字符串拼接参数,需要判断是否是第一个 + */ ++ (NSString *)bu_urlStringWithOriginUrlString:(NSString *)originUrlString appendParameters:(NSDictionary *)parameters; + ++ (NSString *)bu_urlStringWithBaseUrlString:(NSString *)baseUrlString requestURLString:(NSString *)requestURLString; + ++ (NSString *)bu_urlStringWithUrlString:(NSString *)urlString parameterString:(NSString *)parameterString; + +/* + * 格式转化 + 222222 -> 222,222 + */ ++ (NSString *)bu_convertNumberFormatter:(NSString *)str; + + + +/// 正则匹配字符 +/// @param pattern 正则表达式 +/// @param withTemplate 返回样式: "$1 + $2" +/// @param error 错误信息 +- (nullable NSString *)bu_replacingWithPattern:(NSString * _Nonnull)pattern withTemplate:(NSString * _Nonnull)withTemplate error:(NSError **)error; +@end + + +@interface NSString (BU_Sandbox) +/** + * 获取缓存路径 + * + * @return path where to cache + */ +- (NSString *)bu_CachePath; + +/** + * @brief 获取程序的用户文档目录的路径加上自身 + * @return 用户文档目录路径字串加上自身,该字符串是自动释放的 + */ +- (NSString *)bu_DocumentsPath; +@end + + +@interface NSString(BU_JSONValue) + +- (nullable id)bu_JSONValue:(NSError **)error; ++ (nullable id)bu_objectWithJSONData:(nullable NSData *)inData error:(NSError **)outError; + +@end + + +@interface NSString(BU_Time) + ++ (NSString*)bu_dateNowString; + ++ (NSString*)bu_dateStringSince:(NSTimeInterval)timeInterval; + ++ (NSNumber*)bu_currentInterval; + +@end + + +@interface NSString(BU_Random) + +/* @deccription生成随机字符 + * @param count 多少位随机数 + */ ++ (NSString *)randomStringWithCount:(NSUInteger)count; +@end + +@interface NSString (BU_Size) + +- (CGSize)bu_boundingRectWithSize:(CGSize)size font:(UIFont *)font; + +@end + +@interface NSString (BU_CheckingResult) + +- (nullable NSString *)bu_substringWithPattern:(NSString *)pattern; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSString+BUAddtion.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSString+BUAddtion.h.meta new file mode 100644 index 00000000..271d135a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSString+BUAddtion.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5a1e553d9ce2475a96f01394975a9a9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSTimer+BUBlockSupport.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSTimer+BUBlockSupport.h new file mode 100755 index 00000000..0d889ae3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSTimer+BUBlockSupport.h @@ -0,0 +1,16 @@ +// +// NSTimer+BUBlockSupport.h +// BUAdSDK +// +// Created by gdp on 2017/12/23. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +@interface NSTimer (BU_BlockSupport) + ++ (NSTimer *)bu_scheduledTimerWithTimeInterval:(NSTimeInterval)interval + repeats:(BOOL)repeats + block:(void (^)(NSTimer *))block; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSTimer+BUBlockSupport.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSTimer+BUBlockSupport.h.meta new file mode 100644 index 00000000..2f2f0d4f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSTimer+BUBlockSupport.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cb601c7baa8384fd1b84f1aa373ce855 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSUserDefaults+BUCrypt.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSUserDefaults+BUCrypt.h new file mode 100755 index 00000000..f6945cd5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSUserDefaults+BUCrypt.h @@ -0,0 +1,32 @@ +// +// NSUserDefaults+BUCrypt.h +// BUFoundation +// +// Created by Willie on 2020/9/11. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSUserDefaults (BUCrypt) + +- (void)setValue:(nullable id)value + forKey:(NSString *)key + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] setObject:forkey'"))); + +- (nullable id)valueForKey:(NSString *)defaultName + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] objectForKey:'"))); + +- (void)removeObjectForKey:(NSString *)defaultName + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] removeObjectsForKeys:'")));; + +- (void)bu_synchronize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSUserDefaults+BUCrypt.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSUserDefaults+BUCrypt.h.meta new file mode 100644 index 00000000..e63becae --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/NSUserDefaults+BUCrypt.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6cb76d185f8ba4809a658741f6d55965 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIButton+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIButton+BUWebCache.h new file mode 100755 index 00000000..5d772104 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIButton+BUWebCache.h @@ -0,0 +1,387 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIButton. + */ +@interface UIButton (BUWebCache) + +#pragma mark - Image + +/** + * Get the current image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentImageURL; + +/** + * Get the image URL for a control state. + * + * @param state Which state you want to know the URL for. The values are described in UIControlState. + */ +- (nullable NSURL *)sdBu_imageURLForState:(UIControlState)state; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Background Image + +/** + * Get the current background image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentBackgroundImageURL; + +/** + * Get the background image URL for a control state. + * + * @param state Which state you want to know the URL for. The values are described in UIControlState. + */ +- (nullable NSURL *)sdBu_backgroundImageURLForState:(UIControlState)state; + +/** + * Set the button `backgroundImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `backgroundImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Cancel + +/** + * Cancel the current image download + */ +- (void)sdBu_cancelImageLoadForState:(UIControlState)state; + +/** + * Cancel the current backgroundImage download + */ +- (void)sdBu_cancelBackgroundImageLoadForState:(UIControlState)state; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIButton+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIButton+BUWebCache.h.meta new file mode 100644 index 00000000..3d8c45d7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIButton+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dc0771896dd7c4af984acd2394252d0d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUHexString.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUHexString.h new file mode 100755 index 00000000..8834ee23 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUHexString.h @@ -0,0 +1,18 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@interface UIColor (BUHexString) + +/** + Convenience way to get hex string from color. The output should always be 32-bit RGBA hex string like `#00000000`. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *sdBu_hexString; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUHexString.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUHexString.h.meta new file mode 100644 index 00000000..b90102ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUHexString.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 620d6f7fd151b4fadabd24f2632919f0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUTheme.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUTheme.h new file mode 100755 index 00000000..653586b2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUTheme.h @@ -0,0 +1,22 @@ +// +// UIColor+BUTheme.h +// BUAdSDK +// +// Created by carl on 2017/8/15. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIColor (BU_Theme) ++ (UIColor *)bu_colorWithHEX:(NSUInteger)hex; ++ (UIColor *)bu_colorWithHEX:(NSUInteger)hex alpha:(CGFloat)alpha; + ++ (UIColor *)bu_colorWithHexString:(NSString *)color; ++ (UIColor *)bu_colorWithHexString:(NSString *)color alpha:(CGFloat)alpha; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUTheme.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUTheme.h.meta new file mode 100644 index 00000000..3d8d276d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIColor+BUTheme.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 92fc86cee2a16436f9f6acec79f0e936 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUForceDecode.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUForceDecode.h new file mode 100755 index 00000000..408e681f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUForceDecode.h @@ -0,0 +1,46 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + UIImage category about force decode feature (avoid Image/IO's lazy decoding during rendering behavior). + */ +@interface UIImage (BUForceDecode) + +/** + A bool value indicating whether the image has already been decoded. This can help to avoid extra force decode. + */ +@property (nonatomic, assign) BOOL sdBu_isDecoded; + +/** + Decode the provided image. This is useful if you want to force decode the image before rendering to improve performance. + + @param image The image to be decoded + @return The decoded image + */ ++ (nullable UIImage *)sdBu_decodedImageWithImage:(nullable UIImage *)image; + +/** + Decode and scale down the provided image + + @param image The image to be decoded + @return The decoded and scaled down image + */ ++ (nullable UIImage *)sdBu_decodedAndScaledDownImageWithImage:(nullable UIImage *)image; + +/** + Decode and scale down the provided image with limit bytes + + @param image The image to be decoded + @param bytes The limit bytes size. Provide 0 to use the build-in limit. + @return The decoded and scaled down image + */ ++ (nullable UIImage *)sdBu_decodedAndScaledDownImageWithImage:(nullable UIImage *)image limitBytes:(NSUInteger)bytes; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUForceDecode.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUForceDecode.h.meta new file mode 100644 index 00000000..06a3bd1b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUForceDecode.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 45e4282e0028941c1a0af321e77f9796 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUGIF.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUGIF.h new file mode 100755 index 00000000..df458135 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUGIF.h @@ -0,0 +1,26 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Laurin Brandner + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + This category is just use as a convenience method. For more detail control, use methods in `UIImage+BUMultiFormat.h` or directlly use `SDImageCoder`. + */ +@interface UIImage (BUGIF) + +/** + Creates an animated UIImage from an NSData. + This will create animated image if the data is Animated GIF. And will create a static image is the data is Static GIF. + + @param data The GIF data + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithGIFData:(nullable NSData *)data; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUGIF.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUGIF.h.meta new file mode 100644 index 00000000..b042dde6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUGIF.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: baa777b322ead4bf5817281d69e7615d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMemoryCacheCost.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMemoryCacheCost.h new file mode 100755 index 00000000..288e3a43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMemoryCacheCost.h @@ -0,0 +1,27 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + UIImage category for memory cache cost. + */ +@interface UIImage (BUMemoryCacheCost) + +/** + The memory cache cost for specify image used by image cache. The cost function is the bytes size held in memory. + If you set some associated object to `UIImage`, you can set the custom value to indicate the memory cost. + + For `UIImage`, this method return the single frame bytes size when `image.images` is nil for static image. Retuen full frame bytes size when `image.images` is not nil for animated image. + For `NSImage`, this method return the single frame bytes size because `NSImage` does not store all frames in memory. + @note Note that because of the limitations of category this property can get out of sync if you create another instance with CGImage or other methods. + @note For custom animated class conforms to `BU_SDAnimatedImage`, you can override this getter method in your subclass to return a more proper value instead, which representing the current frame's total bytes. + */ +@property (assign, nonatomic) NSUInteger sdBu_memoryCost; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMemoryCacheCost.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMemoryCacheCost.h.meta new file mode 100644 index 00000000..8b85857a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMemoryCacheCost.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cd5ab6f0b3440478382bb1b2ca3dcc2b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMetadata.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMetadata.h new file mode 100755 index 00000000..df253c67 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMetadata.h @@ -0,0 +1,49 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +/** + UIImage category for image metadata, including animation, loop count, format, incremental, etc. + */ +@interface UIImage (BUMetadata) + +/** + * UIKit: + * For static image format, this value is always 0. + * For animated image format, 0 means infinite looping. + * Note that because of the limitations of categories this property can get out of sync if you create another instance with CGImage or other methods. + * AppKit: + * NSImage currently only support animated via GIF imageRep unlike UIImage. + * The getter of this property will get the loop count from GIF imageRep + * The setter of this property will set the loop count from GIF imageRep + */ +@property (nonatomic, assign) NSUInteger sdBu_imageLoopCount; + +/** + * UIKit: + * Check the `images` array property + * AppKit: + * NSImage currently only support animated via GIF imageRep unlike UIImage. It will check the imageRep's frame count. + */ +@property (nonatomic, assign, readonly) BOOL sdBu_isAnimated; + +/** + * The image format represent the original compressed image data format. + * If you don't manually specify a format, this information is retrieve from CGImage using `CGImageGetUTType`, which may return nil for non-CG based image. At this time it will return `BU_SDImageFormatUndefined` as default value. + * @note Note that because of the limitations of categories this property can get out of sync if you create another instance with CGImage or other methods. + */ +@property (nonatomic, assign) BU_SDImageFormat sdBu_imageFormat; + +/** + A bool value indicating whether the image is during incremental decoding and may not contains full pixels. + */ +@property (nonatomic, assign) BOOL sdBu_isIncremental; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMetadata.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMetadata.h.meta new file mode 100644 index 00000000..9f3d243b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMetadata.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 85b0ec3a4ec064ac7acf94378235aff1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMultiFormat.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMultiFormat.h new file mode 100755 index 00000000..5104babe --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMultiFormat.h @@ -0,0 +1,79 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +/** + UIImage category for convenient image format decoding/encoding. + */ +@interface UIImage (BUMultiFormat) +#pragma mark - Decode +/** + Create and decode a image with the specify image data + + @param data The image data + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data; + +/** + Create and decode a image with the specify image data and scale + + @param data The image data + @param scale The image scale factor. Should be greater than or equal to 1.0. + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data scale:(CGFloat)scale; + +/** + Create and decode a image with the specify image data and scale, allow specify animate/static control + + @param data The image data + @param scale The image scale factor. Should be greater than or equal to 1.0. + @param firstFrameOnly Even if the image data is animated image format, decode the first frame only as static image. + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data scale:(CGFloat)scale firstFrameOnly:(BOOL)firstFrameOnly; + +#pragma mark - Encode +/** + Encode the current image to the data, the image format is unspecified + + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageData; + +/** + Encode the current image to data with the specify image format + + @param imageFormat The specify image format + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat NS_SWIFT_NAME(sdBu_imageData(as:)); + +/** + Encode the current image to data with the specify image format and compression quality + + @param imageFormat The specify image format + @param compressionQuality The quality of the resulting image data. Value between 0.0-1.0. Some coders may not support compression quality. + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat compressionQuality:(double)compressionQuality NS_SWIFT_NAME(sdBu_imageData(as:compressionQuality:)); + +/** + Encode the current image to data with the specify image format and compression quality, allow specify animate/static control + + @param imageFormat The specify image format + @param compressionQuality The quality of the resulting image data. Value between 0.0-1.0. Some coders may not support compression quality. + @param firstFrameOnly Even if the image is animated image, encode the first frame only as static image. + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat compressionQuality:(double)compressionQuality firstFrameOnly:(BOOL)firstFrameOnly NS_SWIFT_NAME(sdBu_imageData(as:compressionQuality:firstFrameOnly:)); + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMultiFormat.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMultiFormat.h.meta new file mode 100644 index 00000000..7df4fd83 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUMultiFormat.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba2cb3f800cb44117b647f7ef8cfe21e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUTransform.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUTransform.h new file mode 100755 index 00000000..e322ca96 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUTransform.h @@ -0,0 +1,146 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +typedef NS_ENUM(NSUInteger, BU_SDImageScaleMode) { + BU_SDImageScaleModeFill = 0, + BU_SDImageScaleModeAspectFit = 1, + BU_SDImageScaleModeAspectFill = 2 +}; + +#if SD_UIKIT || SD_WATCH +typedef UIRectCorner BU_SDRectCorner; +#else +typedef NS_OPTIONS(NSUInteger, BU_SDRectCorner) { + BU_SDRectCornerTopLeft = 1 << 0, + BU_SDRectCornerTopRight = 1 << 1, + BU_SDRectCornerBottomLeft = 1 << 2, + BU_SDRectCornerBottomRight = 1 << 3, + BU_SDRectCornerAllCorners = ~0UL +}; +#endif + +/** + Provide some commen method for `UIImage`. + Image process is based on Core Graphics and vImage. + */ +@interface UIImage (BUTransform) + +#pragma mark - Image Geometry + +/** + Returns a new image which is resized from this image. + You can specify a larger or smaller size than the image size. The image content will be changed with the scale mode. + + @param size The new size to be resized, values should be positive. + @param scaleMode The scale mode for image content. + @return The new image with the given size. + */ +- (nullable UIImage *)sdBu_resizedImageWithSize:(CGSize)size scaleMode:(BU_SDImageScaleMode)scaleMode; + +/** + Returns a new image which is cropped from this image. + + @param rect Image's inner rect. + @return The new image with the cropping rect. + */ +- (nullable UIImage *)sdBu_croppedImageWithRect:(CGRect)rect; + +/** + Rounds a new image with a given corner radius and corners. + + @param cornerRadius The radius of each corner oval. Values larger than half the + rectangle's width or height are clamped appropriately to + half the width or height. + @param corners A bitmask value that identifies the corners that you want + rounded. You can use this parameter to round only a subset + of the corners of the rectangle. + @param borderWidth The inset border line width. Values larger than half the rectangle's + width or height are clamped appropriately to half the width + or height. + @param borderColor The border stroke color. nil means clear color. + @return The new image with the round corner. + */ +- (nullable UIImage *)sdBu_roundedCornerImageWithRadius:(CGFloat)cornerRadius + corners:(BU_SDRectCorner)corners + borderWidth:(CGFloat)borderWidth + borderColor:(nullable UIColor *)borderColor; + +/** + Returns a new rotated image (relative to the center). + + @param angle Rotated radians in counterclockwise.⟲ + @param fitSize YES: new image's size is extend to fit all content. + NO: image's size will not change, content may be clipped. + @return The new image with the rotation. + */ +- (nullable UIImage *)sdBu_rotatedImageWithAngle:(CGFloat)angle fitSize:(BOOL)fitSize; + +/** + Returns a new horizontally(vertically) flipped image. + + @param horizontal YES to flip the image horizontally. ⇋ + @param vertical YES to flip the image vertically. ⥯ + @return The new image with the flipping. + */ +- (nullable UIImage *)sdBu_flippedImageWithHorizontal:(BOOL)horizontal vertical:(BOOL)vertical; + +#pragma mark - Image Blending + +/** + Return a tinted image with the given color. This actually use alpha blending of current image and the tint color. + + @param tintColor The tint color. + @return The new image with the tint color. + */ +- (nullable UIImage *)sdBu_tintedImageWithColor:(nonnull UIColor *)tintColor; + +/** + Return the pixel color at specify position. The point is from the top-left to the bottom-right and 0-based. The returned the color is always be RGBA format. The image must be CG-based. + @note The point's x/y should not be smaller than 0, or greater than or equal to width/height. + @note The overhead of object creation means this method is best suited for infrequent color sampling. For heavy image processing, grab the raw bitmap data and process yourself. + + @param point The position of pixel + @return The color for specify pixel, or nil if any error occur + */ +- (nullable UIColor *)sdBu_colorAtPoint:(CGPoint)point; + +/** + Return the pixel color array with specify rectangle. The rect is from the top-left to the bottom-right and 0-based. The returned the color is always be RGBA format. The image must be CG-based. + @note The rect's width/height should not be smaller than or equal to 0. The minX/minY should not be smaller than 0. The maxX/maxY should not be greater than width/height. Attention this limit is different from `sdBu_colorAtPoint:` (point: (0, 0) like rect: (0, 0, 1, 1)) + @note The overhead of object creation means this method is best suited for infrequent color sampling. For heavy image processing, grab the raw bitmap data and process yourself. + + @param rect The rectangle of pixels + @return The color array for specify pixels, or nil if any error occur + */ +- (nullable NSArray *)sdBu_colorsWithRect:(CGRect)rect; + +#pragma mark - Image Effect + +/** + Return a new image applied a blur effect. + + @param blurRadius The radius of the blur in points, 0 means no blur effect. + + @return The new image with blur effect, or nil if an error occurs (e.g. no enough memory). + */ +- (nullable UIImage *)sdBu_blurredImageWithRadius:(CGFloat)blurRadius; + +#if SD_UIKIT || SD_MAC +/** + Return a new image applied a CIFilter. + + @param filter The CIFilter to be applied to the image. + @return The new image with the CIFilter, or nil if an error occurs (e.g. no + enough memory). + */ +- (nullable UIImage *)sdBu_filteredImageWithFilter:(nonnull CIFilter *)filter; +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUTransform.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUTransform.h.meta new file mode 100644 index 00000000..de135323 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImage+BUTransform.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d24f07493161f4234a6f8732138e89a9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUHighlightedWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUHighlightedWebCache.h new file mode 100755 index 00000000..dbc4405e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUHighlightedWebCache.h @@ -0,0 +1,129 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIImageView for highlighted state. + */ +@interface UIImageView (BUHighlightedWebCache) + +/** + * Set the imageView `highlightedImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url`, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the imageView `highlightedImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `highlightedImage` with an `url`, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUHighlightedWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUHighlightedWebCache.h.meta new file mode 100644 index 00000000..e496295b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUHighlightedWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 95e73471c7798418da85e3aa3693e7d9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUWebCache.h new file mode 100755 index 00000000..2d4fc81e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUWebCache.h @@ -0,0 +1,194 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageManager.h" + +/** + * Usage with a UITableViewCell sub-class: + * + * @code + +#import + +... + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + static NSString *MyIdentifier = @"MyIdentifier"; + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; + + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier]; + } + + // Here we use the provided sdBu_setImageWithURL:placeholderImage: method to load the web image + // Ensure you use a placeholder image otherwise cells will be initialized with no image + [cell.imageView sdBu_setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"] + placeholderImage:[UIImage imageNamed:@"placeholder"]]; + + cell.textLabel.text = @"My BU_Text"; + return cell; +} + + * @endcode + */ + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIImageView. + */ +@interface UIImageView (BUWebCache) + +/** + * Set the imageView `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the imageView `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUWebCache.h.meta new file mode 100644 index 00000000..334362ea --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b493549db002c44a1a416932958f7772 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BU_ZFCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BU_ZFCache.h new file mode 100755 index 00000000..609b46d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BU_ZFCache.h @@ -0,0 +1,127 @@ +// +// UIImageView+ZFCache.h +// Player +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import + +typedef void (^BU_ZFDownLoadDataCallBack)(NSData *data, NSError *error); +typedef void (^BU_ZFDownloadProgressBlock)(unsigned long long total, unsigned long long current); + +@interface BU_ZFImageDownloader : NSObject + +@property (nonatomic, strong) NSURLSession *session; +@property (nonatomic, strong) NSURLSessionDownloadTask *task; + +@property (nonatomic, assign) unsigned long long totalLength; +@property (nonatomic, assign) unsigned long long currentLength; + +@property (nonatomic, copy) BU_ZFDownloadProgressBlock progressBlock; +@property (nonatomic, copy) BU_ZFDownLoadDataCallBack callbackOnFinished; + +- (void)startDownloadImageWithUrl:(NSString *)url + progress:(BU_ZFDownloadProgressBlock)progress + finished:(BU_ZFDownLoadDataCallBack)finished; + +@end + +typedef void (^BU_ZFImageBlock)(UIImage *image); + +@interface UIImageView (BU_ZFCache) + +/** + * Get/Set the callback block when download the image finished. + * + * param image The image object from network or from disk. + */ +@property (nonatomic, copy) BU_ZFImageBlock bu_completion; + +/** + * Image downloader + */ +@property (nonatomic, strong) BU_ZFImageDownloader *bu_imageDownloader; + +/** + * Specify the URL to download images fails, the number of retries, the default is 2 + */ +@property (nonatomic, assign) NSUInteger bu_attemptToReloadTimesForFailedURL; + +/** + * Will automatically download to cutting for UIImageView size of image.The default value is NO. + * If set to YES, then the download after a successful store only after cutting the image + */ +@property (nonatomic, assign) BOOL bu_shouldAutoClipImageToViewSize; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImageName The image name to be set initially, until the image request finishes. + */ +- (void)setBUImageWithURLString:(NSString *)url placeholderImageName:(NSString *)placeholderImageName; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImage The image to be set initially, until the image request finishes. + */ +- (void)setBUImageWithURLString:(NSString *)url placeholder:(UIImage *)placeholderImage; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImage The image to be set initially, until the image request finishes. + * @param completion A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)setBUImageWithURLString:(NSString *)url + placeholder:(UIImage *)placeholderImage + completion:(void (^)(UIImage *image))completion; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImageName The image name to be set initially, until the image request finishes. + * @param completion A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)setBUImageWithURLString:(NSString *)url + placeholderImageName:(NSString *)placeholderImageName + completion:(void (^)(UIImage *image))completion; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BU_ZFCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BU_ZFCache.h.meta new file mode 100644 index 00000000..629b26b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIImageView+BU_ZFCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 57d6317f131e1412c9be01b6d9cd02a3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUAdditions.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUAdditions.h new file mode 100755 index 00000000..79b30267 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUAdditions.h @@ -0,0 +1,116 @@ +// +// UIView+Additions.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/3/15. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIView (BU_Additions) + +- (UIImage *)bu_captureView; + +@end + +typedef enum { + UIViewBorderOptionTop = 0, + UIViewBorderOptionRight, + UIViewBorderOptionBottom, + UIViewBorderOptionLeft, + UIViewBorderOptionAll +} UIViewBorderOption; + + +typedef struct { + CGFloat topLeft; + CGFloat topRight; + CGFloat bottomLeft; + CGFloat bottomRight; +} BUFCornerRadii; + + +@interface UIView (BU_Border) + +- (void)bu_setBorder:(UIViewBorderOption)option width:(CGFloat)width color:(UIColor *)color; +- (void)bu_setDashBorder:(UIViewBorderOption)option width:(CGFloat)width color:(UIColor *)color; +- (void)bu_roundCornerWithDashBorder:(CGFloat)radius width:(CGFloat)widht color:(UIColor *)color; +- (void)bu_updateClippingForLayer:(CALayer *)layer cornerRadii:(BUFCornerRadii)cornerRadii maxRadius:(CGFloat)maxRadius; +@end + + +@interface UIView (BU_FrameAdditions) +@property (nonatomic) float bu_x; +@property (nonatomic) float bu_y; +@property (nonatomic) float bu_width; +@property (nonatomic) float bu_height; +@property (nonatomic, getter = bu_y,setter = setBu_y:) float bu_top; // 增加bu前缀,防止与外部开发者的分类属性名冲突:https://jira.bytedance.com/browse/UNION-4447 fixed in 3300 by chaors +@property (nonatomic, getter = bu_x,setter = setBu_x:) float bu_left; +@property (nonatomic) float bu_bottom; +@property (nonatomic) float bu_right; +@property (nonatomic) CGSize bu_size; +@property (nonatomic) CGPoint bu_origin; +@property (nonatomic) CGFloat bu_centerX; +@property (nonatomic) CGFloat bu_centerY; + +// 设置最大右边 +- (void)bu_setMaxRight:(CGFloat)maxRight; + +- (UIViewController *)bu_viewController; +@end + + +@interface UIView (BU_TKCategory) + +// DRAW GRADIENT ++ (void)bu_drawGradientInRect:(CGRect)rect withColors:(NSArray*)colors; + +// DRAW ROUNDED RECTANGLE ++ (void)bu_drawRoundRectangleInRect:(CGRect)rect withRadius:(CGFloat)radius color:(UIColor*)color; + +// DRAW LINE ++ (void)bu_drawLineInRect:(CGRect)rect red:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha; ++ (void)bu_drawLineInRect:(CGRect)rect colors:(CGFloat[_Nullable])colors; ++ (void)bu_drawLineInRect:(CGRect)rect colors:(CGFloat[_Nullable])colors width:(CGFloat)lineWidth cap:(CGLineCap)cap; + +@end + + +@interface UIView (BU_Gesture) + +- (UILongPressGestureRecognizer *)bu_addLogPressGestureWithTarget:(id)target selecter:(SEL)aSelector; + +@property (nonatomic, strong, nullable) UITapGestureRecognizer *bu_tgr; +// 会移除旧的手势 +- (void)bu_addGestureRecognizerWithTarget:(id)target action:(SEL)action; +- (void)bu_removeGestureRecognizer; +@end + +@interface UIView (BU_FindFirstResponder) +- (UIView *)bu_findViewThatIsFirstResponder; +@end + +@interface UIView (BU_InScreen) +- (BOOL)bu_checkInCurrentScreenWithEdgeInsets:(UIEdgeInsets)edgeInsets; +- (BOOL)bu_checkInScreenYWithPaddingTop:(CGFloat)paddingTop paddingToBottom:(CGFloat)paddingToBottom; +- (BOOL)bu_checkInScreenXWithPaddingLeft:(CGFloat)paddingLeft paddingToRight:(CGFloat)paddingToRight; +@end + +@interface UIView (BU_NearestController) +- (UIViewController *)bu_findNearestController; + + + + +@end + +@interface UIView (BU_SafeArea) +- (UIEdgeInsets)bu_safeAreaInsets; + ++ (UIEdgeInsets)bu_defaultAreaInsets; + +@end +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUAdditions.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUAdditions.h.meta new file mode 100644 index 00000000..a084210c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUAdditions.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 286cc6aac6f6b45469cdc0c1bee9e717 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCache.h new file mode 100755 index 00000000..a5cf63a8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCache.h @@ -0,0 +1,101 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageManager.h" +#import "BU_SDWebImageTransition.h" +#import "BU_SDWebImageIndicator.h" + +/** + The value specify that the image progress unit count cannot be determined because the progressBlock is not been called. + */ +FOUNDATION_EXPORT const int64_t BU_SDWebImageProgressUnitCountUnknown; /* 1LL */ + +typedef void(^SDSetImageBlock)(UIImage * _Nullable image, NSData * _Nullable imageData, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); + +/** + Integrates SDWebImage async downloading and caching of remote images with UIView subclass. + */ +@interface UIView (BUWebCache) + +/** + * Get the current image URL. + * + * @note Note that because of the limitations of categories this property can get out of sync if you use setImage: directly. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_imageURL; + +/** + * The current image loading progress associated to the view. The unit count is the received size and excepted size of download. + * The `totalUnitCount` and `completedUnitCount` will be reset to 0 after a new image loading start (change from current queue). And they will be set to `BU_SDWebImageProgressUnitCountUnknown` if the progressBlock not been called but the image loading success to mark the progress finished (change from main queue). + * @note You can use Key-Value Observing on the progress, but you should take care that the change to progress is from a background queue during download(the same as progressBlock). If you want to using KVO and update the UI, make sure to dispatch on the main queue. And it's recommand to use some KVO libs like KVOController because it's more safe and easy to use. + * @note The getter will create a progress instance if the value is nil. But by default, we don't create one. If you need to use Key-Value Observing, you must trigger the getter or set a custom progresss instance before the loading start. The default value is nil. + * @note Note that because of the limitations of categories this property can get out of sync if you update the progress directly. + */ +@property (nonatomic, strong, null_resettable) NSProgress *sdBu_imageProgress; + +/** + * Set the imageView `image` with an `url` and optionally a placeholder image. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param setImageBlock Block used for custom set image code. If not provide, use the built-in set image code (supports `UIImageView/NSImageView` and `UIButton/NSButton` currently) + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * This block has no return value and takes the requested UIImage as first parameter and the NSData representation as second parameter. + * In case of error the image parameter is nil and the third parameter may contain an NSError. + * + * The forth parameter is an `BU_SDImageCacheType` enum indicating if the image was retrieved from the local cache + * or from the memory cache or from the network. + * + * The fith parameter normally is always YES. However, if you provide SDWebImageAvoidAutoSetImage with SDWebImageProgressiveLoad options to enable progressive downloading and set the image yourself. This block is thus called repeatedly with a partial image. When image is fully downloaded, the + * block is called a last time with the full image and the last parameter set to YES. + * + * The last parameter is the original image URL + */ +- (void)sdBu_internalSetImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + setImageBlock:(nullable SDSetImageBlock)setImageBlock + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDInternalCompletionBlock)completedBlock; + +/** + * Cancel the current image load + */ +- (void)sdBu_cancelCurrentImageLoad; + +#if SD_UIKIT || SD_MAC + +#pragma mark - Image Transition + +/** + The image transition when image load finished. See `SDWebImageTransition`. + If you specify nil, do not do transition. Defautls to nil. + */ +@property (nonatomic, strong, nullable) BU_SDWebImageTransition *sdBu_imageTransition; + +#pragma mark - Image Indicator + +/** + The image indicator during the image loading. If you do not need indicator, specify nil. Defaults to nil + The setter will remove the old indicator view and add new indicator view to current view's subview. + @note Because this is UI related, you should access only from the main queue. + */ +@property (nonatomic, strong, nullable) id sdBu_imageIndicator; + +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCache.h.meta new file mode 100644 index 00000000..f8fa4611 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c188e3236b0da40c19229fbc41206179 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCacheOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCacheOperation.h new file mode 100755 index 00000000..e541d0c0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCacheOperation.h @@ -0,0 +1,48 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" + +/** + These methods are used to support canceling for UIView image loading, it's designed to be used internal but not external. + All the stored operations are weak, so it will be dalloced after image loading finished. If you need to store operations, use your own class to keep a strong reference for them. + */ +@interface UIView (BUWebCacheOperation) + +/** + * Get the image load operation for key + * + * @param key key for identifying the operations + * @return the image load operation + */ +- (nullable id)sdBu_imageLoadOperationForKey:(nullable NSString *)key; + +/** + * Set the image load operation (storage in a UIView based weak map table) + * + * @param operation the operation + * @param key key for storing the operation + */ +- (void)sdBu_setImageLoadOperation:(nullable id)operation forKey:(nullable NSString *)key; + +/** + * Cancel all operations for the current UIView and key + * + * @param key key for identifying the operations + */ +- (void)sdBu_cancelImageLoadOperationWithKey:(nullable NSString *)key; + +/** + * Just remove the operations corresponding to the current UIView and key without cancelling them + * + * @param key key for identifying the operations + */ +- (void)sdBu_removeImageLoadOperationWithKey:(nullable NSString *)key; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCacheOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCacheOperation.h.meta new file mode 100644 index 00000000..d38f5550 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIView+BUWebCacheOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d47f94dad69b453fbe5d5eaac5aa08b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIViewController+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIViewController+BUUtilities.h new file mode 100755 index 00000000..18435340 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIViewController+BUUtilities.h @@ -0,0 +1,41 @@ +// +// UIViewController+BUUtilities.h +// BUAdSDK +// +// Created by Siwant on 2019/4/11. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIViewController (BUUtilities) + +- (void)bu_safelyPresentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion; + + + +// 获取当前最后一个被present出的VC,如果没有返回self +- (UIViewController *)bu_presentingViewController; +// 获取当前最后一个被present出的VC,如果没有返回window的最上的topVC ++ (UIViewController *)bu_presentingViewController; + +// 获取广义mainWindow的rootViewController ++ (nullable UIViewController*)bu_mainWindowRootViewController; + +// 获取指定UIResponder的链下游第一个ViewController对象 ++ (nullable UIViewController*)bu_nextViewControllerFor:(UIResponder* _Nullable)responder; + +// 获取指定UIResponder的链下游第一个UINavigationController对象 ++ (nullable UINavigationController*)bu_nextNavigationControllerFor:(UIResponder* _Nullable)responder; + +/** 查找当前显示的ViewController*/ ++ (UIViewController *)bu_topViewController; + ++ (UIViewController *)bu_recursiveFindCurrentShowViewControllerFromViewController:(UIViewController *)fromVC; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIViewController+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIViewController+BUUtilities.h.meta new file mode 100644 index 00000000..c8117686 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIViewController+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5d052f5c83fdb4aaca8cf4ac24cf6ef1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIWindow+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIWindow+BUUtilities.h new file mode 100755 index 00000000..f7aab091 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIWindow+BUUtilities.h @@ -0,0 +1,21 @@ +// +// UIWindow+BUUtilities.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2020/12/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIWindow (BUUtilities) +// 获取当前应用的广义mainWindow ++ (nullable UIWindow *)bu_mainWindow; + +// 广义mainWindow的大小(兼容iOS7) ++ (CGSize)bu_windowSize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIWindow+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIWindow+BUUtilities.h.meta new file mode 100644 index 00000000..1cbcc68b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Headers/UIWindow+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9fcf8c3f13bfe446fb39d6c26eb4e851 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules.meta new file mode 100644 index 00000000..2f506c53 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3e0652ef3429e4f449e0dd791d167200 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules/module.modulemap new file mode 100755 index 00000000..d2dd707d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module BUFoundation { + umbrella header "BUFoundation.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..e13e98f9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f142e84ebeb9441a0b7a4333fbf4f6eb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions.meta new file mode 100644 index 00000000..033ea4af --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9d8fe4dfa02d04d6d8935c967209a38f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A.meta new file mode 100644 index 00000000..65feb80d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1778e67716bc84bd5a03139b2d6054bf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/BUFoundation b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/BUFoundation new file mode 100755 index 00000000..9d63b9e5 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/BUFoundation differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/BUFoundation.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/BUFoundation.meta new file mode 100644 index 00000000..29431eb6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/BUFoundation.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0e3297a55366b4329bd84279089a0481 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers.meta new file mode 100644 index 00000000..e696d83b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 00146fffd3d4246a2a7358a8b6797079 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUAudioSessionHandler.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUAudioSessionHandler.h new file mode 100755 index 00000000..242a510a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUAudioSessionHandler.h @@ -0,0 +1,55 @@ +// +// BUMuteMonitor.h +// BUFoundation +// +// Created by bytedance on 2021/9/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + 用于回调当前静音按钮是否为静音状态的block + + @param isMute 如果静音按钮当前为静音状态,则为YES,否则为NO + */ +typedef void(^MuteBlock)(BOOL isMute); + +/** + 用于回调当前真实音量的block + + @param currentRealVolume 当前的真实音量 + */ +typedef void(^RealVolumeBlock)(CGFloat currentRealVolume); + +/** + 用于监听音量变化的block + @param newVolume 新的音量值 + */ +typedef void(^VolumeChangeBlock)(CGFloat newVolume); + +@interface BUAudioSessionSetting : NSObject + +@property (nonatomic, assign) BOOL allowModifyAudioSessionSetting; + +@property (nonatomic, copy) NSString *sourcePath; + ++ (instancetype)shareInstance; + +- (void)monitorMute; + +- (void)saveAudioSessionOriginCategory; + +@end + + +@interface BUAudioSessionHandler : NSObject + +- (void)resetAudioSessionCategoryToOriginStatus; + +- (void)interruptOtherAudioPlayingWithMute:(BOOL)mute; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUAudioSessionHandler.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUAudioSessionHandler.h.meta new file mode 100644 index 00000000..b19fc369 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUAudioSessionHandler.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9b4f3846aa2664925a5eabec49831f0b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUBase64.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUBase64.h new file mode 100755 index 00000000..85ca5704 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUBase64.h @@ -0,0 +1,53 @@ +// +// Base64.h +// +// Version 1.2 +// +// Created by Nick Lockwood on 12/01/2012. +// Copyright (C) 2012 Charcoal Design +// +// Distributed under the permissive zlib License +// Get the latest version from here: +// +// https://github.com/nicklockwood/Base64 +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// + +#import + + +@interface NSData (BUBase64) + ++ (NSData *)bu_dataWithBase64EncodedString:(NSString *)string; +- (NSString *)bu_base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth; +- (NSString *)bu_base64EncodedString; + +@end + + +@interface NSString (BUBase64) + ++ (NSString *)bu_stringWithBase64EncodedString:(NSString *)string; +- (NSString *)bu_base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth; +- (NSString *)bu_base64EncodedString; +- (NSString *)bu_base64DecodedString; +- (NSData *)bu_base64DecodedData; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUBase64.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUBase64.h.meta new file mode 100644 index 00000000..452049b4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUBase64.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fd8553d2b6a094aa29172eff5ae9e126 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCacheManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCacheManager.h new file mode 100755 index 00000000..2bc5f635 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCacheManager.h @@ -0,0 +1,45 @@ +// +// BUCacheManager.h +// BUAdSDK +// +// Created by 李盛 on 2018/9/19. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + + +extern NSString *BUCacheConfigurationKey; +extern NSString *BUCacheFinishedErrorKey; + +@class BUCacheConfiguration; +@interface BUCacheManager : NSObject + ++ (instancetype)shared; + +// 设置缓存目录 ++ (void)setCacheDirectory:(NSString *)cacheDirectory; + +// 获取缓存目录 ++ (NSString *)cacheDirectory; + +/// 获取视频本地缓存 +/// @param url 服务端视频地址 ++ (NSString *)cachedFilePathForURL:(NSURL *)url; + +/// 获取视频配置文件 +/// @param url 服务端视频地址 ++ (BUCacheConfiguration *)cacheConfigurationForURL:(NSURL *)url; + +/// 删除本地超出缓存大小的缓存文件 +/// 当该文件正在缓存、或正在被播放器占用时不会被删除 +/// 内部使用异步线程删除,线程非阻塞 +- (void)clearOverSizeCache; + +- (void)cacheResourceUseBegin:(NSURL *)url; + +- (void)cacheResourceUseEnd:(NSURL *)url; + +- (void)clearSpecifiedResource:(NSURL *)url; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCacheManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCacheManager.h.meta new file mode 100644 index 00000000..ce302ff3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCacheManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a634226cf08084b2c81bd3376c35c327 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCommonMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCommonMacros.h new file mode 100755 index 00000000..9bbca2b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCommonMacros.h @@ -0,0 +1,197 @@ +// +// BUCommonMacros.h +// BUAdSDK +// +// Created by 崔亚楠 on 2018/10/23. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import + +#import "BULogMacros.h" + +FOUNDATION_EXPORT NSString * const BUSDKVersion; + +/// 标记是否是开发状态,正式上线发版时置 0 +#define DevEnv 0 + +/** String **/ +#define BUEmptyString (@""); +#define BUSafeString(__string) ((__string && [__string isKindOfClass:[NSString class]]) ? __string :@"") +#define BUSafeDictionary(__aDictionary) ((__aDictionary && [__aDictionary isKindOfClass:[NSDictionary class]]) ? __aDictionary :@{}) + +/** VALID CHECKING**/ +#define BUCheckValidString(__string) (__string && [__string isKindOfClass:[NSString class]] && [__string length]) +#define BUCheckValidNumber(__aNumber) (__aNumber && [__aNumber isKindOfClass:[NSNumber class]]) +#define BUCheckValidArray(__aArray) (__aArray && [__aArray isKindOfClass:[NSArray class]] && [__aArray count]) +#define BUCheckValidDictionary(__aDictionary) (__aDictionary && [__aDictionary isKindOfClass:[NSDictionary class]] && [__aDictionary count]) +#define BUCheckValidDate(__aDate) (__aDate && [__aDate isKindOfClass:[NSDate class]]) +#define BUCheckValidData(__aData) (__aData && [__aData isKindOfClass:[NSData class]]) + +/** Color String**/ +#define BUColorString(__string) [UIColor bu_colorWithHexString:(__string)] + +/*********************************************************************************************************/ +//强弱引用转换,用于解决代码块(block)与强引用对象之间的循环引用问题 +#ifndef bu_weakify +#if __has_feature(objc_arc) +#define bu_weakify(object) __weak __typeof__(object) weak##object = object; +#else +#define bu_weakify(object) __block __typeof__(object) block##object = object; +#endif +#endif +#ifndef bu_strongify +#if __has_feature(objc_arc) +#define bu_strongify(object) __typeof__(object) object = weak##object; +#else +#define bu_strongify(object) __typeof__(object) object = block##object; +#endif +#endif +/*********************************************************************************************************/ + +#ifndef BUisEmptyString +#define BUisEmptyString(str) (!str || ![str isKindOfClass:[NSString class]] || str.length == 0) +#endif + +#ifndef BUIsEmptyArray +#define BUIsEmptyArray(array) (!array || ![array isKindOfClass:[NSArray class]] || array.count == 0) +#endif + +#ifndef BUIsEmptyDictionary +#define BUIsEmptyDictionary(dict) (!dict || ![dict isKindOfClass:[NSDictionary class]] || ((NSDictionary *)dict).count == 0) +#endif + + +#ifndef BUMinX +#define BUMinX(view) CGRectGetMinX(view.frame) +#endif + +#ifndef BUMinY +#define BUMinY(view) CGRectGetMinY(view.frame) +#endif + +#ifndef BUMaxX +#define BUMaxX(view) CGRectGetMaxX(view.frame) +#endif + +#ifndef BUMaxY +#define BUMaxY(view) CGRectGetMaxY(view.frame) +#endif + +#ifndef BUWidth +#define BUWidth(view) view.frame.size.width +#endif + +#ifndef BUHeight +#define BUHeight(view) view.frame.size.height +#endif + +#ifndef BUScreenWidth +#define BUScreenWidth [[UIScreen mainScreen] bounds].size.width +#endif + +#ifndef BUScreenHeight +#define BUScreenHeight [[UIScreen mainScreen] bounds].size.height +#endif + +#ifndef BUMINScreenSide +#define BUMINScreenSide MIN([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) +#endif + +#ifndef BUMAXScreenSide +#define BUMAXScreenSide MAX([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) +#endif + +#define BUIsNotchScreen bu_is_notch_screen() +#define BUiPhoneX BUIsNotchScreen +#define kBUDefaultNavigationBarHeight (BUiPhoneX?88:64) // 导航条高度 +#define kBUSafeTopMargin (BUiPhoneX?24:0) +#define kBUDefaultStautsBarHeight (BUiPhoneX?44:20) // 状态栏高度 + +#define BUOnePixel (1.0f/[[UIScreen mainScreen] scale]) + +///全局队列 +#ifndef BUDispatchGetGlobalQueue +#define BUDispatchGetGlobalQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) +#endif + +#ifndef BUDispatchGetHighQueue +#define BUDispatchGetHighQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0) +#endif + +//单例 +#define BU_SINGLETION(...) \ ++ (instancetype)sharedInstance NS_SWIFT_NAME(shared()); + +#define BU_DEF_SINGLETION(...) \ ++ (instancetype)sharedInstance \ +{ \ +static dispatch_once_t once; \ +static id __singletion; \ +dispatch_once(&once,^{__singletion = [[self alloc] init];}); \ +return __singletion; \ +} + +FOUNDATION_EXPORT void bu_safe_dispatch_sync_main_queue(void (^block)(void)); +FOUNDATION_EXPORT void bu_safe_dispatch_async_main_queue(void (^block)(void)); + +FOUNDATION_EXPORT id BU_JSONObjectByRemovingKeysWithNullValues(id JSONObject); + +FOUNDATION_EXPORT BOOL bu_is_notch_screen(void); + +FOUNDATION_EXPORT UIEdgeInsets portraitAdSafeInsets(void); + + +#pragma mark - 锁 + +#define BU_USE_OS_UNFAIR_LOCK (__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_10_0) + +#ifndef BU_LOCK_DECLARE +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK_DECLARE(lock) os_unfair_lock lock +#else +#define BU_LOCK_DECLARE(lock) os_unfair_lock lock API_AVAILABLE(ios(10.0), tvos(10), watchos(3), macos(10.12)); \ +OSSpinLock lock##_deprecated; +#endif +#endif + +#ifndef BU_LOCK_INIT +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK_INIT(lock) lock = OS_UNFAIR_LOCK_INIT +#else +#define BU_LOCK_INIT(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) lock = OS_UNFAIR_LOCK_INIT; \ +else lock##_deprecated = OS_SPINLOCK_INIT; +#endif +#endif + +#ifndef BU_LOCK +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK(lock) os_unfair_lock_lock(&lock) +#else +#define BU_LOCK(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) os_unfair_lock_lock(&lock); \ +else OSSpinLockLock(&lock##_deprecated); +#endif +#endif + +#ifndef BU_UNLOCK +#if BU_USE_OS_UNFAIR_LOCK +#define BU_UNLOCK(lock) os_unfair_lock_unlock(&lock) +#else +#define BU_UNLOCK(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) os_unfair_lock_unlock(&lock); \ +else OSSpinLockUnlock(&lock##_deprecated); +#endif +#endif + +@protocol BUDictionarify +@required +- (NSDictionary *)toDictionary; +@end + + + +// 对枚举值进行日志字符串转换, 例如对于一个枚举值 1表示激励视频广告的意思, 将返回: 激励视频广告(value:1) +FOUNDATION_EXPORT NSString *NSStringLogFromBUAdEnumItem(NSInteger enumItem, NSDictionary *dic, NSString *defaultValue); +// 对枚举值进行字符串转换 例如对于一个枚举值 1表示rewarded_ad的字符串, 将返回: rewarded_ad +FOUNDATION_EXPORT NSString *NSStringFromBUAdEnumItem(NSInteger enumItem, NSDictionary *dic, NSString *defaultValue); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCommonMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCommonMacros.h.meta new file mode 100644 index 00000000..6beb32e5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUCommonMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5eee70a47d58a4622a6dbfb1d6bd2234 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUConditionTracker.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUConditionTracker.h new file mode 100755 index 00000000..904e0300 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUConditionTracker.h @@ -0,0 +1,33 @@ +// +// BUConditionTracker.h +// BUFoundation +// +// Created by Willie on 2021/4/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef BOOL (^BUConditionBlock)(void); +typedef void (^BUActionBlock)(void); + +/// 条件轮询器:每秒轮询指定的条件,若条件满足则执行指定的行为 +@interface BUConditionTracker : NSObject + +/// 通过指定的条件 block 和行为 block 来构建一个 +/// @param condition 每秒轮询的条件,需要返回一个 BOOL 值 +/// @param action 当轮询条件满足时,需要执行的行为 +/// @param retryCount 轮询次数,当实际轮询次数超过指定次数后轮询自动停止,并释放条件和行为 block +- (instancetype)initWithConditon:(BUConditionBlock)condition + action:(BUActionBlock)action + retryCount:(NSInteger)retryCount; + +/// 开始轮询 +- (void)start; +/// 停止轮询并释放资源 +- (void)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUConditionTracker.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUConditionTracker.h.meta new file mode 100644 index 00000000..91f510bb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUConditionTracker.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0f77b68d7466a415aa2c30f2a6fbccc4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDownloadSpeedServer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDownloadSpeedServer.h new file mode 100755 index 00000000..8070c186 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDownloadSpeedServer.h @@ -0,0 +1,40 @@ +// +// BUDownloadSpeedServer.h +// BUFoundation +// +// Created by bytedance on 2021/4/22. +// + +#import + +@class BUDownloadSpeedModel; + +NS_ASSUME_NONNULL_BEGIN + +@interface BUDownloadSpeedServer : NSObject + ++ (instancetype)server; + +- (void)startDownloadWithUrl:(NSURL *)url; + +- (BUDownloadSpeedModel *)downloadingWithUrl:(NSURL *)url; + +- (void)finishDownloadWithUrl:(NSURL *)url; + +- (double)downloadSpeeds; + +@end + +@interface BUDownloadSpeedModel : NSObject + +@property (atomic, assign) NSTimeInterval startDownloadTime; + +@property (atomic, assign) NSTimeInterval finishDownloadTime; + +@property (atomic, assign) NSInteger downloadSize; + +@property (nonatomic, assign) double speed; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDownloadSpeedServer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDownloadSpeedServer.h.meta new file mode 100644 index 00000000..a903b450 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDownloadSpeedServer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2bc6f3f34715f41fdaab2b12f8b3db39 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDynamicPlugin.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDynamicPlugin.h new file mode 100755 index 00000000..a95d41f5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDynamicPlugin.h @@ -0,0 +1,38 @@ +// +// BUDynamicPlugin.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BURexxarEngine.h" + + +//推荐使用动态的方式 +/** + 使用方法: + 1.继承BUDynamicPlugin + 2.在.h中使用宏 BU_EXPORT_HANDLER(abc)声明需要暴露的方法 + 3.在.m中实现此方法, 输入-(void)abc 即可获得ide补全提示 + 4.通过传入的callback来回调执行结果. 注意.无论成功与否都必须执行这个callback + */ +@interface BUDynamicPlugin : NSObject + +/** + plugin执行时所处的engine + */ +@property (nonatomic, weak) id engine; + + +/** + BUJSBInstanceTypeGlobal时 需要实现此方法, 没有特殊需要 不推荐使用 + + @return 单例plugin + */ ++ (instancetype)sharedPlugin; + ++ (BUJSBInstanceType)instanceType; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDynamicPlugin.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDynamicPlugin.h.meta new file mode 100644 index 00000000..88dd687a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUDynamicPlugin.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 72372d370e76645f093e4ed3a9eb8ca5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUEnvironment.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUEnvironment.h new file mode 100755 index 00000000..219833be --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUEnvironment.h @@ -0,0 +1,21 @@ +// +// BUEnvironment.h +// BUFoundation +// +// Created by bytedance on 2020/10/29. +// Copyright © 2020 Union. All rights reserved. +// + +#ifndef BUEnvironment_h +#define BUEnvironment_h + +#import +#import + +CTTelephonyNetworkInfo *BUDefaultTelephonyNetworkInfo(void); + +@interface BUEnvironment : NSObject + +@end + +#endif /* BUEnvironment_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUEnvironment.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUEnvironment.h.meta new file mode 100644 index 00000000..13372549 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUEnvironment.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aa21bf030e3fd4b46a2aae46161a0b5c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundation.h new file mode 100755 index 00000000..f186cbc5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundation.h @@ -0,0 +1,135 @@ +// +// BUFoundation.h +// BUFoundation +// +// Created by Siwant on 2019/8/26. +// Copyright © 2019 Union. All rights reserved. +// + + + + +/// Public-Utils +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/// Public-Category +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + + +/// Public-Gif +#import +#import + +/// Service-BUPersistent +#import + +/// Service-BUQueueManagerMode +#import +#import + + +/// Service-JSBridge +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/// Service-Log +#import +#import + + + +/// a-n-u +#import +#import + + +#import +#import + + + + +// SD +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import + +// yy +#import +/************************************ ThirdParty***********************************/ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundation.h.meta new file mode 100644 index 00000000..f23914d5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c8a39ded4604141f3a8139a84af99575 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundationAddress.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundationAddress.h new file mode 100755 index 00000000..33461056 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundationAddress.h @@ -0,0 +1,21 @@ +// +// BUFoundationAddress.h +// BUFoundation +// +// Created by Siwant on 2020/2/5. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUFoundationAddress : NSObject + ++ (int64_t)bu_beginAddress; + ++ (int64_t)bu_endAddress; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundationAddress.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundationAddress.h.meta new file mode 100644 index 00000000..dc50ddc4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUFoundationAddress.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c9e465c9e754c42119c110b881585899 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGeckoPreloadManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGeckoPreloadManager.h new file mode 100755 index 00000000..9b2aea2f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGeckoPreloadManager.h @@ -0,0 +1,62 @@ +// +// BUGeckoPreloadManager.h +// BUAdSDK +// +// Created by wangyanlin on 2020/6/29. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +extern NSString * const kBUGeckoInitDoneNotificationName; + +typedef void (^BUPreloadCompletion)(NSData * _Nullable data,NSDictionary * _Nullable respHeader); +typedef void (^BUPreloadTrackBlock)(NSObject *model,NSString *label,NSDictionary *parameter); +typedef void (^BUSyncDataCompletion)(BOOL success,NSDictionary *info); +@interface BUGeckoPreloadManager : NSObject + +@property (nonatomic, strong) NSMapTable *mapTable; + +@property (nonatomic, strong) NSMutableDictionary *geckoDict; + +@property (nonatomic, copy) BUPreloadTrackBlock trackBlock; + ++ (instancetype)sharedInstance; + ++ (void)setupSDKWithTerritory:(NSString *)territory + IESGeckoKitAppId:(NSString *)IESGeckoKitAppId + IESGeckoKit_CACHE_DIRECTORY:(NSString *)IESGeckoKit_CACHE_DIRECTORY + IESGeckoKitAccessKey:(NSString *)IESGeckoKitAccessKey + IESGeckoKit_Domains:(NSArray *)IESGeckoKit_Domains + ZipBlock:(id)zipBlock; + +//1.本地zip 包已经被删除了,自动去下载 +//2.如果zip需要更新,会自动更新 +//3.本地有zip, 并且不需要更新. 不做处理 ++ (void)syncResourcesParamsWithChannel:(NSArray *)materialArray hosts:(NSArray *)hosts; + ++ (BOOL)geckoDidSetup; ++ (void)registAccessKey:(NSString *)ak; ++ (void)setGeckoDeviceID:(NSString *)deviceID; ++ (void)syncResourcesParamsWithAccessKey:(NSString *)ak + channels:(NSArray *)channelIds + hosts:(NSArray *)hosts + completion:(BUSyncDataCompletion _Nullable)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info + accessKey:(NSString *)ak + channel:(NSString *)channel + completion:(BUPreloadCompletion)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info completion:(BUPreloadCompletion)completion; + +/** +* @brief 返回文件版本;如果文件未激活,则返回0 +*/ ++ (uint64_t)packageVersionForAccessKey:(NSString *)accessKey channel:(NSString *)channel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGeckoPreloadManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGeckoPreloadManager.h.meta new file mode 100644 index 00000000..6bc0fa48 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGeckoPreloadManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d9decb4edb9584f26b50387187c15d83 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImage.h new file mode 100755 index 00000000..571be786 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImage.h @@ -0,0 +1,25 @@ +// +// BUGifImage.h +// BUGif +// +// Created by Johnil on 14-3-6. +// Copyright (c) 2014年 Johnil. All rights reserved. +// + +#import + +@interface BUGifImage : UIImage + +@property (nonatomic,assign) NSInteger currentPlayIndex; +@property (nonatomic,strong) NSData *data; + ++ (instancetype)gifWithData:(NSData *)data; + +- (UIImage *)nextImage; +- (NSInteger)count; +- (CGFloat)frameDuration; +- (void)resumeIndex; +/// 是否还有下一桢 +- (BOOL) hasNextImage; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImage.h.meta new file mode 100644 index 00000000..e4184c5a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e4c98640a4c90450d9526ee434c281e6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImageView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImageView.h new file mode 100755 index 00000000..66fecbde --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImageView.h @@ -0,0 +1,26 @@ +// +// TTGifImageView.h +// Article +// +// Created by carl on 2017/5/21. +// +// + +#import +#import "BUGifImage.h" + +@protocol BUAnimationImageView +@property (nonatomic, assign) BOOL repeats; +@property (nonatomic, copy) void (^completionHandler)(BOOL); +@property (nonatomic, strong, readonly) BUGifImage *gifImage; +@property (nonatomic, assign) NSInteger currentPlayIndex; +@property (nonatomic, assign) BOOL delayDuration; +@end + +@interface BUGifImageView : UIImageView +@property (nonatomic, assign) BOOL repeats; +@property (nonatomic, copy) void (^completionHandler)(BOOL); +@property (nonatomic, strong, readonly) BUGifImage *gifImage; +@property (nonatomic, assign) NSInteger currentPlayIndex; +@property (nonatomic, assign) BOOL delayDuration; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImageView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImageView.h.meta new file mode 100644 index 00000000..d2884f7c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUGifImageView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cf285fbc12f5f44928e80fda5e7573f3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUImageUtility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUImageUtility.h new file mode 100755 index 00000000..b05a4345 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUImageUtility.h @@ -0,0 +1,19 @@ +// +// BUImageUtility.h +// BUAdSDK +// +// Created by Siwant on 2019/8/8. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUImageUtility : NSObject +/// 返回类型不只是UIImage,也包括BUGifImage ++ (UIImage *_Nullable)imageWithData:(NSData *_Nullable)data; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUImageUtility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUImageUtility.h.meta new file mode 100644 index 00000000..0bcd11e9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUImageUtility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 75d7f89f9ab424f5289e90ab766aebb9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBAuthorization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBAuthorization.h new file mode 100755 index 00000000..0f4aa74a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBAuthorization.h @@ -0,0 +1,38 @@ +// +// BUJSBAuthorization.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BUJSBCommand.h" +#import "BURexxarEngine.h" + +@protocol BUJSBAuthorization + + +/** + 验证是否有权限执行这个JSB + + @param engine 上下文engine + @param command JSBCommand + @param domain 所在页面 + @return 是否有权限 + */ +- (BOOL)engine:(id)engine isAuthorizedJSB:(BUJSBCommand *)command domain:(NSString *)domain; + + +/** + fireEvent发送之前 验证是否有权限发送这个事件 + + @param engine 上下文engine + @param eventName 事件名字 + @param domain 所在页面 + @return 是否有权限 + */ +- (BOOL)engine:(id)engine isAuthorizedEvent:(NSString *)eventName domain:(NSString *)domain; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBAuthorization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBAuthorization.h.meta new file mode 100644 index 00000000..61d21081 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBAuthorization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 85bf986e0816a4e9db031a1ab00d96ec +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBCommand.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBCommand.h new file mode 100755 index 00000000..a58453f1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBCommand.h @@ -0,0 +1,51 @@ +// +// BUJSBMessage.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import + +@interface BUJSBCommand : NSObject + +@property (nonatomic, copy) NSString *messageType; + +@property (nonatomic, copy) NSString *eventID; + +@property (nonatomic, copy) NSString *callbackID; + +@property (nonatomic, copy) NSDictionary *params; + + +/** + 前端传过来的方法名, 有"isLogin" 和 "TTRLogin.isLogin"两种格式 + */ +@property(nonatomic, copy) NSString *fullName; + +/** + 经过别名映射后, 该property为 映射前的fullName + */ +@property(nonatomic, copy) NSString *origName; + +/** + 动态plugin的 类名 + */ +@property(nonatomic, copy) NSString *className; + + +/** + 动态plugin的 方法名 + */ +@property(nonatomic, copy) NSString *methodName; + +/** + 没卵用 + */ +@property(nonatomic, copy) NSString *JSSDKVersion; + +- (instancetype)initWithDictonary:(NSDictionary *)dic; + +- (NSString *)toJSONString; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBCommand.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBCommand.h.meta new file mode 100644 index 00000000..77984cbd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBCommand.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6f87f39405c074630ae19b07ea5e2cc0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBDefine.h new file mode 100755 index 00000000..d30272c2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBDefine.h @@ -0,0 +1,76 @@ +// +// BUJSBDefine.h +// BURexxar +// +// Created by muhuai on 2017/5/5. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +//#import "BURexxarEngine.h" + +#define BU_EXPORT_HANDLER(NAME) - (void)NAME##WithParam:(NSDictionary *)param callback:(BUJSBResponse)callback webView:(UIView *)webview controller:(UIViewController *)controller; + +#define _BU_HANDLER_SET(NAME, HANDLERS) \ +- (NSSet *)NAME { \ +if (![HANDLERS isKindOfClass:[NSArray class]]) {\ +return nil;\ +}\ +return [NSSet setWithArray:HANDLERS];\ +} + +#define ARRAY(...) [NSArray arrayWithObjects: (id []){ __VA_ARGS__ } count: sizeof((id []){ __VA_ARGS__ }) / sizeof(id)] + +#define BU_PROTECTED_HANDLER(...) \ +_BU_HANDLER_SET(protectedHandlerSet, ARRAY(__VA_ARGS__)) + +#define BU_PRIVATE_HANDLER(...) \ +_BU_HANDLER_SET(privateHandlerSet, ARRAY(__VA_ARGS__)) + +#define BU_CALLBACK_SUCCESS \ +if (callback) {\ +callback(BUJSBMsgSuccess, @{@"code": @"1"});\ +}\ + +#define BU_CALLBACK_FAILED \ +if (callback) {\ +callback(BUJSBMsgFailed, @{@"code": @"0"});\ +}\ + +#define BU_CALLBACK_FAILED_MSG(msg) \ +if (callback) {\ +callback(BUJSBMsgFailed, @{@"code": @"0", @"msg": [NSString stringWithFormat:msg]? :@""});\ +}\ + +#define BU_CALLBACK_WITH_MSG(status, msg) \ +if (callback) {\ +callback(status, @{@"code": status == BUJSBMsgSuccess? @"1": @"0", @"msg": [NSString stringWithFormat:msg]? [NSString stringWithFormat:msg] :@""});\ +}\ + + +typedef NS_ENUM(NSUInteger, BUJSBInstanceType) { + BUJSBInstanceTypeNormal, //每次调用都是不同实例(默认, 推荐) + BUJSBInstanceTypeGlobal, //全局单例, 需要实现 +(instance)sharedPlugin; + BUJSBInstanceTypeWebView, //对同一个webview复用一个实例 +}; + +typedef NS_ENUM(NSUInteger, BUJSBAuthType){ + BUJSBAuthPublic, // 所有均可调用(默认) + BUJSBAuthProtected, //内部domain,及外部授权可调用 + BUJSBAuthPrivate // 仅内部domain,appinfo不可见 +}; + +typedef enum : NSUInteger { + BUJSBMsgSuccess, + BUJSBMsgFailed, + BUJSBMsgParamError, + BUJSBMsgNoHandler, + BUJSBMsgNoPermission +} BUJSBMsg; + +typedef NS_ENUM(NSInteger, BUJSBResultCode){ + BUJSBResultCodeError = -2, // jsb结果错误cod回传 + BUJSBResultCodeSuccess = 200, // jsb结果成功cod回传 +}; + +typedef void(^BUJSBResponse)(BUJSBMsg, NSDictionary *); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBDefine.h.meta new file mode 100644 index 00000000..a787bcae --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 00bff11d1d19242c6a0a056f3c6409ab +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBForwarding.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBForwarding.h new file mode 100755 index 00000000..ed013103 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBForwarding.h @@ -0,0 +1,45 @@ +// +// BUJSBForwarding.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBCommand.h" +#import "BURexxarEngine.h" +#import "BUJSBDefine.h" + +@interface BUJSBForwarding : NSObject + ++ (instancetype)sharedInstance; + + +/** + 转发到对应的插件 + + @param command JSB命令 + @param engine Hybrid容器, 可是webview, RNView, weex. 实现此协议即可 + @param completion 完成回调 + */ +- (void)forwardJSBWithCommand:(BUJSBCommand *)command engine:(id)engine completion:(BUJSBResponse)completion; + +/** + 注册JSBridge别名 + + @param alias 新名 + @param orig 原名 + */ +- (void)registeJSBAlias:(NSString *)alias for:(NSString *)orig; + + +/** + 原名 -> 别名 + + @param orig 原名 + @return 别名 + */ +- (NSString *)aliasJSBForOrig:(NSString *)orig; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBForwarding.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBForwarding.h.meta new file mode 100644 index 00000000..42a8e775 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSBForwarding.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6fcce846a7d8849dcb6db9b43b3ea316 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSInjector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSInjector.h new file mode 100755 index 00000000..f0ea8ddf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSInjector.h @@ -0,0 +1,72 @@ +// +// BUJSInjector.h +// BURexxar +// +// Created by muhuai on 2017/6/17. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import + +@protocol BUWebView; +/** + BUWebView的JS注入器 + 当页面加载完成后, 注入器会向WebView容器里注入一段JS脚本. + + 使用场景: + 容器是其他人提供的, 但是你需要往里面注入一些脚本. + + 有两个级别: + 1. webview级别, 只对当前webview生效. BUWebView.injector + 2. 全局级别, 对所有webview生效. [BUJSInjector sharedInstance] + + 请自行根据需求使用, 不要滥用全局级别 + + */ + +@interface BUJSInjector : NSObject + +/** + 全局级别的注入器. + 需评估影响范围, 慎用 + + @return 注入器 + */ ++ (instancetype)sharedInstance; + +/** + 对匹配正则的页面注入脚本 + 非线程安全 + + @param script 脚本 + @param regex 正则表达式 + @param key 该条规则的key, 用于remove和 检验规则唯一性 + @note 如果有多条规则成功匹配, 则会注入多段JS脚本 + 多段注入会按照注册先后顺序, 并且web级别 > 全局级别 + */ +- (void)addInjectRuleWithScript:(NSString *)script regex:(NSString *)regex key:(NSString *)key; + +/** + 移除指定规则 + 非线程安全 + + @param key 规则的key + */ +- (void)removeScriptWithKey:(NSString *)key; + +/** + 移除全部规则. + 非线程安全 + + 慎用..小心被人打... + */ +- (void)removeAllScript; + +/** + 对webview注入 符合规则的脚本 + + @param webview BUWebView + */ +- (void)injectScriptInWebView:(UIView *)webview; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSInjector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSInjector.h.meta new file mode 100644 index 00000000..4b9700d9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUJSInjector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c4408414cc5a046b78dea73696b58803 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogMacros.h new file mode 100755 index 00000000..c8249a18 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogMacros.h @@ -0,0 +1,39 @@ +// +// BULogMacros.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/2/2. +// + +#import +#import "BULogManager.h" + + + + +/** LOG **/ +#define BU_Log_Foundation(frmt, ...) BU_LOG_MAYBE(BUFoundationLog, BU_LOG_ENABLED, frmt, ##__VA_ARGS__) + +#define BU_LOG_MAYBE(BULogTypeString, flg, frmt, ...) \ +do { \ +if(flg) [BULogManager debugLogWithFormat:@"[BUAdSDK-%@]-[debug]-[%@]%@", BUSDKVersion, BULogTypeString, [NSString stringWithFormat:frmt,##__VA_ARGS__]]; \ +} while(0) + +#define BU_LogErrorD(BULogType, frmt, ...) BU_LogBaseD(error, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogWaringD(BULogType, frmt, ...) BU_LogBaseD(warning, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogInfoD(BULogType, frmt, ...) BU_LogBaseD(info, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogDebugD(BULogType, frmt, ...) BU_LogBaseD(debug, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogVerboseD(BULogType, frmt, ...) BU_LogBaseD(verbose, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogInternalD(BULogType, frmt, ...) BU_LogBaseD(internal, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogServerD(BULogType, frmt, ...) BU_LogBaseD(server, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogBaseD(level, BULogType, frmt, ...) [BULogManager level##LogWithFormat:@"[BUAdSDK-%@]-[%s]-[%@]%@", BUSDKVersion, #level, BULogType, [NSString stringWithFormat:frmt, ##__VA_ARGS__]]; + +#define BU_LogDevInfo(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🟠", frmt, ##__VA_ARGS__) +#define BU_LogDevSucc(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🟢", frmt, ##__VA_ARGS__) +#define BU_LogDevFail(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🔴", frmt, ##__VA_ARGS__) +#define BU_LogDevBase(BULogType, mark, frmt, ...) [BULogManager internalLogWithFormat:@"[BUAdSDK-%@]-[%@ %@]-[%@ %d] %@", BUSDKVersion, BULogType, mark, [NSURL fileURLWithPath:@__FILE__].lastPathComponent, __LINE__, [NSString stringWithFormat:frmt, ##__VA_ARGS__]]; + +FOUNDATION_EXPORT NSString * const BUFoundationLog; +FOUNDATION_EXPORT BOOL BU_LOG_ENABLED; + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogMacros.h.meta new file mode 100644 index 00000000..31446785 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 48e3d8a9d60ff4f968eac59f3680b192 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogManager.h new file mode 100755 index 00000000..dd6b7d75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogManager.h @@ -0,0 +1,44 @@ +// +// BULogManager.h +// BUAdSDK +// +// Created by bytedance on 2020/6/9. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +// 这里跟 BUAdSDKLogLevel 对齐 +typedef NS_ENUM(NSInteger, BULogManagerLevel) { + BULogManagerLevelNone, + BULogManagerLevelError, + BULogManagerLevelWarning, + BULogManagerLevelInfo, + BULogManagerLevelDebug, + BULogManagerLevelVerbose, +}; + +typedef NS_ENUM(NSInteger, BULogServerControlMode) { + BULogManagerServerControlCloseMode, + BULogManagerServerControlDebugMode, +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface BULogManager : NSObject + +@property (nonatomic, assign) BULogManagerLevel level; +@property (nonatomic, assign) BULogServerControlMode mode; + ++ (void)errorLogWithFormat:(NSString *)format, ...; ++ (void)warningLogWithFormat:(NSString *)format, ...; ++ (void)infoLogWithFormat:(NSString *)format, ...; ++ (void)debugLogWithFormat:(NSString *)format, ...; ++ (void)verboseLogWithFormat:(NSString *)format, ...; ++ (void)internalLogWithFormat:(NSString *)format, ...; ++ (void)serverLogWithFormat:(NSString *)format, ...; + ++ (instancetype)sharedInstance; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogManager.h.meta new file mode 100644 index 00000000..7151cfd7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BULogManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d873eb6c165d4e369a62f182d757fd4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUNetworkRequest.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUNetworkRequest.h new file mode 100755 index 00000000..395e7567 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUNetworkRequest.h @@ -0,0 +1,51 @@ +// +// BUAdNetworkRequest.h +// BUFoundation +// +// Created by bytedance on 2020/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUNetworkRequest : BUBaseRequest + +@property (nonatomic,copy ) NSString *buRequestUrl; +@property (nonatomic,strong) NSDictionary *parameter; +@property (nonatomic,assign) BURequestMethod method; +@property (nonatomic,assign) BURequestSerializerType buRequestSerializerType; +@property (nonatomic,assign) BUResponseSerializerType buResponseSerializerType; + +- (instancetype)initWithUrl:(NSString * _Nullable)url + method:(BURequestMethod)method + parameter:(NSDictionary * _Nullable)parameter; + ++ (instancetype)requestWithURL:(NSString *)url + method:(BURequestMethod)method + parameter:(NSDictionary *)paraDic + completionWithSuccess:(BURequestCompletionBlock _Nullable)success + failure:(BURequestCompletionBlock _Nullable)failure; + ++ (instancetype)requestWithURL:(NSString *)url + parameter:(NSDictionary *)paraDic + completionWithSuccess:(BURequestCompletionBlock _Nullable)success + failure:(BURequestCompletionBlock _Nullable)failure; + + + +@end + +@interface BUNetworkRequest (TNC) +// 使用TNC服务的标识,自定义,唯一即可 +- (NSString *)TNCServiceKey; + +// 请求失败回调,如果需要TNC,请使用`failureCompletionBlockWithTNC`替换`failureCompletionBlock`的实现 +- (BURequestCompletionBlock)failureCompletionBlockWithTNC; + +// 请求成功回调,如果需要TNC,请使用`successCompletionBlockWithTNC`替换`successCompletionBlock`的实现 +- (BURequestCompletionBlock)successCompletionBlockWithTNC; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUNetworkRequest.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUNetworkRequest.h.meta new file mode 100644 index 00000000..c7a10eb6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUNetworkRequest.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 39400dba6be9c4c5da2c97b268981002 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPersistence.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPersistence.h new file mode 100755 index 00000000..bc6b70f8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPersistence.h @@ -0,0 +1,80 @@ +// +// BUPersistence.h +// BUPersistence +// +// Created by Chen Hong on 2017/1/10. +// Copyright © 2017年 Chen Hong. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +typedef NS_ENUM(NSUInteger, BUPersistentType) { + BUPersistentTypePlist, + BUPersistentTypeKeyChain, + BUPersistentTypeCustom, +}; + +@interface BUPersistenceOption : NSObject + +@property (nonatomic, assign) BUPersistentType type; + +@property (nonatomic, assign) BOOL shouldRemoveAllObjectsOnMemoryWarning; + +@property (nonatomic, assign) BOOL shouldRemoveAllObjectsWhenEnteringBackground; + +@property (nonatomic, assign) BOOL supportNSCoding; + +// 默认YES +@property (nonatomic, assign) BOOL isThreadSafe; + +@end + +@protocol BUPersistenceProtocol + +- (NSArray *)allObjects; + +- (nullable id)objectForKey:(nullable NSString *)key; + +- (nullable NSArray *)objectsForKeys:(NSArray *)keys; + +- (void)updateObjectsForKeys:(NSArray *)keys WithBlock:(NSDictionary * (^)(NSArray *objects))block; + +- (BOOL)setObject:(nullable id)object forKey:(nullable NSString *)key; + +- (BOOL)hasObjectForKey:(nullable NSString *)key; + +- (BOOL)removeAll; + +- (BOOL)removeObjectsForKeys:(NSArray *)keys; + +- (BOOL)save; + +@end + +@interface BUPersistence : NSObject + + ++ (nullable instancetype)persistenceWithName:(NSString *)name; + +/// 公共的BUPersistence 实例对象 +/// 当不需要特定的设置name时,可以使用commonPersistence +/// @Warning , 当使用commonPersistence时, key值的设置请注意唯一性,防止key值覆盖的问题发生 ++ (nullable instancetype)commonPersistence; + ++ (nullable instancetype)persistenceWithName:(NSString *)name option:(BUPersistenceOption *)option; + +//+ (void)deleteWithName:(NSString *)name; +// ++ (NSString *)cacheDirectory; + + +#pragma mark - Publick ++ (void)setSDKVersion:(NSString *)sdkVersion; ++ (NSString *)sdkVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPersistence.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPersistence.h.meta new file mode 100644 index 00000000..70c9b75a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPersistence.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fbd683751186f4e99b60243098378133 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayer.h new file mode 100755 index 00000000..f63e2b61 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayer.h @@ -0,0 +1,167 @@ +// +// BUPlayer.h +// BUAdSDK +// +// Created by hlw on 2017/12/21. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerDefine.h" +#import "BUPlayerInternalDefine.h" +#import "BUPlayerSettingsProtocol.h" + +@class BUPlayerItem; +@interface BUPlayer : NSObject + +@property (nonatomic, weak) id delegate; + +/** + * 播放内容视图 + */ +@property (nonatomic, strong, readonly) UIView *view; + +/** + * 播放器状态 + * 支持KVO + */ +@property (nonatomic, assign, readonly) BUVideoPlayerState state; + +/// 播放器播放模式改变 +@property (nonatomic, assign, readonly) BUVideoPlayerDecoeMode decodeMode; + +/** + * 播放资源总时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval duration; + +/** + * 当前可播放时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval playableDuration; + +/** + * 实际观看时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval watchedDuration; + +/** + * 当前播放时间 + */ +@property (nonatomic, assign, readonly) CGFloat currentPlayTime; + + +/// 当前播放链接 +@property (nonatomic, strong, readonly) NSURL *currentPlayURL; + +/** + * 当前播放资源Item + */ +@property (nonatomic, strong, readonly) BUPlayerItem *currentPlayerItem; + +/** + * 播放器控制层容器,默认视图支持部分定制或完全自定义 + * 默认显示控制层全部元素,可以定制部分视图元素显示/隐藏 + * 若完全自定义,需先隐藏全部默认视图元素 再在容器上添加自定义视图 + */ +@property (nonatomic, strong, readonly) UIView *controlContainer; + +/** + * 播放内容视图填充方式 + * 默认:等比例填充,直到一个维度到达区域边界 + */ +@property (nonatomic, assign) BUPlayerLayerGravity playerLayerGravity; + +/** + * 播放视图上手势操作选项开关 + * 默认全开 + */ +@property (nonatomic, assign) BUPlayerGestureOption option; + +/** + * 静音设置 + */ +@property (nonatomic, assign) BOOL mute; + +/** + * 当前是否全屏显示 + */ +@property (nonatomic, assign, readonly) BOOL isFullScreen; + +/** 设置自定义ControlView */ +@property (nonatomic, strong) UIView *controlView; + +/** + * 支持自动转屏,默认NO + */ +@property (nonatomic, assign) BOOL shouldAutoRotate; + +/** +* jsb changeVideoState 暂停视频后,视频过一秒会继续开始播放.因为 timer 会调用 checkToPlayOrPause. +* 所以用属性进行标记 +* 影响范围: 模板/非模板 的激励全屏视频 +*/ +@property (nonatomic, assign) BOOL isJSBPauseVideo; + ++ (instancetype)playerWithPlayerItem:(BUPlayerItem *)item; + +- (void)replaceCurrentItemWithPlayerItem:(BUPlayerItem *)item; + + +- (void)insertGaosiMohuWithLayer:(CALayer *)layer; + +- (void)insertGaosiMohuWithView:(UIView *)view; + + +/// 设置指定时间回调 +/// @param time 时间点 +- (void)setPlayerBoundaryTime:(NSInteger)time; + +/// 移除播放器定时回调 +- (void)removePlayerBoundaryTime; +@end + +@interface BUPlayer (BUPlayerControl) + +/** + * 播放 + */ +- (void)play; + +/** + * 暂停 + */ +- (void)pause; + +/** + * 重播 + */ +- (void)replay; + +/** + * 停止 + */ +- (void)stop; + +/** + * 跳到指定时间播放 + */ +- (void)seekToTime:(NSTimeInterval)time completion:(void(^)(BOOL success))completion; + +/** + * 全屏/竖屏 切换显示 + */ +- (void)changeOrientationScreen; + + +/** + * 处于后台模式 + */ +- (BOOL)isEnterBackground; + +@end + +@interface BUPlayer (BUTrack) +@property (nonatomic, strong) NSString *startTimestamp; +@property (nonatomic, strong) NSString *endTimestamp; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayer.h.meta new file mode 100644 index 00000000..e8ad57f7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 40c4f7d22c331498383046b12c2d5402 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerDefine.h new file mode 100755 index 00000000..b206dc0a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerDefine.h @@ -0,0 +1,82 @@ +// +// BUPlayerDefine.h +// BUAdSDK +// +// Created by carl on 2017/12/24. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +/** + * playerLayer的填充模式 + */ +typedef NS_ENUM(NSInteger, BUPlayerLayerGravity) { + BUPlayerLayerGravityResize, // 非均匀模式。两个维度完全填充至整个视图区域 + BUPlayerLayerGravityResizeAspect, // 等比例填充,直到一个维度到达区域边界 + BUPlayerLayerGravityResizeAspectFill // 等比例填充,直到填充满整个视图区域,其中一个维度的部分区域会被裁剪 +}; + +/** + * 手势交互操作 + */ +typedef NS_OPTIONS(NSInteger, BUPlayerGestureOption) { + BUPlayerGestureOptionNone = 0, + BUPlayerGestureOptionVolumeEnabled = 1 << 0, + BUPlayerGestureOptionBrightnessEnabled = 1 << 1, + BUPlayerGestureOptionFastSkipEnabled = 1 << 2, + BUPlayerGestureOptionSigleTapEnabled = 1 << 3, + BUPlayerGestureOptionDoubleTapEnabled = 1 << 4, +}; +/** + * 默认的控制视图或完成视图的元素 + */ +typedef NS_OPTIONS(NSInteger, BUPlayerDefaultControlElement) { + BUPlayerControlElementNone = 0, + BUPlayerControlElementTop = 1 << 0, + BUPlayerControlElementBottom = 1 << 1, + BUPlayerControlElementActivity = 1 << 2, + BUPlayerControlElementFailHint = 1 << 3, + BUPlayerControlElementProgress = 1 << 4, + BUPlayerControlElementPlay = 1 << 5, + BUPlayerControlElementReplay = 1 << 6, +}; + +typedef NSString * BUPlayerUIControlImage; +typedef NSString * BUPlayerUIControlLocalizedString; + +#define BUPlayerUIControlImage_LeftBack @"bu_leftback" +#define BUPlayerUIControlImage_TopShadow @"bu_topShadow" +#define BUPlayerUIControlImage_BottomShadow @"bu_bottomShadow" +#define BUPlayerUIControlImage_BottomPlay @"bu_bottomPlay" +#define BUPlayerUIControlImage_BottomPause @"bu_bottomPause" +#define BUPlayerUIControlImage_FullClose @"bu_fullClose" +#define BUPlayerUIControlImage_SliderDot @"bu_sliderDot" +#define BUPlayerUIControlImage_FullScreen @"bu_fullScreen" +#define BUPlayerUIControlImage_ShrinkScreen @"bu_shrinkScreen" +#define BUPlayerUIControlImage_Replay @"bu_replay" +#define BUPlayerUIControlImage_Play @"bu_play" +#define BUPlayerUIControlImage_Pause @"bu_pause" +#define BUPlayerUIControlImage_FastForward @"bu_fastForward" +#define BUPlayerUIControlImage_FastBackward @"bu_fastBackward" + +#define BUPlayerUIControlLocalizedString_Close @"bu_LoStr_Close" + +@protocol BUPlayerControlViewProtocol + +- (instancetype)initWithContrlResourceBundle:(NSBundle *)bundle + images:(NSDictionary *)images + localizedStrings:(NSDictionary *)localizedStrings; + +/** + * 设置默认控制视图或完成视图的元素组合方式 + * 默认显示全部 + */ +- (void)setPlayerDefaultControlElement:(BUPlayerDefaultControlElement)element; +/** + * 获取播放完成视图容器 + * 若需自定义可先移除BUPlayerControlElementReplay,再添加自定义视图 + */ +- (UIView *)finishedContainer; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerDefine.h.meta new file mode 100644 index 00000000..7ec91293 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 695a1fae9538c4a839ef402a991ba978 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerInternalDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerInternalDefine.h new file mode 100755 index 00000000..e8593952 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerInternalDefine.h @@ -0,0 +1,81 @@ +// +// BUPlayerInternalDefine.h +// BUFoundation +// +// Created by bytedance on 2020/12/17. +// + +#ifndef BUPlayerInternalDefine_h +#define BUPlayerInternalDefine_h + +typedef NS_ENUM(NSInteger, BUVideoPlayerState) { + BUVideoPlayerStateFailed = 0, + BUVideoPlayerStateBuffering = 1, + BUVideoPlayerStatePlaying = 2, + BUVideoPlayerStateStopped = 3, + BUVideoPlayerStatePause = 4, + BUVideoPlayerStateDefault = 5 +}; + +typedef NS_ENUM(NSUInteger, BUVideoPlayerDecoeMode) { + BUVideoPlayerDecoeMode_H265_Local = 0, + BUVideoPlayerDecoeMode_H265_Cache = 1, + BUVideoPlayerDecoeMode_H265_Remote = 2, + + BUVideoPlayerDecoeMode_H264_Local = 3, + BUVideoPlayerDecoeMode_H264_Cache = 4, + BUVideoPlayerDecoeMode_H264_Remote = 5, + BUVideoPlayerDecoeMode_Last = 5, +}; + +@class BUPlayer; + +@protocol BUVideoPlayerDelegate + +@optional +/** + This method is called when the player status changes. + */ +- (void)player:(BUPlayer *)player stateDidChanged:(BUVideoPlayerState)playerState; + + +/// 播放器播放模式改变,当播放失败时会逐级降级 +/// @param player 播放器播放模式改变 +/// @param democeMode 播放模式 +- (void)player:(BUPlayer *)player decodeModeChanged:(BUVideoPlayerDecoeMode)democeMode; + +/** + This method is called when the player is ready. + */ +- (void)playerReadyToPlay:(BUPlayer *)player; + +/** + This method is called when the player is ready, while application in background. + */ +- (void)playerReadyToPlayWhenApplicationEnterBackground:(BUPlayer *)player; + +/** + This method is called when the player plays completion or occurrs error. + */ +- (void)playerDidPlayFinish:(BUPlayer *)player error:(NSError *)error; + +/** + This method is called when the player is clicked. + */ +- (void)player:(BUPlayer *)player recognizeTapGesture:(UITapGestureRecognizer *)gesture; + + +/** + This method is called when the view is clicked during ad play. + */ +- (void)playerTouchesBegan:(BUPlayer *)player; + + +/// Will be called when set BoundaryTime. +/// @param player player +- (void)playerBoundaryTimeReached:(BUPlayer *)player; + +@end + + +#endif /* BUPlayerInternalDefine_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerInternalDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerInternalDefine.h.meta new file mode 100644 index 00000000..5955fd6d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerInternalDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d0194c697cae64b1183416891ef815fe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerItem.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerItem.h new file mode 100755 index 00000000..5174c472 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerItem.h @@ -0,0 +1,54 @@ +// +// BUPlayerItem.h +// BUAdSDK +// +// Created by hlw on 2017/12/21. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUPlayerItem : NSObject + +/// 视频标题 +@property (nonatomic, copy) NSString *title; + +/// 视频URL - H.264 - 远程 +@property (nonatomic, strong) NSURL *videoURL_H264_Remote; + +/// 视频URL - H.264 - 本地 兼容方案,激励视频由上层控制 +@property (nonatomic, strong) NSURL *videoURL_H264_Local; + +/// 视频URL - HEVC - 远程 +@property (nonatomic, strong) NSURL *videoURL_H265_Remote; + +/// 视频URL - HEVC - 本地 +@property (nonatomic, strong) NSURL *videoURL_H265_Local; + +/// 允许使用 H265 进行播放 +@property (nonatomic, assign) BOOL enableH265; + +/// H265 下允许降级播放 +@property (nonatomic, assign) BOOL enableH265DowngradePlay; + +/// H264 下允许降级播放 +@property (nonatomic, assign) BOOL enableH264DowngradePlay; + +/// 允许使用边下边播 +@property (nonatomic, assign) BOOL enableCache; + +/// 视频封面网络图片url +@property (nonatomic, copy) NSString *placeholderImageURLString; +/** 视频封面本地图片 */ +@property (nonatomic, strong) UIImage *placeholderImage; +/// 默认图的展示形式 +@property (nonatomic, assign) UIViewContentMode placeholderImageContentMode; + +/// 从xx秒开始播放视频(默认0) +@property (nonatomic, assign) NSInteger seekTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerItem.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerItem.h.meta new file mode 100644 index 00000000..e4d21906 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerItem.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b81a08dc933d54b229409ddec28964ca +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerSettingsProtocol.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerSettingsProtocol.h new file mode 100755 index 00000000..2c31f51c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerSettingsProtocol.h @@ -0,0 +1,26 @@ +// +// BUPlayerSettingsProtocol.h +// BUFoundation +// +// Created by bytedance on 2020/12/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUPlayerSettingsProtocol + +@optional ++ (NSString *)videoCachePath; + ++ (NSBundle *)playerResourceBundle; + ++ (NSDictionary *)playerControlViewImages; + ++ (NSDictionary *)playerControlLocalizedString; + ++ (void)audioSessionSetting; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerSettingsProtocol.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerSettingsProtocol.h.meta new file mode 100644 index 00000000..350a9149 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUPlayerSettingsProtocol.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4ff6e24bffb5e47529423d3d1bdc698c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManager.h new file mode 100755 index 00000000..ff316970 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManager.h @@ -0,0 +1,29 @@ +// +// BUQueueManager.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/8/6. +// + +#import +#import "BUQueueManagerConfig.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BUQueueManager : NSObject + +@property (nonatomic, strong, readonly) BUQueueManagerConfig *config; + +- (void)updateConfig:(BUQueueManagerConfig *)config; + ++ (NSString *)serialQueuePrefixLabel; ++ (NSString *)concurrentQueuePrefixLabel; + +- (void)associateObject:(id)object withSerialQueue:(dispatch_queue_t)serialQueue; +- (void)associateObject:(id)object withConcurrentQueue:(dispatch_queue_t)concurrentQueue; + +#pragma mark - Signal ++ (instancetype)sharedInstance; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManager.h.meta new file mode 100644 index 00000000..0d2d4d77 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 64fe992cd85d94f139c3751d45174fc7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManagerConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManagerConfig.h new file mode 100755 index 00000000..1fdfeec9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManagerConfig.h @@ -0,0 +1,20 @@ +// +// BUQueueManagerConfig.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/8/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUQueueManagerConfig : NSObject + +@property (nonatomic, copy) NSString *queuePrefixLabel; + ++ (instancetype)defaultConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManagerConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManagerConfig.h.meta new file mode 100644 index 00000000..a953daca --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUQueueManagerConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb49fce303bfa4f319aa2c2117116017 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUReachability.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUReachability.h new file mode 100755 index 00000000..23160eba --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUReachability.h @@ -0,0 +1,186 @@ +/* + File: BUReachability.h + Abstract: Basic demonstration of how to use the SystemConfiguration Reachablity APIs. + Version: 3.5 + + Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple + Inc. ("Apple") in consideration of your agreement to the following + terms, and your use, installation, modification or redistribution of + this Apple software constitutes acceptance of these terms. If you do + not agree with these terms, please do not use, install, modify or + redistribute this Apple software. + + In consideration of your agreement to abide by the following terms, and + subject to these terms, Apple grants you a personal, non-exclusive + license, under Apple's copyrights in this original Apple software (the + "Apple Software"), to use, reproduce, modify and redistribute the Apple + Software, with or without modifications, in source and/or binary forms; + provided that if you redistribute the Apple Software in its entirety and + without modifications, you must retain this notice and the following + text and disclaimers in all such redistributions of the Apple Software. + Neither the name, trademarks, service marks or logos of Apple Inc. may + be used to endorse or promote products derived from the Apple Software + without specific prior written permission from Apple. Except as + expressly stated in this notice, no other rights or licenses, express or + implied, are granted by Apple herein, including but not limited to any + patent rights that may be infringed by your derivative works or by other + works in which the Apple Software may be incorporated. + + The Apple Software is provided by Apple on an "AS IS" basis. APPLE + MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION + THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND + OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. + + IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, + MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED + AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), + STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + Copyright (C) 2014 Apple Inc. All Rights Reserved. + + */ + +#import +#import +#import + +typedef NS_ENUM(NSInteger, BUNetWorkTypeCode) { + // 初始状态,未连接 + BUNetWorkTypeCode_None = -1, + // 未知 + BUNetWorkTypeCode_Unknown = 0, + BUNetWorkTypeCode_Mobile = 1, + BUNetWorkTypeCode_2G = 2, + BUNetWorkTypeCode_3G = 3, + BUNetWorkTypeCode_Wifi = 4, + BUNetWorkTypeCode_4G = 5, + BUNetWorkTypeCode_5G = 6, +}; + +typedef NS_ENUM(NSInteger) { + // 程序无法判断出 App 的网络权限设置 + kBUNetworkAuthorizationStatusCantDetermined = 0, + // App 未开启蜂窝数据网络权限 + kBUNetworkAuthorizationStatusCellNotPermitted, + // App 未开启无线局域网与蜂窝移动网络权限,此项仅可能在国行 iPhone 手机上出现 + kBUNetworkAuthorizationStatusWLANAndCellNotPermitted, +} kBUNetworkAuthorizationStatus; + +extern NSString *kBUReachabilityChangedNotification; + +// 是否开启 “网络状态检测” 的优化,需要外部调用方以 [[NSUserDefaults standardUserDefaults] setBool:forKey:] 方式写入 +extern NSString * const BUReachabilityDetectOptimizeKey; + +@interface BUReachability : NSObject + + +/** + 判断指定域名的连通性 + + @param hostName 域名 + @return BUReachability对象 + */ ++ (instancetype)reachabilityWithHostName:(NSString *)hostName; + + +/** + 判断指定IP地址的连通性 + + @param hostAddress IP地址 + @return BUReachability对象 + */ ++ (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress; + +/** + 判断网络默认连接的连通性(应用连接到指定host主机时除外) + + @return BUReachability对象 + */ ++ (instancetype)reachabilityForInternetConnection; + +/** + 开始在当前runloop监听连通性通知 + + @return 是否成功开始监听 + */ +- (BOOL)startNotifier; + + +/** + 结束监听连通性通知 + */ +- (void)stopNotifier; + + +/** + 当前连通性状态 + + @return NetworkStatus枚举值 + */ +- (BUNetWorkTypeCode)currentReachabilityStatus; + +/** + 是否需要连接。如WWAN需要首先建立一个可用连接才能被激活。WiFi可能需要一个VPN连接等 + + @return 是否需要连接 + */ +- (BOOL)connectionRequired; + + +/** + 获取 App 当前的网络权限设置状态 + + 因苹果尚未提供网络权限判断的 API,此方法目前只是在网络 NotReachable 时检查系统连接状态, + 利用排除法推断出 App 当前没有 蜂窝数据网络权限 或者 WIFI及蜂窝数据网络权限,排除原理参见 + https://wiki.bytedance.net/pages/viewpage.action?pageId=107808003 + + 在其它情况下(例如网络 Reachable 或者飞行模式)均返回 CantDetermined,上层业务调用方需注意 + + @return 参见 kBUNetworkAuthorizationStatus 定义 + */ +- (kBUNetworkAuthorizationStatus)currentNetworkAuthorizationStatus; + +@end + + +@interface BUReachability (Cellular) + +/** + 2G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is2GConnected; + +/** + 3G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is3GConnected; + +/** + 4G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is4GConnected; + + +/** + 2017.5.22添加 + 借鉴微信方式判断当前网络是否连通 + + @return 网络是否可以联调 + */ ++ (BOOL)isNetworkConnected; + +@end + + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUReachability.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUReachability.h.meta new file mode 100644 index 00000000..dee1263a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUReachability.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8bbdc29d68f88479faa40d13b7ae9367 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURexxarEngine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURexxarEngine.h new file mode 100755 index 00000000..af868ace --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURexxarEngine.h @@ -0,0 +1,59 @@ +// +// BURexxarEngine.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BUStaticPlugin.h" + +@protocol BUJSBAuthorization; +@protocol BURexxarEngine + +@required + +/** + engine所在的ViewController, 提供JSBridge更多的上下文. 可为空. + */ +@property (nonatomic, weak) UIViewController *ttr_sourceController; + +/** + engine所挂载的静态plugin集合 + */ +@property (nonatomic, strong) BUStaticPlugin *ttr_staticPlugin; + +/** + engine当前页面地址 + */ +@property (nonatomic, strong, readonly) NSURL *ttr_url; + +@optional +/** + JSBridge授权器, 每个业务方可自行注入. 默认为nil, 全部public权限 + */ +@property (nonatomic, strong) id ttr_authorization; + +#pragma mark - Executing JavaScript +@required + +/** + 注入JavaScrip + + @param script 需要注入的script + @param completion 完成的回调 + */ +- (void)ttr_evaluateJavaScript:(NSString *)script completionHandler:(void (^)(id result, NSError *error))completion; + + + +/** + 对容器内发送通知 + + @param event 通知名称 + @param data 携带的信息 + */ +- (void)ttr_fireEvent:(NSString *)event data:(NSDictionary *)data; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURexxarEngine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURexxarEngine.h.meta new file mode 100644 index 00000000..842d4bc1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURexxarEngine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c3473d86f5c834ae38d31d76d7da7bf9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURouter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURouter.h new file mode 100755 index 00000000..93176fa6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURouter.h @@ -0,0 +1,17 @@ +// +// BUActionHelper.h +// BUAdSDK +// +// Created by carl on 2018/1/4. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import "UIViewController+BUUtilities.h" + +@interface BURouter : NSObject ++ (void)presentFromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC; + ++ (void)presentFromViewControllerOverFullScreen:(UIViewController *)fromVC toViewController:(UIViewController *)toVC; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURouter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURouter.h.meta new file mode 100644 index 00000000..9ae33901 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BURouter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 34d564e9040fb4651a2f3ef396b8c080 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUScreenHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUScreenHelper.h new file mode 100755 index 00000000..71ae0255 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUScreenHelper.h @@ -0,0 +1,119 @@ +// +// BDUScreenHelp.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/11/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import + +//设备类型 +typedef NS_ENUM(NSInteger, BUDeviceMode) { + //iPad + BUDeviceModePad, + //iPhone6plus,iPhone6Splus + BUDeviceMode736, + //iPhone6,iPhone6S + BUDeviceMode667, + //iPhone5,iPhone5C,iPhone5S,iPhoneSE + BUDeviceMode568, + //iPhone4,iPhone4s + BUDeviceMode480, + //iPhoneX,iphoneXS + BUDeviceMode812, + //iphoneXR,iphoneRS Max + BUDeviceMode896 +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface BUScreenHelper: NSObject + +/** + * 判断设备是iPhone4, iPhone4S + * + * @return Yes or No + */ ++ (BOOL)is480Screen; + +/** + * 判断设备是iPhone5, iPhone5C, iPhone5S, iPhoneSE + * + * @return Yes or No + */ ++ (BOOL)is568Screen; + +/** + * 判断设备是iPhone6,iPhone6S + * + * @return Yes or No + */ ++ (BOOL)is667Screen; + +/** + * 判断设备是iPhone6plus, iPhone6Splus + * + * @return Yes or No + */ ++ (BOOL)is736Screen; +// iphone6,iphone6 plus + +/** + * 判断设备是iPhoneX,iphoneXS + * + * @return Yes or No + */ ++ (BOOL)is812Screen; + +/** + * 判断设备是iphoneXR,iphoneRS Max + * + * @return Yes or No + */ ++ (BOOL)is896Screen; + +/** + * 判断设备的宽度大于320 + * + * @return Yes or No + */ ++ (BOOL)isScreenWidthLarge320; + +/** + * 判断设备是iPad + * + * @return Yes or No + */ ++ (BOOL)isPadDevice; + +/** + * 判断设备是iPad pro + * + * @return Yes or No + */ ++ (BOOL)isIpadProDevice; + +/** + * 获取设备类型 + * + * @return BUDeviceType类型 + */ ++ (BUDeviceMode)getDeviceType; + +/** + * 分辨率,区分横竖屏,形如@"414*736" + * @return 横竖屏返回样式,横屏样式@"736*414",竖屏样式@"414*736" + */ ++ (nullable NSString *)resolutionString; + +/** + * 分辨率,区分横竖屏,形如@"414x736" + * @return 横竖屏返回样式,横屏样式@"736x414",竖屏样式@"414x736" + */ ++ (NSString *)displayDensity; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUScreenHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUScreenHelper.h.meta new file mode 100644 index 00000000..90afaab0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUScreenHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 02cf05eccf4e946b9a18647bec11f73f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUStaticPlugin.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUStaticPlugin.h new file mode 100755 index 00000000..72ac7dd2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUStaticPlugin.h @@ -0,0 +1,22 @@ +// +// BUStaticPlugin.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BUJSBCommand.h" + +@protocol BURexxarEngine; + +typedef void(^BUJSBStaticHandler)(NSDictionary *params, BUJSBResponse completion); + +@interface BUStaticPlugin : NSObject + +- (void)registerHandlerBlock:(BUJSBStaticHandler)handler forMethodName:(NSString*)method; + +- (BOOL)callHandlerWithCommand:(BUJSBCommand *)command engine:(id)engine completion:(BUJSBResponse)completion; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUStaticPlugin.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUStaticPlugin.h.meta new file mode 100644 index 00000000..aee76780 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUStaticPlugin.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 066a547519bd14e81aa7cee3efb2770f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCRequestParam.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCRequestParam.h new file mode 100755 index 00000000..e78f0002 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCRequestParam.h @@ -0,0 +1,16 @@ +// +// Created by bytedance on 2020/12/16. +// + +#import +#import "BUCommonMacros.h" + +@interface BUTNCRequestParam : NSObject + +@property (nonatomic, copy) NSString *version; + +@property (nonatomic, copy) NSString *deviceDid; + +@property (nonatomic, copy) NSString *ssAppID; + +@end \ No newline at end of file diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCRequestParam.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCRequestParam.h.meta new file mode 100644 index 00000000..5265a094 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCRequestParam.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3c5b75e69b985415e819827f0741666f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCServiceManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCServiceManager.h new file mode 100755 index 00000000..3bd7ac85 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCServiceManager.h @@ -0,0 +1,31 @@ +// +// Created by bytedance on 2020/12/15. +// + +#import +#import "BUTNCRequestParam.h" + +@class BUNetworkRequest; + +@interface BUTNCServiceConfig : NSObject + +@property (nonatomic, copy, readonly) NSString *appKey; + +@property(nonatomic, copy, readonly) NSString *tncPath; + +@property(nonatomic, copy, readonly) NSArray *tncDomains; + +@property(nonatomic, copy, readonly) BUTNCRequestParam *(^tncRequestParam)(void); +@end + +__attribute__((objc_subclassing_restricted)) +@interface BUTNCServiceManager : NSObject + ++ (void)registerTNCServiceWithAppKey:(NSString *)appKey tncDomains:(NSArray *)tncDomains tncPath:(NSString *)tncPath requestParam:(BUTNCRequestParam * (^)(void))param; + ++ (void)unregisterTNCServiceWithAppKey:(NSString *)appKey; + ++ (NSString *)TNCUrlWithBaseUrl:(NSString *)baseUrl forRequest:(BUNetworkRequest *)request; + ++ (void)refreshTNCDomainsWithAppKey:(NSString *)appKey; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCServiceManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCServiceManager.h.meta new file mode 100644 index 00000000..a8d97b72 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTNCServiceManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 963669db6fc624c6ab47ff4f851e37c8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeDictionary.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeDictionary.h new file mode 100755 index 00000000..4fea93c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeDictionary.h @@ -0,0 +1,19 @@ + +// BUThreadSafeDictionary.h +// Created by Siwant on 2018/1/22. +// Copyright © 2018年 bytedance. All rights reserved. + +#import + +@interface BUThreadSafeDictionary: NSMutableDictionary +- (id)objectForKey:(id )aKey; +- (id)valueForKey:(id)aKey; +- (void)setObject:(id)object forKey:(id )aKey; +- (void)setValue:(id)value forKey:(NSString *)key; +- (void)removeAllObjects; +- (void)removeObjectForKey:(id )aKey; +- (NSDictionary *)dictionary; +- (NSArray *)allKeys; +- (NSArray *)allValues; +- (void)removeObjectsForKeys:(NSArray *)keyArray; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeDictionary.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeDictionary.h.meta new file mode 100644 index 00000000..cb4d71ae --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeDictionary.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 113896084031442a78310719e893c9da +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeMutableArray.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeMutableArray.h new file mode 100755 index 00000000..081469f1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeMutableArray.h @@ -0,0 +1,17 @@ +// +// BUThreadSafeMutableArray.h +// BUAdSDK +// +// Created by 李盛 on 2019/1/3. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUThreadSafeMutableArray : NSMutableArray + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeMutableArray.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeMutableArray.h.meta new file mode 100644 index 00000000..aa15b659 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUThreadSafeMutableArray.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6665f1ddbf2cd4b008695df74d330a68 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTimer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTimer.h new file mode 100755 index 00000000..f861d62f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTimer.h @@ -0,0 +1,36 @@ +// +// BUTimer.h +// BUAdSDK +// +// Created by 李盛 on 2018/6/20. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUTimer : NSObject + +@property (nonatomic, copy) NSString *runLoopMode; + ++ (BUTimer *)timerWithTimeInterval:(NSTimeInterval)seconds + target:(nullable id)target + selector:(SEL)aSelector + repeats:(BOOL)repeats; + ++ (BUTimer *)timerWithTimeInterval:(NSTimeInterval)seconds + repeats:(BOOL)repeats + block:(void (^)(BUTimer *timer))block; + +- (BOOL)isValid; +- (void)invalidate; +- (BOOL)isScheduled; +- (BOOL)scheduleNow; +- (BOOL)pause; +- (BOOL)resume; +- (NSTimeInterval)initialTimeInterval; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTimer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTimer.h.meta new file mode 100644 index 00000000..23a60318 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUTimer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ef22c2caaec0248e79fe41cdfa1803c6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUIResponderHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUIResponderHelper.h new file mode 100755 index 00000000..77152a43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUIResponderHelper.h @@ -0,0 +1,38 @@ +// +// BUUIResponderHelper.h +// BUSDKProject +// +// Created by ranny_90 on 2017/5/20. +// Copyright © 2017年 ranny_90. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUUIResponderHelper : NSObject + +// 获取当前应用的广义mainWindow ++ (nullable UIWindow *)mainWindow __attribute__((deprecated("Use bu_mainWindow in UIWindow+BUUtilities instead."))); + +// 广义mainWindow的大小(兼容iOS7) ++ (CGSize)windowSize __attribute__((deprecated("Use bu_windowSize in UIWindow+BUUtilities instead."))); + + +// 获取广义mainWindow的rootViewController ++ (nullable UIViewController*)mainWindowRootViewController __attribute__((deprecated("Use bu_mainWindowRootViewController in UIViewController+BUUtilities instead."))); + +// 获取指定UIResponder的链下游第一个ViewController对象 ++ (nullable UIViewController*)nextViewControllerFor:(UIResponder* _Nullable)responder __attribute__((deprecated("Use bu_nextViewControllerFor: in UIViewController+BUUtilities instead."))); + +// 获取指定UIResponder的链下游第一个UINavigationController对象 ++ (nullable UINavigationController*)nextNavigationControllerFor:(UIResponder* _Nullable)responder __attribute__((deprecated("Use bu_nextNavigationControllerFor: in UIViewController+BUUtilities instead."))); + +/** 查找当前显示的ViewController*/ ++ (UIViewController *)topViewController __attribute__((deprecated("Use bu_topViewController in UIViewController+BUUtilities instead."))); + ++ (UIViewController *)recursiveFindCurrentShowViewControllerFromViewController:(UIViewController *)fromVC __attribute__((deprecated("Use bu_recursiveFindCurrentShowViewControllerFromViewController: in UIViewController+BUUtilities instead."))); +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUIResponderHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUIResponderHelper.h.meta new file mode 100644 index 00000000..48a42e49 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUIResponderHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5706c72a4cfe64be0a666dd198d42cb3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUserAgentHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUserAgentHelper.h new file mode 100755 index 00000000..6b36117b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUserAgentHelper.h @@ -0,0 +1,18 @@ +// +// BUUserAgentHelper.h +// BUAdSDK +// +// Created by cuiyanan on 2019/9/3. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import +#import "BUCommonMacros.h" + +@interface BUUserAgentHelper : NSObject +BU_SINGLETION(BUUserAgentHelper); + +- (NSString *)userAgent; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUserAgentHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUserAgentHelper.h.meta new file mode 100644 index 00000000..50c88a1e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUUserAgentHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7d77171b9566f4e5cad00c4312f551fa +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUVideoPrefetchManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUVideoPrefetchManager.h new file mode 100755 index 00000000..871d2360 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUVideoPrefetchManager.h @@ -0,0 +1,44 @@ +// +// BUVideoPrefetchManager.h +// BUAdSDK +// +// Created by 李盛 on 2018/9/20. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerSettingsProtocol.h" + +typedef void (^prefetchVideoCancelBlock)(NSInteger preloadSize); + +@interface BUVideoPrefetchManager : NSObject + ++ (instancetype)sharedInstance; + +/// 预加载视频 +/// @param videoUrl 视频 URL +/// @param storgeName 视频文件存储名称 +/// @param prefetchSize 预加载大小 +/// @param prefetchStartBlock 预加载开始回调 +/// @param prefetchFinshBlock 预加载结束回调 +- (void)prefetchWithVideoUrl:(NSURL *)videoUrl + storgeName:(NSString *)storgeName + prefetchSize:(NSUInteger)prefetchSize + prefetchStartBlock:(void(^)(void))prefetchStartBlock + prefetchFinshBlock:(void(^)(BOOL, NSInteger, NSError *, NSString *))prefetchFinshBlock + prefetchCancelBlock:(prefetchVideoCancelBlock)prefetchCancelBlock; + +/// 判断url是否正在下载 +/// @param videoURL 视频 URL +- (BOOL)prefetchUrlInQueue:(NSURL *)videoURL; + +/// 取消预加载,播放时应先取消预加载。 +/// @param videoURL 视频 URL +- (void)cancelPrefetch:(NSURL *)videoURL; + + +/// 查询视频预加载大小 +/// @param videoUrl 视频 URL +- (NSInteger)queryPrefetchSizeWithVideoUrl:(NSURL *)videoUrl; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUVideoPrefetchManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUVideoPrefetchManager.h.meta new file mode 100644 index 00000000..3d41db7b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUVideoPrefetchManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ffd6b087bdda44b2a0dcfd93c2d446b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWKWebView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWKWebView.h new file mode 100755 index 00000000..65a12a66 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWKWebView.h @@ -0,0 +1,25 @@ +// +// BUWKWebView.h +// BURexxar +// +// Created by muhuai on 2017/5/5. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BUWebViewDefine.h" + +@interface BUWKWebView : WKWebView +/// 白屏检测 +- (void)bu_detectBlankWebViewCompleteBlock:(void(^)(BOOL, NSError *))block; + +/// 白屏检测百分比 +- (void)bu_detectBlankPercentCompleteBlock:(void(^)(CGFloat bgColorPercent, NSError *error))block; +/// jsbridge 白屏检测百分比 +- (void)bu_detectBlankPercentWithImageStr:(NSString *)imageStr completeBlock:(void(^)(CGFloat bgColorPercent, NSError *))block; + +- (void)ttr_fireEvent:(NSString *)event data:(NSDictionary *)data completion:(void (^)(id result, NSError *error))completionHandler; + +@property (nonatomic, assign) BOOL reallySuccess; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWKWebView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWKWebView.h.meta new file mode 100644 index 00000000..b06a3973 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWKWebView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3855e4a2e8206402f82fb3cd6fa4d5b4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebImageDataCacheManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebImageDataCacheManager.h new file mode 100755 index 00000000..cafb88ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebImageDataCacheManager.h @@ -0,0 +1,21 @@ +// +// LCDWebImageDataCache.h +// LCDSamples +// +// Created by yuxr on 2021/7/8. +// Copyright © 2021 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUWebImageDataCacheManager : NSObject + ++ (instancetype)sharedManager; +- (NSData *)imageDataForKey:(NSString *)key; +- (void)storeImageData:(NSData *)imageData forKey:(NSString *)key; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebImageDataCacheManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebImageDataCacheManager.h.meta new file mode 100644 index 00000000..22b603bf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebImageDataCacheManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9e04abf1fc18c4f0ab2baa3be5c556be +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewDefine.h new file mode 100755 index 00000000..964bab7a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewDefine.h @@ -0,0 +1,103 @@ +// +// BUWebViewDefine.h +// BURexxar +// +// Created by muhuai on 2017/5/17. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BURexxarEngine.h" +#import "BUJSInjector.h" + +typedef NS_ENUM(NSInteger, BUWebViewNavigationType) { + BUWebViewNavigationTypeLinkClicked, + BUWebViewNavigationTypeFormSubmitted, + BUWebViewNavigationTypeBackForward, + BUWebViewNavigationTypeReload, + BUWebViewNavigationTypeFormResubmitted, + BUWebViewNavigationTypeOther +}; + +@protocol BUWebView; + +@protocol BUWebViewDelegate + +@optional +- (BOOL)webView:(UIView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(BUWebViewNavigationType)navigationType; + +- (void)webViewDidStartLoad:(UIView *)webView; + +- (void)webViewDidFinishLoad:(UIView *)webView; + +- (void)webView:(UIView *)webView didFailLoadWithError:(NSError *)error; + +- (void)webViewWebContentProcessDidTerminate:(UIView *)webView API_AVAILABLE(macosx(10.11), ios(9.0)); + +//二方页面有 domReady回调 +- (void)webViewDomReady:(UIView *)webView; +@end + + +/** + BUWKWebView 都会实现此协议, 用来对平两个容器之间API的差异 + */ +@protocol BUWebView + +@property (nonatomic, strong ,readonly) UIScrollView *ttr_scrollView; + +/** + JS脚本注入器 使用说明见:BUJSInjector.h + */ +@property (nonatomic, strong, readonly) BUJSInjector *ttr_injector; +#pragma mark - Loading Content + +- (void)ttr_loadRequest:(NSURLRequest *)request; + +- (void)ttr_loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; + + +/** + WK下特有的方法 + + @param URL 本地文件URL, 注意需要为file:// + @param readAccessURL WK下可以指定获取一个本地目录的权限 + */ +- (void)ttr_loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL; + +- (void)ttr_stopLoading; + +- (void)ttr_reload; + +#pragma mark - Moving Back and Forward +- (BOOL)ttr_canGoBack; + +- (BOOL)ttr_canGoForward; + +- (void)ttr_goBack; + +- (void)ttr_goForward; + + +#pragma mark - Multi Delegate +/** +BUWKWebView内部实现成多路代理, 按注册的顺序来依次询问. + + @param delegate webview代理 + */ +- (void)ttr_addDelegate:(id)delegate; + +/** + 移除指定代理 + + @param delegate 需要移除的代理 + */ +- (void)ttr_removeDelegate:(id)delegate; + +/** + 移除所有代理 + */ +- (void)ttr_removeAllDelegate; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewDefine.h.meta new file mode 100644 index 00000000..1cd4c1ef --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cf0993870282a436d9d7c2f23e205f3a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewProgressView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewProgressView.h new file mode 100755 index 00000000..f920a98b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewProgressView.h @@ -0,0 +1,25 @@ +// +// BUWebViewProgressView.h +// BURexxar +// +// Created by muhuai on 2017/6/13. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import "BUWebViewDefine.h" + +#import +#import + + +/** + 假进度条 + 使用方法: + 1.addSubView到 WebView中 + 2.通过多路代理将此控件设为其中一个子代理 + */ +@interface BUWebViewProgressView : UIView + +@property (nonatomic, strong) UIColor *lineFillColor; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewProgressView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewProgressView.h.meta new file mode 100644 index 00000000..d8ac63eb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUWebViewProgressView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d225155b72c60461982db2f4875265dd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYClassInfo.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYClassInfo.h new file mode 100755 index 00000000..04d59cc9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYClassInfo.h @@ -0,0 +1,197 @@ +// +// BUYYClassInfo.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Type encoding's type. + */ +typedef NS_OPTIONS(NSUInteger, BUYYEncodingType) { + BUYYEncodingTypeMask = 0xFF, ///< mask of type value + BUYYEncodingTypeUnknown = 0, ///< unknown + BUYYEncodingTypeVoid = 1, ///< void + BUYYEncodingTypeBool = 2, ///< bool + BUYYEncodingTypeInt8 = 3, ///< char / BOOL + BUYYEncodingTypeUInt8 = 4, ///< unsigned char + BUYYEncodingTypeInt16 = 5, ///< short + BUYYEncodingTypeUInt16 = 6, ///< unsigned short + BUYYEncodingTypeInt32 = 7, ///< int + BUYYEncodingTypeUInt32 = 8, ///< unsigned int + BUYYEncodingTypeInt64 = 9, ///< long long + BUYYEncodingTypeUInt64 = 10, ///< unsigned long long + BUYYEncodingTypeFloat = 11, ///< float + BUYYEncodingTypeDouble = 12, ///< double + BUYYEncodingTypeLongDouble = 13, ///< long double + BUYYEncodingTypeObject = 14, ///< id + BUYYEncodingTypeClass = 15, ///< Class + BUYYEncodingTypeSEL = 16, ///< SEL + BUYYEncodingTypeBlock = 17, ///< block + BUYYEncodingTypePointer = 18, ///< void* + BUYYEncodingTypeStruct = 19, ///< struct + BUYYEncodingTypeUnion = 20, ///< union + BUYYEncodingTypeCString = 21, ///< char* + BUYYEncodingTypeCArray = 22, ///< char[10] (for example) + + BUYYEncodingTypeQualifierMask = 0xFF00, ///< mask of qualifier + BUYYEncodingTypeQualifierConst = 1 << 8, ///< const + BUYYEncodingTypeQualifierIn = 1 << 9, ///< in + BUYYEncodingTypeQualifierInout = 1 << 10, ///< inout + BUYYEncodingTypeQualifierOut = 1 << 11, ///< out + BUYYEncodingTypeQualifierBycopy = 1 << 12, ///< bycopy + BUYYEncodingTypeQualifierByref = 1 << 13, ///< byref + BUYYEncodingTypeQualifierOneway = 1 << 14, ///< oneway + + BUYYEncodingTypePropertyMask = 0xFF0000, ///< mask of property + BUYYEncodingTypePropertyReadonly = 1 << 16, ///< readonly + BUYYEncodingTypePropertyCopy = 1 << 17, ///< copy + BUYYEncodingTypePropertyRetain = 1 << 18, ///< retain + BUYYEncodingTypePropertyNonatomic = 1 << 19, ///< nonatomic + BUYYEncodingTypePropertyWeak = 1 << 20, ///< weak + BUYYEncodingTypePropertyCustomGetter = 1 << 21, ///< getter= + BUYYEncodingTypePropertyCustomSetter = 1 << 22, ///< setter= + BUYYEncodingTypePropertyDynamic = 1 << 23, ///< @dynamic +}; + +/** + Get the type from a Type-Encoding string. + + @discussion See also: + https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html + https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtPropertyIntrospection.html + + @param typeEncoding A Type-Encoding string. + @return The encoding type. + */ +BUYYEncodingType BUYYEncodingGetType(const char *typeEncoding); + + +/** + Instance variable information. + */ +@interface BUYYClassIvarInfo : NSObject +@property (nonatomic, assign, readonly) Ivar ivar; ///< ivar opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< Ivar's name +@property (nonatomic, assign, readonly) ptrdiff_t offset; ///< Ivar's offset +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< Ivar's type encoding +@property (nonatomic, assign, readonly) BUYYEncodingType type; ///< Ivar's type + +/** + Creates and returns an ivar info object. + + @param ivar ivar opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithIvar:(Ivar)ivar; +@end + + +/** + Method information. + */ +@interface BUYYClassMethodInfo : NSObject +@property (nonatomic, assign, readonly) Method method; ///< method opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< method name +@property (nonatomic, assign, readonly) SEL sel; ///< method's selector +@property (nonatomic, assign, readonly) IMP imp; ///< method's implementation +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< method's parameter and return types +@property (nonatomic, strong, readonly) NSString *returnTypeEncoding; ///< return value's type +@property (nullable, nonatomic, strong, readonly) NSArray *argumentTypeEncodings; ///< array of arguments' type + +/** + Creates and returns a method info object. + + @param method method opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithMethod:(Method)method; +@end + + +/** + Property information. + */ +@interface BUYYClassPropertyInfo : NSObject +@property (nonatomic, assign, readonly) objc_property_t property; ///< property's opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< property's name +@property (nonatomic, assign, readonly) BUYYEncodingType type; ///< property's type +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< property's encoding value +@property (nonatomic, strong, readonly) NSString *ivarName; ///< property's ivar name +@property (nullable, nonatomic, assign, readonly) Class cls; ///< may be nil +@property (nullable, nonatomic, strong, readonly) NSArray *protocols; ///< may nil +@property (nonatomic, assign, readonly) SEL getter; ///< getter (nonnull) +@property (nonatomic, assign, readonly) SEL setter; ///< setter (nonnull) + +/** + Creates and returns a property info object. + + @param property property opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithProperty:(objc_property_t)property; +@end + + +/** + Class information for a class. + */ +@interface BUYYClassInfo : NSObject +@property (nonatomic, assign, readonly) Class cls; ///< class object +@property (nullable, nonatomic, assign, readonly) Class superCls; ///< super class object +@property (nullable, nonatomic, assign, readonly) Class metaCls; ///< class's meta class object +@property (nonatomic, readonly) BOOL isMeta; ///< whether this class is meta class +@property (nonatomic, strong, readonly) NSString *name; ///< class name +@property (nullable, nonatomic, strong, readonly) BUYYClassInfo *superClassInfo; ///< super class's class info +@property (nullable, nonatomic, strong, readonly) NSDictionary *ivarInfos; ///< ivars +@property (nullable, nonatomic, strong, readonly) NSDictionary *methodInfos; ///< methods +@property (nullable, nonatomic, strong, readonly) NSDictionary *propertyInfos; ///< properties + +/** + If the class is changed (for example: you add a method to this class with + 'class_addMethod()'), you should call this method to refresh the class info cache. + + After called this method, `needUpdate` will returns `YES`, and you should call + 'classInfoWithClass' or 'classInfoWithClassName' to get the updated class info. + */ +- (void)setNeedUpdate; + +/** + If this method returns `YES`, you should stop using this instance and call + `classInfoWithClass` or `classInfoWithClassName` to get the updated class info. + + @return Whether this class info need update. + */ +- (BOOL)needUpdate; + +/** + Get the class info of a specified Class. + + @discussion This method will cache the class info and super-class info + at the first access to the Class. This method is thread-safe. + + @param cls A class. + @return A class info, or nil if an error occurs. + */ ++ (nullable instancetype)classInfoWithClass:(Class)cls; + +/** + Get the class info of a specified Class. + + @discussion This method will cache the class info and super-class info + at the first access to the Class. This method is thread-safe. + + @param className A class name. + @return A class info, or nil if an error occurs. + */ ++ (nullable instancetype)classInfoWithClassName:(NSString *)className; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYClassInfo.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYClassInfo.h.meta new file mode 100644 index 00000000..e40b2c89 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYClassInfo.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c8e329630cec44d2c85985b92886f7ab +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYModel.h new file mode 100755 index 00000000..e925d4bb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYModel.h @@ -0,0 +1,10 @@ +// +// BUYYModel.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "NSObject+BUYYModel.h" +#import "BUYYClassInfo.h" diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYModel.h.meta new file mode 100644 index 00000000..030ddc1b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUYYModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2f1b17305b962465cb03a2159b9dd59c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUZipCommon.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUZipCommon.h new file mode 100755 index 00000000..0711048c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUZipCommon.h @@ -0,0 +1,68 @@ +#ifndef BUZipCommon +#define BUZipCommon + +// typedefs moved from mz_compat.h to here for public access + +/* unz_global_info structure contain global data about the ZIPfile + These data comes from the end of central dir */ +typedef struct bu_unz_global_info64_s +{ + uint64_t number_entry; /* total number of entries in the central dir on this disk */ + uint32_t number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */ + uint16_t size_comment; /* size of the global comment of the zipfile */ +} bu_unz_global_info64; + +typedef struct bu_unz_global_info_s +{ + uint32_t number_entry; /* total number of entries in the central dir on this disk */ + uint32_t number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */ + uint16_t size_comment; /* size of the global comment of the zipfile */ +} bu_unz_global_info; + +/* unz_file_info contain information about a file in the zipfile */ +/* https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT */ +typedef struct bu_unz_file_info64_s +{ + uint16_t version; /* version made by 2 bytes */ + uint16_t version_needed; /* version needed to extract 2 bytes */ + uint16_t flag; /* general purpose bit flag 2 bytes */ + uint16_t compression_method; /* compression method 2 bytes */ + uint32_t dos_date; /* last mod file date in Dos fmt 4 bytes */ + uint32_t crc; /* crc-32 4 bytes */ + uint64_t compressed_size; /* compressed size 8 bytes */ + uint64_t uncompressed_size; /* uncompressed size 8 bytes */ + uint16_t size_filename; /* filename length 2 bytes */ + uint16_t size_file_extra; /* extra field length 2 bytes */ + uint16_t size_file_comment; /* file comment length 2 bytes */ + + uint32_t disk_num_start; /* disk number start 4 bytes */ + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ + + uint64_t disk_offset; + + uint16_t size_file_extra_internal; +} bu_unz_file_info64; + +typedef struct bu_unz_file_info_s +{ + uint16_t version; /* version made by 2 bytes */ + uint16_t version_needed; /* version needed to extract 2 bytes */ + uint16_t flag; /* general purpose bit flag 2 bytes */ + uint16_t compression_method; /* compression method 2 bytes */ + uint32_t dos_date; /* last mod file date in Dos fmt 4 bytes */ + uint32_t crc; /* crc-32 4 bytes */ + uint32_t compressed_size; /* compressed size 4 bytes */ + uint32_t uncompressed_size; /* uncompressed size 4 bytes */ + uint16_t size_filename; /* filename length 2 bytes */ + uint16_t size_file_extra; /* extra field length 2 bytes */ + uint16_t size_file_comment; /* file comment length 2 bytes */ + + uint16_t disk_num_start; /* disk number start 2 bytes */ + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ + + uint64_t disk_offset; +} bu_unz_file_info; + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUZipCommon.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUZipCommon.h.meta new file mode 100644 index 00000000..282ee716 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BUZipCommon.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d7cfdf34c56142e8801b63e6b79b798 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImage.h new file mode 100755 index 00000000..e0a29498 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImage.h @@ -0,0 +1,107 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageCoder.h" + + +/** + This is the protocol for BU_SDAnimatedImage class only but not for . If you want to provide a custom animated image class with full advanced function, you can conform to this instead of the base protocol. + */ +@protocol BU_SDAnimatedImage + +@required +/** + Initializes and returns the image object with the specified data, scale factor and possible animation decoding options. + @note We use this to create animated image instance for normal animation decoding. + + @param data The data object containing the image data. + @param scale The scale factor to assume when interpreting the image data. Applying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the `size` property. + @param options A dictionary containing any animation decoding options. + @return An initialized object + */ +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale options:(nullable SDImageCoderOptions *)options; + +/** + Initializes the image with an animated coder. You can use the coder to decode the image frame later. + @note We use this with animated coder which conforms to `SDProgressiveImageCoder` for progressive animation decoding. + + @param animatedCoder An animated coder which conform `` protocol + @param scale The scale factor to assume when interpreting the image data. Applying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the `size` property. + @return An initialized object + */ +- (nullable instancetype)initWithAnimatedCoder:(nonnull id)animatedCoder scale:(CGFloat)scale; + +@optional +// These methods are used for optional advanced feature, like image frame preloading. +/** + Pre-load all animated image frame into memory. Then later frame image request can directly return the frame for index without decoding. + This method may be called on background thread. + + @note If one image instance is shared by lots of imageViews, the CPU performance for large animated image will drop down because the request frame index will be random (not in order) and the decoder should take extra effort to keep it re-entrant. You can use this to reduce CPU usage if need. Attention this will consume more memory usage. + */ +- (void)preloadAllFrames; + +/** + Unload all animated image frame from memory if are already pre-loaded. Then later frame image request need decoding. You can use this to free up the memory usage if need. + */ +//- (void)unloadAllFrames; + +/** + Returns a Boolean value indicating whether all animated image frames are already pre-loaded into memory. + */ +@property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded; + +@end + +/** + The image class which supports animating on `SDAnimatedImageView`. You can also use it on normal UIImageView/NSImageView. + */ +@interface BU_SDAnimatedImage : UIImage + +// This class override these methods from UIImage(NSImage), and it supports NSSecureCoding. +// You should use these methods to create a new animated image. Use other methods just call super instead. ++ (nullable instancetype)imageNamed:(nonnull NSString *)name; // Cache in memory, no Asset Catalog support +#if __has_include() ++ (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection; // Cache in memory, no Asset Catalog support +#else ++ (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle; // Cache in memory, no Asset Catalog support +#endif ++ (nullable instancetype)imageWithContentsOfFile:(nonnull NSString *)path; ++ (nullable instancetype)imageWithData:(nonnull NSData *)data; ++ (nullable instancetype)imageWithData:(nonnull NSData *)data scale:(CGFloat)scale; +- (nullable instancetype)initWithContentsOfFile:(nonnull NSString *)path; +- (nullable instancetype)initWithData:(nonnull NSData *)data; +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale; + +/** + Current animated image format. + */ +@property (nonatomic, assign, readonly) BU_SDImageFormat animatedImageFormat; + +/** + Current animated image data, you can use this to grab the compressed format data and create another animated image instance. + If this image instance is an animated image created by using animated image coder (which means using the API listed above or using `initWithAnimatedCoder:scale:`), this property is non-nil. + */ +@property (nonatomic, copy, readonly, nullable) NSData *animatedImageData; + +/** + The scale factor of the image. + + @note For UIKit, this just call super instead. + @note For AppKit, `NSImage` can contains multiple image representations with different scales. However, this class does not do that from the design. We processs the scale like UIKit. This wil actually be calculated from image size and pixel size. + */ +@property (nonatomic, readonly) CGFloat scale; + +// By default, animated image frames are returned by decoding just in time without keeping into memory. But you can choose to preload them into memory as well, See the decsription in `BU_SDAnimatedImage` protocol. +// After preloaded, there is no huge difference on performance between this and UIImage's `animatedImageWithImages:duration:`. But UIImage's animation have some issues such like blanking and pausing during segue when using in `UIImageView`. It's recommend to use only if need. +- (void)preloadAllFrames; +//- (void)unloadAllFrames; +@property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImage.h.meta new file mode 100644 index 00000000..675fecdf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0729dc4f2ba204e009c6c5f48446cb1f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImageRep.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImageRep.h new file mode 100755 index 00000000..93f808c3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImageRep.h @@ -0,0 +1,22 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +/** + A subclass of `NSBitmapImageRep` to fix that GIF loop count issue because `NSBitmapImageRep` will reset `NSImageCurrentFrameDuration` by using `kCGImagePropertyGIFDelayTime` but not `kCGImagePropertyGIFUnclampedDelayTime`. + Built in GIF coder use this instead of `NSBitmapImageRep` for better GIF rendering. If you do not want this, only enable `SDImageIOCoder`, which just call `NSImage` API and actually use `NSBitmapImageRep` for GIF image. + This also support APNG format using `SDImageAPNGCoder`. Which provide full alpha-channel support and the correct duration match the `kBUCGImagePropertyAPNGUnclampedDelayTime`. + */ +@interface BU_SDAnimatedImageRep : NSBitmapImageRep + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImageRep.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImageRep.h.meta new file mode 100644 index 00000000..000c60c7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAnimatedImageRep.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 04fc8a7fbe6504aa288a38a0da5d88f4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAsyncBlockOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAsyncBlockOperation.h new file mode 100755 index 00000000..3a90277e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAsyncBlockOperation.h @@ -0,0 +1,20 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDAsyncBlockOperation; +typedef void (^SDAsyncBlock)(BU_SDAsyncBlockOperation * __nonnull asyncOperation); + +@interface BU_SDAsyncBlockOperation : NSOperation + +- (nonnull instancetype)initWithBlock:(nonnull SDAsyncBlock)block; ++ (nonnull instancetype)blockOperationWithBlock:(nonnull SDAsyncBlock)block; +- (void)complete; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAsyncBlockOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAsyncBlockOperation.h.meta new file mode 100644 index 00000000..ed48247c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDAsyncBlockOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 26276dabe90bf4585a1bab8cd727440f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDDiskCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDDiskCache.h new file mode 100755 index 00000000..20fe547a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDDiskCache.h @@ -0,0 +1,113 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDImageCacheConfig; +/** + A protocol to allow custom disk cache used in SDImageCache. + */ +@protocol BU_SDDiskCache + +// All of these method are called from the same global queue to avoid blocking on main queue and thread-safe problem. But it's also recommend to ensure thread-safe yourself using lock or other ways. +@required +/** + Create a new disk cache based on the specified path. You can check `maxDiskSize` and `maxDiskAge` used for disk cache. + + @param cachePath Full path of a directory in which the cache will write data. + Once initialized you should not read and write to this directory. + @param config The cache config to be used to create the cache. + + @return A new cache object, or nil if an error occurs. + */ +- (nullable instancetype)initWithCachePath:(nonnull NSString *)cachePath config:(nonnull BU_SDImageCacheConfig *)config; + +/** + Returns a boolean value that indicates whether a given key is in cache. + This method may blocks the calling thread until file read finished. + + @param key A string identifying the data. If nil, just return NO. + @return Whether the key is in cache. + */ +- (BOOL)containsDataForKey:(nonnull NSString *)key; + +/** + Returns the data associated with a given key. + This method may blocks the calling thread until file read finished. + + @param key A string identifying the data. If nil, just return nil. + @return The value associated with key, or nil if no value is associated with key. + */ +- (nullable NSData *)dataForKey:(nonnull NSString *)key; + +/** + Sets the value of the specified key in the cache. + This method may blocks the calling thread until file write finished. + + @param data The data to be stored in the cache. + @param key The key with which to associate the value. If nil, this method has no effect. + */ +- (void)setData:(nullable NSData *)data forKey:(nonnull NSString *)key; + +/** + Removes the value of the specified key in the cache. + This method may blocks the calling thread until file delete finished. + + @param key The key identifying the value to be removed. If nil, this method has no effect. + */ +- (void)removeDataForKey:(nonnull NSString *)key; + +/** + Empties the cache. + This method may blocks the calling thread until file delete finished. + */ +- (void)removeAllData; + +/** + Removes the expired data from the cache. You can choose the data to remove base on `ageLimit`, `countLimit` and `sizeLimit` options. + */ +- (void)removeExpiredData; + +/** + The cache path for key + + @param key A string identifying the value + @return The cache path for key. Or nil if the key can not associate to a path + */ +- (nullable NSString *)cachePathForKey:(nonnull NSString *)key; + +/** + Returns the number of data in this cache. + This method may blocks the calling thread until file read finished. + + @return The total data count. + */ +- (NSUInteger)totalCount; + +/** + Returns the total size (in bytes) of data in this cache. + This method may blocks the calling thread until file read finished. + + @return The total data size in bytes. + */ +- (NSUInteger)totalSize; + +@end + +/** + The built-in disk cache. + */ +@interface BU_SDDiskCache : NSObject +/** + Cache Config object - storing all kind of settings. + */ +@property (nonatomic, strong, readonly, nonnull) BU_SDImageCacheConfig *config; + +- (nonnull instancetype)init NS_UNAVAILABLE; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDDiskCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDDiskCache.h.meta new file mode 100644 index 00000000..39751a38 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDDiskCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 423adce9f80d84121884472f96c9ebb8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoder.h new file mode 100755 index 00000000..2aa20a72 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoder.h @@ -0,0 +1,19 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder using ImageIO that supports APNG encoding/decoding + */ +@interface BU_SDImageAPNGCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageAPNGCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoder.h.meta new file mode 100644 index 00000000..d9d17772 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: af90718548cd54892a6ffdf263d110a0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoderInternal.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoderInternal.h new file mode 100755 index 00000000..56ac0661 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoderInternal.h @@ -0,0 +1,17 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageAPNGCoder.h" + +@interface BU_SDImageAPNGCoder () + +- (float)sdBu_frameDurationAtIndex:(NSUInteger)index source:(nonnull CGImageSourceRef)source; +- (NSUInteger)sdBu_imageLoopCountWithSource:(nonnull CGImageSourceRef)source; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoderInternal.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoderInternal.h.meta new file mode 100644 index 00000000..bf29c4a2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAPNGCoderInternal.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 424cb2ef594a54a6098ae25db38966ca +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAssetManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAssetManager.h new file mode 100755 index 00000000..9ad4e2ff --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAssetManager.h @@ -0,0 +1,23 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +// Apple parse the Asset Catalog compiled file(`Assets.car`) by CoreUI.framework, however it's a private framework and there are no other ways to directly get the data. So we just process the normal bundle files :) + +@interface BU_SDImageAssetManager : NSObject + +@property (nonatomic, strong, nonnull) NSMapTable *imageTable; + ++ (nonnull instancetype)sharedAssetManager; +- (nullable NSString *)getPathForName:(nonnull NSString *)name bundle:(nonnull NSBundle *)bundle preferredScale:(nonnull CGFloat *)scale; +- (nullable UIImage *)imageForName:(nonnull NSString *)name; +- (void)storeImage:(nonnull UIImage *)image forName:(nonnull NSString *)name; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAssetManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAssetManager.h.meta new file mode 100644 index 00000000..b424232b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageAssetManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4443acb94d52348d9962b88927a85830 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCache.h new file mode 100755 index 00000000..9afc696b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCache.h @@ -0,0 +1,369 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDImageCacheConfig.h" +#import "BU_SDImageCacheDefine.h" +#import "BU_SDMemoryCache.h" +#import "BU_SDDiskCache.h" + +/// Image Cache Options +typedef NS_OPTIONS(NSUInteger, BU_SDImageCacheOptions) { + /** + * By default, we do not query image data when the image is already cached in memory. This mask can force to query image data at the same time. However, this query is asynchronously unless you specify `SDImageCacheQueryMemoryDataSync` + */ + BU_SDImageCacheQueryMemoryData = 1 << 0, + /** + * By default, when you only specify `SDImageCacheQueryMemoryData`, we query the memory image data asynchronously. Combined this mask as well to query the memory image data synchronously. + */ + BU_SDImageCacheQueryMemoryDataSync = 1 << 1, + /** + * By default, when the memory cache miss, we query the disk cache asynchronously. This mask can force to query disk cache (when memory cache miss) synchronously. + @note These 3 query options can be combined together. For the full list about these masks combination, see wiki page. + */ + BU_SDImageCacheQueryDiskDataSync = 1 << 2, + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + */ + BU_SDImageCacheScaleDownLargeImages = 1 << 3, + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + BU_SDImageCacheAvoidDecodeImage = 1 << 4, + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + BU_SDImageCacheDecodeFirstFrameOnly = 1 << 5, + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. This flag actually trigger `preloadAllAnimatedImageFrames = YES` after image load from disk cache + */ + BU_SDImageCachePreloadAllFrames = 1 << 6, + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution. + * Using this option, can ensure we always produce image with your provided class. If failed, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDImageCacheDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + BU_SDImageCacheMatchAnimatedImageClass = 1 << 7, +}; + +/** + * SDImageCache maintains a memory cache and a disk cache. Disk cache write operations are performed + * asynchronous so it doesn’t add unnecessary latency to the UI. + */ +@interface BU_SDImageCache : NSObject + +#pragma mark - Properties + +/** + * Cache Config object - storing all kind of settings. + * The property is copy so change of currrent config will not accidentally affect other cache's config. + */ +@property (nonatomic, copy, nonnull, readonly) BU_SDImageCacheConfig *config; + +/** + * The memory cache implementation object used for current image cache. + * By default we use `SDMemoryCache` class, you can also use this to call your own implementation class method. + * @note To customize this class, check `SDImageCacheConfig.memoryCacheClass` property. + */ +@property (nonatomic, strong, readonly, nonnull) id memoryCache; + +/** + * The disk cache implementation object used for current image cache. + * By default we use `SDMemoryCache` class, you can also use this to call your own implementation class method. + * @note To customize this class, check `SDImageCacheConfig.diskCacheClass` property. + * @warning When calling method about read/write in disk cache, be sure to either make your disk cache implementation IO-safe or using the same access queue to avoid issues. + */ +@property (nonatomic, strong, readonly, nonnull) id diskCache; + +/** + * The disk cache's root path + */ +@property (nonatomic, copy, nonnull, readonly) NSString *diskCachePath; + +/** + * The additional disk cache path to check if the query from disk cache not exist; + * The `key` param is the image cache key. The returned file path will be used to load the disk cache. If return nil, ignore it. + * Useful if you want to bundle pre-loaded images with your app + */ +@property (nonatomic, copy, nullable) SDImageCacheAdditionalCachePathBlock additionalCachePathBlock; + +#pragma mark - Singleton and initialization + +/** + * Returns global shared cache instance + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCache *sharedImageCache; + +/** + * Init a new cache store with a specific namespace + * + * @param ns The namespace to use for this cache store + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns; + +/** + * Init a new cache store with a specific namespace and directory. + * If you don't provide the disk cache directory, we will use the User Cache directory with prefix (~/Library/Caches/com.hackemist.SDImageCache/). + * + * @param ns The namespace to use for this cache store + * @param directory Directory to cache disk images in + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns + diskCacheDirectory:(nullable NSString *)directory; + +/** + * Init a new cache store with a specific namespace, directory and file manager + * The final disk cache directory should looks like ($directory/$namespace). And the default config of shared cache, should result in (~/Library/Caches/com.hackemist.SDImageCache/default/) + * + * @param ns The namespace to use for this cache store + * @param directory Directory to cache disk images in + * @param config The cache config to be used to create the cache. You can provide custom memory cache or disk cache class in the cache config + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns + diskCacheDirectory:(nullable NSString *)directory + config:(nullable BU_SDImageCacheConfig *)config NS_DESIGNATED_INITIALIZER; + +#pragma mark - Cache paths + +/** + Get the cache path for a certain key + + @param key The unique image cache key + @return The cache path. You can check `lastPathComponent` to grab the file name. + */ +- (nullable NSString *)cachePathForKey:(nullable NSString *)key; + +#pragma mark - Store Ops + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + * @param completionBlock A block executed after the operation is finished + */ +//- (void)storeImage:(nullable UIImage *)image +// forKey:(nullable NSString *)key +// completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously + * @param completionBlock A block executed after the operation is finished + */ +//- (void)storeImage:(nullable UIImage *)image +// forKey:(nullable NSString *)key +// toDisk:(BOOL)toDisk +// completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param imageData The image data as returned by the server, this representation will be used for disk storage + * instead of converting the given image object into a storable/compressed image format in order + * to save quality and CPU + * @param key The unique image cache key, usually it's image absolute URL + * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously + * @param completionBlock A block executed after the operation is finished + */ +- (void)storeImage:(nullable UIImage *)image + imageData:(nullable NSData *)imageData + forKey:(nullable NSString *)key + toDisk:(BOOL)toDisk + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Synchronously store image into memory cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + */ +//- (void)storeImageToMemory:(nullable UIImage*)image +// forKey:(nullable NSString *)key; + +/** + * Synchronously store image data into disk cache at the given key. + * + * @param imageData The image data to store + * @param key The unique image cache key, usually it's image absolute URL + */ +//- (void)storeImageDataToDisk:(nullable NSData *)imageData +// forKey:(nullable NSString *)key; + + +#pragma mark - Contains and Check Ops + +/** + * Asynchronously check if image exists in disk cache already (does not load the image) + * + * @param key the key describing the url + * @param completionBlock the block to be executed when the check is done. + * @note the completion block will be always executed on the main queue + */ +- (void)diskImageExistsWithKey:(nullable NSString *)key completion:(nullable SDImageCacheCheckCompletionBlock)completionBlock; + +/** + * Synchronously check if image data exists in disk cache already (does not load the image) + * + * @param key the key describing the url + */ +//- (BOOL)diskImageDataExistsWithKey:(nullable NSString *)key; + +#pragma mark - Query and Retrieve Ops + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * Query the image data for the given key synchronously. + * + * @param key The unique key used to store the wanted image + * @return The image data for the given key, or nil if not found. + */ +- (nullable NSData *)diskImageDataForKey:(nullable NSString *)key; + +/** + * Operation that queries the cache asynchronously and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +//- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param options A mask to specify options to use for this cache query + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(BU_SDImageCacheOptions)options done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param options A mask to specify options to use for this cache query + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(BU_SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Synchronously query the memory cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromMemoryCacheForKey:(nullable NSString *)key; + +/** + * Synchronously query the disk cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key; + +/** + * Synchronously query the cache (memory and or disk) after checking the memory cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key; + +#pragma mark - Remove Ops + +/** + * Asynchronously remove the image from memory and disk cache + * + * @param key The unique image cache key + * @param completion A block that should be executed after the image has been removed (optional) + */ +//- (void)removeImageForKey:(nullable NSString *)key withCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + * Asynchronously remove the image from memory and optionally disk cache + * + * @param key The unique image cache key + * @param fromDisk Also remove cache entry from disk if YES. If NO, the completion block is called synchronously + * @param completion A block that should be executed after the image has been removed (optional) + */ +- (void)removeImageForKey:(nullable NSString *)key fromDisk:(BOOL)fromDisk withCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + Synchronously remove the image from memory cache. + + @param key The unique image cache key + */ +//- (void)removeImageFromMemoryForKey:(nullable NSString *)key; + +/** + Synchronously remove the image from disk cache. + + @param key The unique image cache key + */ +//- (void)removeImageFromDiskForKey:(nullable NSString *)key; + +#pragma mark - Cache clean Ops + +/** + * Synchronously Clear all memory cached images + */ +- (void)clearMemory; + +/** + * Asynchronously clear all disk cached images. Non-blocking method - returns immediately. + * @param completion A block that should be executed after cache expiration completes (optional) + */ +- (void)clearDiskOnCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + * Asynchronously remove all expired cached image from disk. Non-blocking method - returns immediately. + * @param completionBlock A block that should be executed after cache expiration completes (optional) + */ +- (void)deleteOldFilesWithCompletionBlock:(nullable SDWebImageNoParamsBlock)completionBlock; + +#pragma mark - Cache Info + +/** + * Get the total bytes size of images in the disk cache + */ +- (NSUInteger)totalDiskSize; + +/** + * Get the number of images in the disk cache + */ +- (NSUInteger)totalDiskCount; + +/** + * Asynchronously calculate the disk cache's size. + */ +//- (void)calculateSizeWithCompletionBlock:(nullable SDImageCacheCalculateSizeBlock)completionBlock; + +@end + +/** + * SDImageCache is the built-in image cache implementation for web image manager. It adopts `SDImageCache` protocol to provide the function for web image manager to use for image loading process. + */ +@interface BU_SDImageCache (BU_SDImageCache) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCache.h.meta new file mode 100644 index 00000000..a7cf2479 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5aa760428d0cd40288f1c94d63ac2685 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheConfig.h new file mode 100755 index 00000000..f1f0bb4b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheConfig.h @@ -0,0 +1,129 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/// Image Cache Expire Type +typedef NS_ENUM(NSUInteger, BU_SDImageCacheConfigExpireType) { + /** + * When the image is accessed it will update this value + */ + BU_SDImageCacheConfigExpireTypeAccessDate, + /** + * The image was obtained from the disk cache (Default) + */ + BU_SDImageCacheConfigExpireTypeModificationDate +}; + +/** + The class contains all the config for image cache + @note This class conform to NSCopying, make sure to add the property in `copyWithZone:` as well. + */ +@interface BU_SDImageCacheConfig : NSObject + +/** + Gets the default cache config used for shared instance or initialization when it does not provide any cache config. Such as `SDImageCache.sharedImageCache`. + @note You can modify the property on default cache config, which can be used for later created cache instance. The already created cache instance does not get affected. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCacheConfig *defaultCacheConfig; + +/** + * Whether or not to disable iCloud backup + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldDisableiCloud; + +/** + * Whether or not to use memory cache + * @note When the memory cache is disabled, the weak memory cache will also be disabled. + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldCacheImagesInMemory; + +/* + * The option to control weak memory cache for images. When enable, `SDImageCache`'s memory cache will use a weak maptable to store the image at the same time when it stored to memory, and get removed at the same time. + * However when memory warning is triggered, since the weak maptable does not hold a strong reference to image instance, even when the memory cache itself is purged, some images which are held strongly by UIImageViews or other live instances can be recovered again, to avoid later re-query from disk cache or network. This may be helpful for the case, for example, when app enter background and memory is purged, cause cell flashing after re-enter foreground. + * Defautls to YES. You can change this option dynamically. + */ +@property (assign, nonatomic) BOOL shouldUseWeakMemoryCache; + +/** + * Whether or not to remove the expired disk data when application entering the background. (Not works for macOS) + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldRemoveExpiredDataWhenEnterBackground; + +/** + * The reading options while reading cache from disk. + * Defaults to 0. You can set this to `NSDataReadingMappedIfSafe` to improve performance. + */ +@property (assign, nonatomic) NSDataReadingOptions diskCacheReadingOptions; + +/** + * The writing options while writing cache to disk. + * Defaults to `NSDataWritingAtomic`. You can set this to `NSDataWritingWithoutOverwriting` to prevent overwriting an existing file. + */ +@property (assign, nonatomic) NSDataWritingOptions diskCacheWritingOptions; + +/** + * The maximum length of time to keep an image in the disk cache, in seconds. + * Setting this to a negative value means no expiring. + * Setting this to zero means that all cached files would be removed when do expiration check. + * Defaults to 1 week. + */ +@property (assign, nonatomic) NSTimeInterval maxDiskAge; + +/** + * The maximum size of the disk cache, in bytes. + * Defaults to 0. Which means there is no cache size limit. + */ +@property (assign, nonatomic) NSUInteger maxDiskSize; + +/** + * The maximum "total cost" of the in-memory image cache. The cost function is the bytes size held in memory. + * @note The memory cost is bytes size in memory, but not simple pixels count. For common ARGB8888 image, one pixel is 4 bytes (32 bits). + * Defaults to 0. Which means there is no memory cost limit. + */ +@property (assign, nonatomic) NSUInteger maxMemoryCost; + +/** + * The maximum number of objects in-memory image cache should hold. + * Defaults to 0. Which means there is no memory count limit. + */ +@property (assign, nonatomic) NSUInteger maxMemoryCount; + +/* + * The attribute which the clear cache will be checked against when clearing the disk cache + * Default is Modified Date + */ +@property (assign, nonatomic) BU_SDImageCacheConfigExpireType diskCacheExpireType; + +/** + * The custom file manager for disk cache. Pass nil to let disk cache choose the proper file manager. + * Defaults to nil. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + * @note Since `NSFileManager` does not support `NSCopying`. We just pass this by reference during copying. So it's not recommend to set this value on `defaultCacheConfig`. + */ +@property (strong, nonatomic, nullable) NSFileManager *fileManager; + +/** + * The custom memory cache class. Provided class instance must conform to `SDMemoryCache` protocol to allow usage. + * Defaults to built-in `SDMemoryCache` class. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + */ +@property (assign, nonatomic, nonnull) Class memoryCacheClass; + +/** + * The custom disk cache class. Provided class instance must conform to `SDDiskCache` protocol to allow usage. + * Defaults to built-in `SDDiskCache` class. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + */ +@property (assign ,nonatomic, nonnull) Class diskCacheClass; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheConfig.h.meta new file mode 100644 index 00000000..fb09bd4c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d39461b60d4b14126bf02f44629f8601 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheDefine.h new file mode 100755 index 00000000..55a75880 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheDefine.h @@ -0,0 +1,125 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDWebImageDefine.h" + +/// Image Cache Type +typedef NS_ENUM(NSInteger, BU_SDImageCacheType) { + /** + * For query and contains op in response, means the image isn't available in the image cache + * For op in request, this type is not available and take no effect. + */ + BU_SDImageCacheTypeNone, + /** + * For query and contains op in response, means the image was obtained from the disk cache. + * For op in request, means process only disk cache. + */ + BU_SDImageCacheTypeDisk, + /** + * For query and contains op in response, means the image was obtained from the memory cache. + * For op in request, means process only memory cache. + */ + BU_SDImageCacheTypeMemory, + /** + * For query and contains op in response, this type is not available and take no effect. + * For op in request, means process both memory cache and disk cache. + */ + BU_SDImageCacheTypeAll +}; + +typedef void(^SDImageCacheCheckCompletionBlock)(BOOL isInCache); +typedef void(^SDImageCacheCalculateSizeBlock)(NSUInteger fileCount, NSUInteger totalSize); +typedef NSString * _Nullable (^SDImageCacheAdditionalCachePathBlock)(NSString * _Nonnull key); +typedef void(^BU_SDImageCacheQueryCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, BU_SDImageCacheType cacheType); +typedef void(^BU_SDImageCacheContainsCompletionBlock)(BU_SDImageCacheType containsCacheType); + +/** + This is the built-in decoding process for image query from cache. + @note If you want to implement your custom loader with `queryImageForKey:options:context:completion:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the cache. Should not be nil + @param cacheKey The image cache key from the input. Should not be nil + @param options The options arg from the input + @param context The context arg from the input + @return The decoded image for current image data query from cache + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSString * _Nonnull cacheKey, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + This is the image cache protocol to provide custom image cache for `SDWebImageManager`. + Though the best practice to custom image cache, is to write your own class which conform `SDMemoryCache` or `SDDiskCache` protocol for `SDImageCache` class (See more on `SDImageCacheConfig.memoryCacheClass & SDImageCacheConfig.diskCacheClass`). + However, if your own cache implementation contains more advanced feature beyond `SDImageCache` itself, you can consider to provide this instead. For example, you can even use a cache manager like `SDImageCachesManager` to register multiple caches. + */ +@protocol BU_SDImageCache + +@required +/** + Query the cached image from image cache for given key. The operation can be used to cancel the query. + If image is cached in memory, completion is called synchronously, else aynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`) + + @param key The image cache key + @param options A mask to specify options to use for this query + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @param completionBlock The completion block. Will not get called if the operation is cancelled + @return The operation for this query + */ +- (nullable id)queryImageForKey:(nullable NSString *)key + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + completion:(nullable BU_SDImageCacheQueryCompletionBlock)completionBlock; + +/** + Store the image into image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param image The image to store + @param imageData The image data to be used for disk storage + @param key The image cache key + @param cacheType The image store op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)storeImage:(nullable UIImage *)image + imageData:(nullable NSData *)imageData + forKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + Remove the image from image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param key The image cache key + @param cacheType The image remove op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)removeImageForKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + Check if image cache contains the image for the given key (does not load the image). If image is cached in memory, completion is called synchronously, else aynchronously. + + @param key The image cache key + @param cacheType The image contains op cache type + @param completionBlock A block executed after the operation is finished. + */ +- (void)containsImageForKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable BU_SDImageCacheContainsCompletionBlock)completionBlock; + +/** + Clear all the cached images for image cache. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param cacheType The image clear op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)clearWithCacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheDefine.h.meta new file mode 100644 index 00000000..9f75ba98 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCacheDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c161968c8a2f94cb98a97f86e266aa05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManager.h new file mode 100755 index 00000000..c7612392 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManager.h @@ -0,0 +1,81 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCacheDefine.h" + +/// Policy for cache operation +typedef NS_ENUM(NSUInteger, SDImageCachesManagerOperationPolicy) { + SDImageCachesManagerOperationPolicySerial, // process all caches serially (from the highest priority to the lowest priority cache by order) + SDImageCachesManagerOperationPolicyConcurrent, // process all caches concurrently + SDImageCachesManagerOperationPolicyHighestOnly, // process the highest priority cache only + SDImageCachesManagerOperationPolicyLowestOnly // process the lowest priority cache only +}; + +/** + A caches manager to manage multiple caches. + */ +@interface BU_SDImageCachesManager : NSObject + +/** + Returns the global shared caches manager instance. By default we will set [`SDImageCache.sharedImageCache`] into the caches array. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCachesManager *sharedManager; + +// These are op policy for cache manager. + +/** + Operation policy for query op. + Defaults to `Serial`, means query all caches serially (one completion called then next begin) until one cache query success (`image` != nil). + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy queryOperationPolicy; + +/** + Operation policy for store op. + Defaults to `HighestOnly`, means store to the highest priority cache only. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy storeOperationPolicy; + +/** + Operation policy for remove op. + Defaults to `Concurrent`, means remove all caches concurrently. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy removeOperationPolicy; + +/** + Operation policy for contains op. + Defaults to `Serial`, means check all caches serially (one completion called then next begin) until one cache check success (`containsCacheType` != None). + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy containsOperationPolicy; + +/** + Operation policy for clear op. + Defaults to `Concurrent`, means clear all caches concurrently. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy clearOperationPolicy; + +/** + All caches in caches manager. The caches array is a priority queue, which means the later added cache will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray> *caches; + +/** + Add a new cache to the end of caches array. Which has the highest priority. + + @param cache cache + */ +//- (void)addCache:(nonnull id)cache; + +/** + Remove a cache in the caches array. + + @param cache cache + */ +//- (void)removeCache:(nonnull id)cache; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManager.h.meta new file mode 100644 index 00000000..ca84cb1f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1189c84abeef94c5fa7fb10b7a17a7ab +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManagerOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManagerOperation.h new file mode 100755 index 00000000..0ba9d3c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManagerOperation.h @@ -0,0 +1,21 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +// This is used for operation management, but not for operation queue execute +@interface BU_SDImageCachesManagerOperation : NSOperation + +@property (nonatomic, assign, readonly) NSUInteger pendingCount; + +- (void)beginWithTotalCount:(NSUInteger)totalCount; +- (void)completeOne; +- (void)done; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManagerOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManagerOperation.h.meta new file mode 100644 index 00000000..4183adee --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCachesManagerOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 41eeecf0d36a14877aea901cff2c8f33 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoder.h new file mode 100755 index 00000000..987845c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoder.h @@ -0,0 +1,234 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +typedef NSString * SDImageCoderOption NS_STRING_ENUM; +typedef NSDictionary SDImageCoderOptions; +typedef NSMutableDictionary SDImageCoderMutableOptions; + +#pragma mark - Coder Options +// These options are for image decoding +/** + A Boolean value indicating whether to decode the first frame only for animated image during decoding. (NSNumber). If not provide, decode animated image if need. + @note works for `SDImageCoder`. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeFirstFrameOnly; +/** + A CGFloat value which is greater than or equal to 1.0. This value specify the image scale factor for decoding. If not provide, use 1.0. (NSNumber) + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeScaleFactor; + +// These options are for image encoding +/** + A Boolean value indicating whether to encode the first frame only for animated image during encoding. (NSNumber). If not provide, encode animated image if need. + @note works for `SDImageCoder`. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderEncodeFirstFrameOnly; +/** + A double value between 0.0-1.0 indicating the encode compression quality to produce the image data. 1.0 resulting in no compression and 0.0 resulting in the maximum compression possible. If not provide, use 1.0. (NSNumber) + @note works for `SDImageCoder` + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderEncodeCompressionQuality; + +/** + A SDWebImageContext object which hold the original context options from top-level API. (SDWebImageContext) + This option is ignored for all built-in coders and take no effect. + But this may be useful for some custom coders, because some business logic may dependent on things other than image or image data inforamtion only. + See `SDWebImageContext` for more detailed information. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderWebImageContext; + +/** + A Boolean value indicating whether to keep the original aspect ratio when generating thumbnail images (or bitmap images from vector format). + Defaults to YES. + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodePreserveAspectRatio; + +/** + A CGSize value indicating whether or not to generate the thumbnail images (or bitmap images from vector format). When this value is provided, the decoder will generate a thumbnail image which pixel size is smaller than or equal to (depends the `.preserveAspectRatio`) the value size. + Defaults to CGSizeZero, which means no thumbnail generation at all. + @note Supports for animated image as well. + @note When you pass `.preserveAspectRatio == NO`, the thumbnail image is stretched to match each dimension. When `.preserveAspectRatio == YES`, the thumbnail image's width is limited to pixel size's width, the thumbnail image's height is limited to pixel size's height. For common cases, you can just pass a square size to limit both. + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeThumbnailPixelSize; + +#pragma mark - Coder +/** + This is the image coder protocol to provide custom image decoding/encoding. + These methods are all required to implement. + @note Pay attention that these methods are not called from main queue. + */ +@protocol BU_SDImageCoder + +@required +#pragma mark - Decoding +/** + Returns YES if this coder can decode some data. Otherwise, the data should be passed to another coder. + + @param data The image data so we can look at it + @return YES if this coder can decode the data, NO otherwise + */ +- (BOOL)canDecodeFromData:(nullable NSData *)data; + +/** + Decode the image data to image. + @note This protocol may supports decode animated image frames. You can use `+[SDImageCoderHelper animatedImageWithFrames:]` to produce an animated image with frames. + + @param data The image data to be decoded + @param options A dictionary containing any decoding options. Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for image. Pass @{BU_SDImageCoderDecodeFirstFrameOnly: @(YES)} to decode the first frame only. + @return The decoded image from data + */ +- (nullable UIImage *)decodedImageWithData:(nullable NSData *)data + options:(nullable SDImageCoderOptions *)options; + +#pragma mark - Encoding + +/** + Returns YES if this coder can encode some image. Otherwise, it should be passed to another coder. + For custom coder which introduce new image format, you'd better define a new `BU_SDImageFormat` using like this. If you're creating public coder plugin for new image format, also update `https://github.com/rs/SDWebImage/wiki/Coder-Plugin-List` to avoid same value been defined twice. + * @code + static const BU_SDImageFormat BU_SDImageFormatHEIF = 10; + * @endcode + + @param format The image format + @return YES if this coder can encode the image, NO otherwise + */ +- (BOOL)canEncodeToFormat:(BU_SDImageFormat)format NS_SWIFT_NAME(canEncode(to:)); + +/** + Encode the image to image data. + @note This protocol may supports encode animated image frames. You can use `+[SDImageCoderHelper framesFromAnimatedImage:]` to assemble an animated image with frames. + + @param image The image to be encoded + @param format The image format to encode, you should note `BU_SDImageFormatUndefined` format is also possible + @param options A dictionary containing any encoding options. Pass @{BU_SDImageCoderEncodeCompressionQuality: @(1)} to specify compression quality. + @return The encoded image data + */ +- (nullable NSData *)encodedDataWithImage:(nullable UIImage *)image + format:(BU_SDImageFormat)format + options:(nullable SDImageCoderOptions *)options; + +@end + +#pragma mark - Progressive Coder +/** + This is the image coder protocol to provide custom progressive image decoding. + These methods are all required to implement. + @note Pay attention that these methods are not called from main queue. + */ +@protocol BU_SDProgressiveImageCoder + +@required +/** + Returns YES if this coder can incremental decode some data. Otherwise, it should be passed to another coder. + + @param data The image data so we can look at it + @return YES if this coder can decode the data, NO otherwise + */ +- (BOOL)canIncrementalDecodeFromData:(nullable NSData *)data; + +/** + Because incremental decoding need to keep the decoded context, we will alloc a new instance with the same class for each download operation to avoid conflicts + This init method should not return nil + + @param options A dictionary containing any progressive decoding options (instance-level). Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for progressive animated image (each frames should use the same scale). + @return A new instance to do incremental decoding for the specify image format + */ +- (nonnull instancetype)initIncrementalWithOptions:(nullable SDImageCoderOptions *)options; + +/** + Update the incremental decoding when new image data available + + @param data The image data has been downloaded so far + @param finished Whether the download has finished + */ +- (void)updateIncrementalData:(nullable NSData *)data finished:(BOOL)finished; + +/** + Incremental decode the current image data to image. + @note Due to the performance issue for progressive decoding and the integration for image view. This method may only return the first frame image even if the image data is animated image. If you want progressive animated image decoding, conform to `` protocol as well and use `animatedImageFrameAtIndex:` instead. + + @param options A dictionary containing any progressive decoding options. Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for progressive image + @return The decoded image from current data + */ +- (nullable UIImage *)incrementalDecodedImageWithOptions:(nullable SDImageCoderOptions *)options; + +@end + +#pragma mark - Animated Image Provider +/** + This is the animated image protocol to provide the basic function for animated image rendering. It's adopted by `BU_SDAnimatedImage` and `` + */ +@protocol BU_SDAnimatedImageProvider + +@required +/** + The original animated image data for current image. If current image is not an animated format, return nil. + We may use this method to grab back the original image data if need, such as NSCoding or compare. + + @return The animated image data + */ +@property (nonatomic, copy, readonly, nullable) NSData *animatedImageData; + +/** + Total animated frame count. + If the frame count is less than 1, then the methods below will be ignored. + + @return Total animated frame count. + */ +@property (nonatomic, assign, readonly) NSUInteger animatedImageFrameCount; +/** + Animation loop count, 0 means infinite looping. + + @return Animation loop count + */ +@property (nonatomic, assign, readonly) NSUInteger animatedImageLoopCount; +/** + Returns the frame image from a specified index. + @note The index maybe randomly if one image was set to different imageViews, keep it re-entrant. (It's not recommend to store the images into array because it's memory consuming) + + @param index Frame index (zero based). + @return Frame's image + */ +- (nullable UIImage *)animatedImageFrameAtIndex:(NSUInteger)index; +/** + Returns the frames's duration from a specified index. + @note The index maybe randomly if one image was set to different imageViews, keep it re-entrant. (It's recommend to store the durations into array because it's not memory-consuming) + + @param index Frame index (zero based). + @return Frame's duration + */ +- (NSTimeInterval)animatedImageDurationAtIndex:(NSUInteger)index; + +@end + +#pragma mark - Animated Coder +/** + This is the animated image coder protocol for custom animated image class like `BU_SDAnimatedImage`. Through it inherit from `SDImageCoder`. We currentlly only use the method `canDecodeFromData:` to detect the proper coder for specify animated image format. + */ +@protocol BU_SDAnimatedImageCoder + +@required +/** + Because animated image coder should keep the original data, we will alloc a new instance with the same class for the specify animated image data + The init method should return nil if it can't decode the specify animated image data to produce any frame. + After the instance created, we may call methods in `BU_SDAnimatedImageProvider` to produce animated image frame. + + @param data The animated image data to be decode + @param options A dictionary containing any animated decoding options (instance-level). Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for animated image (each frames should use the same scale). + @return A new instance to do animated decoding for specify image data + */ +- (nullable instancetype)initWithAnimatedImageData:(nullable NSData *)data options:(nullable SDImageCoderOptions *)options; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoder.h.meta new file mode 100644 index 00000000..f2f394ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7700d83b1cbd842af91de23191d89d40 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoderHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoderHelper.h new file mode 100755 index 00000000..9534d7a4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoderHelper.h @@ -0,0 +1,110 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageFrame.h" + +/** + Provide some common helper methods for building the image decoder/encoder. + */ +@interface BU_SDImageCoderHelper : NSObject + +/** + Return an animated image with frames array. + For UIKit, this will apply the patch and then create animated UIImage. The patch is because that `+[UIImage animatedImageWithImages:duration:]` just use the average of duration for each image. So it will not work if different frame has different duration. Therefore we repeat the specify frame for specify times to let it work. + For AppKit, NSImage does not support animates other than GIF. This will try to encode the frames to GIF format and then create an animated NSImage for rendering. Attention the animated image may loss some detail if the input frames contain full alpha channel because GIF only supports 1 bit alpha channel. (For 1 pixel, either transparent or not) + + @param frames The frames array. If no frames or frames is empty, return nil + @return A animated image for rendering on UIImageView(UIKit) or NSImageView(AppKit) + */ ++ (UIImage * _Nullable)animatedImageWithFrames:(NSArray * _Nullable)frames; + +/** + Return frames array from an animated image. + For UIKit, this will unapply the patch for the description above and then create frames array. This will also work for normal animated UIImage. + For AppKit, NSImage does not support animates other than GIF. This will try to decode the GIF imageRep and then create frames array. + + @param animatedImage A animated image. If it's not animated, return nil + @return The frames array + */ ++ (NSArray * _Nullable)framesFromAnimatedImage:(UIImage * _Nullable)animatedImage NS_SWIFT_NAME(frames(from:)); + +/** + Return the shared device-dependent RGB color space. This follows The Get Rule. + On iOS, it's created with deviceRGB (if available, use sRGB). + On macOS, it's from the screen colorspace (if failed, use deviceRGB) + Because it's shared, you should not retain or release this object. + + @return The device-dependent RGB color space + */ ++ (CGColorSpaceRef _Nonnull)colorSpaceGetDeviceRGB CF_RETURNS_NOT_RETAINED; + +/** + Check whether CGImage contains alpha channel. + + @param cgImage The CGImage + @return Return YES if CGImage contains alpha channel, otherwise return NO + */ ++ (BOOL)CGImageContainsAlpha:(_Nonnull CGImageRef)cgImage; + +/** + Create a decoded CGImage by the provided CGImage. This follows The Create Rule and you are response to call release after usage. + It will detect whether image contains alpha channel, then create a new bitmap context with the same size of image, and draw it. This can ensure that the image do not need extra decoding after been set to the imageView. + @note This actually call `CGImageCreateDecoded:orientation:` with the Up orientation. + + @param cgImage The CGImage + @return A new created decoded image + */ ++ (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage CF_RETURNS_RETAINED; + +/** + Create a decoded CGImage by the provided CGImage and orientation. This follows The Create Rule and you are response to call release after usage. + It will detect whether image contains alpha channel, then create a new bitmap context with the same size of image, and draw it. This can ensure that the image do not need extra decoding after been set to the imageView. + + @param cgImage The CGImage + @param orientation The EXIF image orientation. + @return A new created decoded image + */ ++ (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage orientation:(CGImagePropertyOrientation)orientation CF_RETURNS_RETAINED; + +/** + Return the decoded image by the provided image. This one unlike `CGImageCreateDecoded:`, will not decode the image which contains alpha channel or animated image + @param image The image to be decoded + @return The decoded image + */ ++ (UIImage * _Nullable)decodedImageWithImage:(UIImage * _Nullable)image; + +/** + Return the decoded and probably scaled down image by the provided image. If the image is large than the limit size, will try to scale down. Or just works as `decodedImageWithImage:` + + @param image The image to be decoded and scaled down + @param bytes The limit bytes size. Provide 0 to use the build-in limit. + @return The decoded and probably scaled down image + */ ++ (UIImage * _Nullable)decodedAndScaledDownImageWithImage:(UIImage * _Nullable)image limitBytes:(NSUInteger)bytes; + +#if SD_UIKIT || SD_WATCH +/** + Convert an EXIF image orientation to an iOS one. + + @param exifOrientation EXIF orientation + @return iOS orientation + */ ++ (UIImageOrientation)imageOrientationFromEXIFOrientation:(CGImagePropertyOrientation)exifOrientation NS_SWIFT_NAME(imageOrientation(from:)); + +/** + Convert an iOS orientation to an EXIF image orientation. + + @param imageOrientation iOS orientation + @return EXIF orientation + */ ++ (CGImagePropertyOrientation)exifOrientationFromImageOrientation:(UIImageOrientation)imageOrientation; +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoderHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoderHelper.h.meta new file mode 100644 index 00000000..abb03e98 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCoderHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9af797ef468884cb5b7cdbecee48022d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCodersManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCodersManager.h new file mode 100755 index 00000000..703ae3e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCodersManager.h @@ -0,0 +1,58 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Global object holding the array of coders, so that we avoid passing them from object to object. + Uses a priority queue behind scenes, which means the latest added coders have the highest priority. + This is done so when encoding/decoding something, we go through the list and ask each coder if they can handle the current data. + That way, users can add their custom coders while preserving our existing prebuilt ones + + Note: the `coders` getter will return the coders in their reversed order + Example: + - by default we internally set coders = `IOCoder`, `GIFCoder`, `APNGCoder` + - calling `coders` will return `@[IOCoder, GIFCoder, APNGCoder]` + - call `[addCoder:[MyCrazyCoder new]]` + - calling `coders` now returns `@[IOCoder, GIFCoder, APNGCoder, MyCrazyCoder]` + + Coders + ------ + A coder must conform to the `SDImageCoder` protocol or even to `SDProgressiveImageCoder` if it supports progressive decoding + Conformance is important because that way, they will implement `canDecodeFromData` or `canEncodeToFormat` + Those methods are called on each coder in the array (using the priority order) until one of them returns YES. + That means that coder can decode that data / encode to that format + */ +@interface BU_SDImageCodersManager : NSObject + +/** + Returns the global shared coders manager instance. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCodersManager *sharedManager; + +/** + All coders in coders manager. The coders array is a priority queue, which means the later added coder will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray> *coders; + +/** + Add a new coder to the end of coders array. Which has the highest priority. + + @param coder coder + */ +//- (void)addCoder:(nonnull id)coder; + +/** + Remove a coder in the coders array. + + @param coder coder + */ +//- (void)removeCoder:(nonnull id)coder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCodersManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCodersManager.h.meta new file mode 100644 index 00000000..2d681c4a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageCodersManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 88a905f261747431086ba423929c70cf +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageFrame.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageFrame.h new file mode 100755 index 00000000..7d964f58 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageFrame.h @@ -0,0 +1,36 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/** + This class is used for creating animated images via `animatedImageWithFrames` in `SDImageCoderHelper`. + @note If you need to specify animated images loop count, use `sdBu_imageLoopCount` property in `UIImage+BUMetadata.h`. + */ +@interface BU_SDImageFrame : NSObject + +/** + The image of current frame. You should not set an animated image. + */ +@property (nonatomic, strong, readonly, nonnull) UIImage *image; +/** + The duration of current frame to be displayed. The number is seconds but not milliseconds. You should not set this to zero. + */ +@property (nonatomic, readonly, assign) NSTimeInterval duration; + +/** + Create a frame instance with specify image and duration + + @param image current frame's image + @param duration current frame's duration + @return frame instance + */ ++ (instancetype _Nonnull)frameWithImage:(UIImage * _Nonnull)image duration:(NSTimeInterval)duration; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageFrame.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageFrame.h.meta new file mode 100644 index 00000000..75295dce --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageFrame.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3ab83c1e6c3e5470f828a009917e0423 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoder.h new file mode 100755 index 00000000..579b806e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoder.h @@ -0,0 +1,22 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder using ImageIO that supports animated GIF encoding/decoding + @note `SDImageIOCoder` supports GIF but only as static (will use the 1st frame). + @note Use `SDImageGIFCoder` for fully animated GIFs. For `UIImageView`, it will produce animated `UIImage`(`NSImage` on macOS) for rendering. For `SDAnimatedImageView`, it will use `BU_SDAnimatedImage` for rendering. + @note The recommended approach for animated GIFs is using `BU_SDAnimatedImage` with `SDAnimatedImageView`. It's more performant than `UIImageView` for GIF displaying(especially on memory usage) + */ +@interface BU_SDImageGIFCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageGIFCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoder.h.meta new file mode 100644 index 00000000..bdc56409 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 062346645844a48c09c6fb6aa18f618b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoderInternal.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoderInternal.h new file mode 100755 index 00000000..e0fe94c2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoderInternal.h @@ -0,0 +1,16 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageGIFCoder.h" + +@interface BU_SDImageGIFCoder () + +- (float)sdBu_frameDurationAtIndex:(NSUInteger)index source:(nonnull CGImageSourceRef)source; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoderInternal.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoderInternal.h.meta new file mode 100644 index 00000000..90fc20c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGIFCoderInternal.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b6b529c2c61e14a8a993cf10552e363a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGraphics.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGraphics.h new file mode 100755 index 00000000..c6f459bb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGraphics.h @@ -0,0 +1,27 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import + +/** + These following graphics context method are provided to easily write cross-platform(AppKit/UIKit) code. + For UIKit, these methods just call the same method in `UIGraphics.h`. See the documentation for usage. + For AppKit, these methods use `NSGraphicsContext` to create image context and match the behavior like UIKit. + */ + +/// Returns the current graphics context. +FOUNDATION_EXPORT CGContextRef __nullable BU_SDGraphicsGetCurrentContext(void) CF_RETURNS_NOT_RETAINED; +/// Creates a bitmap-based graphics context and makes it the current context. +FOUNDATION_EXPORT void BU_SDGraphicsBeginImageContext(CGSize size); +/// Creates a bitmap-based graphics context with the specified options. +FOUNDATION_EXPORT void BU_BU_SDGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale); +/// Removes the current bitmap-based graphics context from the top of the stack. +FOUNDATION_EXPORT void BU_SDGraphicsEndImageContext(void); +/// Returns an image based on the contents of the current bitmap-based graphics context. +FOUNDATION_EXPORT UIImage * __nullable BU_SDGraphicsGetImageFromCurrentImageContext(void); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGraphics.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGraphics.h.meta new file mode 100644 index 00000000..760bdbbd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageGraphics.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c8b16fb65e39e4f4dbc7db7c6def410f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageIOCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageIOCoder.h new file mode 100755 index 00000000..e26a25fd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageIOCoder.h @@ -0,0 +1,30 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder that supports PNG, JPEG, TIFF, includes support for progressive decoding. + + GIF + Also supports static GIF (meaning will only handle the 1st frame). + For a full GIF support, we recommend `SDAnimatedImageView` to keep both CPU and memory balanced. + + HEIC + This coder also supports HEIC format because ImageIO supports it natively. But it depends on the system capabilities, so it won't work on all devices, see: https://devstreaming-cdn.apple.com/videos/wwdc/2017/511tj33587vdhds/511/511_working_with_heif_and_hevc.pdf + Decode(Software): !Simulator && (iOS 11 || tvOS 11 || macOS 10.13) + Decode(Hardware): !Simulator && ((iOS 11 && A9Chip) || (macOS 10.13 && 6thGenerationIntelCPU)) + Encode(Software): macOS 10.13 + Encode(Hardware): !Simulator && ((iOS 11 && A10FusionChip) || (macOS 10.13 && 6thGenerationIntelCPU)) + */ +@interface BU_SDImageIOCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageIOCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageIOCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageIOCoder.h.meta new file mode 100644 index 00000000..23a0534f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageIOCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dfd18e88c7ab9480b9677e49546c32a4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoader.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoader.h new file mode 100755 index 00000000..8e1cb465 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoader.h @@ -0,0 +1,101 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageOperation.h" + +typedef void(^SDImageLoaderProgressBlock)(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL); +typedef void(^SDImageLoaderCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished); + +#pragma mark - Context Options + +/** + A `UIImage` instance from `SDWebImageManager` when you specify `SDWebImageRefreshCached` and image cache hit. + This can be a hint for image loader to load the image from network and refresh the image from remote location if needed. If the image from remote location does not change, you should call the completion with `SDWebImageErrorCacheNotModified` error. (UIImage) + @note If you don't implement `SDWebImageRefreshCached` support, you do not need to care abot this context option. + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextLoaderCachedImage; + +#pragma mark - Helper method + +/** + This is the built-in decoding process for image download from network or local file. + @note If you want to implement your custom loader with `requestImageWithURL:options:context:progress:completed:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the network. Should not be nil + @param imageURL The image URL from the input. Should not be nil + @param options The options arg from the input + @param context The context arg from the input + @return The decoded image for current image data load from the network + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageLoaderDecodeImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + This is the built-in decoding process for image progressive download from network. It's used when `SDWebImageProgressiveLoad` option is set. (It's not required when your loader does not support progressive image loading) + @note If you want to implement your custom loader with `requestImageWithURL:options:context:progress:completed:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the network so far. Should not be nil + @param imageURL The image URL from the input. Should not be nil + @param finished Pass NO to specify the download process has not finished. Pass YES when all image data has finished. + @param operation The loader operation associated with current progressive download. Why to provide this is because progressive decoding need to store the partial decoded context for each operation to avoid conflict. You should provide the operation from `loadImageWithURL:` method return value. + @param options The options arg from the input + @param context The context arg from the input + @return The decoded progressive image for current image data load from the network + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageLoaderDecodeProgressiveImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, BOOL finished, id _Nonnull operation, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +#pragma mark - SDImageLoader + +/** + This is the protocol to specify custom image load process. You can create your own class to conform this protocol and use as a image loader to load image from network or any avaiable remote resources defined by yourself. + If you want to implement custom loader for image download from network or local file, you just need to concentrate on image data download only. After the download finish, call `BU_SDImageLoaderDecodeImageData` or `BU_SDImageLoaderDecodeProgressiveImageData` to use the built-in decoding process and produce image (Remember to call in the global queue). And finally callback the completion block. + If you directlly get the image instance using some third-party SDKs, such as image directlly from Photos framework. You can process the image data and image instance by yourself without that built-in decoding process. And finally callback the completion block. + @note It's your responsibility to load the image in the desired global queue(to avoid block main queue). We do not dispatch these method call in a global queue but just from the call queue (For `SDWebImageManager`, it typically call from the main queue). +*/ +@protocol BU_SDImageLoader + +/** + Whether current image loader supports to load the provide image URL. + This will be checked everytime a new image request come for loader. If this return NO, we will mark this image load as failed. If return YES, we will start to call `requestImageWithURL:options:context:progress:completed:`. + + @param url The image URL to be loaded. + @return YES to continue download, NO to stop download. + */ +- (BOOL)canRequestImageForURL:(nullable NSURL *)url; + +/** + Load the image and image data with the given URL and return the image data. You're responsible for producing the image instance. + + @param url The URL represent the image. Note this may not be a HTTP URL + @param options A mask to specify options to use for this request + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + @param completedBlock A block called when operation has been completed. + @return An operation which allow the user to cancel the current request. + */ +- (nullable id)requestImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable SDImageLoaderCompletedBlock)completedBlock; + + +/** + Whether the error from image loader should be marked indded un-recoverable or not. + If this return YES, failed URL which does not using `SDWebImageRetryFailed` will be blocked into black list. Else not. + + @param url The URL represent the image. Note this may not be a HTTP URL + @param error The URL's loading error, from previous `requestImageWithURL:options:context:progress:completed:` completedBlock's error. + @return Whether to block this url or not. Return YES to mark this URL as failed. + */ +- (BOOL)shouldBlockFailedURLWithURL:(nonnull NSURL *)url + error:(nonnull NSError *)error; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoader.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoader.h.meta new file mode 100644 index 00000000..476fae86 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoader.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0ba7de7c14e964ae7899826cc571e928 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoadersManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoadersManager.h new file mode 100755 index 00000000..822e1cde --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoadersManager.h @@ -0,0 +1,40 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDImageLoader.h" + +/** + A loaders manager to manage multiple loaders + */ +@interface BU_SDImageLoadersManager : NSObject + +/** + Returns the global shared loaders manager instance. By default we will set [`SDWebImageDownloader.sharedDownloader`] into the loaders array. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageLoadersManager *sharedManager; + +/** + All image loaders in manager. The loaders array is a priority queue, which means the later added loader will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray>* loaders; + +/** + Add a new image loader to the end of loaders array. Which has the highest priority. + + @param loader loader + */ +//- (void)addLoader:(nonnull id)loader; +// +///** +// Remove a image loader in the loaders array. +// +// @param loader loader +// */ +//- (void)removeLoader:(nonnull id)loader; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoadersManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoadersManager.h.meta new file mode 100644 index 00000000..24dc0506 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageLoadersManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a49e8ecdffdb49cb94d9759bb9d3416 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageTransformer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageTransformer.h new file mode 100755 index 00000000..bb6cc721 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageTransformer.h @@ -0,0 +1,231 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "UIImage+BUTransform.h" + +/** + Return the transformed cache key which applied with specify transformerKey. + + @param key The original cache key + @param transformerKey The transformer key from the transformer + @return The transformed cache key + */ +FOUNDATION_EXPORT NSString * _Nullable BU_SDTransformedKeyForKey(NSString * _Nullable key, NSString * _Nonnull transformerKey); + +/** + A transformer protocol to transform the image load from cache or from download. + You can provide transformer to cache and manager (Through the `transformer` property or context option `BU_SDWebImageContextImageTransformer`). + + @note The transform process is called from a global queue in order to not to block the main queue. + */ +@protocol BU_SDImageTransformer + +@required +/** + For each transformer, it must contains its cache key to used to store the image cache or query from the cache. This key will be appened after the original cache key generated by URL or from user. + + @return The cache key to appended after the original cache key. Should not be nil. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *transformerKey; + +/** + Transform the image to another image. + + @param image The image to be transformed + @param key The cache key associated to the image + @return The transformed image, or nil if transform failed + */ +- (nullable UIImage *)transformedImageWithImage:(nonnull UIImage *)image forKey:(nonnull NSString *)key; + +@end + +#pragma mark - Pipeline + +/** + Pipeline transformer. Which you can bind multiple transformers together to let the image to be transformed one by one in order and generate the final image. + @note Because transformers are lightweight, if you want to append or arrange transfomers, create another pipeline transformer instead. This class is considered as immutable. + */ +//@interface BU_SDImagePipelineTransformer : NSObject +// +///** +// All transformers in pipeline +// */ +//@property (nonatomic, copy, readonly, nonnull) NSArray> *transformers; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithTransformers:(nonnull NSArray> *)transformers; +// +//@end + +// There are some built-in transformers based on the `UIImage+BUTransformer` category to provide the common image geometry, image blending and image effect process. Those transform are useful for static image only but you can create your own to support animated image as well. +// Because transformers are lightweight, these class are considered as immutable. +#pragma mark - Image Geometry + +/** + Image round corner transformer + */ +@interface BU_SDImageRoundCornerTransformer: NSObject + +/** + The radius of each corner oval. Values larger than half the + rectangle's width or height are clamped appropriately to + half the width or height. + */ +@property (nonatomic, assign, readonly) CGFloat cornerRadius; + +/** + A bitmask value that identifies the corners that you want + rounded. You can use this parameter to round only a subset + of the corners of the rectangle. + */ +@property (nonatomic, assign, readonly) BU_SDRectCorner corners; + +/** + The inset border line width. Values larger than half the rectangle's + width or height are clamped appropriately to half the width + or height. + */ +@property (nonatomic, assign, readonly) CGFloat borderWidth; + +/** + The border stroke color. nil means clear color. + */ +@property (nonatomic, strong, readonly, nullable) UIColor *borderColor; + +- (nonnull instancetype)init NS_UNAVAILABLE; ++ (nonnull instancetype)transformerWithRadius:(CGFloat)cornerRadius corners:(BU_SDRectCorner)corners borderWidth:(CGFloat)borderWidth borderColor:(nullable UIColor *)borderColor; + +@end + +/** + Image resizing transformer + */ +//@interface BU_SDImageResizingTransformer : NSObject +// +///** +// The new size to be resized, values should be positive. +// */ +//@property (nonatomic, assign, readonly) CGSize size; +// +///** +// The scale mode for image content. +// */ +//@property (nonatomic, assign, readonly) BU_SDImageScaleMode scaleMode; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithSize:(CGSize)size scaleMode:(BU_SDImageScaleMode)scaleMode; +// +//@end + +/** + Image cropping transformer + */ +//@interface BU_SDImageCroppingTransformer : NSObject +// +///** +// Image's inner rect. +// */ +//@property (nonatomic, assign, readonly) CGRect rect; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithRect:(CGRect)rect; +// +//@end + +/** + Image flipping transformer + */ +//@interface BU_SDImageFlippingTransformer : NSObject +// +///** +// YES to flip the image horizontally. ⇋ +// */ +//@property (nonatomic, assign, readonly) BOOL horizontal; +// +///** +// YES to flip the image vertically. ⥯ +// */ +//@property (nonatomic, assign, readonly) BOOL vertical; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithHorizontal:(BOOL)horizontal vertical:(BOOL)vertical; +// +//@end + +/** + Image rotation transformer + */ +//@interface BU_SDImageRotationTransformer : NSObject +// +///** +// Rotated radians in counterclockwise.⟲ +// */ +//@property (nonatomic, assign, readonly) CGFloat angle; +// +///** +// YES: new image's size is extend to fit all content. +// NO: image's size will not change, content may be clipped. +// */ +//@property (nonatomic, assign, readonly) BOOL fitSize; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithAngle:(CGFloat)angle fitSize:(BOOL)fitSize; +// +//@end + +#pragma mark - Image Blending + +/** + Image tint color transformer + */ +//@interface BU_SDImageTintTransformer : NSObject +// +///** +// The tint color. +// */ +//@property (nonatomic, strong, readonly, nonnull) UIColor *tintColor; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithColor:(nonnull UIColor *)tintColor; +// +//@end + +#pragma mark - Image Effect + +/** + Image blur effect transformer + */ +@interface BU_SDImageBlurTransformer : NSObject + +/** + The radius of the blur in points, 0 means no blur effect. + */ +@property (nonatomic, assign, readonly) CGFloat blurRadius; + +- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithRadius:(CGFloat)blurRadius; + +@end + +//#if SD_UIKIT || SD_MAC +///** +// Core Image filter transformer +// */ +//@interface BU_SDImageFilterTransformer: NSObject +// +///** +// The CIFilter to be applied to the image. +// */ +//@property (nonatomic, strong, readonly, nonnull) CIFilter *filter; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithFilter:(nonnull CIFilter *)filter; +// +//@end +//#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageTransformer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageTransformer.h.meta new file mode 100644 index 00000000..f40e06d3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDImageTransformer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db73294d794194bbea9e466be7c1d847 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDInternalMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDInternalMacros.h new file mode 100755 index 00000000..3f6e937e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDInternalMacros.h @@ -0,0 +1,65 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDmetamacros.h" + +#ifndef SD_LOCK +#define SD_LOCK(lock) dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER); +#endif + +#ifndef SD_UNLOCK +#define SD_UNLOCK(lock) dispatch_semaphore_signal(lock); +#endif + +#ifndef SD_OPTIONS_CONTAINS +#define SD_OPTIONS_CONTAINS(options, value) (((options) & (value)) == (value)) +#endif + +#ifndef weakify +#define weakify(...) \ +sd_keywordify \ +metamacro_foreach_cxt(sd_weakify_,, __weak, __VA_ARGS__) +#endif + +#ifndef strongify +#define strongify(...) \ +sd_keywordify \ +_Pragma("clang diagnostic push") \ +_Pragma("clang diagnostic ignored \"-Wshadow\"") \ +metamacro_foreach(sd_strongify_,, __VA_ARGS__) \ +_Pragma("clang diagnostic pop") +#endif + +#define sd_weakify_(INDEX, CONTEXT, VAR) \ +CONTEXT __typeof__(VAR) metamacro_concat(VAR, _weak_) = (VAR); + +#define sd_strongify_(INDEX, VAR) \ +__strong __typeof__(VAR) VAR = metamacro_concat(VAR, _weak_); + +#if DEBUG +#define sd_keywordify autoreleasepool {} +#else +#define sd_keywordify try {} @catch (...) {} +#endif + +#ifndef onExit +#define onExit \ +sd_keywordify \ +__strong bu_sd_cleanupBlock_t metamacro_concat(sd_exitBlock_, __LINE__) __attribute__((cleanup(bu_sd_executeCleanupBlock), unused)) = ^ +#endif + +typedef void (^bu_sd_cleanupBlock_t)(void); + +#if defined(__cplusplus) +extern "C" { +#endif + void bu_sd_executeCleanupBlock (__strong bu_sd_cleanupBlock_t *block); +#if defined(__cplusplus) +} +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDInternalMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDInternalMacros.h.meta new file mode 100644 index 00000000..af93c7a7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDInternalMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d06f66590e9e4d228151a759c9e71c4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDMemoryCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDMemoryCache.h new file mode 100755 index 00000000..a31e8313 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDMemoryCache.h @@ -0,0 +1,77 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDImageCacheConfig; +/** + A protocol to allow custom memory cache used in SDImageCache. + */ +@protocol BU_SDMemoryCache + +@required +/** + Create a new memory cache instance with the specify cache config. You can check `maxMemoryCost` and `maxMemoryCount` used for memory cache. + + @param config The cache config to be used to create the cache. + @return The new memory cache instance. + */ +- (nonnull instancetype)initWithConfig:(nonnull BU_SDImageCacheConfig *)config; + +/** + Returns the value associated with a given key. + + @param key An object identifying the value. If nil, just return nil. + @return The value associated with key, or nil if no value is associated with key. + */ +- (nullable id)objectForKey:(nonnull id)key; + +/** + Sets the value of the specified key in the cache (0 cost). + + @param object The object to be stored in the cache. If nil, it calls `removeObjectForKey:`. + @param key The key with which to associate the value. If nil, this method has no effect. + @discussion Unlike an NSMutableDictionary object, a cache does not copy the key + objects that are put into it. + */ +- (void)setObject:(nullable id)object forKey:(nonnull id)key; + +/** + Sets the value of the specified key in the cache, and associates the key-value + pair with the specified cost. + + @param object The object to store in the cache. If nil, it calls `removeObjectForKey`. + @param key The key with which to associate the value. If nil, this method has no effect. + @param cost The cost with which to associate the key-value pair. + @discussion Unlike an NSMutableDictionary object, a cache does not copy the key + objects that are put into it. + */ +- (void)setObject:(nullable id)object forKey:(nonnull id)key cost:(NSUInteger)cost; + +/** + Removes the value of the specified key in the cache. + + @param key The key identifying the value to be removed. If nil, this method has no effect. + */ +- (void)removeObjectForKey:(nonnull id)key; + +/** + Empties the cache immediately. + */ +- (void)removeAllObjects; + +@end + +/** + A memory cache which auto purge the cache on memory warning and support weak cache. + */ +@interface BU_SDMemoryCache : NSCache + +@property (nonatomic, strong, nonnull, readonly) BU_SDImageCacheConfig *config; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDMemoryCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDMemoryCache.h.meta new file mode 100644 index 00000000..a1d71d34 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDMemoryCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 420b5b090e14a4cd8870114eff412b40 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWeakProxy.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWeakProxy.h new file mode 100755 index 00000000..7da33c43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWeakProxy.h @@ -0,0 +1,19 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +@interface BU_SDWeakProxy : NSProxy + +@property (nonatomic, weak, readonly, nullable) id target; + +- (nonnull instancetype)initWithTarget:(nonnull id)target; ++ (nonnull instancetype)proxyWithTarget:(nonnull id)target; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWeakProxy.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWeakProxy.h.meta new file mode 100644 index 00000000..f7a06f64 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWeakProxy.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2745f07cc583e41b69226b2109bfbe07 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheKeyFilter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheKeyFilter.h new file mode 100755 index 00000000..fafc2904 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheKeyFilter.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSString * _Nullable(^SDWebImageCacheKeyFilterBlock)(NSURL * _Nonnull url); + +/** + This is the protocol for cache key filter. + We can use a block to specify the cache key filter. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol BU_SDWebImageCacheKeyFilter + +- (nullable NSString *)cacheKeyForURL:(nonnull NSURL *)url; + +@end + +/** + A cache key filter class with block. + */ +@interface BU_SDWebImageCacheKeyFilter : NSObject +// +- (nonnull instancetype)initWithBlock:(nonnull SDWebImageCacheKeyFilterBlock)block; +//+ (nonnull instancetype)cacheKeyFilterWithBlock:(nonnull SDWebImageCacheKeyFilterBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheKeyFilter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheKeyFilter.h.meta new file mode 100644 index 00000000..4b5f5ceb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheKeyFilter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 441f2153f8e0d420b988a019fbb82afc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheSerializer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheSerializer.h new file mode 100755 index 00000000..27690a2c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheSerializer.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSData * _Nullable(^BU_SDWebImageCacheSerializerBlock)(UIImage * _Nonnull image, NSData * _Nullable data, NSURL * _Nullable imageURL); + +/** + This is the protocol for cache serializer. + We can use a block to specify the cache serializer. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol BU_SDWebImageCacheSerializer + +- (nullable NSData *)cacheDataWithImage:(nonnull UIImage *)image originalData:(nullable NSData *)data imageURL:(nullable NSURL *)imageURL; + +@end + +/** + A cache serializer class with block. + */ +@interface BU_SDWebImageCacheSerializer : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull BU_SDWebImageCacheSerializerBlock)block; +//+ (nonnull instancetype)cacheSerializerWithBlock:(nonnull BU_SDWebImageCacheSerializerBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheSerializer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheSerializer.h.meta new file mode 100644 index 00000000..545111d1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCacheSerializer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e366eba234d09424485e90cce6a5bf07 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCompat.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCompat.h new file mode 100755 index 00000000..f47a248a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCompat.h @@ -0,0 +1,95 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Jamie Pinkham + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import + +#ifdef __OBJC_GC__ + #error SDWebImage does not support Objective-C Garbage Collection +#endif + +// Seems like TARGET_OS_MAC is always defined (on all platforms). +// To determine if we are running on macOS, use TARGET_OS_OSX in Xcode 8 +#if TARGET_OS_OSX + #define SD_MAC 1 +#else + #define SD_MAC 0 +#endif + +// iOS and tvOS are very similar, UIKit exists on both platforms +// Note: watchOS also has UIKit, but it's very limited +#if TARGET_OS_IOS || TARGET_OS_TV + #define SD_UIKIT 1 +#else + #define SD_UIKIT 0 +#endif + +#if TARGET_OS_IOS + #define SD_IOS 1 +#else + #define SD_IOS 0 +#endif + +#if TARGET_OS_TV + #define SD_TV 1 +#else + #define SD_TV 0 +#endif + +#if TARGET_OS_WATCH + #define SD_WATCH 1 +#else + #define SD_WATCH 0 +#endif + + +#if SD_MAC + #import + #ifndef UIImage + #define UIImage NSImage + #endif + #ifndef UIImageView + #define UIImageView NSImageView + #endif + #ifndef UIView + #define UIView NSView + #endif + #ifndef UIColor + #define UIColor NSColor + #endif +#else + #if SD_UIKIT + #import + #endif + #if SD_WATCH + #import + #ifndef UIView + #define UIView WKInterfaceObject + #endif + #ifndef UIImageView + #define UIImageView WKInterfaceImage + #endif + #endif +#endif + +#ifndef NS_ENUM +#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type +#endif + +#ifndef NS_OPTIONS +#define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type +#endif + +#ifndef dispatch_main_async_safe +#define dispatch_main_async_safe(block)\ + if (dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL) == dispatch_queue_get_label(dispatch_get_main_queue())) {\ + block();\ + } else {\ + dispatch_async(dispatch_get_main_queue(), block);\ + } +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCompat.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCompat.h.meta new file mode 100644 index 00000000..c9af7a78 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageCompat.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c84100304335047a29fd0df529bf6784 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDefine.h new file mode 100755 index 00000000..21176e48 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDefine.h @@ -0,0 +1,244 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +typedef void(^SDWebImageNoParamsBlock)(void); +typedef NSString * BU_SDWebImageContextOption NS_EXTENSIBLE_STRING_ENUM; +typedef NSDictionary SDWebImageContext; +typedef NSMutableDictionary SDWebImageMutableContext; + +#pragma mark - Image scale + +/** + Return the image scale factor for the specify key, supports file name and url key. + This is the built-in way to check the scale factor when we have no context about it. Because scale factor is not stored in image data (It's typically from filename). + However, you can also provide custom scale factor as well, see `BU_SDWebImageContextImageScaleFactor`. + + @param key The image cache key + @return The scale factor for image + */ +FOUNDATION_EXPORT CGFloat BU_SDImageScaleFactorForKey(NSString * _Nullable key); + +/** + Scale the image with the scale factor for the specify key. If no need to scale, return the original image. + This works for `UIImage`(UIKit) or `NSImage`(AppKit). And this function also preserve the associated value in `UIImage+BUMetadata.h`. + @note This is actually a convenience function, which firstlly call `BU_SDImageScaleFactorForKey` and then call `BU_SDScaledImageForScaleFactor`, kept for backward compatibility. + + @param key The image cache key + @param image The image + @return The scaled image + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDScaledImageForKey(NSString * _Nullable key, UIImage * _Nullable image); + +/** + Scale the image with the scale factor. If no need to scale, return the original image. + This works for `UIImage`(UIKit) or `NSImage`(AppKit). And this function also preserve the associated value in `UIImage+BUMetadata.h`. + + @param scale The image scale factor + @param image The image + @return The scaled image + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDScaledImageForScaleFactor(CGFloat scale, UIImage * _Nullable image); + +#pragma mark - WebCache Options + +/// BU_WebCache options +typedef NS_OPTIONS(NSUInteger, BU_SDWebImageOptions) { + /** + * By default, when a URL fail to be downloaded, the URL is blacklisted so the library won't keep trying. + * This flag disable this blacklisting. + */ + BU_SDWebImageRetryFailed = 1 << 0, + + /** + * By default, image downloads are started during UI interactions, this flags disable this feature, + * leading to delayed download on UIScrollView deceleration for instance. + */ + BU_SDWebImageLowPriority = 1 << 1, + + /** + * This flag enables progressive download, the image is displayed progressively during download as a browser would do. + * By default, the image is only displayed once completely downloaded. + */ + BU_SDWebImageProgressiveLoad = 1 << 2, + + /** + * Even if the image is cached, respect the HTTP response cache control, and refresh the image from remote location if needed. + * The disk caching will be handled by NSURLCache instead of SDWebImage leading to slight performance degradation. + * This option helps deal with images changing behind the same request URL, e.g. Facebook graph api profile pics. + * If a cached image is refreshed, the completion block is called once with the cached image and again with the final image. + * + * Use this flag only if you can't make your URLs static with embedded cache busting parameter. + */ + BU_SDWebImageRefreshCached = 1 << 3, + + /** + * In iOS 4+, continue the download of the image if the app goes to background. This is achieved by asking the system for + * extra time in background to let the request finish. If the background task expires the operation will be cancelled. + */ + BU_SDWebImageContinueInBackground = 1 << 4, + + /** + * Handles cookies stored in NSHTTPCookieStore by setting + * NSMutableURLRequest.HTTPShouldHandleCookies = YES; + */ + BU_SDWebImageHandleCookies = 1 << 5, + + /** + * Enable to allow untrusted SSL certificates. + * Useful for testing purposes. Use with caution in production. + */ + BU_SDWebImageAllowInvalidSSLCertificates = 1 << 6, + + /** + * By default, images are loaded in the order in which they were queued. This flag moves them to + * the front of the queue. + */ + BU_SDWebImageHighPriority = 1 << 7, + + /** + * By default, placeholder images are loaded while the image is loading. This flag will delay the loading + * of the placeholder image until after the image has finished loading. + */ + BU_SDWebImageDelayPlaceholder = 1 << 8, + + /** + * We usually don't apply transform on animated images as most transformers could not manage animated images. + * Use this flag to transform them anyway. + */ + BU_SDWebImageTransformAnimatedImage = 1 << 9, + + /** + * By default, image is added to the imageView after download. But in some cases, we want to + * have the hand before setting the image (apply a filter or add it with cross-fade animation for instance) + * Use this flag if you want to manually set the image in the completion when success + */ + BU_SDWebImageAvoidAutoSetImage = 1 << 10, + + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + * This flag take no effect if `SDWebImageAvoidDecodeImage` is set. And it will be ignored if `SDWebImageProgressiveLoad` is set. + */ + BU_SDWebImageScaleDownLargeImages = 1 << 11, + + /** + * By default, we do not query image data when the image is already cached in memory. This mask can force to query image data at the same time. However, this query is asynchronously unless you specify `SDWebImageQueryMemoryDataSync` + */ + BU_SDWebImageQueryMemoryData = 1 << 12, + + /** + * By default, when you only specify `SDWebImageQueryMemoryData`, we query the memory image data asynchronously. Combined this mask as well to query the memory image data synchronously. + * @note Query data synchronously is not recommend, unless you want to ensure the image is loaded in the same runloop to avoid flashing during cell reusing. + */ + BU_SDWebImageQueryMemoryDataSync = 1 << 13, + + /** + * By default, when the memory cache miss, we query the disk cache asynchronously. This mask can force to query disk cache (when memory cache miss) synchronously. + * @note These 3 query options can be combined together. For the full list about these masks combination, see wiki page. + * @note Query data synchronously is not recommend, unless you want to ensure the image is loaded in the same runloop to avoid flashing during cell reusing. + */ + BU_SDWebImageQueryDiskDataSync = 1 << 14, + + /** + * By default, when the cache missed, the image is load from the loader. This flag can prevent this to load from cache only. + */ + BU_SDWebImageFromCacheOnly = 1 << 15, + + /** + * By default, we query the cache before the image is load from the loader. This flag can prevent this to load from loader only. + */ + BU_SDWebImageFromLoaderOnly = 1 << 16, + + /** + * By default, when you use `SDWebImageTransition` to do some view transition after the image load finished, this transition is only applied for image download from the network. This mask can force to apply view transition for memory and disk cache as well. + */ + BU_SDWebImageForceTransition = 1 << 17, + + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + BU_SDWebImageAvoidDecodeImage = 1 << 18, + + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + BU_SDWebImageDecodeFirstFrameOnly = 1 << 19, + + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. However, you can specify to preload all frames into memory to reduce CPU usage when the animated image is shared by lots of imageViews. + * This will actually trigger `preloadAllAnimatedImageFrames` in the background queue(Disk Cache & Download only). + */ + BU_SDWebImagePreloadAllFrames = 1 << 20, + + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available to produce one exactlly matching your custom class as a fallback solution. + * Using this option, can ensure we always callback image with your provided class. If failed to produce one, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDWebImageDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + BU_SDWebImageMatchAnimatedImageClass = 1 << 21, +}; + + +#pragma mark - Context Options + +/** + A String to be used as the operation key for view category to store the image load operation. This is used for view instance which supports different image loading process. If nil, will use the class name as operation key. (NSString *) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextSetImageOperationKey; + +/** + A SDWebImageManager instance to control the image download and cache process using in UIImageView+BU_WebCache category and likes. If not provided, use the shared manager (SDWebImageManager *) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCustomManager; + +/** + A id instance which conforms `BU_SDImageTransformer` protocol. It's used for image transform after the image load finished and store the transformed image to cache. If you provide one, it will ignore the `transformer` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextImageTransformer; + +/** + A CGFloat raw value which specify the image scale factor. The number should be greater than or equal to 1.0. If not provide or the number is invalid, we will use the cache key to specify the scale factor. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextImageScaleFactor; + +/** + A BU_SDImageCacheType raw value which specify the store cache type when the image has just been downloaded and will be stored to the cache. Specify `BU_SDImageCacheTypeNone` to disable cache storage; `BU_SDImageCacheTypeDisk` to store in disk cache only; `BU_SDImageCacheTypeMemory` to store in memory only. And `BU_SDImageCacheTypeAll` to store in both memory cache and disk cache. + If you use image transformer feature, this actually apply for the transformed image, but not the original image itself. Use `BU_SDWebImageContextOriginalStoreCacheType` if you want to control the original image's store cache type at the same time. + If not provide or the value is invalid, we will use `BU_SDImageCacheTypeAll`. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextStoreCacheType; + +/** + The same behavior like `BU_SDWebImageContextStoreCacheType`, but control the store cache type for the original image when you use image transformer feature. This allows the detail control of cache storage for these two images. For example, if you want to store the transformed image into both memory/disk cache, store the original image into disk cache only, use `[.storeCacheType : .all, .originalStoreCacheType : .disk]` + If not provide or the value is invalid, we will use `BU_SDImageCacheTypeNone`, which does not store the original image into cache. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextOriginalStoreCacheType; + +/** + A Class object which the instance is a `UIImage/NSImage` subclass and adopt `BU_SDAnimatedImage` protocol. We will call `initWithData:scale:options:` to create the instance (or `initWithAnimatedCoder:scale:` when using progressive download) . If the instance create failed, fallback to normal `UIImage/NSImage`. + This can be used to improve animated images rendering performance (especially memory usage on big animated images) with `SDAnimatedImageView` (Class). + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextAnimatedImageClass; + +/** + A id instance to modify the image download request. It's used for downloader to modify the original request from URL and options. If you provide one, it will ignore the `requestModifier` in downloader and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextDownloadRequestModifier; + +/** + A id instance to convert an URL into a cache key. It's used when manager need cache key to use image cache. If you provide one, it will ignore the `cacheKeyFilter` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCacheKeyFilter; + +/** + A id instance to convert the decoded image, the source downloaded data, to the actual data. It's used for manager to store image to the disk cache. If you provide one, it will ignore the `cacheSerializer` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCacheSerializer; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDefine.h.meta new file mode 100644 index 00000000..5c468155 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4f9b2dfafbb8f4cecb4e5d04f385c693 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloader.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloader.h new file mode 100755 index 00000000..2e094496 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloader.h @@ -0,0 +1,290 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDWebImageDownloaderConfig.h" +#import "BU_SDWebImageDownloaderRequestModifier.h" +#import "BU_SDImageLoader.h" + +/// Downloader options +typedef NS_OPTIONS(NSUInteger, SDWebImageDownloaderOptions) { + /** + * Put the download in the low queue priority and task priority. + */ + SDWebImageDownloaderLowPriority = 1 << 0, + + /** + * This flag enables progressive download, the image is displayed progressively during download as a browser would do. + */ + SDWebImageDownloaderProgressiveLoad = 1 << 1, + + /** + * By default, request prevent the use of NSURLCache. With this flag, NSURLCache + * is used with default policies. + */ + SDWebImageDownloaderUseNSURLCache = 1 << 2, + + /** + * Call completion block with nil image/imageData if the image was read from NSURLCache + * And the error code is `SDWebImageErrorCacheNotModified` + * This flag should be combined with `SDWebImageDownloaderUseNSURLCache`. + */ + SDWebImageDownloaderIgnoreCachedResponse = 1 << 3, + + /** + * In iOS 4+, continue the download of the image if the app goes to background. This is achieved by asking the system for + * extra time in background to let the request finish. If the background task expires the operation will be cancelled. + */ + SDWebImageDownloaderContinueInBackground = 1 << 4, + + /** + * Handles cookies stored in NSHTTPCookieStore by setting + * NSMutableURLRequest.HTTPShouldHandleCookies = YES; + */ + SDWebImageDownloaderHandleCookies = 1 << 5, + + /** + * Enable to allow untrusted SSL certificates. + * Useful for testing purposes. Use with caution in production. + */ + SDWebImageDownloaderAllowInvalidSSLCertificates = 1 << 6, + + /** + * Put the download in the high queue priority and task priority. + */ + SDWebImageDownloaderHighPriority = 1 << 7, + + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + * This flag take no effect if `SDWebImageDownloaderAvoidDecodeImage` is set. And it will be ignored if `SDWebImageDownloaderProgressiveLoad` is set. + */ + SDWebImageDownloaderScaleDownLargeImages = 1 << 8, + + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + SDWebImageDownloaderAvoidDecodeImage = 1 << 9, + + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + SDWebImageDownloaderDecodeFirstFrameOnly = 1 << 10, + + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. This flag actually trigger `preloadAllAnimatedImageFrames = YES` after image load from network + */ + SDWebImageDownloaderPreloadAllFrames = 1 << 11, + + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution. + * Using this option, can ensure we always produce image with your provided class. If failed, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDWebImageDownloaderDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + SDWebImageDownloaderMatchAnimatedImageClass = 1 << 12, +}; + +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadStartNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadReceiveResponseNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadStopNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadFinishNotification; + +typedef SDImageLoaderProgressBlock SDWebImageDownloaderProgressBlock; +typedef SDImageLoaderCompletedBlock SDWebImageDownloaderCompletedBlock; + +/** + * A token associated with each download. Can be used to cancel a download + */ +@interface BU_SDWebImageDownloadToken : NSObject + +/** + Cancel the current download. + */ +- (void)cancel; + +/** + The download's URL. + */ +@property (nonatomic, strong, nullable, readonly) NSURL *url; + +/** + The download's request. + */ +@property (nonatomic, strong, nullable, readonly) NSURLRequest *request; + +/** + The download's response. + */ +@property (nonatomic, strong, nullable, readonly) NSURLResponse *response; + +@end + + +/** + * Asynchronous downloader dedicated and optimized for image loading. + */ +@interface BU_SDWebImageDownloader : NSObject + +/** + * Downloader Config object - storing all kind of settings. + * Most config properties support dynamic changes during download, except something like `sessionConfiguration`, see `BU_SDWebImageDownloaderConfig` for more detail. + */ +@property (nonatomic, copy, readonly, nonnull) BU_SDWebImageDownloaderConfig *config; + +/** + * Set the request modifier to modify the original download request before image load. + * This request modifier method will be called for each downloading image request. Return the original request means no modication. Return nil will cancel the download request. + * Defaults to nil, means does not modify the original download request. + * @note If you want to modify single request, consider using `BU_SDWebImageContextDownloadRequestModifier` context option. + */ +@property (nonatomic, strong, nullable) id requestModifier; + +/** + * The configuration in use by the internal NSURLSession. If you want to provide a custom sessionConfiguration, use `BU_SDWebImageDownloaderConfig.sessionConfiguration` and create a new downloader instance. + @note This is immutable according to NSURLSession's documentation. Mutating this object directly has no effect. + */ +@property (nonatomic, readonly, nonnull) NSURLSessionConfiguration *sessionConfiguration; + +/** + * Gets/Sets the download queue suspension state. + */ +@property (nonatomic, assign, getter=isSuspended) BOOL suspended; + +/** + * Shows the current amount of downloads that still need to be downloaded + */ +@property (nonatomic, assign, readonly) NSUInteger currentDownloadCount; + +/** + * Returns the global shared downloader instance. Which use the `BU_SDWebImageDownloaderConfig.defaultDownloaderConfig` config. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageDownloader *sharedDownloader; + +/** + Creates an instance of a downloader with specified downloader config. + You can specify session configuration, timeout or operation class through downloader config. + + @param config The downloader config. If you specify nil, the `defaultDownloaderConfig` will be used. + @return new instance of downloader class + */ +- (nonnull instancetype)initWithConfig:(nullable BU_SDWebImageDownloaderConfig *)config NS_DESIGNATED_INITIALIZER; + +/** + * Set a value for a HTTP header to be appended to each download HTTP request. + * + * @param value The value for the header field. Use `nil` value to remove the header field. + * @param field The name of the header field to set. + */ +- (void)setValue:(nullable NSString *)value forHTTPHeaderField:(nullable NSString *)field; + +/** + * Returns the value of the specified HTTP header field. + * + * @return The value associated with the header field field, or `nil` if there is no corresponding header field. + */ +- (nullable NSString *)valueForHTTPHeaderField:(nullable NSString *)field; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param completedBlock A block called once the download is completed. + * If the download succeeded, the image parameter is set, in case of error, + * error parameter is set with the error. The last parameter is always YES + * if SDWebImageDownloaderProgressiveDownload isn't use. With the + * SDWebImageDownloaderProgressiveDownload option, this block is called + * repeatedly with the partial image object and the finished argument set to NO + * before to be called a last time with the full image and finished argument + * set to YES. In case of error, the finished argument is always YES. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +//- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url +// completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param options The options to be used for this download + * @param progressBlock A block called repeatedly while the image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called once the download is completed. + * If the download succeeded, the image parameter is set, in case of error, + * error parameter is set with the error. The last parameter is always YES + * if SDWebImageDownloaderProgressiveLoad isn't use. With the + * SDWebImageDownloaderProgressiveLoad option, this block is called + * repeatedly with the partial image object and the finished argument set to NO + * before to be called a last time with the full image and finished argument + * set to YES. In case of error, the finished argument is always YES. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url + options:(SDWebImageDownloaderOptions)options + progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param options The options to be used for this download + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called repeatedly while the image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called once the download is completed. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Cancels all download operations in the queue + */ +//- (void)cancelAllDownloads; + +/** + * Invalidates the managed session, optionally canceling pending operations. + * @note If you use custom downloader instead of the shared downloader, you need call this method when you do not use it to avoid memory leak + * @param cancelPendingOperations Whether or not to cancel pending operations. + * @note Calling this method on the shared downloader has no effect. + */ +//- (void)invalidateSessionAndCancel:(BOOL)cancelPendingOperations; + +@end + + +/** + SDWebImageDownloader is the built-in image loader conform to `SDImageLoader`. Which provide the HTTP/HTTPS/FTP download, or local file URL using NSURLSession. + However, this downloader class itself also support customization for advanced users. You can specify `operationClass` in download config to custom download operation, See `SDWebImageDownloaderOperation`. + If you want to provide some image loader which beyond network or local file, consider to create your own custom class conform to `SDImageLoader`. + */ +@interface BU_SDWebImageDownloader (SDImageLoader) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloader.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloader.h.meta new file mode 100644 index 00000000..cecf521c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloader.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a6596b4b0990b4d288f58f0763a2c85f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderConfig.h new file mode 100755 index 00000000..bda4eae1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderConfig.h @@ -0,0 +1,98 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/// Operation execution order +typedef NS_ENUM(NSInteger, SDWebImageDownloaderExecutionOrder) { + /** + * Default value. All download operations will execute in queue style (first-in-first-out). + */ + SDWebImageDownloaderFIFOExecutionOrder, + + /** + * All download operations will execute in stack style (last-in-first-out). + */ + SDWebImageDownloaderLIFOExecutionOrder +}; + +/** + The class contains all the config for image downloader + @note This class conform to NSCopying, make sure to add the property in `copyWithZone:` as well. + */ +@interface BU_SDWebImageDownloaderConfig : NSObject + +/** + Gets the default downloader config used for shared instance or initialization when it does not provide any downloader config. Such as `SDWebImageDownloader.sharedDownloader`. + @note You can modify the property on default downloader config, which can be used for later created downloader instance. The already created downloader instance does not get affected. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageDownloaderConfig *defaultDownloaderConfig; + +/** + * The maximum number of concurrent downloads. + * Defaults to 6. + */ +@property (nonatomic, assign) NSInteger maxConcurrentDownloads; + +/** + * The timeout value (in seconds) for each download operation. + * Defaults to 15.0. + */ +@property (nonatomic, assign) NSTimeInterval downloadTimeout; + +/** + * The minimum interval about progress percent during network downloading. Which means the next progress callback and current progress callback's progress percent difference should be larger or equal to this value. However, the final finish download progress callback does not get effected. + * The value should be 0.0-1.0. + * @note If you're using progressive decoding feature, this will also effect the image refresh rate. + * @note This value may enhance the performance if you don't want progress callback too frequently. + * Defaults to 0, which means each time we receive the new data from URLSession, we callback the progressBlock immediately. + */ +@property (nonatomic, assign) double minimumProgressInterval; + +/** + * The custom session configuration in use by NSURLSession. If you don't provide one, we will use `defaultSessionConfiguration` instead. + * Defatuls to nil. + * @note This property does not support dynamic changes, means it's immutable after the downloader instance initialized. + */ +@property (nonatomic, strong, nullable) NSURLSessionConfiguration *sessionConfiguration; + +/** + * Gets/Sets a subclass of `SDWebImageDownloaderOperation` as the default + * `NSOperation` to be used each time SDWebImage constructs a request + * operation to download an image. + * Defaults to nil. + * @note Passing `NSOperation` to set as default. Passing `nil` will revert to `SDWebImageDownloaderOperation`. + */ +@property (nonatomic, assign, nullable) Class operationClass; + +/** + * Changes download operations execution order. + * Defaults to `SDWebImageDownloaderFIFOExecutionOrder`. + */ +@property (nonatomic, assign) SDWebImageDownloaderExecutionOrder executionOrder; + +/** + * Set the default URL credential to be set for request operations. + * Defaults to nil. + */ +@property (nonatomic, copy, nullable) NSURLCredential *urlCredential; + +/** + * Set username using for HTTP Basic authentication. + * Defaults to nil. + */ +@property (nonatomic, copy, nullable) NSString *username; + +/** + * Set password using for HTTP Basic authentication. + * Defautls to nil. + */ +@property (nonatomic, copy, nullable) NSString *password; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderConfig.h.meta new file mode 100644 index 00000000..0539f055 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5945ef3c2fe2a42c791d8616552a7985 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderOperation.h new file mode 100755 index 00000000..1c719e15 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderOperation.h @@ -0,0 +1,146 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageDownloader.h" +#import "BU_SDWebImageOperation.h" + +/** + Describes a downloader operation. If one wants to use a custom downloader op, it needs to inherit from `NSOperation` and conform to this protocol + For the description about these methods, see `SDWebImageDownloaderOperation` + @note If your custom operation class does not use `NSURLSession` at all, do not implement the optional methods and session delegate methods. + */ +@protocol SDWebImageDownloaderOperation +@required +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options; + +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context; + +- (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +- (BOOL)cancel:(nullable id)token; + +@property (strong, nonatomic, readonly, nullable) NSURLRequest *request; +@property (strong, nonatomic, readonly, nullable) NSURLResponse *response; + +@optional +@property (strong, nonatomic, readonly, nullable) NSURLSessionTask *dataTask; +@property (strong, nonatomic, nullable) NSURLCredential *credential; +@property (assign, nonatomic) double minimumProgressInterval; + +@end + + +/** + The download operation class for SDWebImageDownloader. + */ +@interface BU_SDWebImageDownloaderOperation : NSOperation + +/** + * The request used by the operation's task. + */ +@property (strong, nonatomic, readonly, nullable) NSURLRequest *request; + +/** + * The response returned by the operation's task. + */ +@property (strong, nonatomic, readonly, nullable) NSURLResponse *response; + +/** + * The operation's task + */ +@property (strong, nonatomic, readonly, nullable) NSURLSessionTask *dataTask; + +/** + * The credential used for authentication challenges in `-URLSession:task:didReceiveChallenge:completionHandler:`. + * + * This will be overridden by any shared credentials that exist for the username or password of the request URL, if present. + */ +@property (strong, nonatomic, nullable) NSURLCredential *credential; + +/** + * The minimum interval about progress percent during network downloading. Which means the next progress callback and current progress callback's progress percent difference should be larger or equal to this value. However, the final finish download progress callback does not get effected. + * The value should be 0.0-1.0. + * @note If you're using progressive decoding feature, this will also effect the image refresh rate. + * @note This value may enhance the performance if you don't want progress callback too frequently. + * Defaults to 0, which means each time we receive the new data from URLSession, we callback the progressBlock immediately. + */ +@property (assign, nonatomic) double minimumProgressInterval; + +/** + * The options for the receiver. + */ +@property (assign, nonatomic, readonly) SDWebImageDownloaderOptions options; + +/** + * The context for the receiver. + */ +@property (copy, nonatomic, readonly, nullable) SDWebImageContext *context; + +/** + * Initializes a `SDWebImageDownloaderOperation` object + * + * @see SDWebImageDownloaderOperation + * + * @param request the URL request + * @param session the URL session in which this operation will run + * @param options downloader options + * + * @return the initialized instance + */ +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options; + +/** + * Initializes a `SDWebImageDownloaderOperation` object + * + * @see SDWebImageDownloaderOperation + * + * @param request the URL request + * @param session the URL session in which this operation will run + * @param options downloader options + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * + * @return the initialized instance + */ +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context NS_DESIGNATED_INITIALIZER; + +/** + * Adds handlers for progress and completion. Returns a tokent that can be passed to -cancel: to cancel this set of + * callbacks. + * + * @param progressBlock the block executed when a new chunk of data arrives. + * @note the progress block is executed on a background queue + * @param completedBlock the block executed when the download is done. + * @note the completed block is executed on the main queue for success. If errors are found, there is a chance the block will be executed on a background queue + * + * @return the token to use to cancel this set of handlers + */ +- (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Cancels a set of callbacks. Once all callbacks are canceled, the operation is cancelled. + * + * @param token the token representing a set of callbacks to cancel + * + * @return YES if the operation was stopped because this was the last token to be canceled. NO otherwise. + */ +- (BOOL)cancel:(nullable id)token; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderOperation.h.meta new file mode 100644 index 00000000..363bafd6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1583e0da49f564fedb611f710ebe3a57 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderRequestModifier.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderRequestModifier.h new file mode 100755 index 00000000..a6431450 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderRequestModifier.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSURLRequest * _Nullable (^SDWebImageDownloaderRequestModifierBlock)(NSURLRequest * _Nonnull request); + +/** + This is the protocol for downloader request modifier. + We can use a block to specify the downloader request modifier. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol SDWebImageDownloaderRequestModifier + +- (nullable NSURLRequest *)modifiedRequestWithRequest:(nonnull NSURLRequest *)request; + +@end + +/** + A downloader request modifier class with block. + */ +@interface BU_SDWebImageDownloaderRequestModifier : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull SDWebImageDownloaderRequestModifierBlock)block; ++ (nonnull instancetype)requestModifierWithBlock:(nonnull SDWebImageDownloaderRequestModifierBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta new file mode 100644 index 00000000..0541821b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8cd58b235b6b948d488eb6e84d958ccb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageError.h new file mode 100755 index 00000000..90d1da46 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageError.h @@ -0,0 +1,25 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Jamie Pinkham + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +FOUNDATION_EXPORT NSErrorDomain const _Nonnull BU_SDWebImageErrorDomain; + +/// The HTTP status code for invalid download response (NSNumber *) +FOUNDATION_EXPORT NSErrorUserInfoKey const _Nonnull BU_SDWebImageErrorDownloadStatusCodeKey; + +/// SDWebImage error domain and codes +typedef NS_ERROR_ENUM(BU_SDWebImageErrorDomain, SDWebImageError) { + SDWebImageErrorInvalidURL = 1000, // The URL is invalid, such as nil URL or corrupted URL + SDWebImageErrorBadImageData = 1001, // The image data can not be decoded to image, or the image data is empty + SDWebImageErrorCacheNotModified = 1002, // The remote location specify that the cached image is not modified, such as the HTTP response 304 code. It's useful for `SDWebImageRefreshCached` + SDWebImageErrorInvalidDownloadOperation = 2000, // The image download operation is invalid, such as nil operation or unexpected error occur when operation initialized + SDWebImageErrorInvalidDownloadStatusCode = 2001, // The image download response a invalid status code. You can check the status code in error's userInfo under `BU_SDWebImageErrorDownloadStatusCodeKey` + SDWebImageErrorCancelled = 2002, // The image loading operation is cancelled before finished, during either async disk cache query, or waiting before actual network request. For actual network request error, check `NSURLErrorDomain` error domain and code. +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageError.h.meta new file mode 100644 index 00000000..31f42396 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 492e1e37a1cf6481885e95473694715b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageIndicator.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageIndicator.h new file mode 100755 index 00000000..0573515c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageIndicator.h @@ -0,0 +1,115 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT || SD_MAC + +/** + A protocol to custom the indicator during the image loading. + All of these methods are called from main queue. + */ +@protocol SDWebImageIndicator + +@required +/** + The view associate to the indicator. + + @return The indicator view + */ +@property (nonatomic, strong, readonly, nonnull) UIView *indicatorView; + +/** + Start the animating for indicator. + */ +- (void)startAnimatingIndicator; + +/** + Stop the animating for indicator. + */ +- (void)stopAnimatingIndicator; + +@optional +/** + Update the loading progress (0-1.0) for indicator. Optional + + @param progress The progress, value between 0 and 1.0 + */ +- (void)updateIndicatorProgress:(double)progress; + +@end + +#pragma mark - Activity Indicator + +/** + Activity indicator class. + for UIKit(macOS), it use a `UIActivityIndicatorView`. + for AppKit(macOS), it use a `NSProgressIndicator` with the spinning style. + */ +//@interface BU_SDWebImageActivityIndicator : NSObject +// +//#if SD_UIKIT +//@property (nonatomic, strong, readonly, nonnull) UIActivityIndicatorView *indicatorView; +//#else +//@property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView; +//#endif +// +//@end +// +///** +// Convenience way to use activity indicator. +// */ +//@interface BU_SDWebImageActivityIndicator (Conveniences) +// +///// These indicator use the fixed color without dark mode support +///// gray-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *grayIndicator; +///// large gray-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *grayLargeIndicator; +///// white-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *whiteIndicator; +///// large white-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *whiteLargeIndicator; +///// These indicator use the system style, supports dark mode if available (iOS 13+/macOS 10.14+) +///// large activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *largeIndicator; +///// medium activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *mediumIndicator; +// +//@end + +#pragma mark - Progress Indicator + +/** + Progress indicator class. + for UIKit(macOS), it use a `UIProgressView`. + for AppKit(macOS), it use a `NSProgressIndicator` with the bar style. + */ +//@interface BU_SDWebImageProgressIndicator : NSObject +// +//#if SD_UIKIT +//@property (nonatomic, strong, readonly, nonnull) UIProgressView *indicatorView; +//#else +//@property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView; +//#endif +// +//@end + +/** + Convenience way to create progress indicator. Remember to specify the indicator width or use layout constraint if need. +// */ +//@interface BU_SDWebImageProgressIndicator (Conveniences) +// +///// default-style progress indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageProgressIndicator *defaultIndicator; +///// bar-style progress indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageProgressIndicator *barIndicator API_UNAVAILABLE(macos, tvos); +// +//@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageIndicator.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageIndicator.h.meta new file mode 100644 index 00000000..7e96518d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageIndicator.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9c7ac9150df794dadbcc7abd17f8f0fc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageManager.h new file mode 100755 index 00000000..544840e4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageManager.h @@ -0,0 +1,269 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDImageCacheDefine.h" +#import "BU_SDImageLoader.h" +#import "BU_SDImageTransformer.h" +#import "BU_SDWebImageCacheKeyFilter.h" +#import "BU_SDWebImageCacheSerializer.h" +#import "BU_SDWebImageOptionsProcessor.h" + +typedef void(^BU_SDExternalCompletionBlock)(UIImage * _Nullable image, NSError * _Nullable error, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); + +typedef void(^BU_SDInternalCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BU_SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL); + +/** + A combined operation representing the cache and loader operation. You can use it to cancel the load process. + */ +@interface BU_SDWebImageCombinedOperation : NSObject + +/** + Cancel the current operation, including cache and loader process + */ +- (void)cancel; + +/** + The cache operation from the image cache query + */ +@property (strong, nonatomic, nullable, readonly) id cacheOperation; + +/** + The loader operation from the image loader (such as download operation) + */ +@property (strong, nonatomic, nullable, readonly) id loaderOperation; + +@end + + +@class BU_SDWebImageManager; + +/** + The manager delegate protocol. + */ +@protocol BU_SDWebImageManagerDelegate + +@optional + +/** + * Controls which image should be downloaded when the image is not found in the cache. + * + * @param imageManager The current `SDWebImageManager` + * @param imageURL The url of the image to be downloaded + * + * @return Return NO to prevent the downloading of the image on cache misses. If not implemented, YES is implied. + */ +- (BOOL)imageManager:(nonnull BU_SDWebImageManager *)imageManager shouldDownloadImageForURL:(nonnull NSURL *)imageURL; + +/** + * Controls the complicated logic to mark as failed URLs when download error occur. + * If the delegate implement this method, we will not use the built-in way to mark URL as failed based on error code; + @param imageManager The current `SDWebImageManager` + @param imageURL The url of the image + @param error The download error for the url + @return Whether to block this url or not. Return YES to mark this URL as failed. + */ +- (BOOL)imageManager:(nonnull BU_SDWebImageManager *)imageManager shouldBlockFailedURL:(nonnull NSURL *)imageURL withError:(nonnull NSError *)error; + +@end + +/** + * The SDWebImageManager is the class behind the UIImageView+BU_WebCache category and likes. + * It ties the asynchronous downloader (SDWebImageDownloader) with the image cache store (SDImageCache). + * You can use this class directly to benefit from web image downloading with caching in another context than + * a UIView. + * + * Here is a simple example of how to use SDWebImageManager: + * + * @code + +SDWebImageManager *manager = [SDWebImageManager sharedManager]; +[manager loadImageWithURL:imageURL + options:0 + progress:nil + completed:^(UIImage *image, NSError *error, BU_SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { + if (image) { + // do something with image + } + }]; + + * @endcode + */ +@interface BU_SDWebImageManager : NSObject + +/** + * The delegate for manager. Defatuls to nil. + */ +@property (weak, nonatomic, nullable) id delegate; + +/** + * The image cache used by manager to query image cache. + */ +@property (strong, nonatomic, readonly, nonnull) id imageCache; + +/** + * The image loader used by manager to load image. + */ +@property (strong, nonatomic, readonly, nonnull) id imageLoader; + +/** + The image transformer for manager. It's used for image transform after the image load finished and store the transformed image to cache, see `BU_SDImageTransformer`. + Defaults to nil, which means no transform is applied. + @note This will affect all the load requests for this manager if you provide. However, you can pass `BU_SDWebImageContextImageTransformer` in context arg to explicitly use that transformer instead. + */ +@property (strong, nonatomic, nullable) id transformer; + +/** + * The cache filter is used to convert an URL into a cache key each time SDWebImageManager need cache key to use image cache. + * + * The following example sets a filter in the application delegate that will remove any query-string from the + * URL before to use it as a cache key: + * + * @code + SDWebImageManager.sharedManager.cacheKeyFilter =[BU_SDWebImageCacheKeyFilter cacheKeyFilterWithBlock:^NSString * _Nullable(NSURL * _Nonnull url) { + url = [[NSURL alloc] initWithScheme:url.scheme host:url.host path:url.path]; + return [url absoluteString]; + }]; + * @endcode + */ +@property (nonatomic, strong, nullable) id cacheKeyFilter; + +/** + * The cache serializer is used to convert the decoded image, the source downloaded data, to the actual data used for storing to the disk cache. If you return nil, means to generate the data from the image instance, see `SDImageCache`. + * For example, if you are using WebP images and facing the slow decoding time issue when later retriving from disk cache again. You can try to encode the decoded image to JPEG/PNG format to disk cache instead of source downloaded data. + * @note The `image` arg is nonnull, but when you also provide a image transformer and the image is transformed, the `data` arg may be nil, take attention to this case. + * @note This method is called from a global queue in order to not to block the main thread. + * @code + SDWebImageManager.sharedManager.cacheSerializer = [BU_SDWebImageCacheSerializer cacheSerializerWithBlock:^NSData * _Nullable(UIImage * _Nonnull image, NSData * _Nullable data, NSURL * _Nullable imageURL) { + BU_SDImageFormat format = [NSData sdBu_imageFormatForImageData:data]; + switch (format) { + case BU_SDImageFormatWebP: + return image.images ? data : nil; + default: + return data; + } +}]; + * @endcode + * The default value is nil. Means we just store the source downloaded data to disk cache. + */ +@property (nonatomic, strong, nullable) id cacheSerializer; + +/** + The options processor is used, to have a global control for all the image request options and context option for current manager. + @note If you use `transformer`, `cacheKeyFilter` or `cacheSerializer` property of manager, the input context option already apply those properties before passed. This options processor is a better replacement for those property in common usage. + For example, you can control the global options, based on the URL or original context option like the below code. + + @code + SDWebImageManager.sharedManager.optionsProcessor = [BU_SDWebImageOptionsProcessor optionsProcessorWithBlock:^BU_SDWebImageOptionsResult * _Nullable(NSURL * _Nullable url, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context) { + // Only do animation on `SDAnimatedImageView` + if (!context[BU_SDWebImageContextAnimatedImageClass]) { + options |= SDWebImageDecodeFirstFrameOnly; + } + // Do not force decode for png url + if ([url.lastPathComponent isEqualToString:@"png"]) { + options |= SDWebImageAvoidDecodeImage; + } + // Always use screen scale factor + SDWebImageMutableContext *mutableContext = [NSDictionary dictionaryWithDictionary:context]; + mutableContext[BU_SDWebImageContextImageScaleFactor] = @(UIScreen.mainScreen.scale); + context = [mutableContext copy]; + + return [[BU_SDWebImageOptionsResult alloc] initWithOptions:options context:context]; + }]; + @endcode + */ +@property (nonatomic, strong, nullable) id optionsProcessor; + +/** + * Check one or more operations running + */ +@property (nonatomic, assign, readonly, getter=isRunning) BOOL running; + +/** + The default image cache when the manager which is created with no arguments. Such as shared manager or init. + Defaults to nil. Means using `SDImageCache.sharedImageCache` + */ +@property (nonatomic, class, nullable) id defaultImageCache; + +/** + The default image loader for manager which is created with no arguments. Such as shared manager or init. + Defaults to nil. Means using `SDWebImageDownloader.sharedDownloader` + */ +@property (nonatomic, class, nullable) id defaultImageLoader; + +/** + * Returns global shared manager instance. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageManager *sharedManager; + +/** + * Allows to specify instance of cache and image loader used with image manager. + * @return new instance of `SDWebImageManager` with specified cache and loader. + */ +- (nonnull instancetype)initWithCache:(nonnull id)cache loader:(nonnull id)loader NS_DESIGNATED_INITIALIZER; + +/** + * Downloads the image at the given URL if not present in cache or return the cached version otherwise. + * + * @param url The URL to the image + * @param options A mask to specify options to use for this request + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * + * This parameter is required. + * + * This block has no return value and takes the requested UIImage as first parameter and the NSData representation as second parameter. + * In case of error the image parameter is nil and the third parameter may contain an NSError. + * + * The forth parameter is an `BU_SDImageCacheType` enum indicating if the image was retrieved from the local cache + * or from the memory cache or from the network. + * + * The fith parameter is set to NO when the SDWebImageProgressiveLoad option is used and the image is + * downloading. This block is thus called repeatedly with a partial image. When image is fully downloaded, the + * block is called a last time with the full image and the last parameter set to YES. + * + * The last parameter is the original image URL + * + * @return Returns an instance of BU_SDWebImageCombinedOperation, which you can cancel the loading process. + */ +- (nullable BU_SDWebImageCombinedOperation *)loadImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nonnull BU_SDInternalCompletionBlock)completedBlock; + +/** + * Downloads the image at the given URL if not present in cache or return the cached version otherwise. + * + * @param url The URL to the image + * @param options A mask to specify options to use for this request + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * + * @return Returns an instance of BU_SDWebImageCombinedOperation, which you can cancel the loading process. + */ +- (nullable BU_SDWebImageCombinedOperation *)loadImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nonnull BU_SDInternalCompletionBlock)completedBlock; + +/** + * Cancel all current operations + */ +//- (void)cancelAll; + +/** + * Return the cache key for a given URL + */ +- (nullable NSString *)cacheKeyForURL:(nullable NSURL *)url; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageManager.h.meta new file mode 100644 index 00000000..42e23d69 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 736e0dbe4aced446b9c30d9d7a164586 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOperation.h new file mode 100755 index 00000000..3940e9e5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOperation.h @@ -0,0 +1,21 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import + +/// A protocol represents cancelable operation. +@protocol BU_SDWebImageOperation + +- (void)cancel; + +@end + +/// NSOperation conform to `BU_SDWebImageOperation`. +@interface NSOperation (BU_SDWebImageOperation) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOperation.h.meta new file mode 100644 index 00000000..acea828c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cfd22bc6b352b464ea5bdc2d21a7352a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOptionsProcessor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOptionsProcessor.h new file mode 100755 index 00000000..99e295c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOptionsProcessor.h @@ -0,0 +1,72 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" + +@class BU_SDWebImageOptionsResult; + +typedef BU_SDWebImageOptionsResult * _Nullable(^BU_SDWebImageOptionsProcessorBlock)(NSURL * _Nullable url, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + The options result contains both options and context. + */ +@interface BU_SDWebImageOptionsResult : NSObject + +/** + BU_WebCache options. + */ +@property (nonatomic, assign, readonly) BU_SDWebImageOptions options; + +/** + Context options. + */ +@property (nonatomic, copy, readonly, nullable) SDWebImageContext *context; + +/** + Create a new options result. + + @param options options + @param context context + @return The options result contains both options and context. + */ +- (nonnull instancetype)initWithOptions:(BU_SDWebImageOptions)options context:(nullable SDWebImageContext *)context; + +@end + +/** + This is the protocol for options processor. + Options processor can be used, to control the final result for individual image request's `BU_SDWebImageOptions` and `SDWebImageContext` + Implements the protocol to have a global control for each indivadual image request's option. + */ +@protocol BU_SDWebImageOptionsProcessor + +/** + Return the processed options result for specify image URL, with its options and context + + @param url The URL to the image + @param options A mask to specify options to use for this request + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @return The processed result, contains both options and context + */ +- (nullable BU_SDWebImageOptionsResult *)processedResultForURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +@end + +/** + A options processor class with block. + */ +@interface BU_SDWebImageOptionsProcessor : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull BU_SDWebImageOptionsProcessorBlock)block; ++ (nonnull instancetype)optionsProcessorWithBlock:(nonnull BU_SDWebImageOptionsProcessorBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOptionsProcessor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOptionsProcessor.h.meta new file mode 100644 index 00000000..2d41cdad --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageOptionsProcessor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3942e45fc51084ded8a0aab9b7fe460d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImagePrefetcher.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImagePrefetcher.h new file mode 100755 index 00000000..1e0eb5d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImagePrefetcher.h @@ -0,0 +1,143 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageManager.h" + +@class BU_SDWebImagePrefetcher; + +/** + A token represents a list of URLs, can be used to cancel the download. + */ +@interface BU_SDWebImagePrefetchToken : NSObject + +/** + * Cancel the current prefetching. + */ +- (void)cancel; + +/** + list of URLs of current prefetching. + */ +@property (nonatomic, copy, readonly, nullable) NSArray *urls; + +@end + +/** + The prefetcher delegate protocol + */ +@protocol BU_SDWebImagePrefetcherDelegate + +@optional + +/** + * Called when an image was prefetched. Which means it's called when one URL from any of prefetching finished. + * + * @param imagePrefetcher The current image prefetcher + * @param imageURL The image url that was prefetched + * @param finishedCount The total number of images that were prefetched (successful or not) + * @param totalCount The total number of images that were to be prefetched + */ +- (void)imagePrefetcher:(nonnull BU_SDWebImagePrefetcher *)imagePrefetcher didPrefetchURL:(nullable NSURL *)imageURL finishedCount:(NSUInteger)finishedCount totalCount:(NSUInteger)totalCount; + +/** + * Called when all images are prefetched. Which means it's called when all URLs from all of prefetching finished. + * @param imagePrefetcher The current image prefetcher + * @param totalCount The total number of images that were prefetched (whether successful or not) + * @param skippedCount The total number of images that were skipped + */ +- (void)imagePrefetcher:(nonnull BU_SDWebImagePrefetcher *)imagePrefetcher didFinishWithTotalCount:(NSUInteger)totalCount skippedCount:(NSUInteger)skippedCount; + +@end + +typedef void(^SDWebImagePrefetcherProgressBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfTotalUrls); +typedef void(^SDWebImagePrefetcherCompletionBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls); + +/** + * Prefetch some URLs in the cache for future use. Images are downloaded in low priority. + */ +@interface BU_SDWebImagePrefetcher : NSObject + +/** + * The web image manager used by prefetcher to prefetch images. + * @note You can specify a standalone manager and downloader with custom configuration suitable for image prefetching. Such as `currentDownloadCount` or `downloadTimeout`. + */ +@property (strong, nonatomic, readonly, nonnull) BU_SDWebImageManager *manager; + +/** + * Maximum number of URLs to prefetch at the same time. Defaults to 3. + */ +@property (nonatomic, assign) NSUInteger maxConcurrentPrefetchCount; + +/** + * The options for prefetcher. Defaults to SDWebImageLowPriority. + */ +@property (nonatomic, assign) BU_SDWebImageOptions options; + +/** + * The context for prefetcher. Defaults to nil. + */ +@property (nonatomic, copy, nullable) SDWebImageContext *context; + +/** + * Queue options for prefetcher when call the progressBlock, completionBlock and delegate methods. Defaults to Main Queue. + * @note The call is asynchronously to avoid blocking target queue. + * @note The delegate queue should be set before any prefetching start and may not be changed during prefetching to avoid thread-safe problem. + */ +@property (strong, nonatomic, nonnull) dispatch_queue_t delegateQueue; + +/** + * The delegate for the prefetcher. Defatuls to nil. + */ +@property (weak, nonatomic, nullable) id delegate; + +/** + * Returns the global shared image prefetcher instance. It use a standalone manager which is different from shared manager. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImagePrefetcher *sharedImagePrefetcher; + +/** + * Allows you to instantiate a prefetcher with any arbitrary image manager. + */ +- (nonnull instancetype)initWithImageManager:(nonnull BU_SDWebImageManager *)manager NS_DESIGNATED_INITIALIZER; + +/** + * Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching. It based on the image manager so the image may from the cache and network according to the `options` property. + * Prefetching is seperate to each other, which means the progressBlock and completionBlock you provide is bind to the prefetching for the list of urls. + * Attention that call this will not cancel previous fetched urls. You should keep the token return by this to cancel or cancel all the prefetch. + * + * @param urls list of URLs to prefetch + * @return the token to cancel the current prefetching. + */ +//- (nullable BU_SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray *)urls; + +/** + * Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching. It based on the image manager so the image may from the cache and network according to the `options` property. + * Prefetching is seperate to each other, which means the progressBlock and completionBlock you provide is bind to the prefetching for the list of urls. + * Attention that call this will not cancel previous fetched urls. You should keep the token return by this to cancel or cancel all the prefetch. + * + * @param urls list of URLs to prefetch + * @param progressBlock block to be called when progress updates; + * first parameter is the number of completed (successful or not) requests, + * second parameter is the total number of images originally requested to be prefetched + * @param completionBlock block to be called when the current prefetching is completed + * first param is the number of completed (successful or not) requests, + * second parameter is the number of skipped requests + * @return the token to cancel the current prefetching. + */ +- (nullable BU_SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray *)urls + progress:(nullable SDWebImagePrefetcherProgressBlock)progressBlock + completed:(nullable SDWebImagePrefetcherCompletionBlock)completionBlock; + +/** + * Remove and cancel all the prefeching for the prefetcher. + */ +//- (void)cancelPrefetching; + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImagePrefetcher.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImagePrefetcher.h.meta new file mode 100644 index 00000000..786b5c08 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImagePrefetcher.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 78be4d9bc3f3e4fb3afe97cbb5ac9006 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageTransition.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageTransition.h new file mode 100755 index 00000000..c0e3ea37 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageTransition.h @@ -0,0 +1,89 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT || SD_MAC +#import "BU_SDImageCache.h" + +#if SD_UIKIT +typedef UIViewAnimationOptions SDWebImageAnimationOptions; +#else +typedef NS_OPTIONS(NSUInteger, SDWebImageAnimationOptions) { + SDWebImageAnimationOptionAllowsImplicitAnimation = 1 << 0, // specify `allowsImplicitAnimation` for the `NSAnimationContext` +}; +#endif + +typedef void (^SDWebImageTransitionPreparesBlock)(__kindof UIView * _Nonnull view, UIImage * _Nullable image, NSData * _Nullable imageData, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); +typedef void (^SDWebImageTransitionAnimationsBlock)(__kindof UIView * _Nonnull view, UIImage * _Nullable image); +typedef void (^SDWebImageTransitionCompletionBlock)(BOOL finished); + +/** + This class is used to provide a transition animation after the view category load image finished. Use this on `sdBu_imageTransition` in UIView+BU_WebCache.h + for UIKit(iOS & tvOS), we use `+[UIView transitionWithView:duration:options:animations:completion]` for transition animation. + for AppKit(macOS), we use `+[NSAnimationContext runAnimationGroup:completionHandler:]` for transition animation. You can call `+[NSAnimationContext currentContext]` to grab the context during animations block. + @note These transition are provided for basic usage. If you need complicated animation, consider to directly use Core Animation or use `SDWebImageAvoidAutoSetImage` and implement your own after image load finished. + */ +@interface BU_SDWebImageTransition : NSObject + +/** + By default, we set the image to the view at the beginning of the animtions. You can disable this and provide custom set image process + */ +@property (nonatomic, assign) BOOL avoidAutoSetImage; +/** + The duration of the transition animation, measured in seconds. Defaults to 0.5. + */ +@property (nonatomic, assign) NSTimeInterval duration; +/** + The timing function used for all animations within this transition animation (macOS). + */ +@property (nonatomic, strong, nullable) CAMediaTimingFunction *timingFunction API_UNAVAILABLE(ios, tvos, watchos); +/** + A mask of options indicating how you want to perform the animations. + */ +@property (nonatomic, assign) SDWebImageAnimationOptions animationOptions; +/** + A block object to be executed before the animation sequence starts. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionPreparesBlock prepares; +/** + A block object that contains the changes you want to make to the specified view. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionAnimationsBlock animations; +/** + A block object to be executed when the animation sequence ends. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionCompletionBlock completion; + +@end + +/** + Convenience way to create transition. Remember to specify the duration if needed. + for UIKit, these transition just use the correspond `animationOptions`. By default we enable `UIViewAnimationOptionAllowUserInteraction` to allow user interaction during transition. + for AppKit, these transition use Core Animation in `animations`. So your view must be layer-backed. Set `wantsLayer = YES` before you apply it. + */ +//@interface BU_SDWebImageTransition (Conveniences) +// +///// Fade transition. +////@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *fadeTransition; +///// Flip from left transition. +////@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromLeftTransition; +///// Flip from right transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromRightTransition; +///// Flip from top transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromTopTransition; +///// Flip from bottom transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromBottomTransition; +///// Curl up transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *curlUpTransition; +///// Curl down transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *curlDownTransition; +// +//@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageTransition.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageTransition.h.meta new file mode 100644 index 00000000..fdb5e59d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDWebImageTransition.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea2f849a34f8f4861a1ae142d3a61c15 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDmetamacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDmetamacros.h new file mode 100755 index 00000000..dd90d99b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDmetamacros.h @@ -0,0 +1,667 @@ +/** + * Macros for metaprogramming + * ExtendedC + * + * Copyright (C) 2012 Justin Spahr-Summers + * Released under the MIT license + */ + +#ifndef EXTC_METAMACROS_H +#define EXTC_METAMACROS_H + + +/** + * Executes one or more expressions (which may have a void type, such as a call + * to a function that returns no value) and always returns true. + */ +#define metamacro_exprify(...) \ + ((__VA_ARGS__), true) + +/** + * Returns a string representation of VALUE after full macro expansion. + */ +#define metamacro_stringify(VALUE) \ + metamacro_stringify_(VALUE) + +/** + * Returns A and B concatenated after full macro expansion. + */ +#define metamacro_concat(A, B) \ + metamacro_concat_(A, B) + +/** + * Returns the Nth variadic argument (starting from zero). At least + * N + 1 variadic arguments must be given. N must be between zero and twenty, + * inclusive. + */ +#define metamacro_at(N, ...) \ + metamacro_concat(metamacro_at, N)(__VA_ARGS__) + +/** + * Returns the number of arguments (up to twenty) provided to the macro. At + * least one argument must be provided. + * + * Inspired by P99: http://p99.gforge.inria.fr + */ +#define metamacro_argcount(...) \ + metamacro_at(20, __VA_ARGS__, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) + +/** + * Identical to #metamacro_foreach_cxt, except that no CONTEXT argument is + * given. Only the index and current argument will thus be passed to MACRO. + */ +#define metamacro_foreach(MACRO, SEP, ...) \ + metamacro_foreach_cxt(metamacro_foreach_iter, SEP, MACRO, __VA_ARGS__) + +/** + * For each consecutive variadic argument (up to twenty), MACRO is passed the + * zero-based index of the current argument, CONTEXT, and then the argument + * itself. The results of adjoining invocations of MACRO are then separated by + * SEP. + * + * Inspired by P99: http://p99.gforge.inria.fr + */ +#define metamacro_foreach_cxt(MACRO, SEP, CONTEXT, ...) \ + metamacro_concat(metamacro_foreach_cxt, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__) + +/** + * Identical to #metamacro_foreach_cxt. This can be used when the former would + * fail due to recursive macro expansion. + */ +#define metamacro_foreach_cxt_recursive(MACRO, SEP, CONTEXT, ...) \ + metamacro_concat(metamacro_foreach_cxt_recursive, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__) + +/** + * In consecutive order, appends each variadic argument (up to twenty) onto + * BASE. The resulting concatenations are then separated by SEP. + * + * This is primarily useful to manipulate a list of macro invocations into instead + * invoking a different, possibly related macro. + */ +#define metamacro_foreach_concat(BASE, SEP, ...) \ + metamacro_foreach_cxt(metamacro_foreach_concat_iter, SEP, BASE, __VA_ARGS__) + +/** + * Iterates COUNT times, each time invoking MACRO with the current index + * (starting at zero) and CONTEXT. The results of adjoining invocations of MACRO + * are then separated by SEP. + * + * COUNT must be an integer between zero and twenty, inclusive. + */ +#define metamacro_for_cxt(COUNT, MACRO, SEP, CONTEXT) \ + metamacro_concat(metamacro_for_cxt, COUNT)(MACRO, SEP, CONTEXT) + +/** + * Returns the first argument given. At least one argument must be provided. + * + * This is useful when implementing a variadic macro, where you may have only + * one variadic argument, but no way to retrieve it (for example, because \c ... + * always needs to match at least one argument). + * + * @code + +#define varmacro(...) \ + metamacro_head(__VA_ARGS__) + + * @endcode + */ +#define metamacro_head(...) \ + metamacro_head_(__VA_ARGS__, 0) + +/** + * Returns every argument except the first. At least two arguments must be + * provided. + */ +#define metamacro_tail(...) \ + metamacro_tail_(__VA_ARGS__) + +/** + * Returns the first N (up to twenty) variadic arguments as a new argument list. + * At least N variadic arguments must be provided. + */ +#define metamacro_take(N, ...) \ + metamacro_concat(metamacro_take, N)(__VA_ARGS__) + +/** + * Removes the first N (up to twenty) variadic arguments from the given argument + * list. At least N variadic arguments must be provided. + */ +#define metamacro_drop(N, ...) \ + metamacro_concat(metamacro_drop, N)(__VA_ARGS__) + +/** + * Decrements VAL, which must be a number between zero and twenty, inclusive. + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_dec(VAL) \ + metamacro_at(VAL, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) + +/** + * Increments VAL, which must be a number between zero and twenty, inclusive. + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_inc(VAL) \ + metamacro_at(VAL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) + +/** + * If A is equal to B, the next argument list is expanded; otherwise, the + * argument list after that is expanded. A and B must be numbers between zero + * and twenty, inclusive. Additionally, B must be greater than or equal to A. + * + * @code + +// expands to true +metamacro_if_eq(0, 0)(true)(false) + +// expands to false +metamacro_if_eq(0, 1)(true)(false) + + * @endcode + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_if_eq(A, B) \ + metamacro_concat(metamacro_if_eq, A)(B) + +/** + * Identical to #metamacro_if_eq. This can be used when the former would fail + * due to recursive macro expansion. + */ +#define metamacro_if_eq_recursive(A, B) \ + metamacro_concat(metamacro_if_eq_recursive, A)(B) + +/** + * Returns 1 if N is an even number, or 0 otherwise. N must be between zero and + * twenty, inclusive. + * + * For the purposes of this test, zero is considered even. + */ +#define metamacro_is_even(N) \ + metamacro_at(N, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1) + +/** + * Returns the logical NOT of B, which must be the number zero or one. + */ +#define metamacro_not(B) \ + metamacro_at(B, 1, 0) + +// IMPLEMENTATION DETAILS FOLLOW! +// Do not write code that depends on anything below this line. +#define metamacro_stringify_(VALUE) # VALUE +#define metamacro_concat_(A, B) A ## B +#define metamacro_foreach_iter(INDEX, MACRO, ARG) MACRO(INDEX, ARG) +#define metamacro_head_(FIRST, ...) FIRST +#define metamacro_tail_(FIRST, ...) __VA_ARGS__ +#define metamacro_consume_(...) +#define metamacro_expand_(...) __VA_ARGS__ + +// implemented from scratch so that metamacro_concat() doesn't end up nesting +#define metamacro_foreach_concat_iter(INDEX, BASE, ARG) metamacro_foreach_concat_iter_(BASE, ARG) +#define metamacro_foreach_concat_iter_(BASE, ARG) BASE ## ARG + +// metamacro_at expansions +#define metamacro_at0(...) metamacro_head(__VA_ARGS__) +#define metamacro_at1(_0, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at2(_0, _1, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at3(_0, _1, _2, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at4(_0, _1, _2, _3, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at5(_0, _1, _2, _3, _4, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at6(_0, _1, _2, _3, _4, _5, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at7(_0, _1, _2, _3, _4, _5, _6, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at8(_0, _1, _2, _3, _4, _5, _6, _7, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at9(_0, _1, _2, _3, _4, _5, _6, _7, _8, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at11(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at12(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at13(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at14(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at15(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at16(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, ...) metamacro_head(__VA_ARGS__) + +// metamacro_foreach_cxt expansions +#define metamacro_foreach_cxt0(MACRO, SEP, CONTEXT) +#define metamacro_foreach_cxt1(MACRO, SEP, CONTEXT, _0) MACRO(0, CONTEXT, _0) + +#define metamacro_foreach_cxt2(MACRO, SEP, CONTEXT, _0, _1) \ + metamacro_foreach_cxt1(MACRO, SEP, CONTEXT, _0) \ + SEP \ + MACRO(1, CONTEXT, _1) + +#define metamacro_foreach_cxt3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + metamacro_foreach_cxt2(MACRO, SEP, CONTEXT, _0, _1) \ + SEP \ + MACRO(2, CONTEXT, _2) + +#define metamacro_foreach_cxt4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + metamacro_foreach_cxt3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + SEP \ + MACRO(3, CONTEXT, _3) + +#define metamacro_foreach_cxt5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + metamacro_foreach_cxt4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + SEP \ + MACRO(4, CONTEXT, _4) + +#define metamacro_foreach_cxt6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + metamacro_foreach_cxt5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + SEP \ + MACRO(5, CONTEXT, _5) + +#define metamacro_foreach_cxt7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + metamacro_foreach_cxt6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + SEP \ + MACRO(6, CONTEXT, _6) + +#define metamacro_foreach_cxt8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + metamacro_foreach_cxt7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + SEP \ + MACRO(7, CONTEXT, _7) + +#define metamacro_foreach_cxt9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + metamacro_foreach_cxt8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + SEP \ + MACRO(8, CONTEXT, _8) + +#define metamacro_foreach_cxt10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + metamacro_foreach_cxt9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + SEP \ + MACRO(9, CONTEXT, _9) + +#define metamacro_foreach_cxt11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + metamacro_foreach_cxt10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + SEP \ + MACRO(10, CONTEXT, _10) + +#define metamacro_foreach_cxt12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + metamacro_foreach_cxt11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + SEP \ + MACRO(11, CONTEXT, _11) + +#define metamacro_foreach_cxt13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + metamacro_foreach_cxt12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + SEP \ + MACRO(12, CONTEXT, _12) + +#define metamacro_foreach_cxt14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + metamacro_foreach_cxt13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + SEP \ + MACRO(13, CONTEXT, _13) + +#define metamacro_foreach_cxt15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + metamacro_foreach_cxt14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + SEP \ + MACRO(14, CONTEXT, _14) + +#define metamacro_foreach_cxt16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + metamacro_foreach_cxt15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + SEP \ + MACRO(15, CONTEXT, _15) + +#define metamacro_foreach_cxt17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + metamacro_foreach_cxt16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + SEP \ + MACRO(16, CONTEXT, _16) + +#define metamacro_foreach_cxt18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + metamacro_foreach_cxt17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + SEP \ + MACRO(17, CONTEXT, _17) + +#define metamacro_foreach_cxt19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + metamacro_foreach_cxt18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + SEP \ + MACRO(18, CONTEXT, _18) + +#define metamacro_foreach_cxt20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + metamacro_foreach_cxt19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + SEP \ + MACRO(19, CONTEXT, _19) + +// metamacro_foreach_cxt_recursive expansions +#define metamacro_foreach_cxt_recursive0(MACRO, SEP, CONTEXT) +#define metamacro_foreach_cxt_recursive1(MACRO, SEP, CONTEXT, _0) MACRO(0, CONTEXT, _0) + +#define metamacro_foreach_cxt_recursive2(MACRO, SEP, CONTEXT, _0, _1) \ + metamacro_foreach_cxt_recursive1(MACRO, SEP, CONTEXT, _0) \ + SEP \ + MACRO(1, CONTEXT, _1) + +#define metamacro_foreach_cxt_recursive3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + metamacro_foreach_cxt_recursive2(MACRO, SEP, CONTEXT, _0, _1) \ + SEP \ + MACRO(2, CONTEXT, _2) + +#define metamacro_foreach_cxt_recursive4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + metamacro_foreach_cxt_recursive3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + SEP \ + MACRO(3, CONTEXT, _3) + +#define metamacro_foreach_cxt_recursive5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + metamacro_foreach_cxt_recursive4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + SEP \ + MACRO(4, CONTEXT, _4) + +#define metamacro_foreach_cxt_recursive6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + metamacro_foreach_cxt_recursive5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + SEP \ + MACRO(5, CONTEXT, _5) + +#define metamacro_foreach_cxt_recursive7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + metamacro_foreach_cxt_recursive6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + SEP \ + MACRO(6, CONTEXT, _6) + +#define metamacro_foreach_cxt_recursive8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + metamacro_foreach_cxt_recursive7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + SEP \ + MACRO(7, CONTEXT, _7) + +#define metamacro_foreach_cxt_recursive9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + metamacro_foreach_cxt_recursive8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + SEP \ + MACRO(8, CONTEXT, _8) + +#define metamacro_foreach_cxt_recursive10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + metamacro_foreach_cxt_recursive9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + SEP \ + MACRO(9, CONTEXT, _9) + +#define metamacro_foreach_cxt_recursive11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + metamacro_foreach_cxt_recursive10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + SEP \ + MACRO(10, CONTEXT, _10) + +#define metamacro_foreach_cxt_recursive12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + metamacro_foreach_cxt_recursive11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + SEP \ + MACRO(11, CONTEXT, _11) + +#define metamacro_foreach_cxt_recursive13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + metamacro_foreach_cxt_recursive12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + SEP \ + MACRO(12, CONTEXT, _12) + +#define metamacro_foreach_cxt_recursive14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + metamacro_foreach_cxt_recursive13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + SEP \ + MACRO(13, CONTEXT, _13) + +#define metamacro_foreach_cxt_recursive15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + metamacro_foreach_cxt_recursive14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + SEP \ + MACRO(14, CONTEXT, _14) + +#define metamacro_foreach_cxt_recursive16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + metamacro_foreach_cxt_recursive15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + SEP \ + MACRO(15, CONTEXT, _15) + +#define metamacro_foreach_cxt_recursive17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + metamacro_foreach_cxt_recursive16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + SEP \ + MACRO(16, CONTEXT, _16) + +#define metamacro_foreach_cxt_recursive18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + metamacro_foreach_cxt_recursive17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + SEP \ + MACRO(17, CONTEXT, _17) + +#define metamacro_foreach_cxt_recursive19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + metamacro_foreach_cxt_recursive18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + SEP \ + MACRO(18, CONTEXT, _18) + +#define metamacro_foreach_cxt_recursive20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + metamacro_foreach_cxt_recursive19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + SEP \ + MACRO(19, CONTEXT, _19) + +// metamacro_for_cxt expansions +#define metamacro_for_cxt0(MACRO, SEP, CONTEXT) +#define metamacro_for_cxt1(MACRO, SEP, CONTEXT) MACRO(0, CONTEXT) + +#define metamacro_for_cxt2(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt1(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(1, CONTEXT) + +#define metamacro_for_cxt3(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt2(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(2, CONTEXT) + +#define metamacro_for_cxt4(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt3(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(3, CONTEXT) + +#define metamacro_for_cxt5(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt4(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(4, CONTEXT) + +#define metamacro_for_cxt6(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt5(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(5, CONTEXT) + +#define metamacro_for_cxt7(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt6(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(6, CONTEXT) + +#define metamacro_for_cxt8(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt7(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(7, CONTEXT) + +#define metamacro_for_cxt9(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt8(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(8, CONTEXT) + +#define metamacro_for_cxt10(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt9(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(9, CONTEXT) + +#define metamacro_for_cxt11(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt10(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(10, CONTEXT) + +#define metamacro_for_cxt12(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt11(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(11, CONTEXT) + +#define metamacro_for_cxt13(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt12(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(12, CONTEXT) + +#define metamacro_for_cxt14(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt13(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(13, CONTEXT) + +#define metamacro_for_cxt15(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt14(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(14, CONTEXT) + +#define metamacro_for_cxt16(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt15(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(15, CONTEXT) + +#define metamacro_for_cxt17(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt16(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(16, CONTEXT) + +#define metamacro_for_cxt18(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt17(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(17, CONTEXT) + +#define metamacro_for_cxt19(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt18(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(18, CONTEXT) + +#define metamacro_for_cxt20(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt19(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(19, CONTEXT) + +// metamacro_if_eq expansions +#define metamacro_if_eq0(VALUE) \ + metamacro_concat(metamacro_if_eq0_, VALUE) + +#define metamacro_if_eq0_0(...) __VA_ARGS__ metamacro_consume_ +#define metamacro_if_eq0_1(...) metamacro_expand_ +#define metamacro_if_eq0_2(...) metamacro_expand_ +#define metamacro_if_eq0_3(...) metamacro_expand_ +#define metamacro_if_eq0_4(...) metamacro_expand_ +#define metamacro_if_eq0_5(...) metamacro_expand_ +#define metamacro_if_eq0_6(...) metamacro_expand_ +#define metamacro_if_eq0_7(...) metamacro_expand_ +#define metamacro_if_eq0_8(...) metamacro_expand_ +#define metamacro_if_eq0_9(...) metamacro_expand_ +#define metamacro_if_eq0_10(...) metamacro_expand_ +#define metamacro_if_eq0_11(...) metamacro_expand_ +#define metamacro_if_eq0_12(...) metamacro_expand_ +#define metamacro_if_eq0_13(...) metamacro_expand_ +#define metamacro_if_eq0_14(...) metamacro_expand_ +#define metamacro_if_eq0_15(...) metamacro_expand_ +#define metamacro_if_eq0_16(...) metamacro_expand_ +#define metamacro_if_eq0_17(...) metamacro_expand_ +#define metamacro_if_eq0_18(...) metamacro_expand_ +#define metamacro_if_eq0_19(...) metamacro_expand_ +#define metamacro_if_eq0_20(...) metamacro_expand_ + +#define metamacro_if_eq1(VALUE) metamacro_if_eq0(metamacro_dec(VALUE)) +#define metamacro_if_eq2(VALUE) metamacro_if_eq1(metamacro_dec(VALUE)) +#define metamacro_if_eq3(VALUE) metamacro_if_eq2(metamacro_dec(VALUE)) +#define metamacro_if_eq4(VALUE) metamacro_if_eq3(metamacro_dec(VALUE)) +#define metamacro_if_eq5(VALUE) metamacro_if_eq4(metamacro_dec(VALUE)) +#define metamacro_if_eq6(VALUE) metamacro_if_eq5(metamacro_dec(VALUE)) +#define metamacro_if_eq7(VALUE) metamacro_if_eq6(metamacro_dec(VALUE)) +#define metamacro_if_eq8(VALUE) metamacro_if_eq7(metamacro_dec(VALUE)) +#define metamacro_if_eq9(VALUE) metamacro_if_eq8(metamacro_dec(VALUE)) +#define metamacro_if_eq10(VALUE) metamacro_if_eq9(metamacro_dec(VALUE)) +#define metamacro_if_eq11(VALUE) metamacro_if_eq10(metamacro_dec(VALUE)) +#define metamacro_if_eq12(VALUE) metamacro_if_eq11(metamacro_dec(VALUE)) +#define metamacro_if_eq13(VALUE) metamacro_if_eq12(metamacro_dec(VALUE)) +#define metamacro_if_eq14(VALUE) metamacro_if_eq13(metamacro_dec(VALUE)) +#define metamacro_if_eq15(VALUE) metamacro_if_eq14(metamacro_dec(VALUE)) +#define metamacro_if_eq16(VALUE) metamacro_if_eq15(metamacro_dec(VALUE)) +#define metamacro_if_eq17(VALUE) metamacro_if_eq16(metamacro_dec(VALUE)) +#define metamacro_if_eq18(VALUE) metamacro_if_eq17(metamacro_dec(VALUE)) +#define metamacro_if_eq19(VALUE) metamacro_if_eq18(metamacro_dec(VALUE)) +#define metamacro_if_eq20(VALUE) metamacro_if_eq19(metamacro_dec(VALUE)) + +// metamacro_if_eq_recursive expansions +#define metamacro_if_eq_recursive0(VALUE) \ + metamacro_concat(metamacro_if_eq_recursive0_, VALUE) + +#define metamacro_if_eq_recursive0_0(...) __VA_ARGS__ metamacro_consume_ +#define metamacro_if_eq_recursive0_1(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_2(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_3(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_4(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_5(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_6(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_7(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_8(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_9(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_10(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_11(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_12(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_13(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_14(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_15(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_16(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_17(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_18(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_19(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_20(...) metamacro_expand_ + +#define metamacro_if_eq_recursive1(VALUE) metamacro_if_eq_recursive0(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive2(VALUE) metamacro_if_eq_recursive1(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive3(VALUE) metamacro_if_eq_recursive2(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive4(VALUE) metamacro_if_eq_recursive3(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive5(VALUE) metamacro_if_eq_recursive4(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive6(VALUE) metamacro_if_eq_recursive5(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive7(VALUE) metamacro_if_eq_recursive6(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive8(VALUE) metamacro_if_eq_recursive7(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive9(VALUE) metamacro_if_eq_recursive8(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive10(VALUE) metamacro_if_eq_recursive9(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive11(VALUE) metamacro_if_eq_recursive10(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive12(VALUE) metamacro_if_eq_recursive11(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive13(VALUE) metamacro_if_eq_recursive12(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive14(VALUE) metamacro_if_eq_recursive13(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive15(VALUE) metamacro_if_eq_recursive14(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive16(VALUE) metamacro_if_eq_recursive15(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive17(VALUE) metamacro_if_eq_recursive16(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive18(VALUE) metamacro_if_eq_recursive17(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive19(VALUE) metamacro_if_eq_recursive18(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive20(VALUE) metamacro_if_eq_recursive19(metamacro_dec(VALUE)) + +// metamacro_take expansions +#define metamacro_take0(...) +#define metamacro_take1(...) metamacro_head(__VA_ARGS__) +#define metamacro_take2(...) metamacro_head(__VA_ARGS__), metamacro_take1(metamacro_tail(__VA_ARGS__)) +#define metamacro_take3(...) metamacro_head(__VA_ARGS__), metamacro_take2(metamacro_tail(__VA_ARGS__)) +#define metamacro_take4(...) metamacro_head(__VA_ARGS__), metamacro_take3(metamacro_tail(__VA_ARGS__)) +#define metamacro_take5(...) metamacro_head(__VA_ARGS__), metamacro_take4(metamacro_tail(__VA_ARGS__)) +#define metamacro_take6(...) metamacro_head(__VA_ARGS__), metamacro_take5(metamacro_tail(__VA_ARGS__)) +#define metamacro_take7(...) metamacro_head(__VA_ARGS__), metamacro_take6(metamacro_tail(__VA_ARGS__)) +#define metamacro_take8(...) metamacro_head(__VA_ARGS__), metamacro_take7(metamacro_tail(__VA_ARGS__)) +#define metamacro_take9(...) metamacro_head(__VA_ARGS__), metamacro_take8(metamacro_tail(__VA_ARGS__)) +#define metamacro_take10(...) metamacro_head(__VA_ARGS__), metamacro_take9(metamacro_tail(__VA_ARGS__)) +#define metamacro_take11(...) metamacro_head(__VA_ARGS__), metamacro_take10(metamacro_tail(__VA_ARGS__)) +#define metamacro_take12(...) metamacro_head(__VA_ARGS__), metamacro_take11(metamacro_tail(__VA_ARGS__)) +#define metamacro_take13(...) metamacro_head(__VA_ARGS__), metamacro_take12(metamacro_tail(__VA_ARGS__)) +#define metamacro_take14(...) metamacro_head(__VA_ARGS__), metamacro_take13(metamacro_tail(__VA_ARGS__)) +#define metamacro_take15(...) metamacro_head(__VA_ARGS__), metamacro_take14(metamacro_tail(__VA_ARGS__)) +#define metamacro_take16(...) metamacro_head(__VA_ARGS__), metamacro_take15(metamacro_tail(__VA_ARGS__)) +#define metamacro_take17(...) metamacro_head(__VA_ARGS__), metamacro_take16(metamacro_tail(__VA_ARGS__)) +#define metamacro_take18(...) metamacro_head(__VA_ARGS__), metamacro_take17(metamacro_tail(__VA_ARGS__)) +#define metamacro_take19(...) metamacro_head(__VA_ARGS__), metamacro_take18(metamacro_tail(__VA_ARGS__)) +#define metamacro_take20(...) metamacro_head(__VA_ARGS__), metamacro_take19(metamacro_tail(__VA_ARGS__)) + +// metamacro_drop expansions +#define metamacro_drop0(...) __VA_ARGS__ +#define metamacro_drop1(...) metamacro_tail(__VA_ARGS__) +#define metamacro_drop2(...) metamacro_drop1(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop3(...) metamacro_drop2(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop4(...) metamacro_drop3(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop5(...) metamacro_drop4(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop6(...) metamacro_drop5(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop7(...) metamacro_drop6(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop8(...) metamacro_drop7(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop9(...) metamacro_drop8(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop10(...) metamacro_drop9(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop11(...) metamacro_drop10(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop12(...) metamacro_drop11(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop13(...) metamacro_drop12(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop14(...) metamacro_drop13(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop15(...) metamacro_drop14(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop16(...) metamacro_drop15(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop17(...) metamacro_drop16(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop18(...) metamacro_drop17(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop19(...) metamacro_drop18(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop20(...) metamacro_drop19(metamacro_tail(__VA_ARGS__)) + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDmetamacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDmetamacros.h.meta new file mode 100644 index 00000000..ea461365 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_SDmetamacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 23b7bae64fb8d43f5a8a28286811dfd8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayer.h new file mode 100755 index 00000000..ea3b3d22 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayer.h @@ -0,0 +1,32 @@ +// +// ZFPlayer.h +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import "BUPlayer.h" +#import "BUPlayerDefine.h" +#import "UIImageView+BU_ZFCache.h" +#import "BU_ZFPlayerControlView.h" +#import "BUPlayerInternalDefine.h" +#import "BUPlayerSettingsProtocol.h" +#import "BUPlayerItem.h" +#import "BUVideoPrefetchManager.h" +#import "BUCacheManager.h" diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayer.h.meta new file mode 100644 index 00000000..f4212994 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7ae83e3fb96964d0984e7aaa3ccb9410 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayerControlView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayerControlView.h new file mode 100755 index 00000000..7d52ddef --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayerControlView.h @@ -0,0 +1,31 @@ +// +// ZFPlayerControlView.h +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import "BUPlayerDefine.h" + +@interface BU_ZFPlayerControlView : UIView + +- (void)hideControlView; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayerControlView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayerControlView.h.meta new file mode 100644 index 00000000..9e4b6988 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZFPlayerControlView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 043e0fd06278c48ea9612c7566be9e84 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZipArchiveUtility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZipArchiveUtility.h new file mode 100755 index 00000000..a58e54b9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZipArchiveUtility.h @@ -0,0 +1,153 @@ +// +// BU_ZipArchiveUtility.h +// BU_ZipArchiveUtility +// +// Created by Sam Soffes on 7/21/10. +// Copyright (c) Sam Soffes 2010-2015. All rights reserved. +// + +#ifndef _BUZipArchive_H +#define _BUZipArchive_H + +#import +#import "BUZipCommon.h" + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const BUZipArchiveErrorDomain; +typedef NS_ENUM(NSInteger, BUZipArchiveErrorCode) { + BUZipArchiveErrorCodeFailedOpenZipFile = -1, + BUZipArchiveErrorCodeFailedOpenFileInZip = -2, + BUZipArchiveErrorCodeFileInfoNotLoadable = -3, + BUZipArchiveErrorCodeFileContentNotReadable = -4, + BUZipArchiveErrorCodeFailedToWriteFile = -5, + BUZipArchiveErrorCodeInvalidArguments = -6, +}; + +@protocol BUZipArchiveDelegate; + +@interface BU_ZipArchiveUtility : NSObject + + +// Password check +//+ (BOOL)isFilePasswordProtectedAtPath:(NSString *)path; +//+ (BOOL)isPasswordValidForArchiveAtPath:(NSString *)path password:(NSString *)pw error:(NSError * _Nullable * _Nullable)error NS_SWIFT_NOTHROW; + +// Total payload size +//+ (NSNumber *)payloadSizeForArchiveAtPath:(NSString *)path error:(NSError **)error; + +// Unzip ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination; ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination delegate:(nullable id)delegate; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// error:(NSError * *)error; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + overwrite:(BOOL)overwrite + needRename:(BOOL)needRename + password:(nullable NSString *)password + error:(NSError * *)error + delegate:(nullable id)delegate NS_REFINED_FOR_SWIFT; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// preserveAttributes:(BOOL)preserveAttributes +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// error:(NSError * *)error +// delegate:(nullable id)delegate; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler +// completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler +// completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + preserveAttributes:(BOOL)preserveAttributes + overwrite:(BOOL)overwrite + needRename:(BOOL)needRename + nestedZipLevel:(NSInteger)nestedZipLevel + password:(nullable NSString *)password + error:(NSError **)error + delegate:(nullable id)delegate + progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + +// Zip +// default compression level is Z_DEFAULT_COMPRESSION (from "zlib.h") +// keepParentDirectory: if YES, then unzipping will give `directoryName/fileName`. If NO, then unzipping will just give `fileName`. Default is NO. + +// without password +//+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath; +// +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory; + +// with optional password, default encryption is AES +// don't use AES if you need compatibility with native macOS unzip and Archive Utility +//+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path +// withContentsOfDirectory:(NSString *)directoryPath +// keepParentDirectory:(BOOL)keepParentDirectory +// withPassword:(nullable NSString *)password +// andProgressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; +//+ (BOOL)createZipFileAtPath:(NSString *)path +// withContentsOfDirectory:(NSString *)directoryPath +// keepParentDirectory:(BOOL)keepParentDirectory +// compressionLevel:(int)compressionLevel +// password:(nullable NSString *)password +// AES:(BOOL)aes +// progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; + +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)initWithPath:(NSString *)path NS_DESIGNATED_INITIALIZER; +- (BOOL)open; + +/// write empty folder +- (BOOL)writeFolderAtPath:(NSString *)path withFolderName:(NSString *)folderName withPassword:(nullable NSString *)password; +/// write file +- (BOOL)writeFile:(NSString *)path withPassword:(nullable NSString *)password; +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName withPassword:(nullable NSString *)password; +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; +/// write data +//- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename withPassword:(nullable NSString *)password; +- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; + +- (BOOL)close; + +@end + +@protocol BUZipArchiveDelegate + +@optional + +- (void)zipArchiveWillUnzipArchiveAtPath:(NSString *)path zipInfo:(bu_unz_global_info)zipInfo; +- (void)zipArchiveDidUnzipArchiveAtPath:(NSString *)path zipInfo:(bu_unz_global_info)zipInfo unzippedPath:(NSString *)unzippedPath; + +- (BOOL)zipArchiveShouldUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveWillUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath unzippedFilePath:(NSString *)unzippedFilePath; + +- (void)zipArchiveProgressEvent:(unsigned long long)loaded total:(unsigned long long)total; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* _BUZipArchive_H */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZipArchiveUtility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZipArchiveUtility.h.meta new file mode 100644 index 00000000..9f49f516 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/BU_ZipArchiveUtility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d77e50c5158f4baab2119f460bc1a86 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSArray+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSArray+BUUtilities.h new file mode 100755 index 00000000..4c818589 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSArray+BUUtilities.h @@ -0,0 +1,58 @@ +// +// NSMutableArray+Utilities.h +// BUAdSDK +// +// Created by 李盛 on 2018/2/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSMutableArray (BU_Utilities) + +- (void)bu_safeAddObject:(id)object; +- (void)bu_safeAddNilObject; +- (void)bu_safeInsertObject:(id)object atIndex:(NSUInteger)index; +- (void)bu_safeInsertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes; +- (void)bu_safeRemoveObject:(id)object; +- (nullable id)bu_objectAtIndexSafely:(NSUInteger)index; +- (void)bu_removeObjectAtIndexSafely:(NSUInteger)index; + + + + + + +@end + +@interface NSArray(BU_JSONValue) +- (nullable NSString *)bu_JSONRepresentation:(NSError **)error; + + + +- (void)bu_forEachWithBlock:(void(^)(id item))block; +- (void)bu_forEachWithIndexBlock:(void(^)(id item, NSInteger index))indexBlock; + +- (NSArray *)bu_mapWithBlock:(id(^)(id item))block; +- (NSArray *)bu_mapWithIndexBlock:(id(^)(id item, NSInteger index))indexBlock; + +- (NSArray *)bu_filterWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (NSArray *)bu_filterWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (BOOL)bu_someWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (BOOL)bu_someWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (BOOL)bu_everyWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (BOOL)bu_everyWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (id)bu_reduceWithBlock:(id(^)(id item1, id item2))block initial:(id)initial; + + + +- (id)bu_findWithConditionBlock:(id(^)(id item))conditionBlock; +- (id)bu_findWithIndexConditionBlock:(id(^)(id item, NSInteger index))indexConditionBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSArray+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSArray+BUUtilities.h.meta new file mode 100644 index 00000000..75481dae --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSArray+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 76ff7eaba65644ef782ad4523c034fba +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSBezierPath+BURoundedCorners.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSBezierPath+BURoundedCorners.h new file mode 100755 index 00000000..8576286b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSBezierPath+BURoundedCorners.h @@ -0,0 +1,24 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +#import "UIImage+BUTransform.h" + +@interface NSBezierPath (RoundedCorners) + +/** + Convenience way to create a bezier path with the specify rounding corners on macOS. Same as the one on `UIBezierPath`. + */ ++ (nonnull instancetype)sdBu_bezierPathWithRoundedRect:(NSRect)rect byRoundingCorners:(BU_SDRectCorner)corners cornerRadius:(CGFloat)cornerRadius; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSBezierPath+BURoundedCorners.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSBezierPath+BURoundedCorners.h.meta new file mode 100644 index 00000000..54f97945 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSBezierPath+BURoundedCorners.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9c933d2aac74b422ab0e6081d595506d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSButton+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSButton+BUWebCache.h new file mode 100755 index 00000000..8f445e8e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSButton+BUWebCache.h @@ -0,0 +1,340 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with NSButton. + */ +@interface NSButton (WebCache) + +#pragma mark - Image + +/** + * Get the current image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentImageURL; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Alternate Image + +/** + * Get the current alternateImage URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentAlternateImageURL; + +/** + * Set the button `alternateImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @see sdBu_setAlternateImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `alternateImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while alternateImage is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while alternateImage is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Cancel + +/** + * Cancel the current image download + */ +- (void)sdBu_cancelCurrentImageLoad; + +/** + * Cancel the current alternateImage download + */ +- (void)sdBu_cancelCurrentAlternateImageLoad; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSButton+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSButton+BUWebCache.h.meta new file mode 100644 index 00000000..2d3f9b80 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSButton+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f4bc00f78c5ee4b4c96bae61f7026817 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSData+BUImageContentType.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSData+BUImageContentType.h new file mode 100755 index 00000000..81880423 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSData+BUImageContentType.h @@ -0,0 +1,59 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Fabrice Aneche + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/** + You can use switch case like normal enum. It's also recommended to add a default case. You should not assume anything about the raw value. + For custom coder plugin, it can also extern the enum for supported format. See `SDImageCoder` for more detailed information. + */ +typedef NSInteger BU_SDImageFormat NS_TYPED_EXTENSIBLE_ENUM; +static const BU_SDImageFormat BU_SDImageFormatUndefined = -1; +static const BU_SDImageFormat BU_SDImageFormatJPEG = 0; +static const BU_SDImageFormat BU_SDImageFormatPNG = 1; +static const BU_SDImageFormat BU_SDImageFormatGIF = 2; +static const BU_SDImageFormat BU_SDImageFormatTIFF = 3; +static const BU_SDImageFormat BU_SDImageFormatWebP = 4; +static const BU_SDImageFormat BU_SDImageFormatHEIC = 5; +static const BU_SDImageFormat BU_SDImageFormatHEIF = 6; +static const BU_SDImageFormat BU_SDImageFormatPDF = 7; +static const BU_SDImageFormat BU_SDImageFormatSVG = 8; + +/** + NSData category about the image content type and UTI. + */ +@interface NSData (BU_ImageContentType) + +/** + * Return image format + * + * @param data the input image data + * + * @return the image format as `BU_SDImageFormat` (enum) + */ ++ (BU_SDImageFormat)sdBu_imageFormatForImageData:(nullable NSData *)data; + +/** + * Convert BU_SDImageFormat to UTType + * + * @param format Format as BU_SDImageFormat + * @return The UTType as CFStringRef + */ ++ (nonnull CFStringRef)sdBu_UTTypeFromImageFormat:(BU_SDImageFormat)format CF_RETURNS_NOT_RETAINED NS_SWIFT_NAME(sdBu_UTType(from:)); + +/** + * Convert UTTyppe to BU_SDImageFormat + * + * @param uttype The UTType as CFStringRef + * @return The Format as BU_SDImageFormat + */ ++ (BU_SDImageFormat)sdBu_imageFormatFromUTType:(nonnull CFStringRef)uttype; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSData+BUImageContentType.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSData+BUImageContentType.h.meta new file mode 100644 index 00000000..9e11a36d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSData+BUImageContentType.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e03d7320dd7a84013bdba795b5c8684e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSDictionary+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSDictionary+BUUtilities.h new file mode 100755 index 00000000..9e1d3d29 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSDictionary+BUUtilities.h @@ -0,0 +1,58 @@ +// +// NSMutableDictionary+Utilities.h +// BUAdSDK +// +// Created by 李盛 on 2018/2/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSDictionary (BU_Helper) + +#pragma mark - Safe Value Type From Key +- (nullable NSString *)bu_stringForKey:(NSString *)key defaultValue:(nullable NSString *)defalutValue; +- (BOOL)bu_boolForKey:(NSString *)key defaultValue:(BOOL)defalutValue; +- (NSInteger)bu_integerForKey:(NSString *)key defaultValue:(NSInteger)defalutValue; +- (long)bu_longForKey:(NSString *)key defaultValue:(long)defalutValue; +- (long long)bu_longLongForKey:(NSString *)key defaultValue:(long long)defalutValue; +- (NSTimeInterval)bu_timeIntervalForKey:(NSString *)key defaultValue:(NSTimeInterval)defalutValue; +- (float)bu_floatForKey:(NSString *)key defaultValue:(float)defalutValue; +- (nullable NSArray *)bu_arrayForKey:(NSString *)key defaultValue:(nullable NSArray *)defalutValue; +- (nullable NSDictionary *)bu_dictionaryForKey:(NSString *)key defaultValue:(nullable NSDictionary *)defalutValue; + +@end + +@interface NSDictionary(BU_JSONValue) + +- (nullable NSString *)bu_JSONRepresentation:(NSError **)error; ++ (nullable NSDictionary *)bu_dictionaryWithJSONData:(nullable NSData *)inData error:(NSError **)outError; ++ (nullable NSDictionary *)bu_dictionaryWithJSONString:(NSString *)inJSON error:(NSError **)outError; + + + + +- (void)bu_forEachWithBlock:(void(^)(id key, id value))block; + + + + + +@end + +@interface NSDictionary(BU_Formate) + +- (void)bu_parserWithKey:(NSString *)key stringValue:(NSString *_Nullable*_Nullable)stringValue dictValue:(NSDictionary *_Nullable*_Nullable)dictValue aryValue:(NSArray *_Nullable*_Nullable)aryValue; + +@end + +@interface NSMutableDictionary (BU_Helper) + +#pragma mark - Safe Set Object For Key +- (void)bu_setObject:(nullable id)object forKey:(nullable id)key; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSDictionary+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSDictionary+BUUtilities.h.meta new file mode 100644 index 00000000..1e0f13f4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSDictionary+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 75fa04858e492440f875016d13b09897 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSImage+BUCompatibility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSImage+BUCompatibility.h new file mode 100755 index 00000000..6c705a99 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSImage+BUCompatibility.h @@ -0,0 +1,53 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +/** + This category is provided to easily write cross-platform(AppKit/UIKit) code. For common usage, see `UIImage+BUMetadata.h`. + */ +@interface NSImage (Compatibility) + +/** +The underlying Core Graphics image object. This will actually use `CGImageForProposedRect` with the image size. + */ +@property (nonatomic, readonly, nullable) CGImageRef CGImage; +/** + The scale factor of the image. This wil actually use `bestRepresentationForRect` with image size and pixel size to calculate the scale factor. If failed, use the default value 1.0. Should be greater than or equal to 1.0. + */ +@property (nonatomic, readonly) CGFloat scale; + +// These are convenience methods to make AppKit's `NSImage` match UIKit's `UIImage` behavior. The scale factor should be greater than or equal to 1.0. + +/** + Returns an image object with the scale factor and orientation. The representation is created from the Core Graphics image object. + @note The difference between this and `initWithCGImage:size` is that `initWithCGImage:size` will actually create a `NSCGImageSnapshotRep` representation and always use `backingScaleFactor` as scale factor. So we should avoid it and use `NSBitmapImageRep` with `initWithCGImage:` instead. + @note The difference between this and UIKit's `UIImage` equivalent method is the way to process orientation. If the provided image orientation is not equal to Up orientation, this method will firstly rotate the CGImage to the correct orientation to work compatible with `NSImageView`. However, UIKit will not actually rotate CGImage and just store it as `imageOrientation` property. + + @param cgImage A Core Graphics image object + @param scale The image scale factor + @param orientation The orientation of the image data + @return The image object + */ +- (nonnull instancetype)initWithCGImage:(nonnull CGImageRef)cgImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation; + +/** + Returns an image object with the scale factor. The representation is created from the image data. + @note The difference between these this and `initWithData:` is that `initWithData:` will always use `backingScaleFactor` as scale factor. + + @param data The image data + @param scale The image scale factor + @return The image object + */ +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSImage+BUCompatibility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSImage+BUCompatibility.h.meta new file mode 100644 index 00000000..17377f89 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSImage+BUCompatibility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 86a625dd4982a490b88d8e676c427c1e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSJSONSerialization+BUSafeSerializaiton.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSJSONSerialization+BUSafeSerializaiton.h new file mode 100755 index 00000000..3589bb04 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSJSONSerialization+BUSafeSerializaiton.h @@ -0,0 +1,18 @@ +// +// NSJSONSerialization+BUSafeSerializaiton.h +// BUFoundation +// +// Created by bytedance on 2020/10/10. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSJSONSerialization (BUSafeSerializaiton) ++ (nonnull NSString *)bu_stringJsonSerializationWithObject:(id)object options:(NSJSONWritingOptions)opt error:(NSError **)error; ++ (nullable NSData *)bu_dataJsonSerializationWithObject:(id)object options:(NSJSONWritingOptions)opt error:(NSError **)error; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta new file mode 100644 index 00000000..f88ac516 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 634477dd2144149f6a1e16f5078dd160 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSKeyedArchiver+BUKeyedArchiver.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSKeyedArchiver+BUKeyedArchiver.h new file mode 100755 index 00000000..6a6a8e50 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSKeyedArchiver+BUKeyedArchiver.h @@ -0,0 +1,16 @@ +// +// NSKeyedArchiver+BUKeyedArchiver.h +// BUFoundation +// +// Created by Eason on 2021/4/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSKeyedArchiver (BUKeyedArchiver) ++ (NSData *)bu_archivedDataWithRootObject:(id)rootObject; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta new file mode 100644 index 00000000..024a9c59 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 31f6aaa2bbf724c538f7c7254116ae00 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUSafeKVO.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUSafeKVO.h new file mode 100755 index 00000000..93f5d9ed --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUSafeKVO.h @@ -0,0 +1,25 @@ +// +// NSObject+BUSafeKVO.h +// BUFoundation +// +// Created by Siwant on 2019/9/2. +// Copyright © 2019 Union. All rights reserved. +// + +#import + +@interface NSObject (BUSafeKVO) + +- (void)bu_addObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath + options:(NSKeyValueObservingOptions)options + context:(void *)context; + +- (void)bu_removeObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath + context:(void *)context; + +- (void)bu_removeObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUSafeKVO.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUSafeKVO.h.meta new file mode 100644 index 00000000..0bb3778f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUSafeKVO.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5c4343397cde244deae5f327fdcf7156 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUUtils.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUUtils.h new file mode 100755 index 00000000..107d150e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUUtils.h @@ -0,0 +1,22 @@ +// +// NSObject+BUUtils.h +// BUFoundation +// +// Created by wangyanlin on 2020/12/7. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSObject (BUUtils) + ++ (NSString *)bu_convertToStringWithOrignalObj:(id)obj; + ++ (NSDictionary *)bu_dictAfterFormatWithOriginDict:(NSDictionary *)originDict; ++ (NSArray *)bu_aryAfterFormatWithOriginAry:(NSArray *)originAry; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUUtils.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUUtils.h.meta new file mode 100644 index 00000000..c8885b20 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUUtils.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 73043e4bd075b42e39e67c15579ca064 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUYYModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUYYModel.h new file mode 100755 index 00000000..456a5ab3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUYYModel.h @@ -0,0 +1,427 @@ +// +// NSObject+BUYYModel.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Provide some data-model method: + + * Convert json to any object, or convert any object to json. + * Set object properties with a key-value dictionary (like KVC). + * Implementations of `NSCoding`, `NSCopying`, `-hash` and `-isEqual:`. + + See `BUYYModel` protocol for custom methods. + + + Sample Code: + + ********************** json convertor ********************* + [at]interface BUYYAuthor : NSObject + @property (nonatomic, strong) NSString *name; + @property (nonatomic, assign) NSDate *birthday; + @end + @implementation BUYYAuthor + @end + + [at]interface BUYYBook : NSObject + @property (nonatomic, copy) NSString *name; + @property (nonatomic, assign) NSUInteger pages; + @property (nonatomic, strong) BUYYAuthor *author; + @end + @implementation BUYYBook + @end + + int main() { + // create model from json + BUYYBook *book = [BUYYBook BUYY_modelWithJSON:@"{\"name\": \"Harry Potter\", \"pages\": 256, \"author\": {\"name\": \"J.K.Rowling\", \"birthday\": \"1965-07-31\" }}"]; + + // convert model to json + NSString *json = [book BUYY_modelToJSONString]; + // {"author":{"name":"J.K.Rowling","birthday":"1965-07-31T00:00:00+0000"},"name":"Harry Potter","pages":256} + } + + ********************** Coding/Copying/hash/equal ********************* + [at]interface BUYYShadow :NSObject + @property (nonatomic, copy) NSString *name; + @property (nonatomic, assign) CGSize size; + @end + + @implementation BUYYShadow + - (void)encodeWithCoder:(NSCoder *)aCoder { [self BUYY_modelEncodeWithCoder:aCoder]; } + - (id)initWithCoder:(NSCoder *)aDecoder { self = [super init]; return [self BUYY_modelInitWithCoder:aDecoder]; } + - (id)copyWithZone:(NSZone *)zone { return [self BUYY_modelCopy]; } + - (NSUInteger)hash { return [self BUYY_modelHash]; } + - (BOOL)isEqual:(id)object { return [self BUYY_modelIsEqual:object]; } + @end + + */ +@interface NSObject (BUYYModel) + +/** + Creates and returns a new instance of the receiver from a json. + This method is thread-safe. + + @param json A json object in `NSDictionary`, `NSString` or `NSData`. + + @return A new instance created from the json, or nil if an error occurs. + */ ++ (nullable instancetype)BUYY_modelWithJSON:(id)json; + +/** + Creates and returns a new instance of the receiver from a key-value dictionary. + This method is thread-safe. + + @param dictionary A key-value dictionary mapped to the instance's properties. + Any invalid key-value pair in dictionary will be ignored. + + @return A new instance created from the dictionary, or nil if an error occurs. + + @discussion The key in `dictionary` will mapped to the reciever's property name, + and the value will set to the property. If the value's type does not match the + property, this method will try to convert the value based on these rules: + + `NSString` or `NSNumber` -> c number, such as BOOL, int, long, float, NSUInteger... + `NSString` -> NSDate, parsed with format "BUYYBUYY-MM-dd'T'HH:mm:ssZ", "BUYYBUYY-MM-dd HH:mm:ss" or "BUYYBUYY-MM-dd". + `NSString` -> NSURL. + `NSValue` -> struct or union, such as CGRect, CGSize, ... + `NSString` -> SEL, Class. + */ ++ (nullable instancetype)BUYY_modelWithDictionary:(NSDictionary *)dictionary; + +/** + Set the receiver's properties with a json object. + + @discussion Any invalid data in json will be ignored. + + @param json A json object of `NSDictionary`, `NSString` or `NSData`, mapped to the + receiver's properties. + + @return Whether succeed. + */ +- (BOOL)BUYY_modelSetWithJSON:(id)json; + +/** + Set the receiver's properties with a key-value dictionary. + + @param dic A key-value dictionary mapped to the receiver's properties. + Any invalid key-value pair in dictionary will be ignored. + + @discussion The key in `dictionary` will mapped to the reciever's property name, + and the value will set to the property. If the value's type doesn't match the + property, this method will try to convert the value based on these rules: + + `NSString`, `NSNumber` -> c number, such as BOOL, int, long, float, NSUInteger... + `NSString` -> NSDate, parsed with format "BUYYBUYY-MM-dd'T'HH:mm:ssZ", "BUYYBUYY-MM-dd HH:mm:ss" or "BUYYBUYY-MM-dd". + `NSString` -> NSURL. + `NSValue` -> struct or union, such as CGRect, CGSize, ... + `NSString` -> SEL, Class. + + @return Whether succeed. + */ +- (BOOL)BUYY_modelSetWithDictionary:(NSDictionary *)dic; + +/** + Generate a json object from the receiver's properties. + + @return A json object in `NSDictionary` or `NSArray`, or nil if an error occurs. + See [NSJSONSerialization isValidJSONObject] for more information. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it just convert + the inner object to json object. + */ +- (nullable id)BUYY_modelToJSONObject; + +/** + Generate a json string's data from the receiver's properties. + + @return A json string's data, or nil if an error occurs. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it will also convert the + inner object to json string. + */ +- (nullable NSData *)BUYY_modelToJSONData; + +/** + Generate a json string from the receiver's properties. + + @return A json string, or nil if an error occurs. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it will also convert the + inner object to json string. + */ +- (nullable NSString *)BUYY_modelToJSONString; + +/** + Copy a instance with the receiver's properties. + + @return A copied instance, or nil if an error occurs. + */ +- (nullable id)BUYY_modelCopy; + +/** + Encode the receiver's properties to a coder. + + @param aCoder An archiver object. + */ +- (void)BUYY_modelEncodeWithCoder:(NSCoder *)aCoder; + +/** + Decode the receiver's properties from a decoder. + + @param aDecoder An archiver object. + + @return self + */ +- (id)BUYY_modelInitWithCoder:(NSCoder *)aDecoder; + +/** + Get a hash code with the receiver's properties. + + @return Hash code. + */ +- (NSUInteger)BUYY_modelHash; + +/** + Compares the receiver with another object for equality, based on properties. + + @param model Another object. + + @return `YES` if the reciever is equal to the object, otherwise `NO`. + */ +- (BOOL)BUYY_modelIsEqual:(id)model; + +/** + Description method for debugging purposes based on properties. + + @return A string that describes the contents of the receiver. + */ +- (NSString *)BUYY_modelDescription; + +@end + + + +/** + Provide some data-model method for NSArray. + */ +@interface NSArray (BUYYModel) + +/** + Creates and returns an array from a json-array. + This method is thread-safe. + + @param cls The instance's class in array. + @param json A json array of `NSArray`, `NSString` or `NSData`. + Example: [{"name","Mary"},{name:"Joe"}] + + @return A array, or nil if an error occurs. + */ ++ (nullable NSArray *)BUYY_modelArrayWithClass:(Class)cls json:(id)json; + +@end + + + +/** + Provide some data-model method for NSDictionary. + */ +@interface NSDictionary (BUYYModel) + +/** + Creates and returns a dictionary from a json. + This method is thread-safe. + + @param cls The value instance's class in dictionary. + @param json A json dictionary of `NSDictionary`, `NSString` or `NSData`. + Example: {"user1":{"name","Mary"}, "user2": {name:"Joe"}} + + @return A dictionary, or nil if an error occurs. + */ ++ (nullable NSDictionary *)BUYY_modelDictionaryWithClass:(Class)cls json:(id)json; +@end + + + +/** + If the default model transform does not fit to your model class, implement one or + more method in this protocol to change the default key-value transform process. + There's no need to add '' to your class header. + */ +@protocol BUYYModel +@optional + +/** + Custom property mapper. + + @discussion If the key in JSON/Dictionary does not match to the model's property name, + implements this method and returns the additional mapper. + + Example: + + json: + { + "n":"Harry Pottery", + "p": 256, + "ext" : { + "desc" : "A book written by J.K.Rowling." + }, + "ID" : 100010 + } + + model: + [at]interface BUYYBook : NSObject + @property NSString *name; + @property NSInteger page; + @property NSString *desc; + @property NSString *bookID; + @end + + @implementation BUYYBook + + (NSDictionary *)modelCustomPropertyMapper { + return @{@"name" : @"n", + @"page" : @"p", + @"desc" : @"ext.desc", + @"bookID": @[@"id", @"ID", @"book_id"]}; + } + @end + + @return A custom mapper for properties. + */ ++ (nullable NSDictionary *)modelCustomPropertyMapper; + +/** + The generic class mapper for container properties. + + @discussion If the property is a container object, such as NSArray/NSSet/NSDictionary, + implements this method and returns a property->class mapper, tells which kind of + object will be add to the array/set/dictionary. + + Example: + [at]class BUYYShadow, BUYYBorder, BUYYAttachment; + + [at]interface BUYYAttributes + @property NSString *name; + @property NSArray *shadows; + @property NSSet *borders; + @property NSDictionary *attachments; + @end + + @implementation BUYYAttributes + + (NSDictionary *)modelContainerPropertyGenericClass { + return @{@"shadows" : [BUYYShadow class], + @"borders" : BUYYBorder.class, + @"attachments" : @"BUYYAttachment" }; + } + @end + + @return A class mapper. + */ ++ (nullable NSDictionary *)modelContainerPropertyGenericClass; + +/** + If you need to create instances of different classes during json->object transform, + use the method to choose custom class based on dictionary data. + + @discussion If the model implements this method, it will be called to determine resulting class + during `+modelWithJSON:`, `+modelWithDictionary:`, conveting object of properties of parent objects + (both singular and containers via `+modelContainerPropertyGenericClass`). + + Example: + [at]class BUYYCircle, BUYYRectangle, BUYYLine; + + @implementation BUYYShape + + + (Class)modelCustomClassForDictionary:(NSDictionary*)dictionary { + if (dictionary[@"radius"] != nil) { + return [BUYYCircle class]; + } else if (dictionary[@"width"] != nil) { + return [BUYYRectangle class]; + } else if (dictionary[@"y2"] != nil) { + return [BUYYLine class]; + } else { + return [self class]; + } + } + + @end + + @param dictionary The json/kv dictionary. + + @return Class to create from this dictionary, `nil` to use current class. + + */ ++ (nullable Class)modelCustomClassForDictionary:(NSDictionary *)dictionary; + +/** + All the properties in blacklist will be ignored in model transform process. + Returns nil to ignore this feature. + + @return An array of property's name. + */ ++ (nullable NSArray *)modelPropertyBlacklist; + +/** + If a property is not in the whitelist, it will be ignored in model transform process. + Returns nil to ignore this feature. + + @return An array of property's name. + */ ++ (nullable NSArray *)modelPropertyWhitelist; + +/** + This method's behavior is similar to `- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic;`, + but be called before the model transform. + + @discussion If the model implements this method, it will be called before + `+modelWithJSON:`, `+modelWithDictionary:`, `-modelSetWithJSON:` and `-modelSetWithDictionary:`. + If this method returns nil, the transform process will ignore this model. + + @param dic The json/kv dictionary. + + @return Returns the modified dictionary, or nil to ignore this model. + */ +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic; + +/** + If the default json-to-model transform does not fit to your model object, implement + this method to do additional process. You can also use this method to validate the + model's properties. + + @discussion If the model implements this method, it will be called at the end of + `+modelWithJSON:`, `+modelWithDictionary:`, `-modelSetWithJSON:` and `-modelSetWithDictionary:`. + If this method returns NO, the transform process will ignore this model. + + @param dic The json/kv dictionary. + + @return Returns YES if the model is valid, or NO to ignore this model. + */ +- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic; + +/** + If the default model-to-json transform does not fit to your model class, implement + this method to do additional process. You can also use this method to validate the + json dictionary. + + @discussion If the model implements this method, it will be called at the end of + `-modelToJSONObject` and `-modelToJSONString`. + If this method returns NO, the transform process will ignore this json dictionary. + + @param dic The json dictionary. + + @return Returns YES if the model is valid, or NO to ignore this model. + */ +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUYYModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUYYModel.h.meta new file mode 100644 index 00000000..92e0ab97 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSObject+BUYYModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4faa5c4967f67486a954b725ecc32835 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSPointerArray+BUSafely.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSPointerArray+BUSafely.h new file mode 100755 index 00000000..579fb0e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSPointerArray+BUSafely.h @@ -0,0 +1,13 @@ +// +// NSPointerArray+Safely.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/6/21. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +@interface NSPointerArray (BU_Safely) +- (id)bu_safelyAccessObjectAtIndex:(NSUInteger)index; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSPointerArray+BUSafely.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSPointerArray+BUSafely.h.meta new file mode 100644 index 00000000..38e62cd0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSPointerArray+BUSafely.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06c3174968ad24d83a2540d44ccc005f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSString+BUAddtion.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSString+BUAddtion.h new file mode 100755 index 00000000..87cea50d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSString+BUAddtion.h @@ -0,0 +1,135 @@ +// +// NSString+URLEncoding.h +// BUAdSDK +// +// Created by carl on 2017/10/26. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, BULanguageType) {//"万"转换规则 + BULanguageType_showWan = 0, //直接拼接万,默认 + BULanguageType_showNum = 1, //直接展示数字 +}; + +@interface NSString (BU_URLCoding) +- (nullable NSString *)bu_URLEncodedString; +- (nullable NSString *)bu_URLDecodedString; +- (nullable NSString *)bu_URLEncodedStringWithCustomSet; +@end + +@interface NSString (BU_Encryption) +- (nullable NSString *)bu_sha256; +/** + * @brief 返回自身的md5 + * @return 返回自身的md5的16进制字串 + */ +- (nullable NSString *)bu_MD5HashString; +@end + +@interface NSString (BU_NumberToWan) +/// 数字转换成x万(以1w为界限,小于1w显示原始数字) 没有”万“走另一套展示逻辑 ++ (NSString *)bu_numberToWan:(NSInteger)target wan:(NSString *)wan; + +/// 大于1w就用k表示,不大于就直接展示多少个评分 ++ (NSString *)bu_numberToThousand:(NSInteger)target; + +@end + +@interface NSString (BU_URLStringAppend) +/* + * + string转URL + */ ++ (nullable NSURL *)bu_URLWithURLString:(NSString *)str; +/* + * + string转字典 + */ ++ (NSDictionary*)bu_parametersOfURLQueryString:(NSString*)urlString; + +/* + * + url字符串拼接参数,需要判断是否是第一个 + */ ++ (NSString *)bu_urlStringWithOriginUrlString:(NSString *)originUrlString appendParameters:(NSDictionary *)parameters; + ++ (NSString *)bu_urlStringWithBaseUrlString:(NSString *)baseUrlString requestURLString:(NSString *)requestURLString; + ++ (NSString *)bu_urlStringWithUrlString:(NSString *)urlString parameterString:(NSString *)parameterString; + +/* + * 格式转化 + 222222 -> 222,222 + */ ++ (NSString *)bu_convertNumberFormatter:(NSString *)str; + + + +/// 正则匹配字符 +/// @param pattern 正则表达式 +/// @param withTemplate 返回样式: "$1 + $2" +/// @param error 错误信息 +- (nullable NSString *)bu_replacingWithPattern:(NSString * _Nonnull)pattern withTemplate:(NSString * _Nonnull)withTemplate error:(NSError **)error; +@end + + +@interface NSString (BU_Sandbox) +/** + * 获取缓存路径 + * + * @return path where to cache + */ +- (NSString *)bu_CachePath; + +/** + * @brief 获取程序的用户文档目录的路径加上自身 + * @return 用户文档目录路径字串加上自身,该字符串是自动释放的 + */ +- (NSString *)bu_DocumentsPath; +@end + + +@interface NSString(BU_JSONValue) + +- (nullable id)bu_JSONValue:(NSError **)error; ++ (nullable id)bu_objectWithJSONData:(nullable NSData *)inData error:(NSError **)outError; + +@end + + +@interface NSString(BU_Time) + ++ (NSString*)bu_dateNowString; + ++ (NSString*)bu_dateStringSince:(NSTimeInterval)timeInterval; + ++ (NSNumber*)bu_currentInterval; + +@end + + +@interface NSString(BU_Random) + +/* @deccription生成随机字符 + * @param count 多少位随机数 + */ ++ (NSString *)randomStringWithCount:(NSUInteger)count; +@end + +@interface NSString (BU_Size) + +- (CGSize)bu_boundingRectWithSize:(CGSize)size font:(UIFont *)font; + +@end + +@interface NSString (BU_CheckingResult) + +- (nullable NSString *)bu_substringWithPattern:(NSString *)pattern; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSString+BUAddtion.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSString+BUAddtion.h.meta new file mode 100644 index 00000000..71c2482d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSString+BUAddtion.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e23ec85ab104a49138c83023ba631fbe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSTimer+BUBlockSupport.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSTimer+BUBlockSupport.h new file mode 100755 index 00000000..0d889ae3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSTimer+BUBlockSupport.h @@ -0,0 +1,16 @@ +// +// NSTimer+BUBlockSupport.h +// BUAdSDK +// +// Created by gdp on 2017/12/23. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +@interface NSTimer (BU_BlockSupport) + ++ (NSTimer *)bu_scheduledTimerWithTimeInterval:(NSTimeInterval)interval + repeats:(BOOL)repeats + block:(void (^)(NSTimer *))block; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSTimer+BUBlockSupport.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSTimer+BUBlockSupport.h.meta new file mode 100644 index 00000000..1f1211cd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSTimer+BUBlockSupport.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5ba548a14c43a4f2fb4ad074875f108a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSUserDefaults+BUCrypt.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSUserDefaults+BUCrypt.h new file mode 100755 index 00000000..f6945cd5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSUserDefaults+BUCrypt.h @@ -0,0 +1,32 @@ +// +// NSUserDefaults+BUCrypt.h +// BUFoundation +// +// Created by Willie on 2020/9/11. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSUserDefaults (BUCrypt) + +- (void)setValue:(nullable id)value + forKey:(NSString *)key + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] setObject:forkey'"))); + +- (nullable id)valueForKey:(NSString *)defaultName + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] objectForKey:'"))); + +- (void)removeObjectForKey:(NSString *)defaultName + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] removeObjectsForKeys:'")));; + +- (void)bu_synchronize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSUserDefaults+BUCrypt.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSUserDefaults+BUCrypt.h.meta new file mode 100644 index 00000000..7d1dda1b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/NSUserDefaults+BUCrypt.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b40d5686f9ba447729b798a5f73f051a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIButton+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIButton+BUWebCache.h new file mode 100755 index 00000000..5d772104 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIButton+BUWebCache.h @@ -0,0 +1,387 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIButton. + */ +@interface UIButton (BUWebCache) + +#pragma mark - Image + +/** + * Get the current image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentImageURL; + +/** + * Get the image URL for a control state. + * + * @param state Which state you want to know the URL for. The values are described in UIControlState. + */ +- (nullable NSURL *)sdBu_imageURLForState:(UIControlState)state; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Background Image + +/** + * Get the current background image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentBackgroundImageURL; + +/** + * Get the background image URL for a control state. + * + * @param state Which state you want to know the URL for. The values are described in UIControlState. + */ +- (nullable NSURL *)sdBu_backgroundImageURLForState:(UIControlState)state; + +/** + * Set the button `backgroundImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `backgroundImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Cancel + +/** + * Cancel the current image download + */ +- (void)sdBu_cancelImageLoadForState:(UIControlState)state; + +/** + * Cancel the current backgroundImage download + */ +- (void)sdBu_cancelBackgroundImageLoadForState:(UIControlState)state; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIButton+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIButton+BUWebCache.h.meta new file mode 100644 index 00000000..30705d7b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIButton+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b38bd6a33d1b8498ebb456cc6e656bc6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUHexString.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUHexString.h new file mode 100755 index 00000000..8834ee23 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUHexString.h @@ -0,0 +1,18 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@interface UIColor (BUHexString) + +/** + Convenience way to get hex string from color. The output should always be 32-bit RGBA hex string like `#00000000`. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *sdBu_hexString; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUHexString.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUHexString.h.meta new file mode 100644 index 00000000..38cf9f8f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUHexString.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fb4fddaec75604c6c8884c11469b82bd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUTheme.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUTheme.h new file mode 100755 index 00000000..653586b2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUTheme.h @@ -0,0 +1,22 @@ +// +// UIColor+BUTheme.h +// BUAdSDK +// +// Created by carl on 2017/8/15. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIColor (BU_Theme) ++ (UIColor *)bu_colorWithHEX:(NSUInteger)hex; ++ (UIColor *)bu_colorWithHEX:(NSUInteger)hex alpha:(CGFloat)alpha; + ++ (UIColor *)bu_colorWithHexString:(NSString *)color; ++ (UIColor *)bu_colorWithHexString:(NSString *)color alpha:(CGFloat)alpha; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUTheme.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUTheme.h.meta new file mode 100644 index 00000000..46fd7191 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIColor+BUTheme.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9e761465734b14134993febec1b8bdae +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUForceDecode.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUForceDecode.h new file mode 100755 index 00000000..408e681f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUForceDecode.h @@ -0,0 +1,46 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + UIImage category about force decode feature (avoid Image/IO's lazy decoding during rendering behavior). + */ +@interface UIImage (BUForceDecode) + +/** + A bool value indicating whether the image has already been decoded. This can help to avoid extra force decode. + */ +@property (nonatomic, assign) BOOL sdBu_isDecoded; + +/** + Decode the provided image. This is useful if you want to force decode the image before rendering to improve performance. + + @param image The image to be decoded + @return The decoded image + */ ++ (nullable UIImage *)sdBu_decodedImageWithImage:(nullable UIImage *)image; + +/** + Decode and scale down the provided image + + @param image The image to be decoded + @return The decoded and scaled down image + */ ++ (nullable UIImage *)sdBu_decodedAndScaledDownImageWithImage:(nullable UIImage *)image; + +/** + Decode and scale down the provided image with limit bytes + + @param image The image to be decoded + @param bytes The limit bytes size. Provide 0 to use the build-in limit. + @return The decoded and scaled down image + */ ++ (nullable UIImage *)sdBu_decodedAndScaledDownImageWithImage:(nullable UIImage *)image limitBytes:(NSUInteger)bytes; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUForceDecode.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUForceDecode.h.meta new file mode 100644 index 00000000..03aa866d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUForceDecode.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c012dee0bda9d42a19594b0ec99fea69 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUGIF.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUGIF.h new file mode 100755 index 00000000..df458135 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUGIF.h @@ -0,0 +1,26 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Laurin Brandner + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + This category is just use as a convenience method. For more detail control, use methods in `UIImage+BUMultiFormat.h` or directlly use `SDImageCoder`. + */ +@interface UIImage (BUGIF) + +/** + Creates an animated UIImage from an NSData. + This will create animated image if the data is Animated GIF. And will create a static image is the data is Static GIF. + + @param data The GIF data + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithGIFData:(nullable NSData *)data; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUGIF.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUGIF.h.meta new file mode 100644 index 00000000..d4bb427a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUGIF.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b8063889c221e4e2cbaf1212c56f4ed2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMemoryCacheCost.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMemoryCacheCost.h new file mode 100755 index 00000000..288e3a43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMemoryCacheCost.h @@ -0,0 +1,27 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + UIImage category for memory cache cost. + */ +@interface UIImage (BUMemoryCacheCost) + +/** + The memory cache cost for specify image used by image cache. The cost function is the bytes size held in memory. + If you set some associated object to `UIImage`, you can set the custom value to indicate the memory cost. + + For `UIImage`, this method return the single frame bytes size when `image.images` is nil for static image. Retuen full frame bytes size when `image.images` is not nil for animated image. + For `NSImage`, this method return the single frame bytes size because `NSImage` does not store all frames in memory. + @note Note that because of the limitations of category this property can get out of sync if you create another instance with CGImage or other methods. + @note For custom animated class conforms to `BU_SDAnimatedImage`, you can override this getter method in your subclass to return a more proper value instead, which representing the current frame's total bytes. + */ +@property (assign, nonatomic) NSUInteger sdBu_memoryCost; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMemoryCacheCost.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMemoryCacheCost.h.meta new file mode 100644 index 00000000..3d7d3f85 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMemoryCacheCost.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7efb87dead5904619b7bf9d71ffe841e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMetadata.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMetadata.h new file mode 100755 index 00000000..df253c67 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMetadata.h @@ -0,0 +1,49 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +/** + UIImage category for image metadata, including animation, loop count, format, incremental, etc. + */ +@interface UIImage (BUMetadata) + +/** + * UIKit: + * For static image format, this value is always 0. + * For animated image format, 0 means infinite looping. + * Note that because of the limitations of categories this property can get out of sync if you create another instance with CGImage or other methods. + * AppKit: + * NSImage currently only support animated via GIF imageRep unlike UIImage. + * The getter of this property will get the loop count from GIF imageRep + * The setter of this property will set the loop count from GIF imageRep + */ +@property (nonatomic, assign) NSUInteger sdBu_imageLoopCount; + +/** + * UIKit: + * Check the `images` array property + * AppKit: + * NSImage currently only support animated via GIF imageRep unlike UIImage. It will check the imageRep's frame count. + */ +@property (nonatomic, assign, readonly) BOOL sdBu_isAnimated; + +/** + * The image format represent the original compressed image data format. + * If you don't manually specify a format, this information is retrieve from CGImage using `CGImageGetUTType`, which may return nil for non-CG based image. At this time it will return `BU_SDImageFormatUndefined` as default value. + * @note Note that because of the limitations of categories this property can get out of sync if you create another instance with CGImage or other methods. + */ +@property (nonatomic, assign) BU_SDImageFormat sdBu_imageFormat; + +/** + A bool value indicating whether the image is during incremental decoding and may not contains full pixels. + */ +@property (nonatomic, assign) BOOL sdBu_isIncremental; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMetadata.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMetadata.h.meta new file mode 100644 index 00000000..7c4ed9b7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMetadata.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2fe5268153c4f4e35b9f8de52fb0ed8f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMultiFormat.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMultiFormat.h new file mode 100755 index 00000000..5104babe --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMultiFormat.h @@ -0,0 +1,79 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +/** + UIImage category for convenient image format decoding/encoding. + */ +@interface UIImage (BUMultiFormat) +#pragma mark - Decode +/** + Create and decode a image with the specify image data + + @param data The image data + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data; + +/** + Create and decode a image with the specify image data and scale + + @param data The image data + @param scale The image scale factor. Should be greater than or equal to 1.0. + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data scale:(CGFloat)scale; + +/** + Create and decode a image with the specify image data and scale, allow specify animate/static control + + @param data The image data + @param scale The image scale factor. Should be greater than or equal to 1.0. + @param firstFrameOnly Even if the image data is animated image format, decode the first frame only as static image. + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data scale:(CGFloat)scale firstFrameOnly:(BOOL)firstFrameOnly; + +#pragma mark - Encode +/** + Encode the current image to the data, the image format is unspecified + + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageData; + +/** + Encode the current image to data with the specify image format + + @param imageFormat The specify image format + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat NS_SWIFT_NAME(sdBu_imageData(as:)); + +/** + Encode the current image to data with the specify image format and compression quality + + @param imageFormat The specify image format + @param compressionQuality The quality of the resulting image data. Value between 0.0-1.0. Some coders may not support compression quality. + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat compressionQuality:(double)compressionQuality NS_SWIFT_NAME(sdBu_imageData(as:compressionQuality:)); + +/** + Encode the current image to data with the specify image format and compression quality, allow specify animate/static control + + @param imageFormat The specify image format + @param compressionQuality The quality of the resulting image data. Value between 0.0-1.0. Some coders may not support compression quality. + @param firstFrameOnly Even if the image is animated image, encode the first frame only as static image. + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat compressionQuality:(double)compressionQuality firstFrameOnly:(BOOL)firstFrameOnly NS_SWIFT_NAME(sdBu_imageData(as:compressionQuality:firstFrameOnly:)); + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMultiFormat.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMultiFormat.h.meta new file mode 100644 index 00000000..c7396d92 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUMultiFormat.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 97923d47ac07542d38adad3120ffdb7d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUTransform.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUTransform.h new file mode 100755 index 00000000..e322ca96 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUTransform.h @@ -0,0 +1,146 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +typedef NS_ENUM(NSUInteger, BU_SDImageScaleMode) { + BU_SDImageScaleModeFill = 0, + BU_SDImageScaleModeAspectFit = 1, + BU_SDImageScaleModeAspectFill = 2 +}; + +#if SD_UIKIT || SD_WATCH +typedef UIRectCorner BU_SDRectCorner; +#else +typedef NS_OPTIONS(NSUInteger, BU_SDRectCorner) { + BU_SDRectCornerTopLeft = 1 << 0, + BU_SDRectCornerTopRight = 1 << 1, + BU_SDRectCornerBottomLeft = 1 << 2, + BU_SDRectCornerBottomRight = 1 << 3, + BU_SDRectCornerAllCorners = ~0UL +}; +#endif + +/** + Provide some commen method for `UIImage`. + Image process is based on Core Graphics and vImage. + */ +@interface UIImage (BUTransform) + +#pragma mark - Image Geometry + +/** + Returns a new image which is resized from this image. + You can specify a larger or smaller size than the image size. The image content will be changed with the scale mode. + + @param size The new size to be resized, values should be positive. + @param scaleMode The scale mode for image content. + @return The new image with the given size. + */ +- (nullable UIImage *)sdBu_resizedImageWithSize:(CGSize)size scaleMode:(BU_SDImageScaleMode)scaleMode; + +/** + Returns a new image which is cropped from this image. + + @param rect Image's inner rect. + @return The new image with the cropping rect. + */ +- (nullable UIImage *)sdBu_croppedImageWithRect:(CGRect)rect; + +/** + Rounds a new image with a given corner radius and corners. + + @param cornerRadius The radius of each corner oval. Values larger than half the + rectangle's width or height are clamped appropriately to + half the width or height. + @param corners A bitmask value that identifies the corners that you want + rounded. You can use this parameter to round only a subset + of the corners of the rectangle. + @param borderWidth The inset border line width. Values larger than half the rectangle's + width or height are clamped appropriately to half the width + or height. + @param borderColor The border stroke color. nil means clear color. + @return The new image with the round corner. + */ +- (nullable UIImage *)sdBu_roundedCornerImageWithRadius:(CGFloat)cornerRadius + corners:(BU_SDRectCorner)corners + borderWidth:(CGFloat)borderWidth + borderColor:(nullable UIColor *)borderColor; + +/** + Returns a new rotated image (relative to the center). + + @param angle Rotated radians in counterclockwise.⟲ + @param fitSize YES: new image's size is extend to fit all content. + NO: image's size will not change, content may be clipped. + @return The new image with the rotation. + */ +- (nullable UIImage *)sdBu_rotatedImageWithAngle:(CGFloat)angle fitSize:(BOOL)fitSize; + +/** + Returns a new horizontally(vertically) flipped image. + + @param horizontal YES to flip the image horizontally. ⇋ + @param vertical YES to flip the image vertically. ⥯ + @return The new image with the flipping. + */ +- (nullable UIImage *)sdBu_flippedImageWithHorizontal:(BOOL)horizontal vertical:(BOOL)vertical; + +#pragma mark - Image Blending + +/** + Return a tinted image with the given color. This actually use alpha blending of current image and the tint color. + + @param tintColor The tint color. + @return The new image with the tint color. + */ +- (nullable UIImage *)sdBu_tintedImageWithColor:(nonnull UIColor *)tintColor; + +/** + Return the pixel color at specify position. The point is from the top-left to the bottom-right and 0-based. The returned the color is always be RGBA format. The image must be CG-based. + @note The point's x/y should not be smaller than 0, or greater than or equal to width/height. + @note The overhead of object creation means this method is best suited for infrequent color sampling. For heavy image processing, grab the raw bitmap data and process yourself. + + @param point The position of pixel + @return The color for specify pixel, or nil if any error occur + */ +- (nullable UIColor *)sdBu_colorAtPoint:(CGPoint)point; + +/** + Return the pixel color array with specify rectangle. The rect is from the top-left to the bottom-right and 0-based. The returned the color is always be RGBA format. The image must be CG-based. + @note The rect's width/height should not be smaller than or equal to 0. The minX/minY should not be smaller than 0. The maxX/maxY should not be greater than width/height. Attention this limit is different from `sdBu_colorAtPoint:` (point: (0, 0) like rect: (0, 0, 1, 1)) + @note The overhead of object creation means this method is best suited for infrequent color sampling. For heavy image processing, grab the raw bitmap data and process yourself. + + @param rect The rectangle of pixels + @return The color array for specify pixels, or nil if any error occur + */ +- (nullable NSArray *)sdBu_colorsWithRect:(CGRect)rect; + +#pragma mark - Image Effect + +/** + Return a new image applied a blur effect. + + @param blurRadius The radius of the blur in points, 0 means no blur effect. + + @return The new image with blur effect, or nil if an error occurs (e.g. no enough memory). + */ +- (nullable UIImage *)sdBu_blurredImageWithRadius:(CGFloat)blurRadius; + +#if SD_UIKIT || SD_MAC +/** + Return a new image applied a CIFilter. + + @param filter The CIFilter to be applied to the image. + @return The new image with the CIFilter, or nil if an error occurs (e.g. no + enough memory). + */ +- (nullable UIImage *)sdBu_filteredImageWithFilter:(nonnull CIFilter *)filter; +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUTransform.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUTransform.h.meta new file mode 100644 index 00000000..2f336d1c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImage+BUTransform.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 046e7b31de6314a9b865dc2b75a64587 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUHighlightedWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUHighlightedWebCache.h new file mode 100755 index 00000000..dbc4405e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUHighlightedWebCache.h @@ -0,0 +1,129 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIImageView for highlighted state. + */ +@interface UIImageView (BUHighlightedWebCache) + +/** + * Set the imageView `highlightedImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url`, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the imageView `highlightedImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `highlightedImage` with an `url`, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUHighlightedWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUHighlightedWebCache.h.meta new file mode 100644 index 00000000..7f57eee2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUHighlightedWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ad903b8969ad746dfbab14d09653c9c4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUWebCache.h new file mode 100755 index 00000000..2d4fc81e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUWebCache.h @@ -0,0 +1,194 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageManager.h" + +/** + * Usage with a UITableViewCell sub-class: + * + * @code + +#import + +... + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + static NSString *MyIdentifier = @"MyIdentifier"; + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; + + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier]; + } + + // Here we use the provided sdBu_setImageWithURL:placeholderImage: method to load the web image + // Ensure you use a placeholder image otherwise cells will be initialized with no image + [cell.imageView sdBu_setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"] + placeholderImage:[UIImage imageNamed:@"placeholder"]]; + + cell.textLabel.text = @"My BU_Text"; + return cell; +} + + * @endcode + */ + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIImageView. + */ +@interface UIImageView (BUWebCache) + +/** + * Set the imageView `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the imageView `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUWebCache.h.meta new file mode 100644 index 00000000..499d1571 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: de395b010d5534814b3a644754e7026c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BU_ZFCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BU_ZFCache.h new file mode 100755 index 00000000..609b46d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BU_ZFCache.h @@ -0,0 +1,127 @@ +// +// UIImageView+ZFCache.h +// Player +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import + +typedef void (^BU_ZFDownLoadDataCallBack)(NSData *data, NSError *error); +typedef void (^BU_ZFDownloadProgressBlock)(unsigned long long total, unsigned long long current); + +@interface BU_ZFImageDownloader : NSObject + +@property (nonatomic, strong) NSURLSession *session; +@property (nonatomic, strong) NSURLSessionDownloadTask *task; + +@property (nonatomic, assign) unsigned long long totalLength; +@property (nonatomic, assign) unsigned long long currentLength; + +@property (nonatomic, copy) BU_ZFDownloadProgressBlock progressBlock; +@property (nonatomic, copy) BU_ZFDownLoadDataCallBack callbackOnFinished; + +- (void)startDownloadImageWithUrl:(NSString *)url + progress:(BU_ZFDownloadProgressBlock)progress + finished:(BU_ZFDownLoadDataCallBack)finished; + +@end + +typedef void (^BU_ZFImageBlock)(UIImage *image); + +@interface UIImageView (BU_ZFCache) + +/** + * Get/Set the callback block when download the image finished. + * + * param image The image object from network or from disk. + */ +@property (nonatomic, copy) BU_ZFImageBlock bu_completion; + +/** + * Image downloader + */ +@property (nonatomic, strong) BU_ZFImageDownloader *bu_imageDownloader; + +/** + * Specify the URL to download images fails, the number of retries, the default is 2 + */ +@property (nonatomic, assign) NSUInteger bu_attemptToReloadTimesForFailedURL; + +/** + * Will automatically download to cutting for UIImageView size of image.The default value is NO. + * If set to YES, then the download after a successful store only after cutting the image + */ +@property (nonatomic, assign) BOOL bu_shouldAutoClipImageToViewSize; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImageName The image name to be set initially, until the image request finishes. + */ +- (void)setBUImageWithURLString:(NSString *)url placeholderImageName:(NSString *)placeholderImageName; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImage The image to be set initially, until the image request finishes. + */ +- (void)setBUImageWithURLString:(NSString *)url placeholder:(UIImage *)placeholderImage; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImage The image to be set initially, until the image request finishes. + * @param completion A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)setBUImageWithURLString:(NSString *)url + placeholder:(UIImage *)placeholderImage + completion:(void (^)(UIImage *image))completion; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImageName The image name to be set initially, until the image request finishes. + * @param completion A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)setBUImageWithURLString:(NSString *)url + placeholderImageName:(NSString *)placeholderImageName + completion:(void (^)(UIImage *image))completion; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BU_ZFCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BU_ZFCache.h.meta new file mode 100644 index 00000000..2b0d97f3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIImageView+BU_ZFCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1570d3987dab146c08d6a033bef7a59d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUAdditions.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUAdditions.h new file mode 100755 index 00000000..79b30267 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUAdditions.h @@ -0,0 +1,116 @@ +// +// UIView+Additions.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/3/15. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIView (BU_Additions) + +- (UIImage *)bu_captureView; + +@end + +typedef enum { + UIViewBorderOptionTop = 0, + UIViewBorderOptionRight, + UIViewBorderOptionBottom, + UIViewBorderOptionLeft, + UIViewBorderOptionAll +} UIViewBorderOption; + + +typedef struct { + CGFloat topLeft; + CGFloat topRight; + CGFloat bottomLeft; + CGFloat bottomRight; +} BUFCornerRadii; + + +@interface UIView (BU_Border) + +- (void)bu_setBorder:(UIViewBorderOption)option width:(CGFloat)width color:(UIColor *)color; +- (void)bu_setDashBorder:(UIViewBorderOption)option width:(CGFloat)width color:(UIColor *)color; +- (void)bu_roundCornerWithDashBorder:(CGFloat)radius width:(CGFloat)widht color:(UIColor *)color; +- (void)bu_updateClippingForLayer:(CALayer *)layer cornerRadii:(BUFCornerRadii)cornerRadii maxRadius:(CGFloat)maxRadius; +@end + + +@interface UIView (BU_FrameAdditions) +@property (nonatomic) float bu_x; +@property (nonatomic) float bu_y; +@property (nonatomic) float bu_width; +@property (nonatomic) float bu_height; +@property (nonatomic, getter = bu_y,setter = setBu_y:) float bu_top; // 增加bu前缀,防止与外部开发者的分类属性名冲突:https://jira.bytedance.com/browse/UNION-4447 fixed in 3300 by chaors +@property (nonatomic, getter = bu_x,setter = setBu_x:) float bu_left; +@property (nonatomic) float bu_bottom; +@property (nonatomic) float bu_right; +@property (nonatomic) CGSize bu_size; +@property (nonatomic) CGPoint bu_origin; +@property (nonatomic) CGFloat bu_centerX; +@property (nonatomic) CGFloat bu_centerY; + +// 设置最大右边 +- (void)bu_setMaxRight:(CGFloat)maxRight; + +- (UIViewController *)bu_viewController; +@end + + +@interface UIView (BU_TKCategory) + +// DRAW GRADIENT ++ (void)bu_drawGradientInRect:(CGRect)rect withColors:(NSArray*)colors; + +// DRAW ROUNDED RECTANGLE ++ (void)bu_drawRoundRectangleInRect:(CGRect)rect withRadius:(CGFloat)radius color:(UIColor*)color; + +// DRAW LINE ++ (void)bu_drawLineInRect:(CGRect)rect red:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha; ++ (void)bu_drawLineInRect:(CGRect)rect colors:(CGFloat[_Nullable])colors; ++ (void)bu_drawLineInRect:(CGRect)rect colors:(CGFloat[_Nullable])colors width:(CGFloat)lineWidth cap:(CGLineCap)cap; + +@end + + +@interface UIView (BU_Gesture) + +- (UILongPressGestureRecognizer *)bu_addLogPressGestureWithTarget:(id)target selecter:(SEL)aSelector; + +@property (nonatomic, strong, nullable) UITapGestureRecognizer *bu_tgr; +// 会移除旧的手势 +- (void)bu_addGestureRecognizerWithTarget:(id)target action:(SEL)action; +- (void)bu_removeGestureRecognizer; +@end + +@interface UIView (BU_FindFirstResponder) +- (UIView *)bu_findViewThatIsFirstResponder; +@end + +@interface UIView (BU_InScreen) +- (BOOL)bu_checkInCurrentScreenWithEdgeInsets:(UIEdgeInsets)edgeInsets; +- (BOOL)bu_checkInScreenYWithPaddingTop:(CGFloat)paddingTop paddingToBottom:(CGFloat)paddingToBottom; +- (BOOL)bu_checkInScreenXWithPaddingLeft:(CGFloat)paddingLeft paddingToRight:(CGFloat)paddingToRight; +@end + +@interface UIView (BU_NearestController) +- (UIViewController *)bu_findNearestController; + + + + +@end + +@interface UIView (BU_SafeArea) +- (UIEdgeInsets)bu_safeAreaInsets; + ++ (UIEdgeInsets)bu_defaultAreaInsets; + +@end +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUAdditions.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUAdditions.h.meta new file mode 100644 index 00000000..700076d1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUAdditions.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5e53d4243557646cda625833928ac916 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCache.h new file mode 100755 index 00000000..a5cf63a8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCache.h @@ -0,0 +1,101 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageManager.h" +#import "BU_SDWebImageTransition.h" +#import "BU_SDWebImageIndicator.h" + +/** + The value specify that the image progress unit count cannot be determined because the progressBlock is not been called. + */ +FOUNDATION_EXPORT const int64_t BU_SDWebImageProgressUnitCountUnknown; /* 1LL */ + +typedef void(^SDSetImageBlock)(UIImage * _Nullable image, NSData * _Nullable imageData, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); + +/** + Integrates SDWebImage async downloading and caching of remote images with UIView subclass. + */ +@interface UIView (BUWebCache) + +/** + * Get the current image URL. + * + * @note Note that because of the limitations of categories this property can get out of sync if you use setImage: directly. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_imageURL; + +/** + * The current image loading progress associated to the view. The unit count is the received size and excepted size of download. + * The `totalUnitCount` and `completedUnitCount` will be reset to 0 after a new image loading start (change from current queue). And they will be set to `BU_SDWebImageProgressUnitCountUnknown` if the progressBlock not been called but the image loading success to mark the progress finished (change from main queue). + * @note You can use Key-Value Observing on the progress, but you should take care that the change to progress is from a background queue during download(the same as progressBlock). If you want to using KVO and update the UI, make sure to dispatch on the main queue. And it's recommand to use some KVO libs like KVOController because it's more safe and easy to use. + * @note The getter will create a progress instance if the value is nil. But by default, we don't create one. If you need to use Key-Value Observing, you must trigger the getter or set a custom progresss instance before the loading start. The default value is nil. + * @note Note that because of the limitations of categories this property can get out of sync if you update the progress directly. + */ +@property (nonatomic, strong, null_resettable) NSProgress *sdBu_imageProgress; + +/** + * Set the imageView `image` with an `url` and optionally a placeholder image. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param setImageBlock Block used for custom set image code. If not provide, use the built-in set image code (supports `UIImageView/NSImageView` and `UIButton/NSButton` currently) + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * This block has no return value and takes the requested UIImage as first parameter and the NSData representation as second parameter. + * In case of error the image parameter is nil and the third parameter may contain an NSError. + * + * The forth parameter is an `BU_SDImageCacheType` enum indicating if the image was retrieved from the local cache + * or from the memory cache or from the network. + * + * The fith parameter normally is always YES. However, if you provide SDWebImageAvoidAutoSetImage with SDWebImageProgressiveLoad options to enable progressive downloading and set the image yourself. This block is thus called repeatedly with a partial image. When image is fully downloaded, the + * block is called a last time with the full image and the last parameter set to YES. + * + * The last parameter is the original image URL + */ +- (void)sdBu_internalSetImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + setImageBlock:(nullable SDSetImageBlock)setImageBlock + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDInternalCompletionBlock)completedBlock; + +/** + * Cancel the current image load + */ +- (void)sdBu_cancelCurrentImageLoad; + +#if SD_UIKIT || SD_MAC + +#pragma mark - Image Transition + +/** + The image transition when image load finished. See `SDWebImageTransition`. + If you specify nil, do not do transition. Defautls to nil. + */ +@property (nonatomic, strong, nullable) BU_SDWebImageTransition *sdBu_imageTransition; + +#pragma mark - Image Indicator + +/** + The image indicator during the image loading. If you do not need indicator, specify nil. Defaults to nil + The setter will remove the old indicator view and add new indicator view to current view's subview. + @note Because this is UI related, you should access only from the main queue. + */ +@property (nonatomic, strong, nullable) id sdBu_imageIndicator; + +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCache.h.meta new file mode 100644 index 00000000..c7af2450 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4c5f835257a184d93bd1787a7a792b5f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCacheOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCacheOperation.h new file mode 100755 index 00000000..e541d0c0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCacheOperation.h @@ -0,0 +1,48 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" + +/** + These methods are used to support canceling for UIView image loading, it's designed to be used internal but not external. + All the stored operations are weak, so it will be dalloced after image loading finished. If you need to store operations, use your own class to keep a strong reference for them. + */ +@interface UIView (BUWebCacheOperation) + +/** + * Get the image load operation for key + * + * @param key key for identifying the operations + * @return the image load operation + */ +- (nullable id)sdBu_imageLoadOperationForKey:(nullable NSString *)key; + +/** + * Set the image load operation (storage in a UIView based weak map table) + * + * @param operation the operation + * @param key key for storing the operation + */ +- (void)sdBu_setImageLoadOperation:(nullable id)operation forKey:(nullable NSString *)key; + +/** + * Cancel all operations for the current UIView and key + * + * @param key key for identifying the operations + */ +- (void)sdBu_cancelImageLoadOperationWithKey:(nullable NSString *)key; + +/** + * Just remove the operations corresponding to the current UIView and key without cancelling them + * + * @param key key for identifying the operations + */ +- (void)sdBu_removeImageLoadOperationWithKey:(nullable NSString *)key; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCacheOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCacheOperation.h.meta new file mode 100644 index 00000000..31e6afae --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIView+BUWebCacheOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ddb302833c4d8455eaa0c3a8ce90d6da +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIViewController+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIViewController+BUUtilities.h new file mode 100755 index 00000000..18435340 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIViewController+BUUtilities.h @@ -0,0 +1,41 @@ +// +// UIViewController+BUUtilities.h +// BUAdSDK +// +// Created by Siwant on 2019/4/11. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIViewController (BUUtilities) + +- (void)bu_safelyPresentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion; + + + +// 获取当前最后一个被present出的VC,如果没有返回self +- (UIViewController *)bu_presentingViewController; +// 获取当前最后一个被present出的VC,如果没有返回window的最上的topVC ++ (UIViewController *)bu_presentingViewController; + +// 获取广义mainWindow的rootViewController ++ (nullable UIViewController*)bu_mainWindowRootViewController; + +// 获取指定UIResponder的链下游第一个ViewController对象 ++ (nullable UIViewController*)bu_nextViewControllerFor:(UIResponder* _Nullable)responder; + +// 获取指定UIResponder的链下游第一个UINavigationController对象 ++ (nullable UINavigationController*)bu_nextNavigationControllerFor:(UIResponder* _Nullable)responder; + +/** 查找当前显示的ViewController*/ ++ (UIViewController *)bu_topViewController; + ++ (UIViewController *)bu_recursiveFindCurrentShowViewControllerFromViewController:(UIViewController *)fromVC; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIViewController+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIViewController+BUUtilities.h.meta new file mode 100644 index 00000000..0b2d6f85 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIViewController+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4179be8eb23da49efac60f92d5852354 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIWindow+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIWindow+BUUtilities.h new file mode 100755 index 00000000..f7aab091 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIWindow+BUUtilities.h @@ -0,0 +1,21 @@ +// +// UIWindow+BUUtilities.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2020/12/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIWindow (BUUtilities) +// 获取当前应用的广义mainWindow ++ (nullable UIWindow *)bu_mainWindow; + +// 广义mainWindow的大小(兼容iOS7) ++ (CGSize)bu_windowSize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIWindow+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIWindow+BUUtilities.h.meta new file mode 100644 index 00000000..adb37c85 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/A/Headers/UIWindow+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7d8b91b06f7f448eb97af44f7ca7bc47 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current.meta new file mode 100644 index 00000000..eec58bb3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 005e1f95b77a342c1bcf981ba98498c6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/BUFoundation b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/BUFoundation new file mode 100755 index 00000000..9d63b9e5 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/BUFoundation differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/BUFoundation.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/BUFoundation.meta new file mode 100644 index 00000000..e01d72c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/BUFoundation.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a68fb880f7e474195aca86006e203d69 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers.meta new file mode 100644 index 00000000..8dabc413 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 96277bcf5837f4e79a22eaa0ab1bfcbd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUAudioSessionHandler.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUAudioSessionHandler.h new file mode 100755 index 00000000..242a510a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUAudioSessionHandler.h @@ -0,0 +1,55 @@ +// +// BUMuteMonitor.h +// BUFoundation +// +// Created by bytedance on 2021/9/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + 用于回调当前静音按钮是否为静音状态的block + + @param isMute 如果静音按钮当前为静音状态,则为YES,否则为NO + */ +typedef void(^MuteBlock)(BOOL isMute); + +/** + 用于回调当前真实音量的block + + @param currentRealVolume 当前的真实音量 + */ +typedef void(^RealVolumeBlock)(CGFloat currentRealVolume); + +/** + 用于监听音量变化的block + @param newVolume 新的音量值 + */ +typedef void(^VolumeChangeBlock)(CGFloat newVolume); + +@interface BUAudioSessionSetting : NSObject + +@property (nonatomic, assign) BOOL allowModifyAudioSessionSetting; + +@property (nonatomic, copy) NSString *sourcePath; + ++ (instancetype)shareInstance; + +- (void)monitorMute; + +- (void)saveAudioSessionOriginCategory; + +@end + + +@interface BUAudioSessionHandler : NSObject + +- (void)resetAudioSessionCategoryToOriginStatus; + +- (void)interruptOtherAudioPlayingWithMute:(BOOL)mute; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUAudioSessionHandler.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUAudioSessionHandler.h.meta new file mode 100644 index 00000000..c58590f0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUAudioSessionHandler.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18c3c944ee8c44df5930f07aae976cc5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUBase64.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUBase64.h new file mode 100755 index 00000000..85ca5704 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUBase64.h @@ -0,0 +1,53 @@ +// +// Base64.h +// +// Version 1.2 +// +// Created by Nick Lockwood on 12/01/2012. +// Copyright (C) 2012 Charcoal Design +// +// Distributed under the permissive zlib License +// Get the latest version from here: +// +// https://github.com/nicklockwood/Base64 +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// + +#import + + +@interface NSData (BUBase64) + ++ (NSData *)bu_dataWithBase64EncodedString:(NSString *)string; +- (NSString *)bu_base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth; +- (NSString *)bu_base64EncodedString; + +@end + + +@interface NSString (BUBase64) + ++ (NSString *)bu_stringWithBase64EncodedString:(NSString *)string; +- (NSString *)bu_base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth; +- (NSString *)bu_base64EncodedString; +- (NSString *)bu_base64DecodedString; +- (NSData *)bu_base64DecodedData; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUBase64.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUBase64.h.meta new file mode 100644 index 00000000..2e602cf4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUBase64.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4ed1df8896c684090871e2f93f8b57ab +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCacheManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCacheManager.h new file mode 100755 index 00000000..2bc5f635 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCacheManager.h @@ -0,0 +1,45 @@ +// +// BUCacheManager.h +// BUAdSDK +// +// Created by 李盛 on 2018/9/19. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + + +extern NSString *BUCacheConfigurationKey; +extern NSString *BUCacheFinishedErrorKey; + +@class BUCacheConfiguration; +@interface BUCacheManager : NSObject + ++ (instancetype)shared; + +// 设置缓存目录 ++ (void)setCacheDirectory:(NSString *)cacheDirectory; + +// 获取缓存目录 ++ (NSString *)cacheDirectory; + +/// 获取视频本地缓存 +/// @param url 服务端视频地址 ++ (NSString *)cachedFilePathForURL:(NSURL *)url; + +/// 获取视频配置文件 +/// @param url 服务端视频地址 ++ (BUCacheConfiguration *)cacheConfigurationForURL:(NSURL *)url; + +/// 删除本地超出缓存大小的缓存文件 +/// 当该文件正在缓存、或正在被播放器占用时不会被删除 +/// 内部使用异步线程删除,线程非阻塞 +- (void)clearOverSizeCache; + +- (void)cacheResourceUseBegin:(NSURL *)url; + +- (void)cacheResourceUseEnd:(NSURL *)url; + +- (void)clearSpecifiedResource:(NSURL *)url; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCacheManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCacheManager.h.meta new file mode 100644 index 00000000..1bdb4579 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCacheManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3a521a8b074614aba809ceddc3df7e06 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCommonMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCommonMacros.h new file mode 100755 index 00000000..9bbca2b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCommonMacros.h @@ -0,0 +1,197 @@ +// +// BUCommonMacros.h +// BUAdSDK +// +// Created by 崔亚楠 on 2018/10/23. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import + +#import "BULogMacros.h" + +FOUNDATION_EXPORT NSString * const BUSDKVersion; + +/// 标记是否是开发状态,正式上线发版时置 0 +#define DevEnv 0 + +/** String **/ +#define BUEmptyString (@""); +#define BUSafeString(__string) ((__string && [__string isKindOfClass:[NSString class]]) ? __string :@"") +#define BUSafeDictionary(__aDictionary) ((__aDictionary && [__aDictionary isKindOfClass:[NSDictionary class]]) ? __aDictionary :@{}) + +/** VALID CHECKING**/ +#define BUCheckValidString(__string) (__string && [__string isKindOfClass:[NSString class]] && [__string length]) +#define BUCheckValidNumber(__aNumber) (__aNumber && [__aNumber isKindOfClass:[NSNumber class]]) +#define BUCheckValidArray(__aArray) (__aArray && [__aArray isKindOfClass:[NSArray class]] && [__aArray count]) +#define BUCheckValidDictionary(__aDictionary) (__aDictionary && [__aDictionary isKindOfClass:[NSDictionary class]] && [__aDictionary count]) +#define BUCheckValidDate(__aDate) (__aDate && [__aDate isKindOfClass:[NSDate class]]) +#define BUCheckValidData(__aData) (__aData && [__aData isKindOfClass:[NSData class]]) + +/** Color String**/ +#define BUColorString(__string) [UIColor bu_colorWithHexString:(__string)] + +/*********************************************************************************************************/ +//强弱引用转换,用于解决代码块(block)与强引用对象之间的循环引用问题 +#ifndef bu_weakify +#if __has_feature(objc_arc) +#define bu_weakify(object) __weak __typeof__(object) weak##object = object; +#else +#define bu_weakify(object) __block __typeof__(object) block##object = object; +#endif +#endif +#ifndef bu_strongify +#if __has_feature(objc_arc) +#define bu_strongify(object) __typeof__(object) object = weak##object; +#else +#define bu_strongify(object) __typeof__(object) object = block##object; +#endif +#endif +/*********************************************************************************************************/ + +#ifndef BUisEmptyString +#define BUisEmptyString(str) (!str || ![str isKindOfClass:[NSString class]] || str.length == 0) +#endif + +#ifndef BUIsEmptyArray +#define BUIsEmptyArray(array) (!array || ![array isKindOfClass:[NSArray class]] || array.count == 0) +#endif + +#ifndef BUIsEmptyDictionary +#define BUIsEmptyDictionary(dict) (!dict || ![dict isKindOfClass:[NSDictionary class]] || ((NSDictionary *)dict).count == 0) +#endif + + +#ifndef BUMinX +#define BUMinX(view) CGRectGetMinX(view.frame) +#endif + +#ifndef BUMinY +#define BUMinY(view) CGRectGetMinY(view.frame) +#endif + +#ifndef BUMaxX +#define BUMaxX(view) CGRectGetMaxX(view.frame) +#endif + +#ifndef BUMaxY +#define BUMaxY(view) CGRectGetMaxY(view.frame) +#endif + +#ifndef BUWidth +#define BUWidth(view) view.frame.size.width +#endif + +#ifndef BUHeight +#define BUHeight(view) view.frame.size.height +#endif + +#ifndef BUScreenWidth +#define BUScreenWidth [[UIScreen mainScreen] bounds].size.width +#endif + +#ifndef BUScreenHeight +#define BUScreenHeight [[UIScreen mainScreen] bounds].size.height +#endif + +#ifndef BUMINScreenSide +#define BUMINScreenSide MIN([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) +#endif + +#ifndef BUMAXScreenSide +#define BUMAXScreenSide MAX([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) +#endif + +#define BUIsNotchScreen bu_is_notch_screen() +#define BUiPhoneX BUIsNotchScreen +#define kBUDefaultNavigationBarHeight (BUiPhoneX?88:64) // 导航条高度 +#define kBUSafeTopMargin (BUiPhoneX?24:0) +#define kBUDefaultStautsBarHeight (BUiPhoneX?44:20) // 状态栏高度 + +#define BUOnePixel (1.0f/[[UIScreen mainScreen] scale]) + +///全局队列 +#ifndef BUDispatchGetGlobalQueue +#define BUDispatchGetGlobalQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) +#endif + +#ifndef BUDispatchGetHighQueue +#define BUDispatchGetHighQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0) +#endif + +//单例 +#define BU_SINGLETION(...) \ ++ (instancetype)sharedInstance NS_SWIFT_NAME(shared()); + +#define BU_DEF_SINGLETION(...) \ ++ (instancetype)sharedInstance \ +{ \ +static dispatch_once_t once; \ +static id __singletion; \ +dispatch_once(&once,^{__singletion = [[self alloc] init];}); \ +return __singletion; \ +} + +FOUNDATION_EXPORT void bu_safe_dispatch_sync_main_queue(void (^block)(void)); +FOUNDATION_EXPORT void bu_safe_dispatch_async_main_queue(void (^block)(void)); + +FOUNDATION_EXPORT id BU_JSONObjectByRemovingKeysWithNullValues(id JSONObject); + +FOUNDATION_EXPORT BOOL bu_is_notch_screen(void); + +FOUNDATION_EXPORT UIEdgeInsets portraitAdSafeInsets(void); + + +#pragma mark - 锁 + +#define BU_USE_OS_UNFAIR_LOCK (__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_10_0) + +#ifndef BU_LOCK_DECLARE +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK_DECLARE(lock) os_unfair_lock lock +#else +#define BU_LOCK_DECLARE(lock) os_unfair_lock lock API_AVAILABLE(ios(10.0), tvos(10), watchos(3), macos(10.12)); \ +OSSpinLock lock##_deprecated; +#endif +#endif + +#ifndef BU_LOCK_INIT +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK_INIT(lock) lock = OS_UNFAIR_LOCK_INIT +#else +#define BU_LOCK_INIT(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) lock = OS_UNFAIR_LOCK_INIT; \ +else lock##_deprecated = OS_SPINLOCK_INIT; +#endif +#endif + +#ifndef BU_LOCK +#if BU_USE_OS_UNFAIR_LOCK +#define BU_LOCK(lock) os_unfair_lock_lock(&lock) +#else +#define BU_LOCK(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) os_unfair_lock_lock(&lock); \ +else OSSpinLockLock(&lock##_deprecated); +#endif +#endif + +#ifndef BU_UNLOCK +#if BU_USE_OS_UNFAIR_LOCK +#define BU_UNLOCK(lock) os_unfair_lock_unlock(&lock) +#else +#define BU_UNLOCK(lock) if (@available(iOS 10, tvOS 10, watchOS 3, macOS 10.12, *)) os_unfair_lock_unlock(&lock); \ +else OSSpinLockUnlock(&lock##_deprecated); +#endif +#endif + +@protocol BUDictionarify +@required +- (NSDictionary *)toDictionary; +@end + + + +// 对枚举值进行日志字符串转换, 例如对于一个枚举值 1表示激励视频广告的意思, 将返回: 激励视频广告(value:1) +FOUNDATION_EXPORT NSString *NSStringLogFromBUAdEnumItem(NSInteger enumItem, NSDictionary *dic, NSString *defaultValue); +// 对枚举值进行字符串转换 例如对于一个枚举值 1表示rewarded_ad的字符串, 将返回: rewarded_ad +FOUNDATION_EXPORT NSString *NSStringFromBUAdEnumItem(NSInteger enumItem, NSDictionary *dic, NSString *defaultValue); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCommonMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCommonMacros.h.meta new file mode 100644 index 00000000..47946a5d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUCommonMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f371db4bb5f37405ea1bd8483d9922d8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUConditionTracker.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUConditionTracker.h new file mode 100755 index 00000000..904e0300 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUConditionTracker.h @@ -0,0 +1,33 @@ +// +// BUConditionTracker.h +// BUFoundation +// +// Created by Willie on 2021/4/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef BOOL (^BUConditionBlock)(void); +typedef void (^BUActionBlock)(void); + +/// 条件轮询器:每秒轮询指定的条件,若条件满足则执行指定的行为 +@interface BUConditionTracker : NSObject + +/// 通过指定的条件 block 和行为 block 来构建一个 +/// @param condition 每秒轮询的条件,需要返回一个 BOOL 值 +/// @param action 当轮询条件满足时,需要执行的行为 +/// @param retryCount 轮询次数,当实际轮询次数超过指定次数后轮询自动停止,并释放条件和行为 block +- (instancetype)initWithConditon:(BUConditionBlock)condition + action:(BUActionBlock)action + retryCount:(NSInteger)retryCount; + +/// 开始轮询 +- (void)start; +/// 停止轮询并释放资源 +- (void)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUConditionTracker.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUConditionTracker.h.meta new file mode 100644 index 00000000..e21f2e7e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUConditionTracker.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4b38ead8a51b84cb0b2c96dbd83dd131 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDownloadSpeedServer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDownloadSpeedServer.h new file mode 100755 index 00000000..8070c186 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDownloadSpeedServer.h @@ -0,0 +1,40 @@ +// +// BUDownloadSpeedServer.h +// BUFoundation +// +// Created by bytedance on 2021/4/22. +// + +#import + +@class BUDownloadSpeedModel; + +NS_ASSUME_NONNULL_BEGIN + +@interface BUDownloadSpeedServer : NSObject + ++ (instancetype)server; + +- (void)startDownloadWithUrl:(NSURL *)url; + +- (BUDownloadSpeedModel *)downloadingWithUrl:(NSURL *)url; + +- (void)finishDownloadWithUrl:(NSURL *)url; + +- (double)downloadSpeeds; + +@end + +@interface BUDownloadSpeedModel : NSObject + +@property (atomic, assign) NSTimeInterval startDownloadTime; + +@property (atomic, assign) NSTimeInterval finishDownloadTime; + +@property (atomic, assign) NSInteger downloadSize; + +@property (nonatomic, assign) double speed; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDownloadSpeedServer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDownloadSpeedServer.h.meta new file mode 100644 index 00000000..b78e0b05 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDownloadSpeedServer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 08951cf4bf9c84a46ad40918d71524a7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDynamicPlugin.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDynamicPlugin.h new file mode 100755 index 00000000..a95d41f5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDynamicPlugin.h @@ -0,0 +1,38 @@ +// +// BUDynamicPlugin.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BURexxarEngine.h" + + +//推荐使用动态的方式 +/** + 使用方法: + 1.继承BUDynamicPlugin + 2.在.h中使用宏 BU_EXPORT_HANDLER(abc)声明需要暴露的方法 + 3.在.m中实现此方法, 输入-(void)abc 即可获得ide补全提示 + 4.通过传入的callback来回调执行结果. 注意.无论成功与否都必须执行这个callback + */ +@interface BUDynamicPlugin : NSObject + +/** + plugin执行时所处的engine + */ +@property (nonatomic, weak) id engine; + + +/** + BUJSBInstanceTypeGlobal时 需要实现此方法, 没有特殊需要 不推荐使用 + + @return 单例plugin + */ ++ (instancetype)sharedPlugin; + ++ (BUJSBInstanceType)instanceType; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDynamicPlugin.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDynamicPlugin.h.meta new file mode 100644 index 00000000..8d5a2be6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUDynamicPlugin.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5b7b7a85d869943bf8661c20dd09a918 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUEnvironment.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUEnvironment.h new file mode 100755 index 00000000..219833be --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUEnvironment.h @@ -0,0 +1,21 @@ +// +// BUEnvironment.h +// BUFoundation +// +// Created by bytedance on 2020/10/29. +// Copyright © 2020 Union. All rights reserved. +// + +#ifndef BUEnvironment_h +#define BUEnvironment_h + +#import +#import + +CTTelephonyNetworkInfo *BUDefaultTelephonyNetworkInfo(void); + +@interface BUEnvironment : NSObject + +@end + +#endif /* BUEnvironment_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUEnvironment.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUEnvironment.h.meta new file mode 100644 index 00000000..2c3c1db1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUEnvironment.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5dbdba92defe4462b88621cef7bef9e3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundation.h new file mode 100755 index 00000000..f186cbc5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundation.h @@ -0,0 +1,135 @@ +// +// BUFoundation.h +// BUFoundation +// +// Created by Siwant on 2019/8/26. +// Copyright © 2019 Union. All rights reserved. +// + + + + +/// Public-Utils +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/// Public-Category +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + + +/// Public-Gif +#import +#import + +/// Service-BUPersistent +#import + +/// Service-BUQueueManagerMode +#import +#import + + +/// Service-JSBridge +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/// Service-Log +#import +#import + + + +/// a-n-u +#import +#import + + +#import +#import + + + + +// SD +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import + +// yy +#import +/************************************ ThirdParty***********************************/ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundation.h.meta new file mode 100644 index 00000000..24219685 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f9237770a620e49f6b372ac17e98ae77 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundationAddress.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundationAddress.h new file mode 100755 index 00000000..33461056 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundationAddress.h @@ -0,0 +1,21 @@ +// +// BUFoundationAddress.h +// BUFoundation +// +// Created by Siwant on 2020/2/5. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUFoundationAddress : NSObject + ++ (int64_t)bu_beginAddress; + ++ (int64_t)bu_endAddress; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundationAddress.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundationAddress.h.meta new file mode 100644 index 00000000..5e6cb212 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUFoundationAddress.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e153418034bef40e9b2952659a09a14f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGeckoPreloadManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGeckoPreloadManager.h new file mode 100755 index 00000000..9b2aea2f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGeckoPreloadManager.h @@ -0,0 +1,62 @@ +// +// BUGeckoPreloadManager.h +// BUAdSDK +// +// Created by wangyanlin on 2020/6/29. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +extern NSString * const kBUGeckoInitDoneNotificationName; + +typedef void (^BUPreloadCompletion)(NSData * _Nullable data,NSDictionary * _Nullable respHeader); +typedef void (^BUPreloadTrackBlock)(NSObject *model,NSString *label,NSDictionary *parameter); +typedef void (^BUSyncDataCompletion)(BOOL success,NSDictionary *info); +@interface BUGeckoPreloadManager : NSObject + +@property (nonatomic, strong) NSMapTable *mapTable; + +@property (nonatomic, strong) NSMutableDictionary *geckoDict; + +@property (nonatomic, copy) BUPreloadTrackBlock trackBlock; + ++ (instancetype)sharedInstance; + ++ (void)setupSDKWithTerritory:(NSString *)territory + IESGeckoKitAppId:(NSString *)IESGeckoKitAppId + IESGeckoKit_CACHE_DIRECTORY:(NSString *)IESGeckoKit_CACHE_DIRECTORY + IESGeckoKitAccessKey:(NSString *)IESGeckoKitAccessKey + IESGeckoKit_Domains:(NSArray *)IESGeckoKit_Domains + ZipBlock:(id)zipBlock; + +//1.本地zip 包已经被删除了,自动去下载 +//2.如果zip需要更新,会自动更新 +//3.本地有zip, 并且不需要更新. 不做处理 ++ (void)syncResourcesParamsWithChannel:(NSArray *)materialArray hosts:(NSArray *)hosts; + ++ (BOOL)geckoDidSetup; ++ (void)registAccessKey:(NSString *)ak; ++ (void)setGeckoDeviceID:(NSString *)deviceID; ++ (void)syncResourcesParamsWithAccessKey:(NSString *)ak + channels:(NSArray *)channelIds + hosts:(NSArray *)hosts + completion:(BUSyncDataCompletion _Nullable)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info + accessKey:(NSString *)ak + channel:(NSString *)channel + completion:(BUPreloadCompletion)completion; + ++ (void)asyncGetDataWithInfo:(NSDictionary *)info completion:(BUPreloadCompletion)completion; + +/** +* @brief 返回文件版本;如果文件未激活,则返回0 +*/ ++ (uint64_t)packageVersionForAccessKey:(NSString *)accessKey channel:(NSString *)channel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGeckoPreloadManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGeckoPreloadManager.h.meta new file mode 100644 index 00000000..b3018674 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGeckoPreloadManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d7cfc676a3a44d239fbaeba467ffc24 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImage.h new file mode 100755 index 00000000..571be786 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImage.h @@ -0,0 +1,25 @@ +// +// BUGifImage.h +// BUGif +// +// Created by Johnil on 14-3-6. +// Copyright (c) 2014年 Johnil. All rights reserved. +// + +#import + +@interface BUGifImage : UIImage + +@property (nonatomic,assign) NSInteger currentPlayIndex; +@property (nonatomic,strong) NSData *data; + ++ (instancetype)gifWithData:(NSData *)data; + +- (UIImage *)nextImage; +- (NSInteger)count; +- (CGFloat)frameDuration; +- (void)resumeIndex; +/// 是否还有下一桢 +- (BOOL) hasNextImage; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImage.h.meta new file mode 100644 index 00000000..895dacec --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a66c180ccf4984dfbb9dc689d818f760 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImageView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImageView.h new file mode 100755 index 00000000..66fecbde --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImageView.h @@ -0,0 +1,26 @@ +// +// TTGifImageView.h +// Article +// +// Created by carl on 2017/5/21. +// +// + +#import +#import "BUGifImage.h" + +@protocol BUAnimationImageView +@property (nonatomic, assign) BOOL repeats; +@property (nonatomic, copy) void (^completionHandler)(BOOL); +@property (nonatomic, strong, readonly) BUGifImage *gifImage; +@property (nonatomic, assign) NSInteger currentPlayIndex; +@property (nonatomic, assign) BOOL delayDuration; +@end + +@interface BUGifImageView : UIImageView +@property (nonatomic, assign) BOOL repeats; +@property (nonatomic, copy) void (^completionHandler)(BOOL); +@property (nonatomic, strong, readonly) BUGifImage *gifImage; +@property (nonatomic, assign) NSInteger currentPlayIndex; +@property (nonatomic, assign) BOOL delayDuration; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImageView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImageView.h.meta new file mode 100644 index 00000000..e9bd4d16 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUGifImageView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 409614172b4bf42d6ab69332640f6530 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUImageUtility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUImageUtility.h new file mode 100755 index 00000000..b05a4345 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUImageUtility.h @@ -0,0 +1,19 @@ +// +// BUImageUtility.h +// BUAdSDK +// +// Created by Siwant on 2019/8/8. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUImageUtility : NSObject +/// 返回类型不只是UIImage,也包括BUGifImage ++ (UIImage *_Nullable)imageWithData:(NSData *_Nullable)data; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUImageUtility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUImageUtility.h.meta new file mode 100644 index 00000000..a00189d4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUImageUtility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4286cd1062ed0458bae5de4b12de4af8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBAuthorization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBAuthorization.h new file mode 100755 index 00000000..0f4aa74a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBAuthorization.h @@ -0,0 +1,38 @@ +// +// BUJSBAuthorization.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BUJSBCommand.h" +#import "BURexxarEngine.h" + +@protocol BUJSBAuthorization + + +/** + 验证是否有权限执行这个JSB + + @param engine 上下文engine + @param command JSBCommand + @param domain 所在页面 + @return 是否有权限 + */ +- (BOOL)engine:(id)engine isAuthorizedJSB:(BUJSBCommand *)command domain:(NSString *)domain; + + +/** + fireEvent发送之前 验证是否有权限发送这个事件 + + @param engine 上下文engine + @param eventName 事件名字 + @param domain 所在页面 + @return 是否有权限 + */ +- (BOOL)engine:(id)engine isAuthorizedEvent:(NSString *)eventName domain:(NSString *)domain; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBAuthorization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBAuthorization.h.meta new file mode 100644 index 00000000..e4027948 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBAuthorization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7f5aacca4ffcb4b77ae1e7c903f97d18 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBCommand.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBCommand.h new file mode 100755 index 00000000..a58453f1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBCommand.h @@ -0,0 +1,51 @@ +// +// BUJSBMessage.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import + +@interface BUJSBCommand : NSObject + +@property (nonatomic, copy) NSString *messageType; + +@property (nonatomic, copy) NSString *eventID; + +@property (nonatomic, copy) NSString *callbackID; + +@property (nonatomic, copy) NSDictionary *params; + + +/** + 前端传过来的方法名, 有"isLogin" 和 "TTRLogin.isLogin"两种格式 + */ +@property(nonatomic, copy) NSString *fullName; + +/** + 经过别名映射后, 该property为 映射前的fullName + */ +@property(nonatomic, copy) NSString *origName; + +/** + 动态plugin的 类名 + */ +@property(nonatomic, copy) NSString *className; + + +/** + 动态plugin的 方法名 + */ +@property(nonatomic, copy) NSString *methodName; + +/** + 没卵用 + */ +@property(nonatomic, copy) NSString *JSSDKVersion; + +- (instancetype)initWithDictonary:(NSDictionary *)dic; + +- (NSString *)toJSONString; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBCommand.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBCommand.h.meta new file mode 100644 index 00000000..baa427cc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBCommand.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 046110bddf75149bd99820bf9511f265 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBDefine.h new file mode 100755 index 00000000..d30272c2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBDefine.h @@ -0,0 +1,76 @@ +// +// BUJSBDefine.h +// BURexxar +// +// Created by muhuai on 2017/5/5. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +//#import "BURexxarEngine.h" + +#define BU_EXPORT_HANDLER(NAME) - (void)NAME##WithParam:(NSDictionary *)param callback:(BUJSBResponse)callback webView:(UIView *)webview controller:(UIViewController *)controller; + +#define _BU_HANDLER_SET(NAME, HANDLERS) \ +- (NSSet *)NAME { \ +if (![HANDLERS isKindOfClass:[NSArray class]]) {\ +return nil;\ +}\ +return [NSSet setWithArray:HANDLERS];\ +} + +#define ARRAY(...) [NSArray arrayWithObjects: (id []){ __VA_ARGS__ } count: sizeof((id []){ __VA_ARGS__ }) / sizeof(id)] + +#define BU_PROTECTED_HANDLER(...) \ +_BU_HANDLER_SET(protectedHandlerSet, ARRAY(__VA_ARGS__)) + +#define BU_PRIVATE_HANDLER(...) \ +_BU_HANDLER_SET(privateHandlerSet, ARRAY(__VA_ARGS__)) + +#define BU_CALLBACK_SUCCESS \ +if (callback) {\ +callback(BUJSBMsgSuccess, @{@"code": @"1"});\ +}\ + +#define BU_CALLBACK_FAILED \ +if (callback) {\ +callback(BUJSBMsgFailed, @{@"code": @"0"});\ +}\ + +#define BU_CALLBACK_FAILED_MSG(msg) \ +if (callback) {\ +callback(BUJSBMsgFailed, @{@"code": @"0", @"msg": [NSString stringWithFormat:msg]? :@""});\ +}\ + +#define BU_CALLBACK_WITH_MSG(status, msg) \ +if (callback) {\ +callback(status, @{@"code": status == BUJSBMsgSuccess? @"1": @"0", @"msg": [NSString stringWithFormat:msg]? [NSString stringWithFormat:msg] :@""});\ +}\ + + +typedef NS_ENUM(NSUInteger, BUJSBInstanceType) { + BUJSBInstanceTypeNormal, //每次调用都是不同实例(默认, 推荐) + BUJSBInstanceTypeGlobal, //全局单例, 需要实现 +(instance)sharedPlugin; + BUJSBInstanceTypeWebView, //对同一个webview复用一个实例 +}; + +typedef NS_ENUM(NSUInteger, BUJSBAuthType){ + BUJSBAuthPublic, // 所有均可调用(默认) + BUJSBAuthProtected, //内部domain,及外部授权可调用 + BUJSBAuthPrivate // 仅内部domain,appinfo不可见 +}; + +typedef enum : NSUInteger { + BUJSBMsgSuccess, + BUJSBMsgFailed, + BUJSBMsgParamError, + BUJSBMsgNoHandler, + BUJSBMsgNoPermission +} BUJSBMsg; + +typedef NS_ENUM(NSInteger, BUJSBResultCode){ + BUJSBResultCodeError = -2, // jsb结果错误cod回传 + BUJSBResultCodeSuccess = 200, // jsb结果成功cod回传 +}; + +typedef void(^BUJSBResponse)(BUJSBMsg, NSDictionary *); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBDefine.h.meta new file mode 100644 index 00000000..fa955570 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 742caa9d85a4a4f25960b39403e63aef +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBForwarding.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBForwarding.h new file mode 100755 index 00000000..ed013103 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBForwarding.h @@ -0,0 +1,45 @@ +// +// BUJSBForwarding.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBCommand.h" +#import "BURexxarEngine.h" +#import "BUJSBDefine.h" + +@interface BUJSBForwarding : NSObject + ++ (instancetype)sharedInstance; + + +/** + 转发到对应的插件 + + @param command JSB命令 + @param engine Hybrid容器, 可是webview, RNView, weex. 实现此协议即可 + @param completion 完成回调 + */ +- (void)forwardJSBWithCommand:(BUJSBCommand *)command engine:(id)engine completion:(BUJSBResponse)completion; + +/** + 注册JSBridge别名 + + @param alias 新名 + @param orig 原名 + */ +- (void)registeJSBAlias:(NSString *)alias for:(NSString *)orig; + + +/** + 原名 -> 别名 + + @param orig 原名 + @return 别名 + */ +- (NSString *)aliasJSBForOrig:(NSString *)orig; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBForwarding.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBForwarding.h.meta new file mode 100644 index 00000000..dbd71c62 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSBForwarding.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 26f539057284342a6ad407a787886176 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSInjector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSInjector.h new file mode 100755 index 00000000..f0ea8ddf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSInjector.h @@ -0,0 +1,72 @@ +// +// BUJSInjector.h +// BURexxar +// +// Created by muhuai on 2017/6/17. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import + +@protocol BUWebView; +/** + BUWebView的JS注入器 + 当页面加载完成后, 注入器会向WebView容器里注入一段JS脚本. + + 使用场景: + 容器是其他人提供的, 但是你需要往里面注入一些脚本. + + 有两个级别: + 1. webview级别, 只对当前webview生效. BUWebView.injector + 2. 全局级别, 对所有webview生效. [BUJSInjector sharedInstance] + + 请自行根据需求使用, 不要滥用全局级别 + + */ + +@interface BUJSInjector : NSObject + +/** + 全局级别的注入器. + 需评估影响范围, 慎用 + + @return 注入器 + */ ++ (instancetype)sharedInstance; + +/** + 对匹配正则的页面注入脚本 + 非线程安全 + + @param script 脚本 + @param regex 正则表达式 + @param key 该条规则的key, 用于remove和 检验规则唯一性 + @note 如果有多条规则成功匹配, 则会注入多段JS脚本 + 多段注入会按照注册先后顺序, 并且web级别 > 全局级别 + */ +- (void)addInjectRuleWithScript:(NSString *)script regex:(NSString *)regex key:(NSString *)key; + +/** + 移除指定规则 + 非线程安全 + + @param key 规则的key + */ +- (void)removeScriptWithKey:(NSString *)key; + +/** + 移除全部规则. + 非线程安全 + + 慎用..小心被人打... + */ +- (void)removeAllScript; + +/** + 对webview注入 符合规则的脚本 + + @param webview BUWebView + */ +- (void)injectScriptInWebView:(UIView *)webview; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSInjector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSInjector.h.meta new file mode 100644 index 00000000..c28241d3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUJSInjector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c17fbe64e301b41238d2180eb23066d2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogMacros.h new file mode 100755 index 00000000..c8249a18 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogMacros.h @@ -0,0 +1,39 @@ +// +// BULogMacros.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/2/2. +// + +#import +#import "BULogManager.h" + + + + +/** LOG **/ +#define BU_Log_Foundation(frmt, ...) BU_LOG_MAYBE(BUFoundationLog, BU_LOG_ENABLED, frmt, ##__VA_ARGS__) + +#define BU_LOG_MAYBE(BULogTypeString, flg, frmt, ...) \ +do { \ +if(flg) [BULogManager debugLogWithFormat:@"[BUAdSDK-%@]-[debug]-[%@]%@", BUSDKVersion, BULogTypeString, [NSString stringWithFormat:frmt,##__VA_ARGS__]]; \ +} while(0) + +#define BU_LogErrorD(BULogType, frmt, ...) BU_LogBaseD(error, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogWaringD(BULogType, frmt, ...) BU_LogBaseD(warning, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogInfoD(BULogType, frmt, ...) BU_LogBaseD(info, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogDebugD(BULogType, frmt, ...) BU_LogBaseD(debug, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogVerboseD(BULogType, frmt, ...) BU_LogBaseD(verbose, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogInternalD(BULogType, frmt, ...) BU_LogBaseD(internal, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogServerD(BULogType, frmt, ...) BU_LogBaseD(server, BULogType, frmt, ##__VA_ARGS__) +#define BU_LogBaseD(level, BULogType, frmt, ...) [BULogManager level##LogWithFormat:@"[BUAdSDK-%@]-[%s]-[%@]%@", BUSDKVersion, #level, BULogType, [NSString stringWithFormat:frmt, ##__VA_ARGS__]]; + +#define BU_LogDevInfo(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🟠", frmt, ##__VA_ARGS__) +#define BU_LogDevSucc(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🟢", frmt, ##__VA_ARGS__) +#define BU_LogDevFail(BULogType, frmt, ...) BU_LogDevBase(BULogType, @"🔴", frmt, ##__VA_ARGS__) +#define BU_LogDevBase(BULogType, mark, frmt, ...) [BULogManager internalLogWithFormat:@"[BUAdSDK-%@]-[%@ %@]-[%@ %d] %@", BUSDKVersion, BULogType, mark, [NSURL fileURLWithPath:@__FILE__].lastPathComponent, __LINE__, [NSString stringWithFormat:frmt, ##__VA_ARGS__]]; + +FOUNDATION_EXPORT NSString * const BUFoundationLog; +FOUNDATION_EXPORT BOOL BU_LOG_ENABLED; + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogMacros.h.meta new file mode 100644 index 00000000..19ab6e4b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dce5ff21e300142628b6e74010af764c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogManager.h new file mode 100755 index 00000000..dd6b7d75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogManager.h @@ -0,0 +1,44 @@ +// +// BULogManager.h +// BUAdSDK +// +// Created by bytedance on 2020/6/9. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +// 这里跟 BUAdSDKLogLevel 对齐 +typedef NS_ENUM(NSInteger, BULogManagerLevel) { + BULogManagerLevelNone, + BULogManagerLevelError, + BULogManagerLevelWarning, + BULogManagerLevelInfo, + BULogManagerLevelDebug, + BULogManagerLevelVerbose, +}; + +typedef NS_ENUM(NSInteger, BULogServerControlMode) { + BULogManagerServerControlCloseMode, + BULogManagerServerControlDebugMode, +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface BULogManager : NSObject + +@property (nonatomic, assign) BULogManagerLevel level; +@property (nonatomic, assign) BULogServerControlMode mode; + ++ (void)errorLogWithFormat:(NSString *)format, ...; ++ (void)warningLogWithFormat:(NSString *)format, ...; ++ (void)infoLogWithFormat:(NSString *)format, ...; ++ (void)debugLogWithFormat:(NSString *)format, ...; ++ (void)verboseLogWithFormat:(NSString *)format, ...; ++ (void)internalLogWithFormat:(NSString *)format, ...; ++ (void)serverLogWithFormat:(NSString *)format, ...; + ++ (instancetype)sharedInstance; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogManager.h.meta new file mode 100644 index 00000000..59c41b1d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BULogManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0da6e8ecc18804846960f2a98391b84f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUNetworkRequest.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUNetworkRequest.h new file mode 100755 index 00000000..395e7567 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUNetworkRequest.h @@ -0,0 +1,51 @@ +// +// BUAdNetworkRequest.h +// BUFoundation +// +// Created by bytedance on 2020/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUNetworkRequest : BUBaseRequest + +@property (nonatomic,copy ) NSString *buRequestUrl; +@property (nonatomic,strong) NSDictionary *parameter; +@property (nonatomic,assign) BURequestMethod method; +@property (nonatomic,assign) BURequestSerializerType buRequestSerializerType; +@property (nonatomic,assign) BUResponseSerializerType buResponseSerializerType; + +- (instancetype)initWithUrl:(NSString * _Nullable)url + method:(BURequestMethod)method + parameter:(NSDictionary * _Nullable)parameter; + ++ (instancetype)requestWithURL:(NSString *)url + method:(BURequestMethod)method + parameter:(NSDictionary *)paraDic + completionWithSuccess:(BURequestCompletionBlock _Nullable)success + failure:(BURequestCompletionBlock _Nullable)failure; + ++ (instancetype)requestWithURL:(NSString *)url + parameter:(NSDictionary *)paraDic + completionWithSuccess:(BURequestCompletionBlock _Nullable)success + failure:(BURequestCompletionBlock _Nullable)failure; + + + +@end + +@interface BUNetworkRequest (TNC) +// 使用TNC服务的标识,自定义,唯一即可 +- (NSString *)TNCServiceKey; + +// 请求失败回调,如果需要TNC,请使用`failureCompletionBlockWithTNC`替换`failureCompletionBlock`的实现 +- (BURequestCompletionBlock)failureCompletionBlockWithTNC; + +// 请求成功回调,如果需要TNC,请使用`successCompletionBlockWithTNC`替换`successCompletionBlock`的实现 +- (BURequestCompletionBlock)successCompletionBlockWithTNC; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUNetworkRequest.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUNetworkRequest.h.meta new file mode 100644 index 00000000..37cb311f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUNetworkRequest.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 50bb4e218f1aa47e8becc224954bf2c1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPersistence.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPersistence.h new file mode 100755 index 00000000..bc6b70f8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPersistence.h @@ -0,0 +1,80 @@ +// +// BUPersistence.h +// BUPersistence +// +// Created by Chen Hong on 2017/1/10. +// Copyright © 2017年 Chen Hong. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +typedef NS_ENUM(NSUInteger, BUPersistentType) { + BUPersistentTypePlist, + BUPersistentTypeKeyChain, + BUPersistentTypeCustom, +}; + +@interface BUPersistenceOption : NSObject + +@property (nonatomic, assign) BUPersistentType type; + +@property (nonatomic, assign) BOOL shouldRemoveAllObjectsOnMemoryWarning; + +@property (nonatomic, assign) BOOL shouldRemoveAllObjectsWhenEnteringBackground; + +@property (nonatomic, assign) BOOL supportNSCoding; + +// 默认YES +@property (nonatomic, assign) BOOL isThreadSafe; + +@end + +@protocol BUPersistenceProtocol + +- (NSArray *)allObjects; + +- (nullable id)objectForKey:(nullable NSString *)key; + +- (nullable NSArray *)objectsForKeys:(NSArray *)keys; + +- (void)updateObjectsForKeys:(NSArray *)keys WithBlock:(NSDictionary * (^)(NSArray *objects))block; + +- (BOOL)setObject:(nullable id)object forKey:(nullable NSString *)key; + +- (BOOL)hasObjectForKey:(nullable NSString *)key; + +- (BOOL)removeAll; + +- (BOOL)removeObjectsForKeys:(NSArray *)keys; + +- (BOOL)save; + +@end + +@interface BUPersistence : NSObject + + ++ (nullable instancetype)persistenceWithName:(NSString *)name; + +/// 公共的BUPersistence 实例对象 +/// 当不需要特定的设置name时,可以使用commonPersistence +/// @Warning , 当使用commonPersistence时, key值的设置请注意唯一性,防止key值覆盖的问题发生 ++ (nullable instancetype)commonPersistence; + ++ (nullable instancetype)persistenceWithName:(NSString *)name option:(BUPersistenceOption *)option; + +//+ (void)deleteWithName:(NSString *)name; +// ++ (NSString *)cacheDirectory; + + +#pragma mark - Publick ++ (void)setSDKVersion:(NSString *)sdkVersion; ++ (NSString *)sdkVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPersistence.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPersistence.h.meta new file mode 100644 index 00000000..d5aedd78 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPersistence.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 077088a0d53d64615b1d058f159ef4c9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayer.h new file mode 100755 index 00000000..f63e2b61 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayer.h @@ -0,0 +1,167 @@ +// +// BUPlayer.h +// BUAdSDK +// +// Created by hlw on 2017/12/21. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerDefine.h" +#import "BUPlayerInternalDefine.h" +#import "BUPlayerSettingsProtocol.h" + +@class BUPlayerItem; +@interface BUPlayer : NSObject + +@property (nonatomic, weak) id delegate; + +/** + * 播放内容视图 + */ +@property (nonatomic, strong, readonly) UIView *view; + +/** + * 播放器状态 + * 支持KVO + */ +@property (nonatomic, assign, readonly) BUVideoPlayerState state; + +/// 播放器播放模式改变 +@property (nonatomic, assign, readonly) BUVideoPlayerDecoeMode decodeMode; + +/** + * 播放资源总时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval duration; + +/** + * 当前可播放时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval playableDuration; + +/** + * 实际观看时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval watchedDuration; + +/** + * 当前播放时间 + */ +@property (nonatomic, assign, readonly) CGFloat currentPlayTime; + + +/// 当前播放链接 +@property (nonatomic, strong, readonly) NSURL *currentPlayURL; + +/** + * 当前播放资源Item + */ +@property (nonatomic, strong, readonly) BUPlayerItem *currentPlayerItem; + +/** + * 播放器控制层容器,默认视图支持部分定制或完全自定义 + * 默认显示控制层全部元素,可以定制部分视图元素显示/隐藏 + * 若完全自定义,需先隐藏全部默认视图元素 再在容器上添加自定义视图 + */ +@property (nonatomic, strong, readonly) UIView *controlContainer; + +/** + * 播放内容视图填充方式 + * 默认:等比例填充,直到一个维度到达区域边界 + */ +@property (nonatomic, assign) BUPlayerLayerGravity playerLayerGravity; + +/** + * 播放视图上手势操作选项开关 + * 默认全开 + */ +@property (nonatomic, assign) BUPlayerGestureOption option; + +/** + * 静音设置 + */ +@property (nonatomic, assign) BOOL mute; + +/** + * 当前是否全屏显示 + */ +@property (nonatomic, assign, readonly) BOOL isFullScreen; + +/** 设置自定义ControlView */ +@property (nonatomic, strong) UIView *controlView; + +/** + * 支持自动转屏,默认NO + */ +@property (nonatomic, assign) BOOL shouldAutoRotate; + +/** +* jsb changeVideoState 暂停视频后,视频过一秒会继续开始播放.因为 timer 会调用 checkToPlayOrPause. +* 所以用属性进行标记 +* 影响范围: 模板/非模板 的激励全屏视频 +*/ +@property (nonatomic, assign) BOOL isJSBPauseVideo; + ++ (instancetype)playerWithPlayerItem:(BUPlayerItem *)item; + +- (void)replaceCurrentItemWithPlayerItem:(BUPlayerItem *)item; + + +- (void)insertGaosiMohuWithLayer:(CALayer *)layer; + +- (void)insertGaosiMohuWithView:(UIView *)view; + + +/// 设置指定时间回调 +/// @param time 时间点 +- (void)setPlayerBoundaryTime:(NSInteger)time; + +/// 移除播放器定时回调 +- (void)removePlayerBoundaryTime; +@end + +@interface BUPlayer (BUPlayerControl) + +/** + * 播放 + */ +- (void)play; + +/** + * 暂停 + */ +- (void)pause; + +/** + * 重播 + */ +- (void)replay; + +/** + * 停止 + */ +- (void)stop; + +/** + * 跳到指定时间播放 + */ +- (void)seekToTime:(NSTimeInterval)time completion:(void(^)(BOOL success))completion; + +/** + * 全屏/竖屏 切换显示 + */ +- (void)changeOrientationScreen; + + +/** + * 处于后台模式 + */ +- (BOOL)isEnterBackground; + +@end + +@interface BUPlayer (BUTrack) +@property (nonatomic, strong) NSString *startTimestamp; +@property (nonatomic, strong) NSString *endTimestamp; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayer.h.meta new file mode 100644 index 00000000..a3866d95 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 73a0c6bdcbb9844f0bfd42b37c7d5f62 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerDefine.h new file mode 100755 index 00000000..b206dc0a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerDefine.h @@ -0,0 +1,82 @@ +// +// BUPlayerDefine.h +// BUAdSDK +// +// Created by carl on 2017/12/24. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +/** + * playerLayer的填充模式 + */ +typedef NS_ENUM(NSInteger, BUPlayerLayerGravity) { + BUPlayerLayerGravityResize, // 非均匀模式。两个维度完全填充至整个视图区域 + BUPlayerLayerGravityResizeAspect, // 等比例填充,直到一个维度到达区域边界 + BUPlayerLayerGravityResizeAspectFill // 等比例填充,直到填充满整个视图区域,其中一个维度的部分区域会被裁剪 +}; + +/** + * 手势交互操作 + */ +typedef NS_OPTIONS(NSInteger, BUPlayerGestureOption) { + BUPlayerGestureOptionNone = 0, + BUPlayerGestureOptionVolumeEnabled = 1 << 0, + BUPlayerGestureOptionBrightnessEnabled = 1 << 1, + BUPlayerGestureOptionFastSkipEnabled = 1 << 2, + BUPlayerGestureOptionSigleTapEnabled = 1 << 3, + BUPlayerGestureOptionDoubleTapEnabled = 1 << 4, +}; +/** + * 默认的控制视图或完成视图的元素 + */ +typedef NS_OPTIONS(NSInteger, BUPlayerDefaultControlElement) { + BUPlayerControlElementNone = 0, + BUPlayerControlElementTop = 1 << 0, + BUPlayerControlElementBottom = 1 << 1, + BUPlayerControlElementActivity = 1 << 2, + BUPlayerControlElementFailHint = 1 << 3, + BUPlayerControlElementProgress = 1 << 4, + BUPlayerControlElementPlay = 1 << 5, + BUPlayerControlElementReplay = 1 << 6, +}; + +typedef NSString * BUPlayerUIControlImage; +typedef NSString * BUPlayerUIControlLocalizedString; + +#define BUPlayerUIControlImage_LeftBack @"bu_leftback" +#define BUPlayerUIControlImage_TopShadow @"bu_topShadow" +#define BUPlayerUIControlImage_BottomShadow @"bu_bottomShadow" +#define BUPlayerUIControlImage_BottomPlay @"bu_bottomPlay" +#define BUPlayerUIControlImage_BottomPause @"bu_bottomPause" +#define BUPlayerUIControlImage_FullClose @"bu_fullClose" +#define BUPlayerUIControlImage_SliderDot @"bu_sliderDot" +#define BUPlayerUIControlImage_FullScreen @"bu_fullScreen" +#define BUPlayerUIControlImage_ShrinkScreen @"bu_shrinkScreen" +#define BUPlayerUIControlImage_Replay @"bu_replay" +#define BUPlayerUIControlImage_Play @"bu_play" +#define BUPlayerUIControlImage_Pause @"bu_pause" +#define BUPlayerUIControlImage_FastForward @"bu_fastForward" +#define BUPlayerUIControlImage_FastBackward @"bu_fastBackward" + +#define BUPlayerUIControlLocalizedString_Close @"bu_LoStr_Close" + +@protocol BUPlayerControlViewProtocol + +- (instancetype)initWithContrlResourceBundle:(NSBundle *)bundle + images:(NSDictionary *)images + localizedStrings:(NSDictionary *)localizedStrings; + +/** + * 设置默认控制视图或完成视图的元素组合方式 + * 默认显示全部 + */ +- (void)setPlayerDefaultControlElement:(BUPlayerDefaultControlElement)element; +/** + * 获取播放完成视图容器 + * 若需自定义可先移除BUPlayerControlElementReplay,再添加自定义视图 + */ +- (UIView *)finishedContainer; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerDefine.h.meta new file mode 100644 index 00000000..52aedfb5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ff9f0f0ba3933477babd1f4e44266d7b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerInternalDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerInternalDefine.h new file mode 100755 index 00000000..e8593952 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerInternalDefine.h @@ -0,0 +1,81 @@ +// +// BUPlayerInternalDefine.h +// BUFoundation +// +// Created by bytedance on 2020/12/17. +// + +#ifndef BUPlayerInternalDefine_h +#define BUPlayerInternalDefine_h + +typedef NS_ENUM(NSInteger, BUVideoPlayerState) { + BUVideoPlayerStateFailed = 0, + BUVideoPlayerStateBuffering = 1, + BUVideoPlayerStatePlaying = 2, + BUVideoPlayerStateStopped = 3, + BUVideoPlayerStatePause = 4, + BUVideoPlayerStateDefault = 5 +}; + +typedef NS_ENUM(NSUInteger, BUVideoPlayerDecoeMode) { + BUVideoPlayerDecoeMode_H265_Local = 0, + BUVideoPlayerDecoeMode_H265_Cache = 1, + BUVideoPlayerDecoeMode_H265_Remote = 2, + + BUVideoPlayerDecoeMode_H264_Local = 3, + BUVideoPlayerDecoeMode_H264_Cache = 4, + BUVideoPlayerDecoeMode_H264_Remote = 5, + BUVideoPlayerDecoeMode_Last = 5, +}; + +@class BUPlayer; + +@protocol BUVideoPlayerDelegate + +@optional +/** + This method is called when the player status changes. + */ +- (void)player:(BUPlayer *)player stateDidChanged:(BUVideoPlayerState)playerState; + + +/// 播放器播放模式改变,当播放失败时会逐级降级 +/// @param player 播放器播放模式改变 +/// @param democeMode 播放模式 +- (void)player:(BUPlayer *)player decodeModeChanged:(BUVideoPlayerDecoeMode)democeMode; + +/** + This method is called when the player is ready. + */ +- (void)playerReadyToPlay:(BUPlayer *)player; + +/** + This method is called when the player is ready, while application in background. + */ +- (void)playerReadyToPlayWhenApplicationEnterBackground:(BUPlayer *)player; + +/** + This method is called when the player plays completion or occurrs error. + */ +- (void)playerDidPlayFinish:(BUPlayer *)player error:(NSError *)error; + +/** + This method is called when the player is clicked. + */ +- (void)player:(BUPlayer *)player recognizeTapGesture:(UITapGestureRecognizer *)gesture; + + +/** + This method is called when the view is clicked during ad play. + */ +- (void)playerTouchesBegan:(BUPlayer *)player; + + +/// Will be called when set BoundaryTime. +/// @param player player +- (void)playerBoundaryTimeReached:(BUPlayer *)player; + +@end + + +#endif /* BUPlayerInternalDefine_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerInternalDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerInternalDefine.h.meta new file mode 100644 index 00000000..d4dd6831 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerInternalDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 28fdaf36c68484ebab37e07e5d7e2d61 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerItem.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerItem.h new file mode 100755 index 00000000..5174c472 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerItem.h @@ -0,0 +1,54 @@ +// +// BUPlayerItem.h +// BUAdSDK +// +// Created by hlw on 2017/12/21. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUPlayerItem : NSObject + +/// 视频标题 +@property (nonatomic, copy) NSString *title; + +/// 视频URL - H.264 - 远程 +@property (nonatomic, strong) NSURL *videoURL_H264_Remote; + +/// 视频URL - H.264 - 本地 兼容方案,激励视频由上层控制 +@property (nonatomic, strong) NSURL *videoURL_H264_Local; + +/// 视频URL - HEVC - 远程 +@property (nonatomic, strong) NSURL *videoURL_H265_Remote; + +/// 视频URL - HEVC - 本地 +@property (nonatomic, strong) NSURL *videoURL_H265_Local; + +/// 允许使用 H265 进行播放 +@property (nonatomic, assign) BOOL enableH265; + +/// H265 下允许降级播放 +@property (nonatomic, assign) BOOL enableH265DowngradePlay; + +/// H264 下允许降级播放 +@property (nonatomic, assign) BOOL enableH264DowngradePlay; + +/// 允许使用边下边播 +@property (nonatomic, assign) BOOL enableCache; + +/// 视频封面网络图片url +@property (nonatomic, copy) NSString *placeholderImageURLString; +/** 视频封面本地图片 */ +@property (nonatomic, strong) UIImage *placeholderImage; +/// 默认图的展示形式 +@property (nonatomic, assign) UIViewContentMode placeholderImageContentMode; + +/// 从xx秒开始播放视频(默认0) +@property (nonatomic, assign) NSInteger seekTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerItem.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerItem.h.meta new file mode 100644 index 00000000..9bb22af1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerItem.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1d85546ccf16945a69e7ec500ad90378 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerSettingsProtocol.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerSettingsProtocol.h new file mode 100755 index 00000000..2c31f51c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerSettingsProtocol.h @@ -0,0 +1,26 @@ +// +// BUPlayerSettingsProtocol.h +// BUFoundation +// +// Created by bytedance on 2020/12/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol BUPlayerSettingsProtocol + +@optional ++ (NSString *)videoCachePath; + ++ (NSBundle *)playerResourceBundle; + ++ (NSDictionary *)playerControlViewImages; + ++ (NSDictionary *)playerControlLocalizedString; + ++ (void)audioSessionSetting; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerSettingsProtocol.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerSettingsProtocol.h.meta new file mode 100644 index 00000000..e86dc61e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUPlayerSettingsProtocol.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 39d7e2880d48e43c99891a5be1d77151 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManager.h new file mode 100755 index 00000000..ff316970 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManager.h @@ -0,0 +1,29 @@ +// +// BUQueueManager.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/8/6. +// + +#import +#import "BUQueueManagerConfig.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BUQueueManager : NSObject + +@property (nonatomic, strong, readonly) BUQueueManagerConfig *config; + +- (void)updateConfig:(BUQueueManagerConfig *)config; + ++ (NSString *)serialQueuePrefixLabel; ++ (NSString *)concurrentQueuePrefixLabel; + +- (void)associateObject:(id)object withSerialQueue:(dispatch_queue_t)serialQueue; +- (void)associateObject:(id)object withConcurrentQueue:(dispatch_queue_t)concurrentQueue; + +#pragma mark - Signal ++ (instancetype)sharedInstance; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManager.h.meta new file mode 100644 index 00000000..799b310c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8011ab52f88604e9ebedabd4a54426d5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManagerConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManagerConfig.h new file mode 100755 index 00000000..1fdfeec9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManagerConfig.h @@ -0,0 +1,20 @@ +// +// BUQueueManagerConfig.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2021/8/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUQueueManagerConfig : NSObject + +@property (nonatomic, copy) NSString *queuePrefixLabel; + ++ (instancetype)defaultConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManagerConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManagerConfig.h.meta new file mode 100644 index 00000000..2c47dbe8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUQueueManagerConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fc008db9c234842a29b050e2d3526929 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUReachability.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUReachability.h new file mode 100755 index 00000000..23160eba --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUReachability.h @@ -0,0 +1,186 @@ +/* + File: BUReachability.h + Abstract: Basic demonstration of how to use the SystemConfiguration Reachablity APIs. + Version: 3.5 + + Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple + Inc. ("Apple") in consideration of your agreement to the following + terms, and your use, installation, modification or redistribution of + this Apple software constitutes acceptance of these terms. If you do + not agree with these terms, please do not use, install, modify or + redistribute this Apple software. + + In consideration of your agreement to abide by the following terms, and + subject to these terms, Apple grants you a personal, non-exclusive + license, under Apple's copyrights in this original Apple software (the + "Apple Software"), to use, reproduce, modify and redistribute the Apple + Software, with or without modifications, in source and/or binary forms; + provided that if you redistribute the Apple Software in its entirety and + without modifications, you must retain this notice and the following + text and disclaimers in all such redistributions of the Apple Software. + Neither the name, trademarks, service marks or logos of Apple Inc. may + be used to endorse or promote products derived from the Apple Software + without specific prior written permission from Apple. Except as + expressly stated in this notice, no other rights or licenses, express or + implied, are granted by Apple herein, including but not limited to any + patent rights that may be infringed by your derivative works or by other + works in which the Apple Software may be incorporated. + + The Apple Software is provided by Apple on an "AS IS" basis. APPLE + MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION + THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND + OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. + + IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, + MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED + AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), + STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + Copyright (C) 2014 Apple Inc. All Rights Reserved. + + */ + +#import +#import +#import + +typedef NS_ENUM(NSInteger, BUNetWorkTypeCode) { + // 初始状态,未连接 + BUNetWorkTypeCode_None = -1, + // 未知 + BUNetWorkTypeCode_Unknown = 0, + BUNetWorkTypeCode_Mobile = 1, + BUNetWorkTypeCode_2G = 2, + BUNetWorkTypeCode_3G = 3, + BUNetWorkTypeCode_Wifi = 4, + BUNetWorkTypeCode_4G = 5, + BUNetWorkTypeCode_5G = 6, +}; + +typedef NS_ENUM(NSInteger) { + // 程序无法判断出 App 的网络权限设置 + kBUNetworkAuthorizationStatusCantDetermined = 0, + // App 未开启蜂窝数据网络权限 + kBUNetworkAuthorizationStatusCellNotPermitted, + // App 未开启无线局域网与蜂窝移动网络权限,此项仅可能在国行 iPhone 手机上出现 + kBUNetworkAuthorizationStatusWLANAndCellNotPermitted, +} kBUNetworkAuthorizationStatus; + +extern NSString *kBUReachabilityChangedNotification; + +// 是否开启 “网络状态检测” 的优化,需要外部调用方以 [[NSUserDefaults standardUserDefaults] setBool:forKey:] 方式写入 +extern NSString * const BUReachabilityDetectOptimizeKey; + +@interface BUReachability : NSObject + + +/** + 判断指定域名的连通性 + + @param hostName 域名 + @return BUReachability对象 + */ ++ (instancetype)reachabilityWithHostName:(NSString *)hostName; + + +/** + 判断指定IP地址的连通性 + + @param hostAddress IP地址 + @return BUReachability对象 + */ ++ (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress; + +/** + 判断网络默认连接的连通性(应用连接到指定host主机时除外) + + @return BUReachability对象 + */ ++ (instancetype)reachabilityForInternetConnection; + +/** + 开始在当前runloop监听连通性通知 + + @return 是否成功开始监听 + */ +- (BOOL)startNotifier; + + +/** + 结束监听连通性通知 + */ +- (void)stopNotifier; + + +/** + 当前连通性状态 + + @return NetworkStatus枚举值 + */ +- (BUNetWorkTypeCode)currentReachabilityStatus; + +/** + 是否需要连接。如WWAN需要首先建立一个可用连接才能被激活。WiFi可能需要一个VPN连接等 + + @return 是否需要连接 + */ +- (BOOL)connectionRequired; + + +/** + 获取 App 当前的网络权限设置状态 + + 因苹果尚未提供网络权限判断的 API,此方法目前只是在网络 NotReachable 时检查系统连接状态, + 利用排除法推断出 App 当前没有 蜂窝数据网络权限 或者 WIFI及蜂窝数据网络权限,排除原理参见 + https://wiki.bytedance.net/pages/viewpage.action?pageId=107808003 + + 在其它情况下(例如网络 Reachable 或者飞行模式)均返回 CantDetermined,上层业务调用方需注意 + + @return 参见 kBUNetworkAuthorizationStatus 定义 + */ +- (kBUNetworkAuthorizationStatus)currentNetworkAuthorizationStatus; + +@end + + +@interface BUReachability (Cellular) + +/** + 2G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is2GConnected; + +/** + 3G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is3GConnected; + +/** + 4G网络是否连通 + + @return 是否连通 + */ ++ (BOOL)is4GConnected; + + +/** + 2017.5.22添加 + 借鉴微信方式判断当前网络是否连通 + + @return 网络是否可以联调 + */ ++ (BOOL)isNetworkConnected; + +@end + + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUReachability.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUReachability.h.meta new file mode 100644 index 00000000..81cb11a5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUReachability.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ceaf5b20944b84e0b814f9584812c77f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURexxarEngine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURexxarEngine.h new file mode 100755 index 00000000..af868ace --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURexxarEngine.h @@ -0,0 +1,59 @@ +// +// BURexxarEngine.h +// BURexxar +// +// Created by muhuai on 2017/4/26. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BUStaticPlugin.h" + +@protocol BUJSBAuthorization; +@protocol BURexxarEngine + +@required + +/** + engine所在的ViewController, 提供JSBridge更多的上下文. 可为空. + */ +@property (nonatomic, weak) UIViewController *ttr_sourceController; + +/** + engine所挂载的静态plugin集合 + */ +@property (nonatomic, strong) BUStaticPlugin *ttr_staticPlugin; + +/** + engine当前页面地址 + */ +@property (nonatomic, strong, readonly) NSURL *ttr_url; + +@optional +/** + JSBridge授权器, 每个业务方可自行注入. 默认为nil, 全部public权限 + */ +@property (nonatomic, strong) id ttr_authorization; + +#pragma mark - Executing JavaScript +@required + +/** + 注入JavaScrip + + @param script 需要注入的script + @param completion 完成的回调 + */ +- (void)ttr_evaluateJavaScript:(NSString *)script completionHandler:(void (^)(id result, NSError *error))completion; + + + +/** + 对容器内发送通知 + + @param event 通知名称 + @param data 携带的信息 + */ +- (void)ttr_fireEvent:(NSString *)event data:(NSDictionary *)data; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURexxarEngine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURexxarEngine.h.meta new file mode 100644 index 00000000..88ee311c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURexxarEngine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c59652cbea96e4e1bafbe42ae96786af +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURouter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURouter.h new file mode 100755 index 00000000..93176fa6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURouter.h @@ -0,0 +1,17 @@ +// +// BUActionHelper.h +// BUAdSDK +// +// Created by carl on 2018/1/4. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import +#import "UIViewController+BUUtilities.h" + +@interface BURouter : NSObject ++ (void)presentFromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC; + ++ (void)presentFromViewControllerOverFullScreen:(UIViewController *)fromVC toViewController:(UIViewController *)toVC; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURouter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURouter.h.meta new file mode 100644 index 00000000..af5dbff7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BURouter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ac81a6f768a1e4a02b8935f32cadd678 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUScreenHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUScreenHelper.h new file mode 100755 index 00000000..71ae0255 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUScreenHelper.h @@ -0,0 +1,119 @@ +// +// BDUScreenHelp.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/11/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import + +//设备类型 +typedef NS_ENUM(NSInteger, BUDeviceMode) { + //iPad + BUDeviceModePad, + //iPhone6plus,iPhone6Splus + BUDeviceMode736, + //iPhone6,iPhone6S + BUDeviceMode667, + //iPhone5,iPhone5C,iPhone5S,iPhoneSE + BUDeviceMode568, + //iPhone4,iPhone4s + BUDeviceMode480, + //iPhoneX,iphoneXS + BUDeviceMode812, + //iphoneXR,iphoneRS Max + BUDeviceMode896 +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface BUScreenHelper: NSObject + +/** + * 判断设备是iPhone4, iPhone4S + * + * @return Yes or No + */ ++ (BOOL)is480Screen; + +/** + * 判断设备是iPhone5, iPhone5C, iPhone5S, iPhoneSE + * + * @return Yes or No + */ ++ (BOOL)is568Screen; + +/** + * 判断设备是iPhone6,iPhone6S + * + * @return Yes or No + */ ++ (BOOL)is667Screen; + +/** + * 判断设备是iPhone6plus, iPhone6Splus + * + * @return Yes or No + */ ++ (BOOL)is736Screen; +// iphone6,iphone6 plus + +/** + * 判断设备是iPhoneX,iphoneXS + * + * @return Yes or No + */ ++ (BOOL)is812Screen; + +/** + * 判断设备是iphoneXR,iphoneRS Max + * + * @return Yes or No + */ ++ (BOOL)is896Screen; + +/** + * 判断设备的宽度大于320 + * + * @return Yes or No + */ ++ (BOOL)isScreenWidthLarge320; + +/** + * 判断设备是iPad + * + * @return Yes or No + */ ++ (BOOL)isPadDevice; + +/** + * 判断设备是iPad pro + * + * @return Yes or No + */ ++ (BOOL)isIpadProDevice; + +/** + * 获取设备类型 + * + * @return BUDeviceType类型 + */ ++ (BUDeviceMode)getDeviceType; + +/** + * 分辨率,区分横竖屏,形如@"414*736" + * @return 横竖屏返回样式,横屏样式@"736*414",竖屏样式@"414*736" + */ ++ (nullable NSString *)resolutionString; + +/** + * 分辨率,区分横竖屏,形如@"414x736" + * @return 横竖屏返回样式,横屏样式@"736x414",竖屏样式@"414x736" + */ ++ (NSString *)displayDensity; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUScreenHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUScreenHelper.h.meta new file mode 100644 index 00000000..9d401e83 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUScreenHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 71b8077fd30d4417f98dc7cc7c1ab8be +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUStaticPlugin.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUStaticPlugin.h new file mode 100755 index 00000000..72ac7dd2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUStaticPlugin.h @@ -0,0 +1,22 @@ +// +// BUStaticPlugin.h +// BURexxar +// +// Created by muhuai on 2017/4/27. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import "BUJSBDefine.h" +#import "BUJSBCommand.h" + +@protocol BURexxarEngine; + +typedef void(^BUJSBStaticHandler)(NSDictionary *params, BUJSBResponse completion); + +@interface BUStaticPlugin : NSObject + +- (void)registerHandlerBlock:(BUJSBStaticHandler)handler forMethodName:(NSString*)method; + +- (BOOL)callHandlerWithCommand:(BUJSBCommand *)command engine:(id)engine completion:(BUJSBResponse)completion; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUStaticPlugin.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUStaticPlugin.h.meta new file mode 100644 index 00000000..37228abc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUStaticPlugin.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b0417cfdda7c249cdbe1c1e133104cf3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCRequestParam.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCRequestParam.h new file mode 100755 index 00000000..e78f0002 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCRequestParam.h @@ -0,0 +1,16 @@ +// +// Created by bytedance on 2020/12/16. +// + +#import +#import "BUCommonMacros.h" + +@interface BUTNCRequestParam : NSObject + +@property (nonatomic, copy) NSString *version; + +@property (nonatomic, copy) NSString *deviceDid; + +@property (nonatomic, copy) NSString *ssAppID; + +@end \ No newline at end of file diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCRequestParam.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCRequestParam.h.meta new file mode 100644 index 00000000..8a6dded2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCRequestParam.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9937fe777bba44c81a4dbf981f13983f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCServiceManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCServiceManager.h new file mode 100755 index 00000000..3bd7ac85 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCServiceManager.h @@ -0,0 +1,31 @@ +// +// Created by bytedance on 2020/12/15. +// + +#import +#import "BUTNCRequestParam.h" + +@class BUNetworkRequest; + +@interface BUTNCServiceConfig : NSObject + +@property (nonatomic, copy, readonly) NSString *appKey; + +@property(nonatomic, copy, readonly) NSString *tncPath; + +@property(nonatomic, copy, readonly) NSArray *tncDomains; + +@property(nonatomic, copy, readonly) BUTNCRequestParam *(^tncRequestParam)(void); +@end + +__attribute__((objc_subclassing_restricted)) +@interface BUTNCServiceManager : NSObject + ++ (void)registerTNCServiceWithAppKey:(NSString *)appKey tncDomains:(NSArray *)tncDomains tncPath:(NSString *)tncPath requestParam:(BUTNCRequestParam * (^)(void))param; + ++ (void)unregisterTNCServiceWithAppKey:(NSString *)appKey; + ++ (NSString *)TNCUrlWithBaseUrl:(NSString *)baseUrl forRequest:(BUNetworkRequest *)request; + ++ (void)refreshTNCDomainsWithAppKey:(NSString *)appKey; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCServiceManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCServiceManager.h.meta new file mode 100644 index 00000000..79e4a10b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTNCServiceManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0f91901e87c474fa9ab5a607f8e00cfe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeDictionary.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeDictionary.h new file mode 100755 index 00000000..4fea93c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeDictionary.h @@ -0,0 +1,19 @@ + +// BUThreadSafeDictionary.h +// Created by Siwant on 2018/1/22. +// Copyright © 2018年 bytedance. All rights reserved. + +#import + +@interface BUThreadSafeDictionary: NSMutableDictionary +- (id)objectForKey:(id )aKey; +- (id)valueForKey:(id)aKey; +- (void)setObject:(id)object forKey:(id )aKey; +- (void)setValue:(id)value forKey:(NSString *)key; +- (void)removeAllObjects; +- (void)removeObjectForKey:(id )aKey; +- (NSDictionary *)dictionary; +- (NSArray *)allKeys; +- (NSArray *)allValues; +- (void)removeObjectsForKeys:(NSArray *)keyArray; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeDictionary.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeDictionary.h.meta new file mode 100644 index 00000000..524e5fda --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeDictionary.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8dfa87dd56de14106add1a6797d5c5e0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeMutableArray.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeMutableArray.h new file mode 100755 index 00000000..081469f1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeMutableArray.h @@ -0,0 +1,17 @@ +// +// BUThreadSafeMutableArray.h +// BUAdSDK +// +// Created by 李盛 on 2019/1/3. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUThreadSafeMutableArray : NSMutableArray + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeMutableArray.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeMutableArray.h.meta new file mode 100644 index 00000000..ef2e3dcc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUThreadSafeMutableArray.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e1539e79986314fa7b108ae0a8dbf748 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTimer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTimer.h new file mode 100755 index 00000000..f861d62f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTimer.h @@ -0,0 +1,36 @@ +// +// BUTimer.h +// BUAdSDK +// +// Created by 李盛 on 2018/6/20. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUTimer : NSObject + +@property (nonatomic, copy) NSString *runLoopMode; + ++ (BUTimer *)timerWithTimeInterval:(NSTimeInterval)seconds + target:(nullable id)target + selector:(SEL)aSelector + repeats:(BOOL)repeats; + ++ (BUTimer *)timerWithTimeInterval:(NSTimeInterval)seconds + repeats:(BOOL)repeats + block:(void (^)(BUTimer *timer))block; + +- (BOOL)isValid; +- (void)invalidate; +- (BOOL)isScheduled; +- (BOOL)scheduleNow; +- (BOOL)pause; +- (BOOL)resume; +- (NSTimeInterval)initialTimeInterval; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTimer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTimer.h.meta new file mode 100644 index 00000000..2601b79d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUTimer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 569c0d052ca854b0f8bbd510d71e0001 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUIResponderHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUIResponderHelper.h new file mode 100755 index 00000000..77152a43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUIResponderHelper.h @@ -0,0 +1,38 @@ +// +// BUUIResponderHelper.h +// BUSDKProject +// +// Created by ranny_90 on 2017/5/20. +// Copyright © 2017年 ranny_90. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUUIResponderHelper : NSObject + +// 获取当前应用的广义mainWindow ++ (nullable UIWindow *)mainWindow __attribute__((deprecated("Use bu_mainWindow in UIWindow+BUUtilities instead."))); + +// 广义mainWindow的大小(兼容iOS7) ++ (CGSize)windowSize __attribute__((deprecated("Use bu_windowSize in UIWindow+BUUtilities instead."))); + + +// 获取广义mainWindow的rootViewController ++ (nullable UIViewController*)mainWindowRootViewController __attribute__((deprecated("Use bu_mainWindowRootViewController in UIViewController+BUUtilities instead."))); + +// 获取指定UIResponder的链下游第一个ViewController对象 ++ (nullable UIViewController*)nextViewControllerFor:(UIResponder* _Nullable)responder __attribute__((deprecated("Use bu_nextViewControllerFor: in UIViewController+BUUtilities instead."))); + +// 获取指定UIResponder的链下游第一个UINavigationController对象 ++ (nullable UINavigationController*)nextNavigationControllerFor:(UIResponder* _Nullable)responder __attribute__((deprecated("Use bu_nextNavigationControllerFor: in UIViewController+BUUtilities instead."))); + +/** 查找当前显示的ViewController*/ ++ (UIViewController *)topViewController __attribute__((deprecated("Use bu_topViewController in UIViewController+BUUtilities instead."))); + ++ (UIViewController *)recursiveFindCurrentShowViewControllerFromViewController:(UIViewController *)fromVC __attribute__((deprecated("Use bu_recursiveFindCurrentShowViewControllerFromViewController: in UIViewController+BUUtilities instead."))); +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUIResponderHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUIResponderHelper.h.meta new file mode 100644 index 00000000..18887021 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUIResponderHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 702dd6a6c3e954c099d3b25067755239 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUserAgentHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUserAgentHelper.h new file mode 100755 index 00000000..6b36117b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUserAgentHelper.h @@ -0,0 +1,18 @@ +// +// BUUserAgentHelper.h +// BUAdSDK +// +// Created by cuiyanan on 2019/9/3. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import +#import +#import "BUCommonMacros.h" + +@interface BUUserAgentHelper : NSObject +BU_SINGLETION(BUUserAgentHelper); + +- (NSString *)userAgent; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUserAgentHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUserAgentHelper.h.meta new file mode 100644 index 00000000..7a1e63a0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUUserAgentHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4f75295457bfb4c3bbd31bffe6fe0671 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUVideoPrefetchManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUVideoPrefetchManager.h new file mode 100755 index 00000000..871d2360 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUVideoPrefetchManager.h @@ -0,0 +1,44 @@ +// +// BUVideoPrefetchManager.h +// BUAdSDK +// +// Created by 李盛 on 2018/9/20. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +#import "BUPlayerSettingsProtocol.h" + +typedef void (^prefetchVideoCancelBlock)(NSInteger preloadSize); + +@interface BUVideoPrefetchManager : NSObject + ++ (instancetype)sharedInstance; + +/// 预加载视频 +/// @param videoUrl 视频 URL +/// @param storgeName 视频文件存储名称 +/// @param prefetchSize 预加载大小 +/// @param prefetchStartBlock 预加载开始回调 +/// @param prefetchFinshBlock 预加载结束回调 +- (void)prefetchWithVideoUrl:(NSURL *)videoUrl + storgeName:(NSString *)storgeName + prefetchSize:(NSUInteger)prefetchSize + prefetchStartBlock:(void(^)(void))prefetchStartBlock + prefetchFinshBlock:(void(^)(BOOL, NSInteger, NSError *, NSString *))prefetchFinshBlock + prefetchCancelBlock:(prefetchVideoCancelBlock)prefetchCancelBlock; + +/// 判断url是否正在下载 +/// @param videoURL 视频 URL +- (BOOL)prefetchUrlInQueue:(NSURL *)videoURL; + +/// 取消预加载,播放时应先取消预加载。 +/// @param videoURL 视频 URL +- (void)cancelPrefetch:(NSURL *)videoURL; + + +/// 查询视频预加载大小 +/// @param videoUrl 视频 URL +- (NSInteger)queryPrefetchSizeWithVideoUrl:(NSURL *)videoUrl; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUVideoPrefetchManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUVideoPrefetchManager.h.meta new file mode 100644 index 00000000..d514f484 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUVideoPrefetchManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c41f053ab860e46f3b1f6714e645a574 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWKWebView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWKWebView.h new file mode 100755 index 00000000..65a12a66 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWKWebView.h @@ -0,0 +1,25 @@ +// +// BUWKWebView.h +// BURexxar +// +// Created by muhuai on 2017/5/5. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BUWebViewDefine.h" + +@interface BUWKWebView : WKWebView +/// 白屏检测 +- (void)bu_detectBlankWebViewCompleteBlock:(void(^)(BOOL, NSError *))block; + +/// 白屏检测百分比 +- (void)bu_detectBlankPercentCompleteBlock:(void(^)(CGFloat bgColorPercent, NSError *error))block; +/// jsbridge 白屏检测百分比 +- (void)bu_detectBlankPercentWithImageStr:(NSString *)imageStr completeBlock:(void(^)(CGFloat bgColorPercent, NSError *))block; + +- (void)ttr_fireEvent:(NSString *)event data:(NSDictionary *)data completion:(void (^)(id result, NSError *error))completionHandler; + +@property (nonatomic, assign) BOOL reallySuccess; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWKWebView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWKWebView.h.meta new file mode 100644 index 00000000..ed7e5d39 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWKWebView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3a7011f7db7924d2391af86da3d5d84a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebImageDataCacheManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebImageDataCacheManager.h new file mode 100755 index 00000000..cafb88ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebImageDataCacheManager.h @@ -0,0 +1,21 @@ +// +// LCDWebImageDataCache.h +// LCDSamples +// +// Created by yuxr on 2021/7/8. +// Copyright © 2021 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BUWebImageDataCacheManager : NSObject + ++ (instancetype)sharedManager; +- (NSData *)imageDataForKey:(NSString *)key; +- (void)storeImageData:(NSData *)imageData forKey:(NSString *)key; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebImageDataCacheManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebImageDataCacheManager.h.meta new file mode 100644 index 00000000..3dc95c75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebImageDataCacheManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 568bb933a90db42a2bb8a62191251c7e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewDefine.h new file mode 100755 index 00000000..964bab7a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewDefine.h @@ -0,0 +1,103 @@ +// +// BUWebViewDefine.h +// BURexxar +// +// Created by muhuai on 2017/5/17. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import +#import +#import "BURexxarEngine.h" +#import "BUJSInjector.h" + +typedef NS_ENUM(NSInteger, BUWebViewNavigationType) { + BUWebViewNavigationTypeLinkClicked, + BUWebViewNavigationTypeFormSubmitted, + BUWebViewNavigationTypeBackForward, + BUWebViewNavigationTypeReload, + BUWebViewNavigationTypeFormResubmitted, + BUWebViewNavigationTypeOther +}; + +@protocol BUWebView; + +@protocol BUWebViewDelegate + +@optional +- (BOOL)webView:(UIView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(BUWebViewNavigationType)navigationType; + +- (void)webViewDidStartLoad:(UIView *)webView; + +- (void)webViewDidFinishLoad:(UIView *)webView; + +- (void)webView:(UIView *)webView didFailLoadWithError:(NSError *)error; + +- (void)webViewWebContentProcessDidTerminate:(UIView *)webView API_AVAILABLE(macosx(10.11), ios(9.0)); + +//二方页面有 domReady回调 +- (void)webViewDomReady:(UIView *)webView; +@end + + +/** + BUWKWebView 都会实现此协议, 用来对平两个容器之间API的差异 + */ +@protocol BUWebView + +@property (nonatomic, strong ,readonly) UIScrollView *ttr_scrollView; + +/** + JS脚本注入器 使用说明见:BUJSInjector.h + */ +@property (nonatomic, strong, readonly) BUJSInjector *ttr_injector; +#pragma mark - Loading Content + +- (void)ttr_loadRequest:(NSURLRequest *)request; + +- (void)ttr_loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; + + +/** + WK下特有的方法 + + @param URL 本地文件URL, 注意需要为file:// + @param readAccessURL WK下可以指定获取一个本地目录的权限 + */ +- (void)ttr_loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL; + +- (void)ttr_stopLoading; + +- (void)ttr_reload; + +#pragma mark - Moving Back and Forward +- (BOOL)ttr_canGoBack; + +- (BOOL)ttr_canGoForward; + +- (void)ttr_goBack; + +- (void)ttr_goForward; + + +#pragma mark - Multi Delegate +/** +BUWKWebView内部实现成多路代理, 按注册的顺序来依次询问. + + @param delegate webview代理 + */ +- (void)ttr_addDelegate:(id)delegate; + +/** + 移除指定代理 + + @param delegate 需要移除的代理 + */ +- (void)ttr_removeDelegate:(id)delegate; + +/** + 移除所有代理 + */ +- (void)ttr_removeAllDelegate; +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewDefine.h.meta new file mode 100644 index 00000000..90587c2d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a45554d96788843059260b4adb0a6b69 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewProgressView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewProgressView.h new file mode 100755 index 00000000..f920a98b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewProgressView.h @@ -0,0 +1,25 @@ +// +// BUWebViewProgressView.h +// BURexxar +// +// Created by muhuai on 2017/6/13. +// Copyright © 2017年 muhuai. All rights reserved. +// + +#import "BUWebViewDefine.h" + +#import +#import + + +/** + 假进度条 + 使用方法: + 1.addSubView到 WebView中 + 2.通过多路代理将此控件设为其中一个子代理 + */ +@interface BUWebViewProgressView : UIView + +@property (nonatomic, strong) UIColor *lineFillColor; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewProgressView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewProgressView.h.meta new file mode 100644 index 00000000..dd845a15 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUWebViewProgressView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06fd3719f0e774c5e9bc127cb998174c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYClassInfo.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYClassInfo.h new file mode 100755 index 00000000..04d59cc9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYClassInfo.h @@ -0,0 +1,197 @@ +// +// BUYYClassInfo.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Type encoding's type. + */ +typedef NS_OPTIONS(NSUInteger, BUYYEncodingType) { + BUYYEncodingTypeMask = 0xFF, ///< mask of type value + BUYYEncodingTypeUnknown = 0, ///< unknown + BUYYEncodingTypeVoid = 1, ///< void + BUYYEncodingTypeBool = 2, ///< bool + BUYYEncodingTypeInt8 = 3, ///< char / BOOL + BUYYEncodingTypeUInt8 = 4, ///< unsigned char + BUYYEncodingTypeInt16 = 5, ///< short + BUYYEncodingTypeUInt16 = 6, ///< unsigned short + BUYYEncodingTypeInt32 = 7, ///< int + BUYYEncodingTypeUInt32 = 8, ///< unsigned int + BUYYEncodingTypeInt64 = 9, ///< long long + BUYYEncodingTypeUInt64 = 10, ///< unsigned long long + BUYYEncodingTypeFloat = 11, ///< float + BUYYEncodingTypeDouble = 12, ///< double + BUYYEncodingTypeLongDouble = 13, ///< long double + BUYYEncodingTypeObject = 14, ///< id + BUYYEncodingTypeClass = 15, ///< Class + BUYYEncodingTypeSEL = 16, ///< SEL + BUYYEncodingTypeBlock = 17, ///< block + BUYYEncodingTypePointer = 18, ///< void* + BUYYEncodingTypeStruct = 19, ///< struct + BUYYEncodingTypeUnion = 20, ///< union + BUYYEncodingTypeCString = 21, ///< char* + BUYYEncodingTypeCArray = 22, ///< char[10] (for example) + + BUYYEncodingTypeQualifierMask = 0xFF00, ///< mask of qualifier + BUYYEncodingTypeQualifierConst = 1 << 8, ///< const + BUYYEncodingTypeQualifierIn = 1 << 9, ///< in + BUYYEncodingTypeQualifierInout = 1 << 10, ///< inout + BUYYEncodingTypeQualifierOut = 1 << 11, ///< out + BUYYEncodingTypeQualifierBycopy = 1 << 12, ///< bycopy + BUYYEncodingTypeQualifierByref = 1 << 13, ///< byref + BUYYEncodingTypeQualifierOneway = 1 << 14, ///< oneway + + BUYYEncodingTypePropertyMask = 0xFF0000, ///< mask of property + BUYYEncodingTypePropertyReadonly = 1 << 16, ///< readonly + BUYYEncodingTypePropertyCopy = 1 << 17, ///< copy + BUYYEncodingTypePropertyRetain = 1 << 18, ///< retain + BUYYEncodingTypePropertyNonatomic = 1 << 19, ///< nonatomic + BUYYEncodingTypePropertyWeak = 1 << 20, ///< weak + BUYYEncodingTypePropertyCustomGetter = 1 << 21, ///< getter= + BUYYEncodingTypePropertyCustomSetter = 1 << 22, ///< setter= + BUYYEncodingTypePropertyDynamic = 1 << 23, ///< @dynamic +}; + +/** + Get the type from a Type-Encoding string. + + @discussion See also: + https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html + https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtPropertyIntrospection.html + + @param typeEncoding A Type-Encoding string. + @return The encoding type. + */ +BUYYEncodingType BUYYEncodingGetType(const char *typeEncoding); + + +/** + Instance variable information. + */ +@interface BUYYClassIvarInfo : NSObject +@property (nonatomic, assign, readonly) Ivar ivar; ///< ivar opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< Ivar's name +@property (nonatomic, assign, readonly) ptrdiff_t offset; ///< Ivar's offset +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< Ivar's type encoding +@property (nonatomic, assign, readonly) BUYYEncodingType type; ///< Ivar's type + +/** + Creates and returns an ivar info object. + + @param ivar ivar opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithIvar:(Ivar)ivar; +@end + + +/** + Method information. + */ +@interface BUYYClassMethodInfo : NSObject +@property (nonatomic, assign, readonly) Method method; ///< method opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< method name +@property (nonatomic, assign, readonly) SEL sel; ///< method's selector +@property (nonatomic, assign, readonly) IMP imp; ///< method's implementation +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< method's parameter and return types +@property (nonatomic, strong, readonly) NSString *returnTypeEncoding; ///< return value's type +@property (nullable, nonatomic, strong, readonly) NSArray *argumentTypeEncodings; ///< array of arguments' type + +/** + Creates and returns a method info object. + + @param method method opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithMethod:(Method)method; +@end + + +/** + Property information. + */ +@interface BUYYClassPropertyInfo : NSObject +@property (nonatomic, assign, readonly) objc_property_t property; ///< property's opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< property's name +@property (nonatomic, assign, readonly) BUYYEncodingType type; ///< property's type +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< property's encoding value +@property (nonatomic, strong, readonly) NSString *ivarName; ///< property's ivar name +@property (nullable, nonatomic, assign, readonly) Class cls; ///< may be nil +@property (nullable, nonatomic, strong, readonly) NSArray *protocols; ///< may nil +@property (nonatomic, assign, readonly) SEL getter; ///< getter (nonnull) +@property (nonatomic, assign, readonly) SEL setter; ///< setter (nonnull) + +/** + Creates and returns a property info object. + + @param property property opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithProperty:(objc_property_t)property; +@end + + +/** + Class information for a class. + */ +@interface BUYYClassInfo : NSObject +@property (nonatomic, assign, readonly) Class cls; ///< class object +@property (nullable, nonatomic, assign, readonly) Class superCls; ///< super class object +@property (nullable, nonatomic, assign, readonly) Class metaCls; ///< class's meta class object +@property (nonatomic, readonly) BOOL isMeta; ///< whether this class is meta class +@property (nonatomic, strong, readonly) NSString *name; ///< class name +@property (nullable, nonatomic, strong, readonly) BUYYClassInfo *superClassInfo; ///< super class's class info +@property (nullable, nonatomic, strong, readonly) NSDictionary *ivarInfos; ///< ivars +@property (nullable, nonatomic, strong, readonly) NSDictionary *methodInfos; ///< methods +@property (nullable, nonatomic, strong, readonly) NSDictionary *propertyInfos; ///< properties + +/** + If the class is changed (for example: you add a method to this class with + 'class_addMethod()'), you should call this method to refresh the class info cache. + + After called this method, `needUpdate` will returns `YES`, and you should call + 'classInfoWithClass' or 'classInfoWithClassName' to get the updated class info. + */ +- (void)setNeedUpdate; + +/** + If this method returns `YES`, you should stop using this instance and call + `classInfoWithClass` or `classInfoWithClassName` to get the updated class info. + + @return Whether this class info need update. + */ +- (BOOL)needUpdate; + +/** + Get the class info of a specified Class. + + @discussion This method will cache the class info and super-class info + at the first access to the Class. This method is thread-safe. + + @param cls A class. + @return A class info, or nil if an error occurs. + */ ++ (nullable instancetype)classInfoWithClass:(Class)cls; + +/** + Get the class info of a specified Class. + + @discussion This method will cache the class info and super-class info + at the first access to the Class. This method is thread-safe. + + @param className A class name. + @return A class info, or nil if an error occurs. + */ ++ (nullable instancetype)classInfoWithClassName:(NSString *)className; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYClassInfo.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYClassInfo.h.meta new file mode 100644 index 00000000..5ceb9944 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYClassInfo.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 33da74a811d6746e8b46379e22920655 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYModel.h new file mode 100755 index 00000000..e925d4bb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYModel.h @@ -0,0 +1,10 @@ +// +// BUYYModel.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "NSObject+BUYYModel.h" +#import "BUYYClassInfo.h" diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYModel.h.meta new file mode 100644 index 00000000..b47d4c90 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUYYModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 769d2807b07ee4449b46911046f75298 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUZipCommon.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUZipCommon.h new file mode 100755 index 00000000..0711048c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUZipCommon.h @@ -0,0 +1,68 @@ +#ifndef BUZipCommon +#define BUZipCommon + +// typedefs moved from mz_compat.h to here for public access + +/* unz_global_info structure contain global data about the ZIPfile + These data comes from the end of central dir */ +typedef struct bu_unz_global_info64_s +{ + uint64_t number_entry; /* total number of entries in the central dir on this disk */ + uint32_t number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */ + uint16_t size_comment; /* size of the global comment of the zipfile */ +} bu_unz_global_info64; + +typedef struct bu_unz_global_info_s +{ + uint32_t number_entry; /* total number of entries in the central dir on this disk */ + uint32_t number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */ + uint16_t size_comment; /* size of the global comment of the zipfile */ +} bu_unz_global_info; + +/* unz_file_info contain information about a file in the zipfile */ +/* https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT */ +typedef struct bu_unz_file_info64_s +{ + uint16_t version; /* version made by 2 bytes */ + uint16_t version_needed; /* version needed to extract 2 bytes */ + uint16_t flag; /* general purpose bit flag 2 bytes */ + uint16_t compression_method; /* compression method 2 bytes */ + uint32_t dos_date; /* last mod file date in Dos fmt 4 bytes */ + uint32_t crc; /* crc-32 4 bytes */ + uint64_t compressed_size; /* compressed size 8 bytes */ + uint64_t uncompressed_size; /* uncompressed size 8 bytes */ + uint16_t size_filename; /* filename length 2 bytes */ + uint16_t size_file_extra; /* extra field length 2 bytes */ + uint16_t size_file_comment; /* file comment length 2 bytes */ + + uint32_t disk_num_start; /* disk number start 4 bytes */ + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ + + uint64_t disk_offset; + + uint16_t size_file_extra_internal; +} bu_unz_file_info64; + +typedef struct bu_unz_file_info_s +{ + uint16_t version; /* version made by 2 bytes */ + uint16_t version_needed; /* version needed to extract 2 bytes */ + uint16_t flag; /* general purpose bit flag 2 bytes */ + uint16_t compression_method; /* compression method 2 bytes */ + uint32_t dos_date; /* last mod file date in Dos fmt 4 bytes */ + uint32_t crc; /* crc-32 4 bytes */ + uint32_t compressed_size; /* compressed size 4 bytes */ + uint32_t uncompressed_size; /* uncompressed size 4 bytes */ + uint16_t size_filename; /* filename length 2 bytes */ + uint16_t size_file_extra; /* extra field length 2 bytes */ + uint16_t size_file_comment; /* file comment length 2 bytes */ + + uint16_t disk_num_start; /* disk number start 2 bytes */ + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ + + uint64_t disk_offset; +} bu_unz_file_info; + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUZipCommon.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUZipCommon.h.meta new file mode 100644 index 00000000..5b795f1a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BUZipCommon.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0f378500f0a684798b925fd0222f6dfd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImage.h new file mode 100755 index 00000000..e0a29498 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImage.h @@ -0,0 +1,107 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageCoder.h" + + +/** + This is the protocol for BU_SDAnimatedImage class only but not for . If you want to provide a custom animated image class with full advanced function, you can conform to this instead of the base protocol. + */ +@protocol BU_SDAnimatedImage + +@required +/** + Initializes and returns the image object with the specified data, scale factor and possible animation decoding options. + @note We use this to create animated image instance for normal animation decoding. + + @param data The data object containing the image data. + @param scale The scale factor to assume when interpreting the image data. Applying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the `size` property. + @param options A dictionary containing any animation decoding options. + @return An initialized object + */ +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale options:(nullable SDImageCoderOptions *)options; + +/** + Initializes the image with an animated coder. You can use the coder to decode the image frame later. + @note We use this with animated coder which conforms to `SDProgressiveImageCoder` for progressive animation decoding. + + @param animatedCoder An animated coder which conform `` protocol + @param scale The scale factor to assume when interpreting the image data. Applying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the `size` property. + @return An initialized object + */ +- (nullable instancetype)initWithAnimatedCoder:(nonnull id)animatedCoder scale:(CGFloat)scale; + +@optional +// These methods are used for optional advanced feature, like image frame preloading. +/** + Pre-load all animated image frame into memory. Then later frame image request can directly return the frame for index without decoding. + This method may be called on background thread. + + @note If one image instance is shared by lots of imageViews, the CPU performance for large animated image will drop down because the request frame index will be random (not in order) and the decoder should take extra effort to keep it re-entrant. You can use this to reduce CPU usage if need. Attention this will consume more memory usage. + */ +- (void)preloadAllFrames; + +/** + Unload all animated image frame from memory if are already pre-loaded. Then later frame image request need decoding. You can use this to free up the memory usage if need. + */ +//- (void)unloadAllFrames; + +/** + Returns a Boolean value indicating whether all animated image frames are already pre-loaded into memory. + */ +@property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded; + +@end + +/** + The image class which supports animating on `SDAnimatedImageView`. You can also use it on normal UIImageView/NSImageView. + */ +@interface BU_SDAnimatedImage : UIImage + +// This class override these methods from UIImage(NSImage), and it supports NSSecureCoding. +// You should use these methods to create a new animated image. Use other methods just call super instead. ++ (nullable instancetype)imageNamed:(nonnull NSString *)name; // Cache in memory, no Asset Catalog support +#if __has_include() ++ (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection; // Cache in memory, no Asset Catalog support +#else ++ (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle; // Cache in memory, no Asset Catalog support +#endif ++ (nullable instancetype)imageWithContentsOfFile:(nonnull NSString *)path; ++ (nullable instancetype)imageWithData:(nonnull NSData *)data; ++ (nullable instancetype)imageWithData:(nonnull NSData *)data scale:(CGFloat)scale; +- (nullable instancetype)initWithContentsOfFile:(nonnull NSString *)path; +- (nullable instancetype)initWithData:(nonnull NSData *)data; +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale; + +/** + Current animated image format. + */ +@property (nonatomic, assign, readonly) BU_SDImageFormat animatedImageFormat; + +/** + Current animated image data, you can use this to grab the compressed format data and create another animated image instance. + If this image instance is an animated image created by using animated image coder (which means using the API listed above or using `initWithAnimatedCoder:scale:`), this property is non-nil. + */ +@property (nonatomic, copy, readonly, nullable) NSData *animatedImageData; + +/** + The scale factor of the image. + + @note For UIKit, this just call super instead. + @note For AppKit, `NSImage` can contains multiple image representations with different scales. However, this class does not do that from the design. We processs the scale like UIKit. This wil actually be calculated from image size and pixel size. + */ +@property (nonatomic, readonly) CGFloat scale; + +// By default, animated image frames are returned by decoding just in time without keeping into memory. But you can choose to preload them into memory as well, See the decsription in `BU_SDAnimatedImage` protocol. +// After preloaded, there is no huge difference on performance between this and UIImage's `animatedImageWithImages:duration:`. But UIImage's animation have some issues such like blanking and pausing during segue when using in `UIImageView`. It's recommend to use only if need. +- (void)preloadAllFrames; +//- (void)unloadAllFrames; +@property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImage.h.meta new file mode 100644 index 00000000..311d47e8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e92ca7dedd26f45bf919d3e61d7f0f7b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImageRep.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImageRep.h new file mode 100755 index 00000000..93f808c3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImageRep.h @@ -0,0 +1,22 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +/** + A subclass of `NSBitmapImageRep` to fix that GIF loop count issue because `NSBitmapImageRep` will reset `NSImageCurrentFrameDuration` by using `kCGImagePropertyGIFDelayTime` but not `kCGImagePropertyGIFUnclampedDelayTime`. + Built in GIF coder use this instead of `NSBitmapImageRep` for better GIF rendering. If you do not want this, only enable `SDImageIOCoder`, which just call `NSImage` API and actually use `NSBitmapImageRep` for GIF image. + This also support APNG format using `SDImageAPNGCoder`. Which provide full alpha-channel support and the correct duration match the `kBUCGImagePropertyAPNGUnclampedDelayTime`. + */ +@interface BU_SDAnimatedImageRep : NSBitmapImageRep + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImageRep.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImageRep.h.meta new file mode 100644 index 00000000..b5f6c880 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAnimatedImageRep.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5c0970ced26b497583dd7230d373b7c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAsyncBlockOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAsyncBlockOperation.h new file mode 100755 index 00000000..3a90277e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAsyncBlockOperation.h @@ -0,0 +1,20 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDAsyncBlockOperation; +typedef void (^SDAsyncBlock)(BU_SDAsyncBlockOperation * __nonnull asyncOperation); + +@interface BU_SDAsyncBlockOperation : NSOperation + +- (nonnull instancetype)initWithBlock:(nonnull SDAsyncBlock)block; ++ (nonnull instancetype)blockOperationWithBlock:(nonnull SDAsyncBlock)block; +- (void)complete; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAsyncBlockOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAsyncBlockOperation.h.meta new file mode 100644 index 00000000..31ccc9b1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDAsyncBlockOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 448f0abbfa08f4398a2254a4ff879669 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDDiskCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDDiskCache.h new file mode 100755 index 00000000..20fe547a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDDiskCache.h @@ -0,0 +1,113 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDImageCacheConfig; +/** + A protocol to allow custom disk cache used in SDImageCache. + */ +@protocol BU_SDDiskCache + +// All of these method are called from the same global queue to avoid blocking on main queue and thread-safe problem. But it's also recommend to ensure thread-safe yourself using lock or other ways. +@required +/** + Create a new disk cache based on the specified path. You can check `maxDiskSize` and `maxDiskAge` used for disk cache. + + @param cachePath Full path of a directory in which the cache will write data. + Once initialized you should not read and write to this directory. + @param config The cache config to be used to create the cache. + + @return A new cache object, or nil if an error occurs. + */ +- (nullable instancetype)initWithCachePath:(nonnull NSString *)cachePath config:(nonnull BU_SDImageCacheConfig *)config; + +/** + Returns a boolean value that indicates whether a given key is in cache. + This method may blocks the calling thread until file read finished. + + @param key A string identifying the data. If nil, just return NO. + @return Whether the key is in cache. + */ +- (BOOL)containsDataForKey:(nonnull NSString *)key; + +/** + Returns the data associated with a given key. + This method may blocks the calling thread until file read finished. + + @param key A string identifying the data. If nil, just return nil. + @return The value associated with key, or nil if no value is associated with key. + */ +- (nullable NSData *)dataForKey:(nonnull NSString *)key; + +/** + Sets the value of the specified key in the cache. + This method may blocks the calling thread until file write finished. + + @param data The data to be stored in the cache. + @param key The key with which to associate the value. If nil, this method has no effect. + */ +- (void)setData:(nullable NSData *)data forKey:(nonnull NSString *)key; + +/** + Removes the value of the specified key in the cache. + This method may blocks the calling thread until file delete finished. + + @param key The key identifying the value to be removed. If nil, this method has no effect. + */ +- (void)removeDataForKey:(nonnull NSString *)key; + +/** + Empties the cache. + This method may blocks the calling thread until file delete finished. + */ +- (void)removeAllData; + +/** + Removes the expired data from the cache. You can choose the data to remove base on `ageLimit`, `countLimit` and `sizeLimit` options. + */ +- (void)removeExpiredData; + +/** + The cache path for key + + @param key A string identifying the value + @return The cache path for key. Or nil if the key can not associate to a path + */ +- (nullable NSString *)cachePathForKey:(nonnull NSString *)key; + +/** + Returns the number of data in this cache. + This method may blocks the calling thread until file read finished. + + @return The total data count. + */ +- (NSUInteger)totalCount; + +/** + Returns the total size (in bytes) of data in this cache. + This method may blocks the calling thread until file read finished. + + @return The total data size in bytes. + */ +- (NSUInteger)totalSize; + +@end + +/** + The built-in disk cache. + */ +@interface BU_SDDiskCache : NSObject +/** + Cache Config object - storing all kind of settings. + */ +@property (nonatomic, strong, readonly, nonnull) BU_SDImageCacheConfig *config; + +- (nonnull instancetype)init NS_UNAVAILABLE; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDDiskCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDDiskCache.h.meta new file mode 100644 index 00000000..27917fa1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDDiskCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: be934552de7bd4a6593d4b065daf177b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoder.h new file mode 100755 index 00000000..2aa20a72 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoder.h @@ -0,0 +1,19 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder using ImageIO that supports APNG encoding/decoding + */ +@interface BU_SDImageAPNGCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageAPNGCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoder.h.meta new file mode 100644 index 00000000..87209e8a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 38ab2f2dce9e04fafb013710619eb71e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoderInternal.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoderInternal.h new file mode 100755 index 00000000..56ac0661 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoderInternal.h @@ -0,0 +1,17 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageAPNGCoder.h" + +@interface BU_SDImageAPNGCoder () + +- (float)sdBu_frameDurationAtIndex:(NSUInteger)index source:(nonnull CGImageSourceRef)source; +- (NSUInteger)sdBu_imageLoopCountWithSource:(nonnull CGImageSourceRef)source; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoderInternal.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoderInternal.h.meta new file mode 100644 index 00000000..c8b9b4a1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAPNGCoderInternal.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 986be2f289be749a2aef270ac461d429 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAssetManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAssetManager.h new file mode 100755 index 00000000..9ad4e2ff --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAssetManager.h @@ -0,0 +1,23 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +// Apple parse the Asset Catalog compiled file(`Assets.car`) by CoreUI.framework, however it's a private framework and there are no other ways to directly get the data. So we just process the normal bundle files :) + +@interface BU_SDImageAssetManager : NSObject + +@property (nonatomic, strong, nonnull) NSMapTable *imageTable; + ++ (nonnull instancetype)sharedAssetManager; +- (nullable NSString *)getPathForName:(nonnull NSString *)name bundle:(nonnull NSBundle *)bundle preferredScale:(nonnull CGFloat *)scale; +- (nullable UIImage *)imageForName:(nonnull NSString *)name; +- (void)storeImage:(nonnull UIImage *)image forName:(nonnull NSString *)name; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAssetManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAssetManager.h.meta new file mode 100644 index 00000000..22a85309 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageAssetManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bd5ae6fed480c45e58c6a0ae12b20765 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCache.h new file mode 100755 index 00000000..9afc696b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCache.h @@ -0,0 +1,369 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDImageCacheConfig.h" +#import "BU_SDImageCacheDefine.h" +#import "BU_SDMemoryCache.h" +#import "BU_SDDiskCache.h" + +/// Image Cache Options +typedef NS_OPTIONS(NSUInteger, BU_SDImageCacheOptions) { + /** + * By default, we do not query image data when the image is already cached in memory. This mask can force to query image data at the same time. However, this query is asynchronously unless you specify `SDImageCacheQueryMemoryDataSync` + */ + BU_SDImageCacheQueryMemoryData = 1 << 0, + /** + * By default, when you only specify `SDImageCacheQueryMemoryData`, we query the memory image data asynchronously. Combined this mask as well to query the memory image data synchronously. + */ + BU_SDImageCacheQueryMemoryDataSync = 1 << 1, + /** + * By default, when the memory cache miss, we query the disk cache asynchronously. This mask can force to query disk cache (when memory cache miss) synchronously. + @note These 3 query options can be combined together. For the full list about these masks combination, see wiki page. + */ + BU_SDImageCacheQueryDiskDataSync = 1 << 2, + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + */ + BU_SDImageCacheScaleDownLargeImages = 1 << 3, + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + BU_SDImageCacheAvoidDecodeImage = 1 << 4, + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + BU_SDImageCacheDecodeFirstFrameOnly = 1 << 5, + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. This flag actually trigger `preloadAllAnimatedImageFrames = YES` after image load from disk cache + */ + BU_SDImageCachePreloadAllFrames = 1 << 6, + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution. + * Using this option, can ensure we always produce image with your provided class. If failed, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDImageCacheDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + BU_SDImageCacheMatchAnimatedImageClass = 1 << 7, +}; + +/** + * SDImageCache maintains a memory cache and a disk cache. Disk cache write operations are performed + * asynchronous so it doesn’t add unnecessary latency to the UI. + */ +@interface BU_SDImageCache : NSObject + +#pragma mark - Properties + +/** + * Cache Config object - storing all kind of settings. + * The property is copy so change of currrent config will not accidentally affect other cache's config. + */ +@property (nonatomic, copy, nonnull, readonly) BU_SDImageCacheConfig *config; + +/** + * The memory cache implementation object used for current image cache. + * By default we use `SDMemoryCache` class, you can also use this to call your own implementation class method. + * @note To customize this class, check `SDImageCacheConfig.memoryCacheClass` property. + */ +@property (nonatomic, strong, readonly, nonnull) id memoryCache; + +/** + * The disk cache implementation object used for current image cache. + * By default we use `SDMemoryCache` class, you can also use this to call your own implementation class method. + * @note To customize this class, check `SDImageCacheConfig.diskCacheClass` property. + * @warning When calling method about read/write in disk cache, be sure to either make your disk cache implementation IO-safe or using the same access queue to avoid issues. + */ +@property (nonatomic, strong, readonly, nonnull) id diskCache; + +/** + * The disk cache's root path + */ +@property (nonatomic, copy, nonnull, readonly) NSString *diskCachePath; + +/** + * The additional disk cache path to check if the query from disk cache not exist; + * The `key` param is the image cache key. The returned file path will be used to load the disk cache. If return nil, ignore it. + * Useful if you want to bundle pre-loaded images with your app + */ +@property (nonatomic, copy, nullable) SDImageCacheAdditionalCachePathBlock additionalCachePathBlock; + +#pragma mark - Singleton and initialization + +/** + * Returns global shared cache instance + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCache *sharedImageCache; + +/** + * Init a new cache store with a specific namespace + * + * @param ns The namespace to use for this cache store + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns; + +/** + * Init a new cache store with a specific namespace and directory. + * If you don't provide the disk cache directory, we will use the User Cache directory with prefix (~/Library/Caches/com.hackemist.SDImageCache/). + * + * @param ns The namespace to use for this cache store + * @param directory Directory to cache disk images in + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns + diskCacheDirectory:(nullable NSString *)directory; + +/** + * Init a new cache store with a specific namespace, directory and file manager + * The final disk cache directory should looks like ($directory/$namespace). And the default config of shared cache, should result in (~/Library/Caches/com.hackemist.SDImageCache/default/) + * + * @param ns The namespace to use for this cache store + * @param directory Directory to cache disk images in + * @param config The cache config to be used to create the cache. You can provide custom memory cache or disk cache class in the cache config + */ +- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns + diskCacheDirectory:(nullable NSString *)directory + config:(nullable BU_SDImageCacheConfig *)config NS_DESIGNATED_INITIALIZER; + +#pragma mark - Cache paths + +/** + Get the cache path for a certain key + + @param key The unique image cache key + @return The cache path. You can check `lastPathComponent` to grab the file name. + */ +- (nullable NSString *)cachePathForKey:(nullable NSString *)key; + +#pragma mark - Store Ops + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + * @param completionBlock A block executed after the operation is finished + */ +//- (void)storeImage:(nullable UIImage *)image +// forKey:(nullable NSString *)key +// completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously + * @param completionBlock A block executed after the operation is finished + */ +//- (void)storeImage:(nullable UIImage *)image +// forKey:(nullable NSString *)key +// toDisk:(BOOL)toDisk +// completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Asynchronously store an image into memory and disk cache at the given key. + * + * @param image The image to store + * @param imageData The image data as returned by the server, this representation will be used for disk storage + * instead of converting the given image object into a storable/compressed image format in order + * to save quality and CPU + * @param key The unique image cache key, usually it's image absolute URL + * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously + * @param completionBlock A block executed after the operation is finished + */ +- (void)storeImage:(nullable UIImage *)image + imageData:(nullable NSData *)imageData + forKey:(nullable NSString *)key + toDisk:(BOOL)toDisk + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + * Synchronously store image into memory cache at the given key. + * + * @param image The image to store + * @param key The unique image cache key, usually it's image absolute URL + */ +//- (void)storeImageToMemory:(nullable UIImage*)image +// forKey:(nullable NSString *)key; + +/** + * Synchronously store image data into disk cache at the given key. + * + * @param imageData The image data to store + * @param key The unique image cache key, usually it's image absolute URL + */ +//- (void)storeImageDataToDisk:(nullable NSData *)imageData +// forKey:(nullable NSString *)key; + + +#pragma mark - Contains and Check Ops + +/** + * Asynchronously check if image exists in disk cache already (does not load the image) + * + * @param key the key describing the url + * @param completionBlock the block to be executed when the check is done. + * @note the completion block will be always executed on the main queue + */ +- (void)diskImageExistsWithKey:(nullable NSString *)key completion:(nullable SDImageCacheCheckCompletionBlock)completionBlock; + +/** + * Synchronously check if image data exists in disk cache already (does not load the image) + * + * @param key the key describing the url + */ +//- (BOOL)diskImageDataExistsWithKey:(nullable NSString *)key; + +#pragma mark - Query and Retrieve Ops + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * Query the image data for the given key synchronously. + * + * @param key The unique key used to store the wanted image + * @return The image data for the given key, or nil if not found. + */ +- (nullable NSData *)diskImageDataForKey:(nullable NSString *)key; + +/** + * Operation that queries the cache asynchronously and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +//- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param options A mask to specify options to use for this cache query + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(BU_SDImageCacheOptions)options done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Asynchronously queries the cache with operation and call the completion when done. + * + * @param key The unique key used to store the wanted image + * @param options A mask to specify options to use for this cache query + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param doneBlock The completion block. Will not get called if the operation is cancelled + * + * @return a NSOperation instance containing the cache op + */ +- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(BU_SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable BU_SDImageCacheQueryCompletionBlock)doneBlock; + +/** + * Synchronously query the memory cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromMemoryCacheForKey:(nullable NSString *)key; + +/** + * Synchronously query the disk cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key; + +/** + * Synchronously query the cache (memory and or disk) after checking the memory cache. + * + * @param key The unique key used to store the image + * @return The image for the given key, or nil if not found. + */ +- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key; + +#pragma mark - Remove Ops + +/** + * Asynchronously remove the image from memory and disk cache + * + * @param key The unique image cache key + * @param completion A block that should be executed after the image has been removed (optional) + */ +//- (void)removeImageForKey:(nullable NSString *)key withCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + * Asynchronously remove the image from memory and optionally disk cache + * + * @param key The unique image cache key + * @param fromDisk Also remove cache entry from disk if YES. If NO, the completion block is called synchronously + * @param completion A block that should be executed after the image has been removed (optional) + */ +- (void)removeImageForKey:(nullable NSString *)key fromDisk:(BOOL)fromDisk withCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + Synchronously remove the image from memory cache. + + @param key The unique image cache key + */ +//- (void)removeImageFromMemoryForKey:(nullable NSString *)key; + +/** + Synchronously remove the image from disk cache. + + @param key The unique image cache key + */ +//- (void)removeImageFromDiskForKey:(nullable NSString *)key; + +#pragma mark - Cache clean Ops + +/** + * Synchronously Clear all memory cached images + */ +- (void)clearMemory; + +/** + * Asynchronously clear all disk cached images. Non-blocking method - returns immediately. + * @param completion A block that should be executed after cache expiration completes (optional) + */ +- (void)clearDiskOnCompletion:(nullable SDWebImageNoParamsBlock)completion; + +/** + * Asynchronously remove all expired cached image from disk. Non-blocking method - returns immediately. + * @param completionBlock A block that should be executed after cache expiration completes (optional) + */ +- (void)deleteOldFilesWithCompletionBlock:(nullable SDWebImageNoParamsBlock)completionBlock; + +#pragma mark - Cache Info + +/** + * Get the total bytes size of images in the disk cache + */ +- (NSUInteger)totalDiskSize; + +/** + * Get the number of images in the disk cache + */ +- (NSUInteger)totalDiskCount; + +/** + * Asynchronously calculate the disk cache's size. + */ +//- (void)calculateSizeWithCompletionBlock:(nullable SDImageCacheCalculateSizeBlock)completionBlock; + +@end + +/** + * SDImageCache is the built-in image cache implementation for web image manager. It adopts `SDImageCache` protocol to provide the function for web image manager to use for image loading process. + */ +@interface BU_SDImageCache (BU_SDImageCache) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCache.h.meta new file mode 100644 index 00000000..e7519e3a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 89a9864c190aa4fc5868e25ccfd81518 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheConfig.h new file mode 100755 index 00000000..f1f0bb4b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheConfig.h @@ -0,0 +1,129 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/// Image Cache Expire Type +typedef NS_ENUM(NSUInteger, BU_SDImageCacheConfigExpireType) { + /** + * When the image is accessed it will update this value + */ + BU_SDImageCacheConfigExpireTypeAccessDate, + /** + * The image was obtained from the disk cache (Default) + */ + BU_SDImageCacheConfigExpireTypeModificationDate +}; + +/** + The class contains all the config for image cache + @note This class conform to NSCopying, make sure to add the property in `copyWithZone:` as well. + */ +@interface BU_SDImageCacheConfig : NSObject + +/** + Gets the default cache config used for shared instance or initialization when it does not provide any cache config. Such as `SDImageCache.sharedImageCache`. + @note You can modify the property on default cache config, which can be used for later created cache instance. The already created cache instance does not get affected. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCacheConfig *defaultCacheConfig; + +/** + * Whether or not to disable iCloud backup + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldDisableiCloud; + +/** + * Whether or not to use memory cache + * @note When the memory cache is disabled, the weak memory cache will also be disabled. + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldCacheImagesInMemory; + +/* + * The option to control weak memory cache for images. When enable, `SDImageCache`'s memory cache will use a weak maptable to store the image at the same time when it stored to memory, and get removed at the same time. + * However when memory warning is triggered, since the weak maptable does not hold a strong reference to image instance, even when the memory cache itself is purged, some images which are held strongly by UIImageViews or other live instances can be recovered again, to avoid later re-query from disk cache or network. This may be helpful for the case, for example, when app enter background and memory is purged, cause cell flashing after re-enter foreground. + * Defautls to YES. You can change this option dynamically. + */ +@property (assign, nonatomic) BOOL shouldUseWeakMemoryCache; + +/** + * Whether or not to remove the expired disk data when application entering the background. (Not works for macOS) + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldRemoveExpiredDataWhenEnterBackground; + +/** + * The reading options while reading cache from disk. + * Defaults to 0. You can set this to `NSDataReadingMappedIfSafe` to improve performance. + */ +@property (assign, nonatomic) NSDataReadingOptions diskCacheReadingOptions; + +/** + * The writing options while writing cache to disk. + * Defaults to `NSDataWritingAtomic`. You can set this to `NSDataWritingWithoutOverwriting` to prevent overwriting an existing file. + */ +@property (assign, nonatomic) NSDataWritingOptions diskCacheWritingOptions; + +/** + * The maximum length of time to keep an image in the disk cache, in seconds. + * Setting this to a negative value means no expiring. + * Setting this to zero means that all cached files would be removed when do expiration check. + * Defaults to 1 week. + */ +@property (assign, nonatomic) NSTimeInterval maxDiskAge; + +/** + * The maximum size of the disk cache, in bytes. + * Defaults to 0. Which means there is no cache size limit. + */ +@property (assign, nonatomic) NSUInteger maxDiskSize; + +/** + * The maximum "total cost" of the in-memory image cache. The cost function is the bytes size held in memory. + * @note The memory cost is bytes size in memory, but not simple pixels count. For common ARGB8888 image, one pixel is 4 bytes (32 bits). + * Defaults to 0. Which means there is no memory cost limit. + */ +@property (assign, nonatomic) NSUInteger maxMemoryCost; + +/** + * The maximum number of objects in-memory image cache should hold. + * Defaults to 0. Which means there is no memory count limit. + */ +@property (assign, nonatomic) NSUInteger maxMemoryCount; + +/* + * The attribute which the clear cache will be checked against when clearing the disk cache + * Default is Modified Date + */ +@property (assign, nonatomic) BU_SDImageCacheConfigExpireType diskCacheExpireType; + +/** + * The custom file manager for disk cache. Pass nil to let disk cache choose the proper file manager. + * Defaults to nil. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + * @note Since `NSFileManager` does not support `NSCopying`. We just pass this by reference during copying. So it's not recommend to set this value on `defaultCacheConfig`. + */ +@property (strong, nonatomic, nullable) NSFileManager *fileManager; + +/** + * The custom memory cache class. Provided class instance must conform to `SDMemoryCache` protocol to allow usage. + * Defaults to built-in `SDMemoryCache` class. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + */ +@property (assign, nonatomic, nonnull) Class memoryCacheClass; + +/** + * The custom disk cache class. Provided class instance must conform to `SDDiskCache` protocol to allow usage. + * Defaults to built-in `SDDiskCache` class. + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect. + */ +@property (assign ,nonatomic, nonnull) Class diskCacheClass; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheConfig.h.meta new file mode 100644 index 00000000..e6ea79bc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 87e12c446a27a49a1a23adc93d0daadc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheDefine.h new file mode 100755 index 00000000..55a75880 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheDefine.h @@ -0,0 +1,125 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDWebImageDefine.h" + +/// Image Cache Type +typedef NS_ENUM(NSInteger, BU_SDImageCacheType) { + /** + * For query and contains op in response, means the image isn't available in the image cache + * For op in request, this type is not available and take no effect. + */ + BU_SDImageCacheTypeNone, + /** + * For query and contains op in response, means the image was obtained from the disk cache. + * For op in request, means process only disk cache. + */ + BU_SDImageCacheTypeDisk, + /** + * For query and contains op in response, means the image was obtained from the memory cache. + * For op in request, means process only memory cache. + */ + BU_SDImageCacheTypeMemory, + /** + * For query and contains op in response, this type is not available and take no effect. + * For op in request, means process both memory cache and disk cache. + */ + BU_SDImageCacheTypeAll +}; + +typedef void(^SDImageCacheCheckCompletionBlock)(BOOL isInCache); +typedef void(^SDImageCacheCalculateSizeBlock)(NSUInteger fileCount, NSUInteger totalSize); +typedef NSString * _Nullable (^SDImageCacheAdditionalCachePathBlock)(NSString * _Nonnull key); +typedef void(^BU_SDImageCacheQueryCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, BU_SDImageCacheType cacheType); +typedef void(^BU_SDImageCacheContainsCompletionBlock)(BU_SDImageCacheType containsCacheType); + +/** + This is the built-in decoding process for image query from cache. + @note If you want to implement your custom loader with `queryImageForKey:options:context:completion:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the cache. Should not be nil + @param cacheKey The image cache key from the input. Should not be nil + @param options The options arg from the input + @param context The context arg from the input + @return The decoded image for current image data query from cache + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSString * _Nonnull cacheKey, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + This is the image cache protocol to provide custom image cache for `SDWebImageManager`. + Though the best practice to custom image cache, is to write your own class which conform `SDMemoryCache` or `SDDiskCache` protocol for `SDImageCache` class (See more on `SDImageCacheConfig.memoryCacheClass & SDImageCacheConfig.diskCacheClass`). + However, if your own cache implementation contains more advanced feature beyond `SDImageCache` itself, you can consider to provide this instead. For example, you can even use a cache manager like `SDImageCachesManager` to register multiple caches. + */ +@protocol BU_SDImageCache + +@required +/** + Query the cached image from image cache for given key. The operation can be used to cancel the query. + If image is cached in memory, completion is called synchronously, else aynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`) + + @param key The image cache key + @param options A mask to specify options to use for this query + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @param completionBlock The completion block. Will not get called if the operation is cancelled + @return The operation for this query + */ +- (nullable id)queryImageForKey:(nullable NSString *)key + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + completion:(nullable BU_SDImageCacheQueryCompletionBlock)completionBlock; + +/** + Store the image into image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param image The image to store + @param imageData The image data to be used for disk storage + @param key The image cache key + @param cacheType The image store op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)storeImage:(nullable UIImage *)image + imageData:(nullable NSData *)imageData + forKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + Remove the image from image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param key The image cache key + @param cacheType The image remove op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)removeImageForKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +/** + Check if image cache contains the image for the given key (does not load the image). If image is cached in memory, completion is called synchronously, else aynchronously. + + @param key The image cache key + @param cacheType The image contains op cache type + @param completionBlock A block executed after the operation is finished. + */ +- (void)containsImageForKey:(nullable NSString *)key + cacheType:(BU_SDImageCacheType)cacheType + completion:(nullable BU_SDImageCacheContainsCompletionBlock)completionBlock; + +/** + Clear all the cached images for image cache. If cache type is memory only, completion is called synchronously, else aynchronously. + + @param cacheType The image clear op cache type + @param completionBlock A block executed after the operation is finished + */ +- (void)clearWithCacheType:(BU_SDImageCacheType)cacheType + completion:(nullable SDWebImageNoParamsBlock)completionBlock; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheDefine.h.meta new file mode 100644 index 00000000..a50becf4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCacheDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3875b36ed9c3c4cdc8e31f365d7230a7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManager.h new file mode 100755 index 00000000..c7612392 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManager.h @@ -0,0 +1,81 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCacheDefine.h" + +/// Policy for cache operation +typedef NS_ENUM(NSUInteger, SDImageCachesManagerOperationPolicy) { + SDImageCachesManagerOperationPolicySerial, // process all caches serially (from the highest priority to the lowest priority cache by order) + SDImageCachesManagerOperationPolicyConcurrent, // process all caches concurrently + SDImageCachesManagerOperationPolicyHighestOnly, // process the highest priority cache only + SDImageCachesManagerOperationPolicyLowestOnly // process the lowest priority cache only +}; + +/** + A caches manager to manage multiple caches. + */ +@interface BU_SDImageCachesManager : NSObject + +/** + Returns the global shared caches manager instance. By default we will set [`SDImageCache.sharedImageCache`] into the caches array. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCachesManager *sharedManager; + +// These are op policy for cache manager. + +/** + Operation policy for query op. + Defaults to `Serial`, means query all caches serially (one completion called then next begin) until one cache query success (`image` != nil). + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy queryOperationPolicy; + +/** + Operation policy for store op. + Defaults to `HighestOnly`, means store to the highest priority cache only. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy storeOperationPolicy; + +/** + Operation policy for remove op. + Defaults to `Concurrent`, means remove all caches concurrently. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy removeOperationPolicy; + +/** + Operation policy for contains op. + Defaults to `Serial`, means check all caches serially (one completion called then next begin) until one cache check success (`containsCacheType` != None). + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy containsOperationPolicy; + +/** + Operation policy for clear op. + Defaults to `Concurrent`, means clear all caches concurrently. + */ +@property (nonatomic, assign) SDImageCachesManagerOperationPolicy clearOperationPolicy; + +/** + All caches in caches manager. The caches array is a priority queue, which means the later added cache will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray> *caches; + +/** + Add a new cache to the end of caches array. Which has the highest priority. + + @param cache cache + */ +//- (void)addCache:(nonnull id)cache; + +/** + Remove a cache in the caches array. + + @param cache cache + */ +//- (void)removeCache:(nonnull id)cache; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManager.h.meta new file mode 100644 index 00000000..e6ccf53c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b3251d3cb7d7242d096910937340ee77 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManagerOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManagerOperation.h new file mode 100755 index 00000000..0ba9d3c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManagerOperation.h @@ -0,0 +1,21 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +// This is used for operation management, but not for operation queue execute +@interface BU_SDImageCachesManagerOperation : NSOperation + +@property (nonatomic, assign, readonly) NSUInteger pendingCount; + +- (void)beginWithTotalCount:(NSUInteger)totalCount; +- (void)completeOne; +- (void)done; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManagerOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManagerOperation.h.meta new file mode 100644 index 00000000..2c2a773d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCachesManagerOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e05e870c343dd4b93815b86952e9cb52 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoder.h new file mode 100755 index 00000000..987845c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoder.h @@ -0,0 +1,234 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +typedef NSString * SDImageCoderOption NS_STRING_ENUM; +typedef NSDictionary SDImageCoderOptions; +typedef NSMutableDictionary SDImageCoderMutableOptions; + +#pragma mark - Coder Options +// These options are for image decoding +/** + A Boolean value indicating whether to decode the first frame only for animated image during decoding. (NSNumber). If not provide, decode animated image if need. + @note works for `SDImageCoder`. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeFirstFrameOnly; +/** + A CGFloat value which is greater than or equal to 1.0. This value specify the image scale factor for decoding. If not provide, use 1.0. (NSNumber) + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeScaleFactor; + +// These options are for image encoding +/** + A Boolean value indicating whether to encode the first frame only for animated image during encoding. (NSNumber). If not provide, encode animated image if need. + @note works for `SDImageCoder`. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderEncodeFirstFrameOnly; +/** + A double value between 0.0-1.0 indicating the encode compression quality to produce the image data. 1.0 resulting in no compression and 0.0 resulting in the maximum compression possible. If not provide, use 1.0. (NSNumber) + @note works for `SDImageCoder` + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderEncodeCompressionQuality; + +/** + A SDWebImageContext object which hold the original context options from top-level API. (SDWebImageContext) + This option is ignored for all built-in coders and take no effect. + But this may be useful for some custom coders, because some business logic may dependent on things other than image or image data inforamtion only. + See `SDWebImageContext` for more detailed information. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderWebImageContext; + +/** + A Boolean value indicating whether to keep the original aspect ratio when generating thumbnail images (or bitmap images from vector format). + Defaults to YES. + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodePreserveAspectRatio; + +/** + A CGSize value indicating whether or not to generate the thumbnail images (or bitmap images from vector format). When this value is provided, the decoder will generate a thumbnail image which pixel size is smaller than or equal to (depends the `.preserveAspectRatio`) the value size. + Defaults to CGSizeZero, which means no thumbnail generation at all. + @note Supports for animated image as well. + @note When you pass `.preserveAspectRatio == NO`, the thumbnail image is stretched to match each dimension. When `.preserveAspectRatio == YES`, the thumbnail image's width is limited to pixel size's width, the thumbnail image's height is limited to pixel size's height. For common cases, you can just pass a square size to limit both. + @note works for `SDImageCoder`, `SDProgressiveImageCoder`, ``. + */ +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const BU_SDImageCoderDecodeThumbnailPixelSize; + +#pragma mark - Coder +/** + This is the image coder protocol to provide custom image decoding/encoding. + These methods are all required to implement. + @note Pay attention that these methods are not called from main queue. + */ +@protocol BU_SDImageCoder + +@required +#pragma mark - Decoding +/** + Returns YES if this coder can decode some data. Otherwise, the data should be passed to another coder. + + @param data The image data so we can look at it + @return YES if this coder can decode the data, NO otherwise + */ +- (BOOL)canDecodeFromData:(nullable NSData *)data; + +/** + Decode the image data to image. + @note This protocol may supports decode animated image frames. You can use `+[SDImageCoderHelper animatedImageWithFrames:]` to produce an animated image with frames. + + @param data The image data to be decoded + @param options A dictionary containing any decoding options. Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for image. Pass @{BU_SDImageCoderDecodeFirstFrameOnly: @(YES)} to decode the first frame only. + @return The decoded image from data + */ +- (nullable UIImage *)decodedImageWithData:(nullable NSData *)data + options:(nullable SDImageCoderOptions *)options; + +#pragma mark - Encoding + +/** + Returns YES if this coder can encode some image. Otherwise, it should be passed to another coder. + For custom coder which introduce new image format, you'd better define a new `BU_SDImageFormat` using like this. If you're creating public coder plugin for new image format, also update `https://github.com/rs/SDWebImage/wiki/Coder-Plugin-List` to avoid same value been defined twice. + * @code + static const BU_SDImageFormat BU_SDImageFormatHEIF = 10; + * @endcode + + @param format The image format + @return YES if this coder can encode the image, NO otherwise + */ +- (BOOL)canEncodeToFormat:(BU_SDImageFormat)format NS_SWIFT_NAME(canEncode(to:)); + +/** + Encode the image to image data. + @note This protocol may supports encode animated image frames. You can use `+[SDImageCoderHelper framesFromAnimatedImage:]` to assemble an animated image with frames. + + @param image The image to be encoded + @param format The image format to encode, you should note `BU_SDImageFormatUndefined` format is also possible + @param options A dictionary containing any encoding options. Pass @{BU_SDImageCoderEncodeCompressionQuality: @(1)} to specify compression quality. + @return The encoded image data + */ +- (nullable NSData *)encodedDataWithImage:(nullable UIImage *)image + format:(BU_SDImageFormat)format + options:(nullable SDImageCoderOptions *)options; + +@end + +#pragma mark - Progressive Coder +/** + This is the image coder protocol to provide custom progressive image decoding. + These methods are all required to implement. + @note Pay attention that these methods are not called from main queue. + */ +@protocol BU_SDProgressiveImageCoder + +@required +/** + Returns YES if this coder can incremental decode some data. Otherwise, it should be passed to another coder. + + @param data The image data so we can look at it + @return YES if this coder can decode the data, NO otherwise + */ +- (BOOL)canIncrementalDecodeFromData:(nullable NSData *)data; + +/** + Because incremental decoding need to keep the decoded context, we will alloc a new instance with the same class for each download operation to avoid conflicts + This init method should not return nil + + @param options A dictionary containing any progressive decoding options (instance-level). Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for progressive animated image (each frames should use the same scale). + @return A new instance to do incremental decoding for the specify image format + */ +- (nonnull instancetype)initIncrementalWithOptions:(nullable SDImageCoderOptions *)options; + +/** + Update the incremental decoding when new image data available + + @param data The image data has been downloaded so far + @param finished Whether the download has finished + */ +- (void)updateIncrementalData:(nullable NSData *)data finished:(BOOL)finished; + +/** + Incremental decode the current image data to image. + @note Due to the performance issue for progressive decoding and the integration for image view. This method may only return the first frame image even if the image data is animated image. If you want progressive animated image decoding, conform to `` protocol as well and use `animatedImageFrameAtIndex:` instead. + + @param options A dictionary containing any progressive decoding options. Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for progressive image + @return The decoded image from current data + */ +- (nullable UIImage *)incrementalDecodedImageWithOptions:(nullable SDImageCoderOptions *)options; + +@end + +#pragma mark - Animated Image Provider +/** + This is the animated image protocol to provide the basic function for animated image rendering. It's adopted by `BU_SDAnimatedImage` and `` + */ +@protocol BU_SDAnimatedImageProvider + +@required +/** + The original animated image data for current image. If current image is not an animated format, return nil. + We may use this method to grab back the original image data if need, such as NSCoding or compare. + + @return The animated image data + */ +@property (nonatomic, copy, readonly, nullable) NSData *animatedImageData; + +/** + Total animated frame count. + If the frame count is less than 1, then the methods below will be ignored. + + @return Total animated frame count. + */ +@property (nonatomic, assign, readonly) NSUInteger animatedImageFrameCount; +/** + Animation loop count, 0 means infinite looping. + + @return Animation loop count + */ +@property (nonatomic, assign, readonly) NSUInteger animatedImageLoopCount; +/** + Returns the frame image from a specified index. + @note The index maybe randomly if one image was set to different imageViews, keep it re-entrant. (It's not recommend to store the images into array because it's memory consuming) + + @param index Frame index (zero based). + @return Frame's image + */ +- (nullable UIImage *)animatedImageFrameAtIndex:(NSUInteger)index; +/** + Returns the frames's duration from a specified index. + @note The index maybe randomly if one image was set to different imageViews, keep it re-entrant. (It's recommend to store the durations into array because it's not memory-consuming) + + @param index Frame index (zero based). + @return Frame's duration + */ +- (NSTimeInterval)animatedImageDurationAtIndex:(NSUInteger)index; + +@end + +#pragma mark - Animated Coder +/** + This is the animated image coder protocol for custom animated image class like `BU_SDAnimatedImage`. Through it inherit from `SDImageCoder`. We currentlly only use the method `canDecodeFromData:` to detect the proper coder for specify animated image format. + */ +@protocol BU_SDAnimatedImageCoder + +@required +/** + Because animated image coder should keep the original data, we will alloc a new instance with the same class for the specify animated image data + The init method should return nil if it can't decode the specify animated image data to produce any frame. + After the instance created, we may call methods in `BU_SDAnimatedImageProvider` to produce animated image frame. + + @param data The animated image data to be decode + @param options A dictionary containing any animated decoding options (instance-level). Pass @{BU_SDImageCoderDecodeScaleFactor: @(1.0)} to specify scale factor for animated image (each frames should use the same scale). + @return A new instance to do animated decoding for specify image data + */ +- (nullable instancetype)initWithAnimatedImageData:(nullable NSData *)data options:(nullable SDImageCoderOptions *)options; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoder.h.meta new file mode 100644 index 00000000..23b3feec --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a1b8113f1c6a44ea383fd30e34b63e6a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoderHelper.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoderHelper.h new file mode 100755 index 00000000..9534d7a4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoderHelper.h @@ -0,0 +1,110 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageFrame.h" + +/** + Provide some common helper methods for building the image decoder/encoder. + */ +@interface BU_SDImageCoderHelper : NSObject + +/** + Return an animated image with frames array. + For UIKit, this will apply the patch and then create animated UIImage. The patch is because that `+[UIImage animatedImageWithImages:duration:]` just use the average of duration for each image. So it will not work if different frame has different duration. Therefore we repeat the specify frame for specify times to let it work. + For AppKit, NSImage does not support animates other than GIF. This will try to encode the frames to GIF format and then create an animated NSImage for rendering. Attention the animated image may loss some detail if the input frames contain full alpha channel because GIF only supports 1 bit alpha channel. (For 1 pixel, either transparent or not) + + @param frames The frames array. If no frames or frames is empty, return nil + @return A animated image for rendering on UIImageView(UIKit) or NSImageView(AppKit) + */ ++ (UIImage * _Nullable)animatedImageWithFrames:(NSArray * _Nullable)frames; + +/** + Return frames array from an animated image. + For UIKit, this will unapply the patch for the description above and then create frames array. This will also work for normal animated UIImage. + For AppKit, NSImage does not support animates other than GIF. This will try to decode the GIF imageRep and then create frames array. + + @param animatedImage A animated image. If it's not animated, return nil + @return The frames array + */ ++ (NSArray * _Nullable)framesFromAnimatedImage:(UIImage * _Nullable)animatedImage NS_SWIFT_NAME(frames(from:)); + +/** + Return the shared device-dependent RGB color space. This follows The Get Rule. + On iOS, it's created with deviceRGB (if available, use sRGB). + On macOS, it's from the screen colorspace (if failed, use deviceRGB) + Because it's shared, you should not retain or release this object. + + @return The device-dependent RGB color space + */ ++ (CGColorSpaceRef _Nonnull)colorSpaceGetDeviceRGB CF_RETURNS_NOT_RETAINED; + +/** + Check whether CGImage contains alpha channel. + + @param cgImage The CGImage + @return Return YES if CGImage contains alpha channel, otherwise return NO + */ ++ (BOOL)CGImageContainsAlpha:(_Nonnull CGImageRef)cgImage; + +/** + Create a decoded CGImage by the provided CGImage. This follows The Create Rule and you are response to call release after usage. + It will detect whether image contains alpha channel, then create a new bitmap context with the same size of image, and draw it. This can ensure that the image do not need extra decoding after been set to the imageView. + @note This actually call `CGImageCreateDecoded:orientation:` with the Up orientation. + + @param cgImage The CGImage + @return A new created decoded image + */ ++ (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage CF_RETURNS_RETAINED; + +/** + Create a decoded CGImage by the provided CGImage and orientation. This follows The Create Rule and you are response to call release after usage. + It will detect whether image contains alpha channel, then create a new bitmap context with the same size of image, and draw it. This can ensure that the image do not need extra decoding after been set to the imageView. + + @param cgImage The CGImage + @param orientation The EXIF image orientation. + @return A new created decoded image + */ ++ (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage orientation:(CGImagePropertyOrientation)orientation CF_RETURNS_RETAINED; + +/** + Return the decoded image by the provided image. This one unlike `CGImageCreateDecoded:`, will not decode the image which contains alpha channel or animated image + @param image The image to be decoded + @return The decoded image + */ ++ (UIImage * _Nullable)decodedImageWithImage:(UIImage * _Nullable)image; + +/** + Return the decoded and probably scaled down image by the provided image. If the image is large than the limit size, will try to scale down. Or just works as `decodedImageWithImage:` + + @param image The image to be decoded and scaled down + @param bytes The limit bytes size. Provide 0 to use the build-in limit. + @return The decoded and probably scaled down image + */ ++ (UIImage * _Nullable)decodedAndScaledDownImageWithImage:(UIImage * _Nullable)image limitBytes:(NSUInteger)bytes; + +#if SD_UIKIT || SD_WATCH +/** + Convert an EXIF image orientation to an iOS one. + + @param exifOrientation EXIF orientation + @return iOS orientation + */ ++ (UIImageOrientation)imageOrientationFromEXIFOrientation:(CGImagePropertyOrientation)exifOrientation NS_SWIFT_NAME(imageOrientation(from:)); + +/** + Convert an iOS orientation to an EXIF image orientation. + + @param imageOrientation iOS orientation + @return EXIF orientation + */ ++ (CGImagePropertyOrientation)exifOrientationFromImageOrientation:(UIImageOrientation)imageOrientation; +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoderHelper.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoderHelper.h.meta new file mode 100644 index 00000000..3410936d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCoderHelper.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc87e4760de3e40e1b52bb7d0c2dd149 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCodersManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCodersManager.h new file mode 100755 index 00000000..703ae3e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCodersManager.h @@ -0,0 +1,58 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Global object holding the array of coders, so that we avoid passing them from object to object. + Uses a priority queue behind scenes, which means the latest added coders have the highest priority. + This is done so when encoding/decoding something, we go through the list and ask each coder if they can handle the current data. + That way, users can add their custom coders while preserving our existing prebuilt ones + + Note: the `coders` getter will return the coders in their reversed order + Example: + - by default we internally set coders = `IOCoder`, `GIFCoder`, `APNGCoder` + - calling `coders` will return `@[IOCoder, GIFCoder, APNGCoder]` + - call `[addCoder:[MyCrazyCoder new]]` + - calling `coders` now returns `@[IOCoder, GIFCoder, APNGCoder, MyCrazyCoder]` + + Coders + ------ + A coder must conform to the `SDImageCoder` protocol or even to `SDProgressiveImageCoder` if it supports progressive decoding + Conformance is important because that way, they will implement `canDecodeFromData` or `canEncodeToFormat` + Those methods are called on each coder in the array (using the priority order) until one of them returns YES. + That means that coder can decode that data / encode to that format + */ +@interface BU_SDImageCodersManager : NSObject + +/** + Returns the global shared coders manager instance. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageCodersManager *sharedManager; + +/** + All coders in coders manager. The coders array is a priority queue, which means the later added coder will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray> *coders; + +/** + Add a new coder to the end of coders array. Which has the highest priority. + + @param coder coder + */ +//- (void)addCoder:(nonnull id)coder; + +/** + Remove a coder in the coders array. + + @param coder coder + */ +//- (void)removeCoder:(nonnull id)coder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCodersManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCodersManager.h.meta new file mode 100644 index 00000000..f2481684 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageCodersManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: adbc2d05532074f5980b98d712fc0d67 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageFrame.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageFrame.h new file mode 100755 index 00000000..7d964f58 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageFrame.h @@ -0,0 +1,36 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/** + This class is used for creating animated images via `animatedImageWithFrames` in `SDImageCoderHelper`. + @note If you need to specify animated images loop count, use `sdBu_imageLoopCount` property in `UIImage+BUMetadata.h`. + */ +@interface BU_SDImageFrame : NSObject + +/** + The image of current frame. You should not set an animated image. + */ +@property (nonatomic, strong, readonly, nonnull) UIImage *image; +/** + The duration of current frame to be displayed. The number is seconds but not milliseconds. You should not set this to zero. + */ +@property (nonatomic, readonly, assign) NSTimeInterval duration; + +/** + Create a frame instance with specify image and duration + + @param image current frame's image + @param duration current frame's duration + @return frame instance + */ ++ (instancetype _Nonnull)frameWithImage:(UIImage * _Nonnull)image duration:(NSTimeInterval)duration; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageFrame.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageFrame.h.meta new file mode 100644 index 00000000..7e94e5c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageFrame.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 10bba27dc212c4adbb40ae2bc417798c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoder.h new file mode 100755 index 00000000..579b806e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoder.h @@ -0,0 +1,22 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder using ImageIO that supports animated GIF encoding/decoding + @note `SDImageIOCoder` supports GIF but only as static (will use the 1st frame). + @note Use `SDImageGIFCoder` for fully animated GIFs. For `UIImageView`, it will produce animated `UIImage`(`NSImage` on macOS) for rendering. For `SDAnimatedImageView`, it will use `BU_SDAnimatedImage` for rendering. + @note The recommended approach for animated GIFs is using `BU_SDAnimatedImage` with `SDAnimatedImageView`. It's more performant than `UIImageView` for GIF displaying(especially on memory usage) + */ +@interface BU_SDImageGIFCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageGIFCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoder.h.meta new file mode 100644 index 00000000..097286b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bddc709a671ed4f90b21355bbfdeaa4d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoderInternal.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoderInternal.h new file mode 100755 index 00000000..e0fe94c2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoderInternal.h @@ -0,0 +1,16 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDImageGIFCoder.h" + +@interface BU_SDImageGIFCoder () + +- (float)sdBu_frameDurationAtIndex:(NSUInteger)index source:(nonnull CGImageSourceRef)source; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoderInternal.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoderInternal.h.meta new file mode 100644 index 00000000..eb63f113 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGIFCoderInternal.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 27dd628a63f4547f2b05c3f3cae6b9c6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGraphics.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGraphics.h new file mode 100755 index 00000000..c6f459bb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGraphics.h @@ -0,0 +1,27 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import + +/** + These following graphics context method are provided to easily write cross-platform(AppKit/UIKit) code. + For UIKit, these methods just call the same method in `UIGraphics.h`. See the documentation for usage. + For AppKit, these methods use `NSGraphicsContext` to create image context and match the behavior like UIKit. + */ + +/// Returns the current graphics context. +FOUNDATION_EXPORT CGContextRef __nullable BU_SDGraphicsGetCurrentContext(void) CF_RETURNS_NOT_RETAINED; +/// Creates a bitmap-based graphics context and makes it the current context. +FOUNDATION_EXPORT void BU_SDGraphicsBeginImageContext(CGSize size); +/// Creates a bitmap-based graphics context with the specified options. +FOUNDATION_EXPORT void BU_BU_SDGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale); +/// Removes the current bitmap-based graphics context from the top of the stack. +FOUNDATION_EXPORT void BU_SDGraphicsEndImageContext(void); +/// Returns an image based on the contents of the current bitmap-based graphics context. +FOUNDATION_EXPORT UIImage * __nullable BU_SDGraphicsGetImageFromCurrentImageContext(void); diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGraphics.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGraphics.h.meta new file mode 100644 index 00000000..dae9dc1d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageGraphics.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3879ba2084d1b4c5195ac3c5d721fd5a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageIOCoder.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageIOCoder.h new file mode 100755 index 00000000..e26a25fd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageIOCoder.h @@ -0,0 +1,30 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDImageCoder.h" + +/** + Built in coder that supports PNG, JPEG, TIFF, includes support for progressive decoding. + + GIF + Also supports static GIF (meaning will only handle the 1st frame). + For a full GIF support, we recommend `SDAnimatedImageView` to keep both CPU and memory balanced. + + HEIC + This coder also supports HEIC format because ImageIO supports it natively. But it depends on the system capabilities, so it won't work on all devices, see: https://devstreaming-cdn.apple.com/videos/wwdc/2017/511tj33587vdhds/511/511_working_with_heif_and_hevc.pdf + Decode(Software): !Simulator && (iOS 11 || tvOS 11 || macOS 10.13) + Decode(Hardware): !Simulator && ((iOS 11 && A9Chip) || (macOS 10.13 && 6thGenerationIntelCPU)) + Encode(Software): macOS 10.13 + Encode(Hardware): !Simulator && ((iOS 11 && A10FusionChip) || (macOS 10.13 && 6thGenerationIntelCPU)) + */ +@interface BU_SDImageIOCoder : NSObject + +@property (nonatomic, class, readonly, nonnull) BU_SDImageIOCoder *sharedCoder; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageIOCoder.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageIOCoder.h.meta new file mode 100644 index 00000000..541c61c6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageIOCoder.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a6a7c3a31ed554c3299b98799c56aa7f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoader.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoader.h new file mode 100755 index 00000000..8e1cb465 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoader.h @@ -0,0 +1,101 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageOperation.h" + +typedef void(^SDImageLoaderProgressBlock)(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL); +typedef void(^SDImageLoaderCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished); + +#pragma mark - Context Options + +/** + A `UIImage` instance from `SDWebImageManager` when you specify `SDWebImageRefreshCached` and image cache hit. + This can be a hint for image loader to load the image from network and refresh the image from remote location if needed. If the image from remote location does not change, you should call the completion with `SDWebImageErrorCacheNotModified` error. (UIImage) + @note If you don't implement `SDWebImageRefreshCached` support, you do not need to care abot this context option. + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextLoaderCachedImage; + +#pragma mark - Helper method + +/** + This is the built-in decoding process for image download from network or local file. + @note If you want to implement your custom loader with `requestImageWithURL:options:context:progress:completed:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the network. Should not be nil + @param imageURL The image URL from the input. Should not be nil + @param options The options arg from the input + @param context The context arg from the input + @return The decoded image for current image data load from the network + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageLoaderDecodeImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + This is the built-in decoding process for image progressive download from network. It's used when `SDWebImageProgressiveLoad` option is set. (It's not required when your loader does not support progressive image loading) + @note If you want to implement your custom loader with `requestImageWithURL:options:context:progress:completed:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image. + + @param imageData The image data from the network so far. Should not be nil + @param imageURL The image URL from the input. Should not be nil + @param finished Pass NO to specify the download process has not finished. Pass YES when all image data has finished. + @param operation The loader operation associated with current progressive download. Why to provide this is because progressive decoding need to store the partial decoded context for each operation to avoid conflict. You should provide the operation from `loadImageWithURL:` method return value. + @param options The options arg from the input + @param context The context arg from the input + @return The decoded progressive image for current image data load from the network + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDImageLoaderDecodeProgressiveImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, BOOL finished, id _Nonnull operation, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +#pragma mark - SDImageLoader + +/** + This is the protocol to specify custom image load process. You can create your own class to conform this protocol and use as a image loader to load image from network or any avaiable remote resources defined by yourself. + If you want to implement custom loader for image download from network or local file, you just need to concentrate on image data download only. After the download finish, call `BU_SDImageLoaderDecodeImageData` or `BU_SDImageLoaderDecodeProgressiveImageData` to use the built-in decoding process and produce image (Remember to call in the global queue). And finally callback the completion block. + If you directlly get the image instance using some third-party SDKs, such as image directlly from Photos framework. You can process the image data and image instance by yourself without that built-in decoding process. And finally callback the completion block. + @note It's your responsibility to load the image in the desired global queue(to avoid block main queue). We do not dispatch these method call in a global queue but just from the call queue (For `SDWebImageManager`, it typically call from the main queue). +*/ +@protocol BU_SDImageLoader + +/** + Whether current image loader supports to load the provide image URL. + This will be checked everytime a new image request come for loader. If this return NO, we will mark this image load as failed. If return YES, we will start to call `requestImageWithURL:options:context:progress:completed:`. + + @param url The image URL to be loaded. + @return YES to continue download, NO to stop download. + */ +- (BOOL)canRequestImageForURL:(nullable NSURL *)url; + +/** + Load the image and image data with the given URL and return the image data. You're responsible for producing the image instance. + + @param url The URL represent the image. Note this may not be a HTTP URL + @param options A mask to specify options to use for this request + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + @param completedBlock A block called when operation has been completed. + @return An operation which allow the user to cancel the current request. + */ +- (nullable id)requestImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable SDImageLoaderCompletedBlock)completedBlock; + + +/** + Whether the error from image loader should be marked indded un-recoverable or not. + If this return YES, failed URL which does not using `SDWebImageRetryFailed` will be blocked into black list. Else not. + + @param url The URL represent the image. Note this may not be a HTTP URL + @param error The URL's loading error, from previous `requestImageWithURL:options:context:progress:completed:` completedBlock's error. + @return Whether to block this url or not. Return YES to mark this URL as failed. + */ +- (BOOL)shouldBlockFailedURLWithURL:(nonnull NSURL *)url + error:(nonnull NSError *)error; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoader.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoader.h.meta new file mode 100644 index 00000000..e8fd2139 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoader.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c75c777c500224acb80b64959a3c6b81 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoadersManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoadersManager.h new file mode 100755 index 00000000..822e1cde --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoadersManager.h @@ -0,0 +1,40 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDImageLoader.h" + +/** + A loaders manager to manage multiple loaders + */ +@interface BU_SDImageLoadersManager : NSObject + +/** + Returns the global shared loaders manager instance. By default we will set [`SDWebImageDownloader.sharedDownloader`] into the loaders array. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDImageLoadersManager *sharedManager; + +/** + All image loaders in manager. The loaders array is a priority queue, which means the later added loader will have the highest priority + */ +@property (nonatomic, copy, nullable) NSArray>* loaders; + +/** + Add a new image loader to the end of loaders array. Which has the highest priority. + + @param loader loader + */ +//- (void)addLoader:(nonnull id)loader; +// +///** +// Remove a image loader in the loaders array. +// +// @param loader loader +// */ +//- (void)removeLoader:(nonnull id)loader; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoadersManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoadersManager.h.meta new file mode 100644 index 00000000..c362cb3f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageLoadersManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 989a3324d570d4ba99784198540e0a03 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageTransformer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageTransformer.h new file mode 100755 index 00000000..bb6cc721 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageTransformer.h @@ -0,0 +1,231 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "UIImage+BUTransform.h" + +/** + Return the transformed cache key which applied with specify transformerKey. + + @param key The original cache key + @param transformerKey The transformer key from the transformer + @return The transformed cache key + */ +FOUNDATION_EXPORT NSString * _Nullable BU_SDTransformedKeyForKey(NSString * _Nullable key, NSString * _Nonnull transformerKey); + +/** + A transformer protocol to transform the image load from cache or from download. + You can provide transformer to cache and manager (Through the `transformer` property or context option `BU_SDWebImageContextImageTransformer`). + + @note The transform process is called from a global queue in order to not to block the main queue. + */ +@protocol BU_SDImageTransformer + +@required +/** + For each transformer, it must contains its cache key to used to store the image cache or query from the cache. This key will be appened after the original cache key generated by URL or from user. + + @return The cache key to appended after the original cache key. Should not be nil. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *transformerKey; + +/** + Transform the image to another image. + + @param image The image to be transformed + @param key The cache key associated to the image + @return The transformed image, or nil if transform failed + */ +- (nullable UIImage *)transformedImageWithImage:(nonnull UIImage *)image forKey:(nonnull NSString *)key; + +@end + +#pragma mark - Pipeline + +/** + Pipeline transformer. Which you can bind multiple transformers together to let the image to be transformed one by one in order and generate the final image. + @note Because transformers are lightweight, if you want to append or arrange transfomers, create another pipeline transformer instead. This class is considered as immutable. + */ +//@interface BU_SDImagePipelineTransformer : NSObject +// +///** +// All transformers in pipeline +// */ +//@property (nonatomic, copy, readonly, nonnull) NSArray> *transformers; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithTransformers:(nonnull NSArray> *)transformers; +// +//@end + +// There are some built-in transformers based on the `UIImage+BUTransformer` category to provide the common image geometry, image blending and image effect process. Those transform are useful for static image only but you can create your own to support animated image as well. +// Because transformers are lightweight, these class are considered as immutable. +#pragma mark - Image Geometry + +/** + Image round corner transformer + */ +@interface BU_SDImageRoundCornerTransformer: NSObject + +/** + The radius of each corner oval. Values larger than half the + rectangle's width or height are clamped appropriately to + half the width or height. + */ +@property (nonatomic, assign, readonly) CGFloat cornerRadius; + +/** + A bitmask value that identifies the corners that you want + rounded. You can use this parameter to round only a subset + of the corners of the rectangle. + */ +@property (nonatomic, assign, readonly) BU_SDRectCorner corners; + +/** + The inset border line width. Values larger than half the rectangle's + width or height are clamped appropriately to half the width + or height. + */ +@property (nonatomic, assign, readonly) CGFloat borderWidth; + +/** + The border stroke color. nil means clear color. + */ +@property (nonatomic, strong, readonly, nullable) UIColor *borderColor; + +- (nonnull instancetype)init NS_UNAVAILABLE; ++ (nonnull instancetype)transformerWithRadius:(CGFloat)cornerRadius corners:(BU_SDRectCorner)corners borderWidth:(CGFloat)borderWidth borderColor:(nullable UIColor *)borderColor; + +@end + +/** + Image resizing transformer + */ +//@interface BU_SDImageResizingTransformer : NSObject +// +///** +// The new size to be resized, values should be positive. +// */ +//@property (nonatomic, assign, readonly) CGSize size; +// +///** +// The scale mode for image content. +// */ +//@property (nonatomic, assign, readonly) BU_SDImageScaleMode scaleMode; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithSize:(CGSize)size scaleMode:(BU_SDImageScaleMode)scaleMode; +// +//@end + +/** + Image cropping transformer + */ +//@interface BU_SDImageCroppingTransformer : NSObject +// +///** +// Image's inner rect. +// */ +//@property (nonatomic, assign, readonly) CGRect rect; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithRect:(CGRect)rect; +// +//@end + +/** + Image flipping transformer + */ +//@interface BU_SDImageFlippingTransformer : NSObject +// +///** +// YES to flip the image horizontally. ⇋ +// */ +//@property (nonatomic, assign, readonly) BOOL horizontal; +// +///** +// YES to flip the image vertically. ⥯ +// */ +//@property (nonatomic, assign, readonly) BOOL vertical; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithHorizontal:(BOOL)horizontal vertical:(BOOL)vertical; +// +//@end + +/** + Image rotation transformer + */ +//@interface BU_SDImageRotationTransformer : NSObject +// +///** +// Rotated radians in counterclockwise.⟲ +// */ +//@property (nonatomic, assign, readonly) CGFloat angle; +// +///** +// YES: new image's size is extend to fit all content. +// NO: image's size will not change, content may be clipped. +// */ +//@property (nonatomic, assign, readonly) BOOL fitSize; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithAngle:(CGFloat)angle fitSize:(BOOL)fitSize; +// +//@end + +#pragma mark - Image Blending + +/** + Image tint color transformer + */ +//@interface BU_SDImageTintTransformer : NSObject +// +///** +// The tint color. +// */ +//@property (nonatomic, strong, readonly, nonnull) UIColor *tintColor; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithColor:(nonnull UIColor *)tintColor; +// +//@end + +#pragma mark - Image Effect + +/** + Image blur effect transformer + */ +@interface BU_SDImageBlurTransformer : NSObject + +/** + The radius of the blur in points, 0 means no blur effect. + */ +@property (nonatomic, assign, readonly) CGFloat blurRadius; + +- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithRadius:(CGFloat)blurRadius; + +@end + +//#if SD_UIKIT || SD_MAC +///** +// Core Image filter transformer +// */ +//@interface BU_SDImageFilterTransformer: NSObject +// +///** +// The CIFilter to be applied to the image. +// */ +//@property (nonatomic, strong, readonly, nonnull) CIFilter *filter; +// +//- (nonnull instancetype)init NS_UNAVAILABLE; +//+ (nonnull instancetype)transformerWithFilter:(nonnull CIFilter *)filter; +// +//@end +//#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageTransformer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageTransformer.h.meta new file mode 100644 index 00000000..9f21385e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDImageTransformer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 001a8b799b9fc4e3484d2827f9a17a34 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDInternalMacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDInternalMacros.h new file mode 100755 index 00000000..3f6e937e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDInternalMacros.h @@ -0,0 +1,65 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDmetamacros.h" + +#ifndef SD_LOCK +#define SD_LOCK(lock) dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER); +#endif + +#ifndef SD_UNLOCK +#define SD_UNLOCK(lock) dispatch_semaphore_signal(lock); +#endif + +#ifndef SD_OPTIONS_CONTAINS +#define SD_OPTIONS_CONTAINS(options, value) (((options) & (value)) == (value)) +#endif + +#ifndef weakify +#define weakify(...) \ +sd_keywordify \ +metamacro_foreach_cxt(sd_weakify_,, __weak, __VA_ARGS__) +#endif + +#ifndef strongify +#define strongify(...) \ +sd_keywordify \ +_Pragma("clang diagnostic push") \ +_Pragma("clang diagnostic ignored \"-Wshadow\"") \ +metamacro_foreach(sd_strongify_,, __VA_ARGS__) \ +_Pragma("clang diagnostic pop") +#endif + +#define sd_weakify_(INDEX, CONTEXT, VAR) \ +CONTEXT __typeof__(VAR) metamacro_concat(VAR, _weak_) = (VAR); + +#define sd_strongify_(INDEX, VAR) \ +__strong __typeof__(VAR) VAR = metamacro_concat(VAR, _weak_); + +#if DEBUG +#define sd_keywordify autoreleasepool {} +#else +#define sd_keywordify try {} @catch (...) {} +#endif + +#ifndef onExit +#define onExit \ +sd_keywordify \ +__strong bu_sd_cleanupBlock_t metamacro_concat(sd_exitBlock_, __LINE__) __attribute__((cleanup(bu_sd_executeCleanupBlock), unused)) = ^ +#endif + +typedef void (^bu_sd_cleanupBlock_t)(void); + +#if defined(__cplusplus) +extern "C" { +#endif + void bu_sd_executeCleanupBlock (__strong bu_sd_cleanupBlock_t *block); +#if defined(__cplusplus) +} +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDInternalMacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDInternalMacros.h.meta new file mode 100644 index 00000000..f54cbedf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDInternalMacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1a33eaa92d50c46c2b34ab54569b05f0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDMemoryCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDMemoryCache.h new file mode 100755 index 00000000..a31e8313 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDMemoryCache.h @@ -0,0 +1,77 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@class BU_SDImageCacheConfig; +/** + A protocol to allow custom memory cache used in SDImageCache. + */ +@protocol BU_SDMemoryCache + +@required +/** + Create a new memory cache instance with the specify cache config. You can check `maxMemoryCost` and `maxMemoryCount` used for memory cache. + + @param config The cache config to be used to create the cache. + @return The new memory cache instance. + */ +- (nonnull instancetype)initWithConfig:(nonnull BU_SDImageCacheConfig *)config; + +/** + Returns the value associated with a given key. + + @param key An object identifying the value. If nil, just return nil. + @return The value associated with key, or nil if no value is associated with key. + */ +- (nullable id)objectForKey:(nonnull id)key; + +/** + Sets the value of the specified key in the cache (0 cost). + + @param object The object to be stored in the cache. If nil, it calls `removeObjectForKey:`. + @param key The key with which to associate the value. If nil, this method has no effect. + @discussion Unlike an NSMutableDictionary object, a cache does not copy the key + objects that are put into it. + */ +- (void)setObject:(nullable id)object forKey:(nonnull id)key; + +/** + Sets the value of the specified key in the cache, and associates the key-value + pair with the specified cost. + + @param object The object to store in the cache. If nil, it calls `removeObjectForKey`. + @param key The key with which to associate the value. If nil, this method has no effect. + @param cost The cost with which to associate the key-value pair. + @discussion Unlike an NSMutableDictionary object, a cache does not copy the key + objects that are put into it. + */ +- (void)setObject:(nullable id)object forKey:(nonnull id)key cost:(NSUInteger)cost; + +/** + Removes the value of the specified key in the cache. + + @param key The key identifying the value to be removed. If nil, this method has no effect. + */ +- (void)removeObjectForKey:(nonnull id)key; + +/** + Empties the cache immediately. + */ +- (void)removeAllObjects; + +@end + +/** + A memory cache which auto purge the cache on memory warning and support weak cache. + */ +@interface BU_SDMemoryCache : NSCache + +@property (nonatomic, strong, nonnull, readonly) BU_SDImageCacheConfig *config; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDMemoryCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDMemoryCache.h.meta new file mode 100644 index 00000000..46f6b5b7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDMemoryCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 439e156186ba64c6f9703e4eda2e9e9a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWeakProxy.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWeakProxy.h new file mode 100755 index 00000000..7da33c43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWeakProxy.h @@ -0,0 +1,19 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +@interface BU_SDWeakProxy : NSProxy + +@property (nonatomic, weak, readonly, nullable) id target; + +- (nonnull instancetype)initWithTarget:(nonnull id)target; ++ (nonnull instancetype)proxyWithTarget:(nonnull id)target; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWeakProxy.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWeakProxy.h.meta new file mode 100644 index 00000000..c163d9d0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWeakProxy.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 47ea48569013f44fdac42dd226f2c872 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheKeyFilter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheKeyFilter.h new file mode 100755 index 00000000..fafc2904 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheKeyFilter.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSString * _Nullable(^SDWebImageCacheKeyFilterBlock)(NSURL * _Nonnull url); + +/** + This is the protocol for cache key filter. + We can use a block to specify the cache key filter. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol BU_SDWebImageCacheKeyFilter + +- (nullable NSString *)cacheKeyForURL:(nonnull NSURL *)url; + +@end + +/** + A cache key filter class with block. + */ +@interface BU_SDWebImageCacheKeyFilter : NSObject +// +- (nonnull instancetype)initWithBlock:(nonnull SDWebImageCacheKeyFilterBlock)block; +//+ (nonnull instancetype)cacheKeyFilterWithBlock:(nonnull SDWebImageCacheKeyFilterBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheKeyFilter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheKeyFilter.h.meta new file mode 100644 index 00000000..ca3cb9c5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheKeyFilter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3031ecef904294bb99123d08997d43cd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheSerializer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheSerializer.h new file mode 100755 index 00000000..27690a2c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheSerializer.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSData * _Nullable(^BU_SDWebImageCacheSerializerBlock)(UIImage * _Nonnull image, NSData * _Nullable data, NSURL * _Nullable imageURL); + +/** + This is the protocol for cache serializer. + We can use a block to specify the cache serializer. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol BU_SDWebImageCacheSerializer + +- (nullable NSData *)cacheDataWithImage:(nonnull UIImage *)image originalData:(nullable NSData *)data imageURL:(nullable NSURL *)imageURL; + +@end + +/** + A cache serializer class with block. + */ +@interface BU_SDWebImageCacheSerializer : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull BU_SDWebImageCacheSerializerBlock)block; +//+ (nonnull instancetype)cacheSerializerWithBlock:(nonnull BU_SDWebImageCacheSerializerBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheSerializer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheSerializer.h.meta new file mode 100644 index 00000000..c4c6b897 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCacheSerializer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d9953b8cfad994311bf3dcce9929860b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCompat.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCompat.h new file mode 100755 index 00000000..f47a248a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCompat.h @@ -0,0 +1,95 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Jamie Pinkham + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import + +#ifdef __OBJC_GC__ + #error SDWebImage does not support Objective-C Garbage Collection +#endif + +// Seems like TARGET_OS_MAC is always defined (on all platforms). +// To determine if we are running on macOS, use TARGET_OS_OSX in Xcode 8 +#if TARGET_OS_OSX + #define SD_MAC 1 +#else + #define SD_MAC 0 +#endif + +// iOS and tvOS are very similar, UIKit exists on both platforms +// Note: watchOS also has UIKit, but it's very limited +#if TARGET_OS_IOS || TARGET_OS_TV + #define SD_UIKIT 1 +#else + #define SD_UIKIT 0 +#endif + +#if TARGET_OS_IOS + #define SD_IOS 1 +#else + #define SD_IOS 0 +#endif + +#if TARGET_OS_TV + #define SD_TV 1 +#else + #define SD_TV 0 +#endif + +#if TARGET_OS_WATCH + #define SD_WATCH 1 +#else + #define SD_WATCH 0 +#endif + + +#if SD_MAC + #import + #ifndef UIImage + #define UIImage NSImage + #endif + #ifndef UIImageView + #define UIImageView NSImageView + #endif + #ifndef UIView + #define UIView NSView + #endif + #ifndef UIColor + #define UIColor NSColor + #endif +#else + #if SD_UIKIT + #import + #endif + #if SD_WATCH + #import + #ifndef UIView + #define UIView WKInterfaceObject + #endif + #ifndef UIImageView + #define UIImageView WKInterfaceImage + #endif + #endif +#endif + +#ifndef NS_ENUM +#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type +#endif + +#ifndef NS_OPTIONS +#define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type +#endif + +#ifndef dispatch_main_async_safe +#define dispatch_main_async_safe(block)\ + if (dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL) == dispatch_queue_get_label(dispatch_get_main_queue())) {\ + block();\ + } else {\ + dispatch_async(dispatch_get_main_queue(), block);\ + } +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCompat.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCompat.h.meta new file mode 100644 index 00000000..1a10301c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageCompat.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2c4e96214b3f14016a1de0dd92445dbc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDefine.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDefine.h new file mode 100755 index 00000000..21176e48 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDefine.h @@ -0,0 +1,244 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +typedef void(^SDWebImageNoParamsBlock)(void); +typedef NSString * BU_SDWebImageContextOption NS_EXTENSIBLE_STRING_ENUM; +typedef NSDictionary SDWebImageContext; +typedef NSMutableDictionary SDWebImageMutableContext; + +#pragma mark - Image scale + +/** + Return the image scale factor for the specify key, supports file name and url key. + This is the built-in way to check the scale factor when we have no context about it. Because scale factor is not stored in image data (It's typically from filename). + However, you can also provide custom scale factor as well, see `BU_SDWebImageContextImageScaleFactor`. + + @param key The image cache key + @return The scale factor for image + */ +FOUNDATION_EXPORT CGFloat BU_SDImageScaleFactorForKey(NSString * _Nullable key); + +/** + Scale the image with the scale factor for the specify key. If no need to scale, return the original image. + This works for `UIImage`(UIKit) or `NSImage`(AppKit). And this function also preserve the associated value in `UIImage+BUMetadata.h`. + @note This is actually a convenience function, which firstlly call `BU_SDImageScaleFactorForKey` and then call `BU_SDScaledImageForScaleFactor`, kept for backward compatibility. + + @param key The image cache key + @param image The image + @return The scaled image + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDScaledImageForKey(NSString * _Nullable key, UIImage * _Nullable image); + +/** + Scale the image with the scale factor. If no need to scale, return the original image. + This works for `UIImage`(UIKit) or `NSImage`(AppKit). And this function also preserve the associated value in `UIImage+BUMetadata.h`. + + @param scale The image scale factor + @param image The image + @return The scaled image + */ +FOUNDATION_EXPORT UIImage * _Nullable BU_SDScaledImageForScaleFactor(CGFloat scale, UIImage * _Nullable image); + +#pragma mark - WebCache Options + +/// BU_WebCache options +typedef NS_OPTIONS(NSUInteger, BU_SDWebImageOptions) { + /** + * By default, when a URL fail to be downloaded, the URL is blacklisted so the library won't keep trying. + * This flag disable this blacklisting. + */ + BU_SDWebImageRetryFailed = 1 << 0, + + /** + * By default, image downloads are started during UI interactions, this flags disable this feature, + * leading to delayed download on UIScrollView deceleration for instance. + */ + BU_SDWebImageLowPriority = 1 << 1, + + /** + * This flag enables progressive download, the image is displayed progressively during download as a browser would do. + * By default, the image is only displayed once completely downloaded. + */ + BU_SDWebImageProgressiveLoad = 1 << 2, + + /** + * Even if the image is cached, respect the HTTP response cache control, and refresh the image from remote location if needed. + * The disk caching will be handled by NSURLCache instead of SDWebImage leading to slight performance degradation. + * This option helps deal with images changing behind the same request URL, e.g. Facebook graph api profile pics. + * If a cached image is refreshed, the completion block is called once with the cached image and again with the final image. + * + * Use this flag only if you can't make your URLs static with embedded cache busting parameter. + */ + BU_SDWebImageRefreshCached = 1 << 3, + + /** + * In iOS 4+, continue the download of the image if the app goes to background. This is achieved by asking the system for + * extra time in background to let the request finish. If the background task expires the operation will be cancelled. + */ + BU_SDWebImageContinueInBackground = 1 << 4, + + /** + * Handles cookies stored in NSHTTPCookieStore by setting + * NSMutableURLRequest.HTTPShouldHandleCookies = YES; + */ + BU_SDWebImageHandleCookies = 1 << 5, + + /** + * Enable to allow untrusted SSL certificates. + * Useful for testing purposes. Use with caution in production. + */ + BU_SDWebImageAllowInvalidSSLCertificates = 1 << 6, + + /** + * By default, images are loaded in the order in which they were queued. This flag moves them to + * the front of the queue. + */ + BU_SDWebImageHighPriority = 1 << 7, + + /** + * By default, placeholder images are loaded while the image is loading. This flag will delay the loading + * of the placeholder image until after the image has finished loading. + */ + BU_SDWebImageDelayPlaceholder = 1 << 8, + + /** + * We usually don't apply transform on animated images as most transformers could not manage animated images. + * Use this flag to transform them anyway. + */ + BU_SDWebImageTransformAnimatedImage = 1 << 9, + + /** + * By default, image is added to the imageView after download. But in some cases, we want to + * have the hand before setting the image (apply a filter or add it with cross-fade animation for instance) + * Use this flag if you want to manually set the image in the completion when success + */ + BU_SDWebImageAvoidAutoSetImage = 1 << 10, + + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + * This flag take no effect if `SDWebImageAvoidDecodeImage` is set. And it will be ignored if `SDWebImageProgressiveLoad` is set. + */ + BU_SDWebImageScaleDownLargeImages = 1 << 11, + + /** + * By default, we do not query image data when the image is already cached in memory. This mask can force to query image data at the same time. However, this query is asynchronously unless you specify `SDWebImageQueryMemoryDataSync` + */ + BU_SDWebImageQueryMemoryData = 1 << 12, + + /** + * By default, when you only specify `SDWebImageQueryMemoryData`, we query the memory image data asynchronously. Combined this mask as well to query the memory image data synchronously. + * @note Query data synchronously is not recommend, unless you want to ensure the image is loaded in the same runloop to avoid flashing during cell reusing. + */ + BU_SDWebImageQueryMemoryDataSync = 1 << 13, + + /** + * By default, when the memory cache miss, we query the disk cache asynchronously. This mask can force to query disk cache (when memory cache miss) synchronously. + * @note These 3 query options can be combined together. For the full list about these masks combination, see wiki page. + * @note Query data synchronously is not recommend, unless you want to ensure the image is loaded in the same runloop to avoid flashing during cell reusing. + */ + BU_SDWebImageQueryDiskDataSync = 1 << 14, + + /** + * By default, when the cache missed, the image is load from the loader. This flag can prevent this to load from cache only. + */ + BU_SDWebImageFromCacheOnly = 1 << 15, + + /** + * By default, we query the cache before the image is load from the loader. This flag can prevent this to load from loader only. + */ + BU_SDWebImageFromLoaderOnly = 1 << 16, + + /** + * By default, when you use `SDWebImageTransition` to do some view transition after the image load finished, this transition is only applied for image download from the network. This mask can force to apply view transition for memory and disk cache as well. + */ + BU_SDWebImageForceTransition = 1 << 17, + + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + BU_SDWebImageAvoidDecodeImage = 1 << 18, + + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + BU_SDWebImageDecodeFirstFrameOnly = 1 << 19, + + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. However, you can specify to preload all frames into memory to reduce CPU usage when the animated image is shared by lots of imageViews. + * This will actually trigger `preloadAllAnimatedImageFrames` in the background queue(Disk Cache & Download only). + */ + BU_SDWebImagePreloadAllFrames = 1 << 20, + + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available to produce one exactlly matching your custom class as a fallback solution. + * Using this option, can ensure we always callback image with your provided class. If failed to produce one, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDWebImageDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + BU_SDWebImageMatchAnimatedImageClass = 1 << 21, +}; + + +#pragma mark - Context Options + +/** + A String to be used as the operation key for view category to store the image load operation. This is used for view instance which supports different image loading process. If nil, will use the class name as operation key. (NSString *) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextSetImageOperationKey; + +/** + A SDWebImageManager instance to control the image download and cache process using in UIImageView+BU_WebCache category and likes. If not provided, use the shared manager (SDWebImageManager *) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCustomManager; + +/** + A id instance which conforms `BU_SDImageTransformer` protocol. It's used for image transform after the image load finished and store the transformed image to cache. If you provide one, it will ignore the `transformer` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextImageTransformer; + +/** + A CGFloat raw value which specify the image scale factor. The number should be greater than or equal to 1.0. If not provide or the number is invalid, we will use the cache key to specify the scale factor. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextImageScaleFactor; + +/** + A BU_SDImageCacheType raw value which specify the store cache type when the image has just been downloaded and will be stored to the cache. Specify `BU_SDImageCacheTypeNone` to disable cache storage; `BU_SDImageCacheTypeDisk` to store in disk cache only; `BU_SDImageCacheTypeMemory` to store in memory only. And `BU_SDImageCacheTypeAll` to store in both memory cache and disk cache. + If you use image transformer feature, this actually apply for the transformed image, but not the original image itself. Use `BU_SDWebImageContextOriginalStoreCacheType` if you want to control the original image's store cache type at the same time. + If not provide or the value is invalid, we will use `BU_SDImageCacheTypeAll`. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextStoreCacheType; + +/** + The same behavior like `BU_SDWebImageContextStoreCacheType`, but control the store cache type for the original image when you use image transformer feature. This allows the detail control of cache storage for these two images. For example, if you want to store the transformed image into both memory/disk cache, store the original image into disk cache only, use `[.storeCacheType : .all, .originalStoreCacheType : .disk]` + If not provide or the value is invalid, we will use `BU_SDImageCacheTypeNone`, which does not store the original image into cache. (NSNumber) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextOriginalStoreCacheType; + +/** + A Class object which the instance is a `UIImage/NSImage` subclass and adopt `BU_SDAnimatedImage` protocol. We will call `initWithData:scale:options:` to create the instance (or `initWithAnimatedCoder:scale:` when using progressive download) . If the instance create failed, fallback to normal `UIImage/NSImage`. + This can be used to improve animated images rendering performance (especially memory usage on big animated images) with `SDAnimatedImageView` (Class). + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextAnimatedImageClass; + +/** + A id instance to modify the image download request. It's used for downloader to modify the original request from URL and options. If you provide one, it will ignore the `requestModifier` in downloader and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextDownloadRequestModifier; + +/** + A id instance to convert an URL into a cache key. It's used when manager need cache key to use image cache. If you provide one, it will ignore the `cacheKeyFilter` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCacheKeyFilter; + +/** + A id instance to convert the decoded image, the source downloaded data, to the actual data. It's used for manager to store image to the disk cache. If you provide one, it will ignore the `cacheSerializer` in manager and use provided one instead. (id) + */ +FOUNDATION_EXPORT BU_SDWebImageContextOption _Nonnull const BU_SDWebImageContextCacheSerializer; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDefine.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDefine.h.meta new file mode 100644 index 00000000..d74381d0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDefine.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6d72444cc52f24059a48aeda6e7974dd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloader.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloader.h new file mode 100755 index 00000000..2e094496 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloader.h @@ -0,0 +1,290 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDWebImageDownloaderConfig.h" +#import "BU_SDWebImageDownloaderRequestModifier.h" +#import "BU_SDImageLoader.h" + +/// Downloader options +typedef NS_OPTIONS(NSUInteger, SDWebImageDownloaderOptions) { + /** + * Put the download in the low queue priority and task priority. + */ + SDWebImageDownloaderLowPriority = 1 << 0, + + /** + * This flag enables progressive download, the image is displayed progressively during download as a browser would do. + */ + SDWebImageDownloaderProgressiveLoad = 1 << 1, + + /** + * By default, request prevent the use of NSURLCache. With this flag, NSURLCache + * is used with default policies. + */ + SDWebImageDownloaderUseNSURLCache = 1 << 2, + + /** + * Call completion block with nil image/imageData if the image was read from NSURLCache + * And the error code is `SDWebImageErrorCacheNotModified` + * This flag should be combined with `SDWebImageDownloaderUseNSURLCache`. + */ + SDWebImageDownloaderIgnoreCachedResponse = 1 << 3, + + /** + * In iOS 4+, continue the download of the image if the app goes to background. This is achieved by asking the system for + * extra time in background to let the request finish. If the background task expires the operation will be cancelled. + */ + SDWebImageDownloaderContinueInBackground = 1 << 4, + + /** + * Handles cookies stored in NSHTTPCookieStore by setting + * NSMutableURLRequest.HTTPShouldHandleCookies = YES; + */ + SDWebImageDownloaderHandleCookies = 1 << 5, + + /** + * Enable to allow untrusted SSL certificates. + * Useful for testing purposes. Use with caution in production. + */ + SDWebImageDownloaderAllowInvalidSSLCertificates = 1 << 6, + + /** + * Put the download in the high queue priority and task priority. + */ + SDWebImageDownloaderHighPriority = 1 << 7, + + /** + * By default, images are decoded respecting their original size. On iOS, this flag will scale down the + * images to a size compatible with the constrained memory of devices. + * This flag take no effect if `SDWebImageDownloaderAvoidDecodeImage` is set. And it will be ignored if `SDWebImageDownloaderProgressiveLoad` is set. + */ + SDWebImageDownloaderScaleDownLargeImages = 1 << 8, + + /** + * By default, we will decode the image in the background during cache query and download from the network. This can help to improve performance because when rendering image on the screen, it need to be firstly decoded. But this happen on the main queue by Core Animation. + * However, this process may increase the memory usage as well. If you are experiencing a issue due to excessive memory consumption, This flag can prevent decode the image. + */ + SDWebImageDownloaderAvoidDecodeImage = 1 << 9, + + /** + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image. + */ + SDWebImageDownloaderDecodeFirstFrameOnly = 1 << 10, + + /** + * By default, for `BU_SDAnimatedImage`, we decode the animated image frame during rendering to reduce memory usage. This flag actually trigger `preloadAllAnimatedImageFrames = YES` after image load from network + */ + SDWebImageDownloaderPreloadAllFrames = 1 << 11, + + /** + * By default, when you use `BU_SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `BU_SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution. + * Using this option, can ensure we always produce image with your provided class. If failed, a error with code `SDWebImageErrorBadImageData` will been used. + * Note this options is not compatible with `SDWebImageDownloaderDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. + */ + SDWebImageDownloaderMatchAnimatedImageClass = 1 << 12, +}; + +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadStartNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadReceiveResponseNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadStopNotification; +FOUNDATION_EXPORT NSNotificationName _Nonnull const BU_SDWebImageDownloadFinishNotification; + +typedef SDImageLoaderProgressBlock SDWebImageDownloaderProgressBlock; +typedef SDImageLoaderCompletedBlock SDWebImageDownloaderCompletedBlock; + +/** + * A token associated with each download. Can be used to cancel a download + */ +@interface BU_SDWebImageDownloadToken : NSObject + +/** + Cancel the current download. + */ +- (void)cancel; + +/** + The download's URL. + */ +@property (nonatomic, strong, nullable, readonly) NSURL *url; + +/** + The download's request. + */ +@property (nonatomic, strong, nullable, readonly) NSURLRequest *request; + +/** + The download's response. + */ +@property (nonatomic, strong, nullable, readonly) NSURLResponse *response; + +@end + + +/** + * Asynchronous downloader dedicated and optimized for image loading. + */ +@interface BU_SDWebImageDownloader : NSObject + +/** + * Downloader Config object - storing all kind of settings. + * Most config properties support dynamic changes during download, except something like `sessionConfiguration`, see `BU_SDWebImageDownloaderConfig` for more detail. + */ +@property (nonatomic, copy, readonly, nonnull) BU_SDWebImageDownloaderConfig *config; + +/** + * Set the request modifier to modify the original download request before image load. + * This request modifier method will be called for each downloading image request. Return the original request means no modication. Return nil will cancel the download request. + * Defaults to nil, means does not modify the original download request. + * @note If you want to modify single request, consider using `BU_SDWebImageContextDownloadRequestModifier` context option. + */ +@property (nonatomic, strong, nullable) id requestModifier; + +/** + * The configuration in use by the internal NSURLSession. If you want to provide a custom sessionConfiguration, use `BU_SDWebImageDownloaderConfig.sessionConfiguration` and create a new downloader instance. + @note This is immutable according to NSURLSession's documentation. Mutating this object directly has no effect. + */ +@property (nonatomic, readonly, nonnull) NSURLSessionConfiguration *sessionConfiguration; + +/** + * Gets/Sets the download queue suspension state. + */ +@property (nonatomic, assign, getter=isSuspended) BOOL suspended; + +/** + * Shows the current amount of downloads that still need to be downloaded + */ +@property (nonatomic, assign, readonly) NSUInteger currentDownloadCount; + +/** + * Returns the global shared downloader instance. Which use the `BU_SDWebImageDownloaderConfig.defaultDownloaderConfig` config. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageDownloader *sharedDownloader; + +/** + Creates an instance of a downloader with specified downloader config. + You can specify session configuration, timeout or operation class through downloader config. + + @param config The downloader config. If you specify nil, the `defaultDownloaderConfig` will be used. + @return new instance of downloader class + */ +- (nonnull instancetype)initWithConfig:(nullable BU_SDWebImageDownloaderConfig *)config NS_DESIGNATED_INITIALIZER; + +/** + * Set a value for a HTTP header to be appended to each download HTTP request. + * + * @param value The value for the header field. Use `nil` value to remove the header field. + * @param field The name of the header field to set. + */ +- (void)setValue:(nullable NSString *)value forHTTPHeaderField:(nullable NSString *)field; + +/** + * Returns the value of the specified HTTP header field. + * + * @return The value associated with the header field field, or `nil` if there is no corresponding header field. + */ +- (nullable NSString *)valueForHTTPHeaderField:(nullable NSString *)field; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param completedBlock A block called once the download is completed. + * If the download succeeded, the image parameter is set, in case of error, + * error parameter is set with the error. The last parameter is always YES + * if SDWebImageDownloaderProgressiveDownload isn't use. With the + * SDWebImageDownloaderProgressiveDownload option, this block is called + * repeatedly with the partial image object and the finished argument set to NO + * before to be called a last time with the full image and finished argument + * set to YES. In case of error, the finished argument is always YES. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +//- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url +// completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param options The options to be used for this download + * @param progressBlock A block called repeatedly while the image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called once the download is completed. + * If the download succeeded, the image parameter is set, in case of error, + * error parameter is set with the error. The last parameter is always YES + * if SDWebImageDownloaderProgressiveLoad isn't use. With the + * SDWebImageDownloaderProgressiveLoad option, this block is called + * repeatedly with the partial image object and the finished argument set to NO + * before to be called a last time with the full image and finished argument + * set to YES. In case of error, the finished argument is always YES. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url + options:(SDWebImageDownloaderOptions)options + progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Creates a SDWebImageDownloader async downloader instance with a given URL + * + * The delegate will be informed when the image is finish downloaded or an error has happen. + * + * @see SDWebImageDownloaderDelegate + * + * @param url The URL to the image to download + * @param options The options to be used for this download + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called repeatedly while the image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called once the download is completed. + * + * @return A token (SDWebImageDownloadToken) that can be used to cancel this operation + */ +- (nullable BU_SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Cancels all download operations in the queue + */ +//- (void)cancelAllDownloads; + +/** + * Invalidates the managed session, optionally canceling pending operations. + * @note If you use custom downloader instead of the shared downloader, you need call this method when you do not use it to avoid memory leak + * @param cancelPendingOperations Whether or not to cancel pending operations. + * @note Calling this method on the shared downloader has no effect. + */ +//- (void)invalidateSessionAndCancel:(BOOL)cancelPendingOperations; + +@end + + +/** + SDWebImageDownloader is the built-in image loader conform to `SDImageLoader`. Which provide the HTTP/HTTPS/FTP download, or local file URL using NSURLSession. + However, this downloader class itself also support customization for advanced users. You can specify `operationClass` in download config to custom download operation, See `SDWebImageDownloaderOperation`. + If you want to provide some image loader which beyond network or local file, consider to create your own custom class conform to `SDImageLoader`. + */ +@interface BU_SDWebImageDownloader (SDImageLoader) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloader.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloader.h.meta new file mode 100644 index 00000000..e02e115d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloader.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 735ce2835958b421fa342e4679601135 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderConfig.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderConfig.h new file mode 100755 index 00000000..bda4eae1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderConfig.h @@ -0,0 +1,98 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/// Operation execution order +typedef NS_ENUM(NSInteger, SDWebImageDownloaderExecutionOrder) { + /** + * Default value. All download operations will execute in queue style (first-in-first-out). + */ + SDWebImageDownloaderFIFOExecutionOrder, + + /** + * All download operations will execute in stack style (last-in-first-out). + */ + SDWebImageDownloaderLIFOExecutionOrder +}; + +/** + The class contains all the config for image downloader + @note This class conform to NSCopying, make sure to add the property in `copyWithZone:` as well. + */ +@interface BU_SDWebImageDownloaderConfig : NSObject + +/** + Gets the default downloader config used for shared instance or initialization when it does not provide any downloader config. Such as `SDWebImageDownloader.sharedDownloader`. + @note You can modify the property on default downloader config, which can be used for later created downloader instance. The already created downloader instance does not get affected. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageDownloaderConfig *defaultDownloaderConfig; + +/** + * The maximum number of concurrent downloads. + * Defaults to 6. + */ +@property (nonatomic, assign) NSInteger maxConcurrentDownloads; + +/** + * The timeout value (in seconds) for each download operation. + * Defaults to 15.0. + */ +@property (nonatomic, assign) NSTimeInterval downloadTimeout; + +/** + * The minimum interval about progress percent during network downloading. Which means the next progress callback and current progress callback's progress percent difference should be larger or equal to this value. However, the final finish download progress callback does not get effected. + * The value should be 0.0-1.0. + * @note If you're using progressive decoding feature, this will also effect the image refresh rate. + * @note This value may enhance the performance if you don't want progress callback too frequently. + * Defaults to 0, which means each time we receive the new data from URLSession, we callback the progressBlock immediately. + */ +@property (nonatomic, assign) double minimumProgressInterval; + +/** + * The custom session configuration in use by NSURLSession. If you don't provide one, we will use `defaultSessionConfiguration` instead. + * Defatuls to nil. + * @note This property does not support dynamic changes, means it's immutable after the downloader instance initialized. + */ +@property (nonatomic, strong, nullable) NSURLSessionConfiguration *sessionConfiguration; + +/** + * Gets/Sets a subclass of `SDWebImageDownloaderOperation` as the default + * `NSOperation` to be used each time SDWebImage constructs a request + * operation to download an image. + * Defaults to nil. + * @note Passing `NSOperation` to set as default. Passing `nil` will revert to `SDWebImageDownloaderOperation`. + */ +@property (nonatomic, assign, nullable) Class operationClass; + +/** + * Changes download operations execution order. + * Defaults to `SDWebImageDownloaderFIFOExecutionOrder`. + */ +@property (nonatomic, assign) SDWebImageDownloaderExecutionOrder executionOrder; + +/** + * Set the default URL credential to be set for request operations. + * Defaults to nil. + */ +@property (nonatomic, copy, nullable) NSURLCredential *urlCredential; + +/** + * Set username using for HTTP Basic authentication. + * Defaults to nil. + */ +@property (nonatomic, copy, nullable) NSString *username; + +/** + * Set password using for HTTP Basic authentication. + * Defautls to nil. + */ +@property (nonatomic, copy, nullable) NSString *password; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderConfig.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderConfig.h.meta new file mode 100644 index 00000000..cb74fcd2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderConfig.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c80cbb611bc5e4457b632034f1e77cb1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderOperation.h new file mode 100755 index 00000000..1c719e15 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderOperation.h @@ -0,0 +1,146 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageDownloader.h" +#import "BU_SDWebImageOperation.h" + +/** + Describes a downloader operation. If one wants to use a custom downloader op, it needs to inherit from `NSOperation` and conform to this protocol + For the description about these methods, see `SDWebImageDownloaderOperation` + @note If your custom operation class does not use `NSURLSession` at all, do not implement the optional methods and session delegate methods. + */ +@protocol SDWebImageDownloaderOperation +@required +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options; + +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context; + +- (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +- (BOOL)cancel:(nullable id)token; + +@property (strong, nonatomic, readonly, nullable) NSURLRequest *request; +@property (strong, nonatomic, readonly, nullable) NSURLResponse *response; + +@optional +@property (strong, nonatomic, readonly, nullable) NSURLSessionTask *dataTask; +@property (strong, nonatomic, nullable) NSURLCredential *credential; +@property (assign, nonatomic) double minimumProgressInterval; + +@end + + +/** + The download operation class for SDWebImageDownloader. + */ +@interface BU_SDWebImageDownloaderOperation : NSOperation + +/** + * The request used by the operation's task. + */ +@property (strong, nonatomic, readonly, nullable) NSURLRequest *request; + +/** + * The response returned by the operation's task. + */ +@property (strong, nonatomic, readonly, nullable) NSURLResponse *response; + +/** + * The operation's task + */ +@property (strong, nonatomic, readonly, nullable) NSURLSessionTask *dataTask; + +/** + * The credential used for authentication challenges in `-URLSession:task:didReceiveChallenge:completionHandler:`. + * + * This will be overridden by any shared credentials that exist for the username or password of the request URL, if present. + */ +@property (strong, nonatomic, nullable) NSURLCredential *credential; + +/** + * The minimum interval about progress percent during network downloading. Which means the next progress callback and current progress callback's progress percent difference should be larger or equal to this value. However, the final finish download progress callback does not get effected. + * The value should be 0.0-1.0. + * @note If you're using progressive decoding feature, this will also effect the image refresh rate. + * @note This value may enhance the performance if you don't want progress callback too frequently. + * Defaults to 0, which means each time we receive the new data from URLSession, we callback the progressBlock immediately. + */ +@property (assign, nonatomic) double minimumProgressInterval; + +/** + * The options for the receiver. + */ +@property (assign, nonatomic, readonly) SDWebImageDownloaderOptions options; + +/** + * The context for the receiver. + */ +@property (copy, nonatomic, readonly, nullable) SDWebImageContext *context; + +/** + * Initializes a `SDWebImageDownloaderOperation` object + * + * @see SDWebImageDownloaderOperation + * + * @param request the URL request + * @param session the URL session in which this operation will run + * @param options downloader options + * + * @return the initialized instance + */ +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options; + +/** + * Initializes a `SDWebImageDownloaderOperation` object + * + * @see SDWebImageDownloaderOperation + * + * @param request the URL request + * @param session the URL session in which this operation will run + * @param options downloader options + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * + * @return the initialized instance + */ +- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request + inSession:(nullable NSURLSession *)session + options:(SDWebImageDownloaderOptions)options + context:(nullable SDWebImageContext *)context NS_DESIGNATED_INITIALIZER; + +/** + * Adds handlers for progress and completion. Returns a tokent that can be passed to -cancel: to cancel this set of + * callbacks. + * + * @param progressBlock the block executed when a new chunk of data arrives. + * @note the progress block is executed on a background queue + * @param completedBlock the block executed when the download is done. + * @note the completed block is executed on the main queue for success. If errors are found, there is a chance the block will be executed on a background queue + * + * @return the token to use to cancel this set of handlers + */ +- (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock + completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock; + +/** + * Cancels a set of callbacks. Once all callbacks are canceled, the operation is cancelled. + * + * @param token the token representing a set of callbacks to cancel + * + * @return YES if the operation was stopped because this was the last token to be canceled. NO otherwise. + */ +- (BOOL)cancel:(nullable id)token; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderOperation.h.meta new file mode 100644 index 00000000..1b1d69ad --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: edfa803f72a7d4d9abeeb41deff28add +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderRequestModifier.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderRequestModifier.h new file mode 100755 index 00000000..a6431450 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderRequestModifier.h @@ -0,0 +1,32 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +typedef NSURLRequest * _Nullable (^SDWebImageDownloaderRequestModifierBlock)(NSURLRequest * _Nonnull request); + +/** + This is the protocol for downloader request modifier. + We can use a block to specify the downloader request modifier. But Using protocol can make this extensible, and allow Swift user to use it easily instead of using `@convention(block)` to store a block into context options. + */ +@protocol SDWebImageDownloaderRequestModifier + +- (nullable NSURLRequest *)modifiedRequestWithRequest:(nonnull NSURLRequest *)request; + +@end + +/** + A downloader request modifier class with block. + */ +@interface BU_SDWebImageDownloaderRequestModifier : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull SDWebImageDownloaderRequestModifierBlock)block; ++ (nonnull instancetype)requestModifierWithBlock:(nonnull SDWebImageDownloaderRequestModifierBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta new file mode 100644 index 00000000..c5ff8b4a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageDownloaderRequestModifier.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d26e0eecb638403b96c81da33c1824b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageError.h new file mode 100755 index 00000000..90d1da46 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageError.h @@ -0,0 +1,25 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Jamie Pinkham + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +FOUNDATION_EXPORT NSErrorDomain const _Nonnull BU_SDWebImageErrorDomain; + +/// The HTTP status code for invalid download response (NSNumber *) +FOUNDATION_EXPORT NSErrorUserInfoKey const _Nonnull BU_SDWebImageErrorDownloadStatusCodeKey; + +/// SDWebImage error domain and codes +typedef NS_ERROR_ENUM(BU_SDWebImageErrorDomain, SDWebImageError) { + SDWebImageErrorInvalidURL = 1000, // The URL is invalid, such as nil URL or corrupted URL + SDWebImageErrorBadImageData = 1001, // The image data can not be decoded to image, or the image data is empty + SDWebImageErrorCacheNotModified = 1002, // The remote location specify that the cached image is not modified, such as the HTTP response 304 code. It's useful for `SDWebImageRefreshCached` + SDWebImageErrorInvalidDownloadOperation = 2000, // The image download operation is invalid, such as nil operation or unexpected error occur when operation initialized + SDWebImageErrorInvalidDownloadStatusCode = 2001, // The image download response a invalid status code. You can check the status code in error's userInfo under `BU_SDWebImageErrorDownloadStatusCodeKey` + SDWebImageErrorCancelled = 2002, // The image loading operation is cancelled before finished, during either async disk cache query, or waiting before actual network request. For actual network request error, check `NSURLErrorDomain` error domain and code. +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageError.h.meta new file mode 100644 index 00000000..ae6cf1dc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4fcc984edb0504a20a26f6fe68a3387a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageIndicator.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageIndicator.h new file mode 100755 index 00000000..0573515c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageIndicator.h @@ -0,0 +1,115 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT || SD_MAC + +/** + A protocol to custom the indicator during the image loading. + All of these methods are called from main queue. + */ +@protocol SDWebImageIndicator + +@required +/** + The view associate to the indicator. + + @return The indicator view + */ +@property (nonatomic, strong, readonly, nonnull) UIView *indicatorView; + +/** + Start the animating for indicator. + */ +- (void)startAnimatingIndicator; + +/** + Stop the animating for indicator. + */ +- (void)stopAnimatingIndicator; + +@optional +/** + Update the loading progress (0-1.0) for indicator. Optional + + @param progress The progress, value between 0 and 1.0 + */ +- (void)updateIndicatorProgress:(double)progress; + +@end + +#pragma mark - Activity Indicator + +/** + Activity indicator class. + for UIKit(macOS), it use a `UIActivityIndicatorView`. + for AppKit(macOS), it use a `NSProgressIndicator` with the spinning style. + */ +//@interface BU_SDWebImageActivityIndicator : NSObject +// +//#if SD_UIKIT +//@property (nonatomic, strong, readonly, nonnull) UIActivityIndicatorView *indicatorView; +//#else +//@property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView; +//#endif +// +//@end +// +///** +// Convenience way to use activity indicator. +// */ +//@interface BU_SDWebImageActivityIndicator (Conveniences) +// +///// These indicator use the fixed color without dark mode support +///// gray-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *grayIndicator; +///// large gray-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *grayLargeIndicator; +///// white-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *whiteIndicator; +///// large white-style activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *whiteLargeIndicator; +///// These indicator use the system style, supports dark mode if available (iOS 13+/macOS 10.14+) +///// large activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *largeIndicator; +///// medium activity indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageActivityIndicator *mediumIndicator; +// +//@end + +#pragma mark - Progress Indicator + +/** + Progress indicator class. + for UIKit(macOS), it use a `UIProgressView`. + for AppKit(macOS), it use a `NSProgressIndicator` with the bar style. + */ +//@interface BU_SDWebImageProgressIndicator : NSObject +// +//#if SD_UIKIT +//@property (nonatomic, strong, readonly, nonnull) UIProgressView *indicatorView; +//#else +//@property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView; +//#endif +// +//@end + +/** + Convenience way to create progress indicator. Remember to specify the indicator width or use layout constraint if need. +// */ +//@interface BU_SDWebImageProgressIndicator (Conveniences) +// +///// default-style progress indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageProgressIndicator *defaultIndicator; +///// bar-style progress indicator +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageProgressIndicator *barIndicator API_UNAVAILABLE(macos, tvos); +// +//@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageIndicator.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageIndicator.h.meta new file mode 100644 index 00000000..41056976 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageIndicator.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea31b2fb7b386475f94f024501e4864c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageManager.h new file mode 100755 index 00000000..544840e4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageManager.h @@ -0,0 +1,269 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" +#import "BU_SDImageCacheDefine.h" +#import "BU_SDImageLoader.h" +#import "BU_SDImageTransformer.h" +#import "BU_SDWebImageCacheKeyFilter.h" +#import "BU_SDWebImageCacheSerializer.h" +#import "BU_SDWebImageOptionsProcessor.h" + +typedef void(^BU_SDExternalCompletionBlock)(UIImage * _Nullable image, NSError * _Nullable error, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); + +typedef void(^BU_SDInternalCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BU_SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL); + +/** + A combined operation representing the cache and loader operation. You can use it to cancel the load process. + */ +@interface BU_SDWebImageCombinedOperation : NSObject + +/** + Cancel the current operation, including cache and loader process + */ +- (void)cancel; + +/** + The cache operation from the image cache query + */ +@property (strong, nonatomic, nullable, readonly) id cacheOperation; + +/** + The loader operation from the image loader (such as download operation) + */ +@property (strong, nonatomic, nullable, readonly) id loaderOperation; + +@end + + +@class BU_SDWebImageManager; + +/** + The manager delegate protocol. + */ +@protocol BU_SDWebImageManagerDelegate + +@optional + +/** + * Controls which image should be downloaded when the image is not found in the cache. + * + * @param imageManager The current `SDWebImageManager` + * @param imageURL The url of the image to be downloaded + * + * @return Return NO to prevent the downloading of the image on cache misses. If not implemented, YES is implied. + */ +- (BOOL)imageManager:(nonnull BU_SDWebImageManager *)imageManager shouldDownloadImageForURL:(nonnull NSURL *)imageURL; + +/** + * Controls the complicated logic to mark as failed URLs when download error occur. + * If the delegate implement this method, we will not use the built-in way to mark URL as failed based on error code; + @param imageManager The current `SDWebImageManager` + @param imageURL The url of the image + @param error The download error for the url + @return Whether to block this url or not. Return YES to mark this URL as failed. + */ +- (BOOL)imageManager:(nonnull BU_SDWebImageManager *)imageManager shouldBlockFailedURL:(nonnull NSURL *)imageURL withError:(nonnull NSError *)error; + +@end + +/** + * The SDWebImageManager is the class behind the UIImageView+BU_WebCache category and likes. + * It ties the asynchronous downloader (SDWebImageDownloader) with the image cache store (SDImageCache). + * You can use this class directly to benefit from web image downloading with caching in another context than + * a UIView. + * + * Here is a simple example of how to use SDWebImageManager: + * + * @code + +SDWebImageManager *manager = [SDWebImageManager sharedManager]; +[manager loadImageWithURL:imageURL + options:0 + progress:nil + completed:^(UIImage *image, NSError *error, BU_SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { + if (image) { + // do something with image + } + }]; + + * @endcode + */ +@interface BU_SDWebImageManager : NSObject + +/** + * The delegate for manager. Defatuls to nil. + */ +@property (weak, nonatomic, nullable) id delegate; + +/** + * The image cache used by manager to query image cache. + */ +@property (strong, nonatomic, readonly, nonnull) id imageCache; + +/** + * The image loader used by manager to load image. + */ +@property (strong, nonatomic, readonly, nonnull) id imageLoader; + +/** + The image transformer for manager. It's used for image transform after the image load finished and store the transformed image to cache, see `BU_SDImageTransformer`. + Defaults to nil, which means no transform is applied. + @note This will affect all the load requests for this manager if you provide. However, you can pass `BU_SDWebImageContextImageTransformer` in context arg to explicitly use that transformer instead. + */ +@property (strong, nonatomic, nullable) id transformer; + +/** + * The cache filter is used to convert an URL into a cache key each time SDWebImageManager need cache key to use image cache. + * + * The following example sets a filter in the application delegate that will remove any query-string from the + * URL before to use it as a cache key: + * + * @code + SDWebImageManager.sharedManager.cacheKeyFilter =[BU_SDWebImageCacheKeyFilter cacheKeyFilterWithBlock:^NSString * _Nullable(NSURL * _Nonnull url) { + url = [[NSURL alloc] initWithScheme:url.scheme host:url.host path:url.path]; + return [url absoluteString]; + }]; + * @endcode + */ +@property (nonatomic, strong, nullable) id cacheKeyFilter; + +/** + * The cache serializer is used to convert the decoded image, the source downloaded data, to the actual data used for storing to the disk cache. If you return nil, means to generate the data from the image instance, see `SDImageCache`. + * For example, if you are using WebP images and facing the slow decoding time issue when later retriving from disk cache again. You can try to encode the decoded image to JPEG/PNG format to disk cache instead of source downloaded data. + * @note The `image` arg is nonnull, but when you also provide a image transformer and the image is transformed, the `data` arg may be nil, take attention to this case. + * @note This method is called from a global queue in order to not to block the main thread. + * @code + SDWebImageManager.sharedManager.cacheSerializer = [BU_SDWebImageCacheSerializer cacheSerializerWithBlock:^NSData * _Nullable(UIImage * _Nonnull image, NSData * _Nullable data, NSURL * _Nullable imageURL) { + BU_SDImageFormat format = [NSData sdBu_imageFormatForImageData:data]; + switch (format) { + case BU_SDImageFormatWebP: + return image.images ? data : nil; + default: + return data; + } +}]; + * @endcode + * The default value is nil. Means we just store the source downloaded data to disk cache. + */ +@property (nonatomic, strong, nullable) id cacheSerializer; + +/** + The options processor is used, to have a global control for all the image request options and context option for current manager. + @note If you use `transformer`, `cacheKeyFilter` or `cacheSerializer` property of manager, the input context option already apply those properties before passed. This options processor is a better replacement for those property in common usage. + For example, you can control the global options, based on the URL or original context option like the below code. + + @code + SDWebImageManager.sharedManager.optionsProcessor = [BU_SDWebImageOptionsProcessor optionsProcessorWithBlock:^BU_SDWebImageOptionsResult * _Nullable(NSURL * _Nullable url, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context) { + // Only do animation on `SDAnimatedImageView` + if (!context[BU_SDWebImageContextAnimatedImageClass]) { + options |= SDWebImageDecodeFirstFrameOnly; + } + // Do not force decode for png url + if ([url.lastPathComponent isEqualToString:@"png"]) { + options |= SDWebImageAvoidDecodeImage; + } + // Always use screen scale factor + SDWebImageMutableContext *mutableContext = [NSDictionary dictionaryWithDictionary:context]; + mutableContext[BU_SDWebImageContextImageScaleFactor] = @(UIScreen.mainScreen.scale); + context = [mutableContext copy]; + + return [[BU_SDWebImageOptionsResult alloc] initWithOptions:options context:context]; + }]; + @endcode + */ +@property (nonatomic, strong, nullable) id optionsProcessor; + +/** + * Check one or more operations running + */ +@property (nonatomic, assign, readonly, getter=isRunning) BOOL running; + +/** + The default image cache when the manager which is created with no arguments. Such as shared manager or init. + Defaults to nil. Means using `SDImageCache.sharedImageCache` + */ +@property (nonatomic, class, nullable) id defaultImageCache; + +/** + The default image loader for manager which is created with no arguments. Such as shared manager or init. + Defaults to nil. Means using `SDWebImageDownloader.sharedDownloader` + */ +@property (nonatomic, class, nullable) id defaultImageLoader; + +/** + * Returns global shared manager instance. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImageManager *sharedManager; + +/** + * Allows to specify instance of cache and image loader used with image manager. + * @return new instance of `SDWebImageManager` with specified cache and loader. + */ +- (nonnull instancetype)initWithCache:(nonnull id)cache loader:(nonnull id)loader NS_DESIGNATED_INITIALIZER; + +/** + * Downloads the image at the given URL if not present in cache or return the cached version otherwise. + * + * @param url The URL to the image + * @param options A mask to specify options to use for this request + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * + * This parameter is required. + * + * This block has no return value and takes the requested UIImage as first parameter and the NSData representation as second parameter. + * In case of error the image parameter is nil and the third parameter may contain an NSError. + * + * The forth parameter is an `BU_SDImageCacheType` enum indicating if the image was retrieved from the local cache + * or from the memory cache or from the network. + * + * The fith parameter is set to NO when the SDWebImageProgressiveLoad option is used and the image is + * downloading. This block is thus called repeatedly with a partial image. When image is fully downloaded, the + * block is called a last time with the full image and the last parameter set to YES. + * + * The last parameter is the original image URL + * + * @return Returns an instance of BU_SDWebImageCombinedOperation, which you can cancel the loading process. + */ +- (nullable BU_SDWebImageCombinedOperation *)loadImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nonnull BU_SDInternalCompletionBlock)completedBlock; + +/** + * Downloads the image at the given URL if not present in cache or return the cached version otherwise. + * + * @param url The URL to the image + * @param options A mask to specify options to use for this request + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * + * @return Returns an instance of BU_SDWebImageCombinedOperation, which you can cancel the loading process. + */ +- (nullable BU_SDWebImageCombinedOperation *)loadImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nonnull BU_SDInternalCompletionBlock)completedBlock; + +/** + * Cancel all current operations + */ +//- (void)cancelAll; + +/** + * Return the cache key for a given URL + */ +- (nullable NSString *)cacheKeyForURL:(nullable NSURL *)url; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageManager.h.meta new file mode 100644 index 00000000..4fc6f5a4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 490b2eac5b2aa4113acac9ca339c3884 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOperation.h new file mode 100755 index 00000000..3940e9e5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOperation.h @@ -0,0 +1,21 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import + +/// A protocol represents cancelable operation. +@protocol BU_SDWebImageOperation + +- (void)cancel; + +@end + +/// NSOperation conform to `BU_SDWebImageOperation`. +@interface NSOperation (BU_SDWebImageOperation) + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOperation.h.meta new file mode 100644 index 00000000..29728623 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8c2bfda56a78d42df8f88bad30bd69da +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOptionsProcessor.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOptionsProcessor.h new file mode 100755 index 00000000..99e295c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOptionsProcessor.h @@ -0,0 +1,72 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" + +@class BU_SDWebImageOptionsResult; + +typedef BU_SDWebImageOptionsResult * _Nullable(^BU_SDWebImageOptionsProcessorBlock)(NSURL * _Nullable url, BU_SDWebImageOptions options, SDWebImageContext * _Nullable context); + +/** + The options result contains both options and context. + */ +@interface BU_SDWebImageOptionsResult : NSObject + +/** + BU_WebCache options. + */ +@property (nonatomic, assign, readonly) BU_SDWebImageOptions options; + +/** + Context options. + */ +@property (nonatomic, copy, readonly, nullable) SDWebImageContext *context; + +/** + Create a new options result. + + @param options options + @param context context + @return The options result contains both options and context. + */ +- (nonnull instancetype)initWithOptions:(BU_SDWebImageOptions)options context:(nullable SDWebImageContext *)context; + +@end + +/** + This is the protocol for options processor. + Options processor can be used, to control the final result for individual image request's `BU_SDWebImageOptions` and `SDWebImageContext` + Implements the protocol to have a global control for each indivadual image request's option. + */ +@protocol BU_SDWebImageOptionsProcessor + +/** + Return the processed options result for specify image URL, with its options and context + + @param url The URL to the image + @param options A mask to specify options to use for this request + @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + @return The processed result, contains both options and context + */ +- (nullable BU_SDWebImageOptionsResult *)processedResultForURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +@end + +/** + A options processor class with block. + */ +@interface BU_SDWebImageOptionsProcessor : NSObject + +- (nonnull instancetype)initWithBlock:(nonnull BU_SDWebImageOptionsProcessorBlock)block; ++ (nonnull instancetype)optionsProcessorWithBlock:(nonnull BU_SDWebImageOptionsProcessorBlock)block; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOptionsProcessor.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOptionsProcessor.h.meta new file mode 100644 index 00000000..71349f16 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageOptionsProcessor.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 29307392e026a42868a18ce671937f2e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImagePrefetcher.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImagePrefetcher.h new file mode 100755 index 00000000..1e0eb5d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImagePrefetcher.h @@ -0,0 +1,143 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageManager.h" + +@class BU_SDWebImagePrefetcher; + +/** + A token represents a list of URLs, can be used to cancel the download. + */ +@interface BU_SDWebImagePrefetchToken : NSObject + +/** + * Cancel the current prefetching. + */ +- (void)cancel; + +/** + list of URLs of current prefetching. + */ +@property (nonatomic, copy, readonly, nullable) NSArray *urls; + +@end + +/** + The prefetcher delegate protocol + */ +@protocol BU_SDWebImagePrefetcherDelegate + +@optional + +/** + * Called when an image was prefetched. Which means it's called when one URL from any of prefetching finished. + * + * @param imagePrefetcher The current image prefetcher + * @param imageURL The image url that was prefetched + * @param finishedCount The total number of images that were prefetched (successful or not) + * @param totalCount The total number of images that were to be prefetched + */ +- (void)imagePrefetcher:(nonnull BU_SDWebImagePrefetcher *)imagePrefetcher didPrefetchURL:(nullable NSURL *)imageURL finishedCount:(NSUInteger)finishedCount totalCount:(NSUInteger)totalCount; + +/** + * Called when all images are prefetched. Which means it's called when all URLs from all of prefetching finished. + * @param imagePrefetcher The current image prefetcher + * @param totalCount The total number of images that were prefetched (whether successful or not) + * @param skippedCount The total number of images that were skipped + */ +- (void)imagePrefetcher:(nonnull BU_SDWebImagePrefetcher *)imagePrefetcher didFinishWithTotalCount:(NSUInteger)totalCount skippedCount:(NSUInteger)skippedCount; + +@end + +typedef void(^SDWebImagePrefetcherProgressBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfTotalUrls); +typedef void(^SDWebImagePrefetcherCompletionBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls); + +/** + * Prefetch some URLs in the cache for future use. Images are downloaded in low priority. + */ +@interface BU_SDWebImagePrefetcher : NSObject + +/** + * The web image manager used by prefetcher to prefetch images. + * @note You can specify a standalone manager and downloader with custom configuration suitable for image prefetching. Such as `currentDownloadCount` or `downloadTimeout`. + */ +@property (strong, nonatomic, readonly, nonnull) BU_SDWebImageManager *manager; + +/** + * Maximum number of URLs to prefetch at the same time. Defaults to 3. + */ +@property (nonatomic, assign) NSUInteger maxConcurrentPrefetchCount; + +/** + * The options for prefetcher. Defaults to SDWebImageLowPriority. + */ +@property (nonatomic, assign) BU_SDWebImageOptions options; + +/** + * The context for prefetcher. Defaults to nil. + */ +@property (nonatomic, copy, nullable) SDWebImageContext *context; + +/** + * Queue options for prefetcher when call the progressBlock, completionBlock and delegate methods. Defaults to Main Queue. + * @note The call is asynchronously to avoid blocking target queue. + * @note The delegate queue should be set before any prefetching start and may not be changed during prefetching to avoid thread-safe problem. + */ +@property (strong, nonatomic, nonnull) dispatch_queue_t delegateQueue; + +/** + * The delegate for the prefetcher. Defatuls to nil. + */ +@property (weak, nonatomic, nullable) id delegate; + +/** + * Returns the global shared image prefetcher instance. It use a standalone manager which is different from shared manager. + */ +@property (nonatomic, class, readonly, nonnull) BU_SDWebImagePrefetcher *sharedImagePrefetcher; + +/** + * Allows you to instantiate a prefetcher with any arbitrary image manager. + */ +- (nonnull instancetype)initWithImageManager:(nonnull BU_SDWebImageManager *)manager NS_DESIGNATED_INITIALIZER; + +/** + * Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching. It based on the image manager so the image may from the cache and network according to the `options` property. + * Prefetching is seperate to each other, which means the progressBlock and completionBlock you provide is bind to the prefetching for the list of urls. + * Attention that call this will not cancel previous fetched urls. You should keep the token return by this to cancel or cancel all the prefetch. + * + * @param urls list of URLs to prefetch + * @return the token to cancel the current prefetching. + */ +//- (nullable BU_SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray *)urls; + +/** + * Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching. It based on the image manager so the image may from the cache and network according to the `options` property. + * Prefetching is seperate to each other, which means the progressBlock and completionBlock you provide is bind to the prefetching for the list of urls. + * Attention that call this will not cancel previous fetched urls. You should keep the token return by this to cancel or cancel all the prefetch. + * + * @param urls list of URLs to prefetch + * @param progressBlock block to be called when progress updates; + * first parameter is the number of completed (successful or not) requests, + * second parameter is the total number of images originally requested to be prefetched + * @param completionBlock block to be called when the current prefetching is completed + * first param is the number of completed (successful or not) requests, + * second parameter is the number of skipped requests + * @return the token to cancel the current prefetching. + */ +- (nullable BU_SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray *)urls + progress:(nullable SDWebImagePrefetcherProgressBlock)progressBlock + completed:(nullable SDWebImagePrefetcherCompletionBlock)completionBlock; + +/** + * Remove and cancel all the prefeching for the prefetcher. + */ +//- (void)cancelPrefetching; + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImagePrefetcher.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImagePrefetcher.h.meta new file mode 100644 index 00000000..513ebd43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImagePrefetcher.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01337a6e4fed5409e98c9f6e50f5ad77 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageTransition.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageTransition.h new file mode 100755 index 00000000..c0e3ea37 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageTransition.h @@ -0,0 +1,89 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT || SD_MAC +#import "BU_SDImageCache.h" + +#if SD_UIKIT +typedef UIViewAnimationOptions SDWebImageAnimationOptions; +#else +typedef NS_OPTIONS(NSUInteger, SDWebImageAnimationOptions) { + SDWebImageAnimationOptionAllowsImplicitAnimation = 1 << 0, // specify `allowsImplicitAnimation` for the `NSAnimationContext` +}; +#endif + +typedef void (^SDWebImageTransitionPreparesBlock)(__kindof UIView * _Nonnull view, UIImage * _Nullable image, NSData * _Nullable imageData, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); +typedef void (^SDWebImageTransitionAnimationsBlock)(__kindof UIView * _Nonnull view, UIImage * _Nullable image); +typedef void (^SDWebImageTransitionCompletionBlock)(BOOL finished); + +/** + This class is used to provide a transition animation after the view category load image finished. Use this on `sdBu_imageTransition` in UIView+BU_WebCache.h + for UIKit(iOS & tvOS), we use `+[UIView transitionWithView:duration:options:animations:completion]` for transition animation. + for AppKit(macOS), we use `+[NSAnimationContext runAnimationGroup:completionHandler:]` for transition animation. You can call `+[NSAnimationContext currentContext]` to grab the context during animations block. + @note These transition are provided for basic usage. If you need complicated animation, consider to directly use Core Animation or use `SDWebImageAvoidAutoSetImage` and implement your own after image load finished. + */ +@interface BU_SDWebImageTransition : NSObject + +/** + By default, we set the image to the view at the beginning of the animtions. You can disable this and provide custom set image process + */ +@property (nonatomic, assign) BOOL avoidAutoSetImage; +/** + The duration of the transition animation, measured in seconds. Defaults to 0.5. + */ +@property (nonatomic, assign) NSTimeInterval duration; +/** + The timing function used for all animations within this transition animation (macOS). + */ +@property (nonatomic, strong, nullable) CAMediaTimingFunction *timingFunction API_UNAVAILABLE(ios, tvos, watchos); +/** + A mask of options indicating how you want to perform the animations. + */ +@property (nonatomic, assign) SDWebImageAnimationOptions animationOptions; +/** + A block object to be executed before the animation sequence starts. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionPreparesBlock prepares; +/** + A block object that contains the changes you want to make to the specified view. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionAnimationsBlock animations; +/** + A block object to be executed when the animation sequence ends. + */ +@property (nonatomic, copy, nullable) SDWebImageTransitionCompletionBlock completion; + +@end + +/** + Convenience way to create transition. Remember to specify the duration if needed. + for UIKit, these transition just use the correspond `animationOptions`. By default we enable `UIViewAnimationOptionAllowUserInteraction` to allow user interaction during transition. + for AppKit, these transition use Core Animation in `animations`. So your view must be layer-backed. Set `wantsLayer = YES` before you apply it. + */ +//@interface BU_SDWebImageTransition (Conveniences) +// +///// Fade transition. +////@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *fadeTransition; +///// Flip from left transition. +////@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromLeftTransition; +///// Flip from right transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromRightTransition; +///// Flip from top transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromTopTransition; +///// Flip from bottom transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *flipFromBottomTransition; +///// Curl up transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *curlUpTransition; +///// Curl down transition. +//@property (nonatomic, class, nonnull, readonly) BU_SDWebImageTransition *curlDownTransition; +// +//@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageTransition.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageTransition.h.meta new file mode 100644 index 00000000..a76d366a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDWebImageTransition.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2fa92217b547e4897ad3f55f1f388bd3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDmetamacros.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDmetamacros.h new file mode 100755 index 00000000..dd90d99b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDmetamacros.h @@ -0,0 +1,667 @@ +/** + * Macros for metaprogramming + * ExtendedC + * + * Copyright (C) 2012 Justin Spahr-Summers + * Released under the MIT license + */ + +#ifndef EXTC_METAMACROS_H +#define EXTC_METAMACROS_H + + +/** + * Executes one or more expressions (which may have a void type, such as a call + * to a function that returns no value) and always returns true. + */ +#define metamacro_exprify(...) \ + ((__VA_ARGS__), true) + +/** + * Returns a string representation of VALUE after full macro expansion. + */ +#define metamacro_stringify(VALUE) \ + metamacro_stringify_(VALUE) + +/** + * Returns A and B concatenated after full macro expansion. + */ +#define metamacro_concat(A, B) \ + metamacro_concat_(A, B) + +/** + * Returns the Nth variadic argument (starting from zero). At least + * N + 1 variadic arguments must be given. N must be between zero and twenty, + * inclusive. + */ +#define metamacro_at(N, ...) \ + metamacro_concat(metamacro_at, N)(__VA_ARGS__) + +/** + * Returns the number of arguments (up to twenty) provided to the macro. At + * least one argument must be provided. + * + * Inspired by P99: http://p99.gforge.inria.fr + */ +#define metamacro_argcount(...) \ + metamacro_at(20, __VA_ARGS__, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) + +/** + * Identical to #metamacro_foreach_cxt, except that no CONTEXT argument is + * given. Only the index and current argument will thus be passed to MACRO. + */ +#define metamacro_foreach(MACRO, SEP, ...) \ + metamacro_foreach_cxt(metamacro_foreach_iter, SEP, MACRO, __VA_ARGS__) + +/** + * For each consecutive variadic argument (up to twenty), MACRO is passed the + * zero-based index of the current argument, CONTEXT, and then the argument + * itself. The results of adjoining invocations of MACRO are then separated by + * SEP. + * + * Inspired by P99: http://p99.gforge.inria.fr + */ +#define metamacro_foreach_cxt(MACRO, SEP, CONTEXT, ...) \ + metamacro_concat(metamacro_foreach_cxt, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__) + +/** + * Identical to #metamacro_foreach_cxt. This can be used when the former would + * fail due to recursive macro expansion. + */ +#define metamacro_foreach_cxt_recursive(MACRO, SEP, CONTEXT, ...) \ + metamacro_concat(metamacro_foreach_cxt_recursive, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__) + +/** + * In consecutive order, appends each variadic argument (up to twenty) onto + * BASE. The resulting concatenations are then separated by SEP. + * + * This is primarily useful to manipulate a list of macro invocations into instead + * invoking a different, possibly related macro. + */ +#define metamacro_foreach_concat(BASE, SEP, ...) \ + metamacro_foreach_cxt(metamacro_foreach_concat_iter, SEP, BASE, __VA_ARGS__) + +/** + * Iterates COUNT times, each time invoking MACRO with the current index + * (starting at zero) and CONTEXT. The results of adjoining invocations of MACRO + * are then separated by SEP. + * + * COUNT must be an integer between zero and twenty, inclusive. + */ +#define metamacro_for_cxt(COUNT, MACRO, SEP, CONTEXT) \ + metamacro_concat(metamacro_for_cxt, COUNT)(MACRO, SEP, CONTEXT) + +/** + * Returns the first argument given. At least one argument must be provided. + * + * This is useful when implementing a variadic macro, where you may have only + * one variadic argument, but no way to retrieve it (for example, because \c ... + * always needs to match at least one argument). + * + * @code + +#define varmacro(...) \ + metamacro_head(__VA_ARGS__) + + * @endcode + */ +#define metamacro_head(...) \ + metamacro_head_(__VA_ARGS__, 0) + +/** + * Returns every argument except the first. At least two arguments must be + * provided. + */ +#define metamacro_tail(...) \ + metamacro_tail_(__VA_ARGS__) + +/** + * Returns the first N (up to twenty) variadic arguments as a new argument list. + * At least N variadic arguments must be provided. + */ +#define metamacro_take(N, ...) \ + metamacro_concat(metamacro_take, N)(__VA_ARGS__) + +/** + * Removes the first N (up to twenty) variadic arguments from the given argument + * list. At least N variadic arguments must be provided. + */ +#define metamacro_drop(N, ...) \ + metamacro_concat(metamacro_drop, N)(__VA_ARGS__) + +/** + * Decrements VAL, which must be a number between zero and twenty, inclusive. + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_dec(VAL) \ + metamacro_at(VAL, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) + +/** + * Increments VAL, which must be a number between zero and twenty, inclusive. + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_inc(VAL) \ + metamacro_at(VAL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) + +/** + * If A is equal to B, the next argument list is expanded; otherwise, the + * argument list after that is expanded. A and B must be numbers between zero + * and twenty, inclusive. Additionally, B must be greater than or equal to A. + * + * @code + +// expands to true +metamacro_if_eq(0, 0)(true)(false) + +// expands to false +metamacro_if_eq(0, 1)(true)(false) + + * @endcode + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_if_eq(A, B) \ + metamacro_concat(metamacro_if_eq, A)(B) + +/** + * Identical to #metamacro_if_eq. This can be used when the former would fail + * due to recursive macro expansion. + */ +#define metamacro_if_eq_recursive(A, B) \ + metamacro_concat(metamacro_if_eq_recursive, A)(B) + +/** + * Returns 1 if N is an even number, or 0 otherwise. N must be between zero and + * twenty, inclusive. + * + * For the purposes of this test, zero is considered even. + */ +#define metamacro_is_even(N) \ + metamacro_at(N, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1) + +/** + * Returns the logical NOT of B, which must be the number zero or one. + */ +#define metamacro_not(B) \ + metamacro_at(B, 1, 0) + +// IMPLEMENTATION DETAILS FOLLOW! +// Do not write code that depends on anything below this line. +#define metamacro_stringify_(VALUE) # VALUE +#define metamacro_concat_(A, B) A ## B +#define metamacro_foreach_iter(INDEX, MACRO, ARG) MACRO(INDEX, ARG) +#define metamacro_head_(FIRST, ...) FIRST +#define metamacro_tail_(FIRST, ...) __VA_ARGS__ +#define metamacro_consume_(...) +#define metamacro_expand_(...) __VA_ARGS__ + +// implemented from scratch so that metamacro_concat() doesn't end up nesting +#define metamacro_foreach_concat_iter(INDEX, BASE, ARG) metamacro_foreach_concat_iter_(BASE, ARG) +#define metamacro_foreach_concat_iter_(BASE, ARG) BASE ## ARG + +// metamacro_at expansions +#define metamacro_at0(...) metamacro_head(__VA_ARGS__) +#define metamacro_at1(_0, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at2(_0, _1, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at3(_0, _1, _2, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at4(_0, _1, _2, _3, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at5(_0, _1, _2, _3, _4, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at6(_0, _1, _2, _3, _4, _5, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at7(_0, _1, _2, _3, _4, _5, _6, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at8(_0, _1, _2, _3, _4, _5, _6, _7, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at9(_0, _1, _2, _3, _4, _5, _6, _7, _8, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at11(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at12(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at13(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at14(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at15(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at16(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, ...) metamacro_head(__VA_ARGS__) + +// metamacro_foreach_cxt expansions +#define metamacro_foreach_cxt0(MACRO, SEP, CONTEXT) +#define metamacro_foreach_cxt1(MACRO, SEP, CONTEXT, _0) MACRO(0, CONTEXT, _0) + +#define metamacro_foreach_cxt2(MACRO, SEP, CONTEXT, _0, _1) \ + metamacro_foreach_cxt1(MACRO, SEP, CONTEXT, _0) \ + SEP \ + MACRO(1, CONTEXT, _1) + +#define metamacro_foreach_cxt3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + metamacro_foreach_cxt2(MACRO, SEP, CONTEXT, _0, _1) \ + SEP \ + MACRO(2, CONTEXT, _2) + +#define metamacro_foreach_cxt4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + metamacro_foreach_cxt3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + SEP \ + MACRO(3, CONTEXT, _3) + +#define metamacro_foreach_cxt5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + metamacro_foreach_cxt4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + SEP \ + MACRO(4, CONTEXT, _4) + +#define metamacro_foreach_cxt6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + metamacro_foreach_cxt5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + SEP \ + MACRO(5, CONTEXT, _5) + +#define metamacro_foreach_cxt7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + metamacro_foreach_cxt6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + SEP \ + MACRO(6, CONTEXT, _6) + +#define metamacro_foreach_cxt8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + metamacro_foreach_cxt7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + SEP \ + MACRO(7, CONTEXT, _7) + +#define metamacro_foreach_cxt9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + metamacro_foreach_cxt8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + SEP \ + MACRO(8, CONTEXT, _8) + +#define metamacro_foreach_cxt10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + metamacro_foreach_cxt9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + SEP \ + MACRO(9, CONTEXT, _9) + +#define metamacro_foreach_cxt11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + metamacro_foreach_cxt10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + SEP \ + MACRO(10, CONTEXT, _10) + +#define metamacro_foreach_cxt12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + metamacro_foreach_cxt11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + SEP \ + MACRO(11, CONTEXT, _11) + +#define metamacro_foreach_cxt13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + metamacro_foreach_cxt12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + SEP \ + MACRO(12, CONTEXT, _12) + +#define metamacro_foreach_cxt14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + metamacro_foreach_cxt13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + SEP \ + MACRO(13, CONTEXT, _13) + +#define metamacro_foreach_cxt15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + metamacro_foreach_cxt14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + SEP \ + MACRO(14, CONTEXT, _14) + +#define metamacro_foreach_cxt16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + metamacro_foreach_cxt15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + SEP \ + MACRO(15, CONTEXT, _15) + +#define metamacro_foreach_cxt17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + metamacro_foreach_cxt16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + SEP \ + MACRO(16, CONTEXT, _16) + +#define metamacro_foreach_cxt18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + metamacro_foreach_cxt17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + SEP \ + MACRO(17, CONTEXT, _17) + +#define metamacro_foreach_cxt19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + metamacro_foreach_cxt18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + SEP \ + MACRO(18, CONTEXT, _18) + +#define metamacro_foreach_cxt20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + metamacro_foreach_cxt19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + SEP \ + MACRO(19, CONTEXT, _19) + +// metamacro_foreach_cxt_recursive expansions +#define metamacro_foreach_cxt_recursive0(MACRO, SEP, CONTEXT) +#define metamacro_foreach_cxt_recursive1(MACRO, SEP, CONTEXT, _0) MACRO(0, CONTEXT, _0) + +#define metamacro_foreach_cxt_recursive2(MACRO, SEP, CONTEXT, _0, _1) \ + metamacro_foreach_cxt_recursive1(MACRO, SEP, CONTEXT, _0) \ + SEP \ + MACRO(1, CONTEXT, _1) + +#define metamacro_foreach_cxt_recursive3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + metamacro_foreach_cxt_recursive2(MACRO, SEP, CONTEXT, _0, _1) \ + SEP \ + MACRO(2, CONTEXT, _2) + +#define metamacro_foreach_cxt_recursive4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + metamacro_foreach_cxt_recursive3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + SEP \ + MACRO(3, CONTEXT, _3) + +#define metamacro_foreach_cxt_recursive5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + metamacro_foreach_cxt_recursive4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + SEP \ + MACRO(4, CONTEXT, _4) + +#define metamacro_foreach_cxt_recursive6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + metamacro_foreach_cxt_recursive5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + SEP \ + MACRO(5, CONTEXT, _5) + +#define metamacro_foreach_cxt_recursive7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + metamacro_foreach_cxt_recursive6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + SEP \ + MACRO(6, CONTEXT, _6) + +#define metamacro_foreach_cxt_recursive8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + metamacro_foreach_cxt_recursive7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + SEP \ + MACRO(7, CONTEXT, _7) + +#define metamacro_foreach_cxt_recursive9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + metamacro_foreach_cxt_recursive8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + SEP \ + MACRO(8, CONTEXT, _8) + +#define metamacro_foreach_cxt_recursive10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + metamacro_foreach_cxt_recursive9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + SEP \ + MACRO(9, CONTEXT, _9) + +#define metamacro_foreach_cxt_recursive11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + metamacro_foreach_cxt_recursive10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + SEP \ + MACRO(10, CONTEXT, _10) + +#define metamacro_foreach_cxt_recursive12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + metamacro_foreach_cxt_recursive11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + SEP \ + MACRO(11, CONTEXT, _11) + +#define metamacro_foreach_cxt_recursive13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + metamacro_foreach_cxt_recursive12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + SEP \ + MACRO(12, CONTEXT, _12) + +#define metamacro_foreach_cxt_recursive14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + metamacro_foreach_cxt_recursive13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + SEP \ + MACRO(13, CONTEXT, _13) + +#define metamacro_foreach_cxt_recursive15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + metamacro_foreach_cxt_recursive14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + SEP \ + MACRO(14, CONTEXT, _14) + +#define metamacro_foreach_cxt_recursive16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + metamacro_foreach_cxt_recursive15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + SEP \ + MACRO(15, CONTEXT, _15) + +#define metamacro_foreach_cxt_recursive17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + metamacro_foreach_cxt_recursive16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + SEP \ + MACRO(16, CONTEXT, _16) + +#define metamacro_foreach_cxt_recursive18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + metamacro_foreach_cxt_recursive17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + SEP \ + MACRO(17, CONTEXT, _17) + +#define metamacro_foreach_cxt_recursive19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + metamacro_foreach_cxt_recursive18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + SEP \ + MACRO(18, CONTEXT, _18) + +#define metamacro_foreach_cxt_recursive20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + metamacro_foreach_cxt_recursive19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + SEP \ + MACRO(19, CONTEXT, _19) + +// metamacro_for_cxt expansions +#define metamacro_for_cxt0(MACRO, SEP, CONTEXT) +#define metamacro_for_cxt1(MACRO, SEP, CONTEXT) MACRO(0, CONTEXT) + +#define metamacro_for_cxt2(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt1(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(1, CONTEXT) + +#define metamacro_for_cxt3(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt2(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(2, CONTEXT) + +#define metamacro_for_cxt4(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt3(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(3, CONTEXT) + +#define metamacro_for_cxt5(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt4(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(4, CONTEXT) + +#define metamacro_for_cxt6(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt5(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(5, CONTEXT) + +#define metamacro_for_cxt7(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt6(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(6, CONTEXT) + +#define metamacro_for_cxt8(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt7(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(7, CONTEXT) + +#define metamacro_for_cxt9(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt8(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(8, CONTEXT) + +#define metamacro_for_cxt10(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt9(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(9, CONTEXT) + +#define metamacro_for_cxt11(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt10(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(10, CONTEXT) + +#define metamacro_for_cxt12(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt11(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(11, CONTEXT) + +#define metamacro_for_cxt13(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt12(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(12, CONTEXT) + +#define metamacro_for_cxt14(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt13(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(13, CONTEXT) + +#define metamacro_for_cxt15(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt14(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(14, CONTEXT) + +#define metamacro_for_cxt16(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt15(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(15, CONTEXT) + +#define metamacro_for_cxt17(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt16(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(16, CONTEXT) + +#define metamacro_for_cxt18(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt17(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(17, CONTEXT) + +#define metamacro_for_cxt19(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt18(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(18, CONTEXT) + +#define metamacro_for_cxt20(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt19(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(19, CONTEXT) + +// metamacro_if_eq expansions +#define metamacro_if_eq0(VALUE) \ + metamacro_concat(metamacro_if_eq0_, VALUE) + +#define metamacro_if_eq0_0(...) __VA_ARGS__ metamacro_consume_ +#define metamacro_if_eq0_1(...) metamacro_expand_ +#define metamacro_if_eq0_2(...) metamacro_expand_ +#define metamacro_if_eq0_3(...) metamacro_expand_ +#define metamacro_if_eq0_4(...) metamacro_expand_ +#define metamacro_if_eq0_5(...) metamacro_expand_ +#define metamacro_if_eq0_6(...) metamacro_expand_ +#define metamacro_if_eq0_7(...) metamacro_expand_ +#define metamacro_if_eq0_8(...) metamacro_expand_ +#define metamacro_if_eq0_9(...) metamacro_expand_ +#define metamacro_if_eq0_10(...) metamacro_expand_ +#define metamacro_if_eq0_11(...) metamacro_expand_ +#define metamacro_if_eq0_12(...) metamacro_expand_ +#define metamacro_if_eq0_13(...) metamacro_expand_ +#define metamacro_if_eq0_14(...) metamacro_expand_ +#define metamacro_if_eq0_15(...) metamacro_expand_ +#define metamacro_if_eq0_16(...) metamacro_expand_ +#define metamacro_if_eq0_17(...) metamacro_expand_ +#define metamacro_if_eq0_18(...) metamacro_expand_ +#define metamacro_if_eq0_19(...) metamacro_expand_ +#define metamacro_if_eq0_20(...) metamacro_expand_ + +#define metamacro_if_eq1(VALUE) metamacro_if_eq0(metamacro_dec(VALUE)) +#define metamacro_if_eq2(VALUE) metamacro_if_eq1(metamacro_dec(VALUE)) +#define metamacro_if_eq3(VALUE) metamacro_if_eq2(metamacro_dec(VALUE)) +#define metamacro_if_eq4(VALUE) metamacro_if_eq3(metamacro_dec(VALUE)) +#define metamacro_if_eq5(VALUE) metamacro_if_eq4(metamacro_dec(VALUE)) +#define metamacro_if_eq6(VALUE) metamacro_if_eq5(metamacro_dec(VALUE)) +#define metamacro_if_eq7(VALUE) metamacro_if_eq6(metamacro_dec(VALUE)) +#define metamacro_if_eq8(VALUE) metamacro_if_eq7(metamacro_dec(VALUE)) +#define metamacro_if_eq9(VALUE) metamacro_if_eq8(metamacro_dec(VALUE)) +#define metamacro_if_eq10(VALUE) metamacro_if_eq9(metamacro_dec(VALUE)) +#define metamacro_if_eq11(VALUE) metamacro_if_eq10(metamacro_dec(VALUE)) +#define metamacro_if_eq12(VALUE) metamacro_if_eq11(metamacro_dec(VALUE)) +#define metamacro_if_eq13(VALUE) metamacro_if_eq12(metamacro_dec(VALUE)) +#define metamacro_if_eq14(VALUE) metamacro_if_eq13(metamacro_dec(VALUE)) +#define metamacro_if_eq15(VALUE) metamacro_if_eq14(metamacro_dec(VALUE)) +#define metamacro_if_eq16(VALUE) metamacro_if_eq15(metamacro_dec(VALUE)) +#define metamacro_if_eq17(VALUE) metamacro_if_eq16(metamacro_dec(VALUE)) +#define metamacro_if_eq18(VALUE) metamacro_if_eq17(metamacro_dec(VALUE)) +#define metamacro_if_eq19(VALUE) metamacro_if_eq18(metamacro_dec(VALUE)) +#define metamacro_if_eq20(VALUE) metamacro_if_eq19(metamacro_dec(VALUE)) + +// metamacro_if_eq_recursive expansions +#define metamacro_if_eq_recursive0(VALUE) \ + metamacro_concat(metamacro_if_eq_recursive0_, VALUE) + +#define metamacro_if_eq_recursive0_0(...) __VA_ARGS__ metamacro_consume_ +#define metamacro_if_eq_recursive0_1(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_2(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_3(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_4(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_5(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_6(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_7(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_8(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_9(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_10(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_11(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_12(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_13(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_14(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_15(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_16(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_17(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_18(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_19(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_20(...) metamacro_expand_ + +#define metamacro_if_eq_recursive1(VALUE) metamacro_if_eq_recursive0(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive2(VALUE) metamacro_if_eq_recursive1(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive3(VALUE) metamacro_if_eq_recursive2(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive4(VALUE) metamacro_if_eq_recursive3(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive5(VALUE) metamacro_if_eq_recursive4(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive6(VALUE) metamacro_if_eq_recursive5(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive7(VALUE) metamacro_if_eq_recursive6(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive8(VALUE) metamacro_if_eq_recursive7(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive9(VALUE) metamacro_if_eq_recursive8(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive10(VALUE) metamacro_if_eq_recursive9(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive11(VALUE) metamacro_if_eq_recursive10(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive12(VALUE) metamacro_if_eq_recursive11(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive13(VALUE) metamacro_if_eq_recursive12(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive14(VALUE) metamacro_if_eq_recursive13(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive15(VALUE) metamacro_if_eq_recursive14(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive16(VALUE) metamacro_if_eq_recursive15(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive17(VALUE) metamacro_if_eq_recursive16(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive18(VALUE) metamacro_if_eq_recursive17(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive19(VALUE) metamacro_if_eq_recursive18(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive20(VALUE) metamacro_if_eq_recursive19(metamacro_dec(VALUE)) + +// metamacro_take expansions +#define metamacro_take0(...) +#define metamacro_take1(...) metamacro_head(__VA_ARGS__) +#define metamacro_take2(...) metamacro_head(__VA_ARGS__), metamacro_take1(metamacro_tail(__VA_ARGS__)) +#define metamacro_take3(...) metamacro_head(__VA_ARGS__), metamacro_take2(metamacro_tail(__VA_ARGS__)) +#define metamacro_take4(...) metamacro_head(__VA_ARGS__), metamacro_take3(metamacro_tail(__VA_ARGS__)) +#define metamacro_take5(...) metamacro_head(__VA_ARGS__), metamacro_take4(metamacro_tail(__VA_ARGS__)) +#define metamacro_take6(...) metamacro_head(__VA_ARGS__), metamacro_take5(metamacro_tail(__VA_ARGS__)) +#define metamacro_take7(...) metamacro_head(__VA_ARGS__), metamacro_take6(metamacro_tail(__VA_ARGS__)) +#define metamacro_take8(...) metamacro_head(__VA_ARGS__), metamacro_take7(metamacro_tail(__VA_ARGS__)) +#define metamacro_take9(...) metamacro_head(__VA_ARGS__), metamacro_take8(metamacro_tail(__VA_ARGS__)) +#define metamacro_take10(...) metamacro_head(__VA_ARGS__), metamacro_take9(metamacro_tail(__VA_ARGS__)) +#define metamacro_take11(...) metamacro_head(__VA_ARGS__), metamacro_take10(metamacro_tail(__VA_ARGS__)) +#define metamacro_take12(...) metamacro_head(__VA_ARGS__), metamacro_take11(metamacro_tail(__VA_ARGS__)) +#define metamacro_take13(...) metamacro_head(__VA_ARGS__), metamacro_take12(metamacro_tail(__VA_ARGS__)) +#define metamacro_take14(...) metamacro_head(__VA_ARGS__), metamacro_take13(metamacro_tail(__VA_ARGS__)) +#define metamacro_take15(...) metamacro_head(__VA_ARGS__), metamacro_take14(metamacro_tail(__VA_ARGS__)) +#define metamacro_take16(...) metamacro_head(__VA_ARGS__), metamacro_take15(metamacro_tail(__VA_ARGS__)) +#define metamacro_take17(...) metamacro_head(__VA_ARGS__), metamacro_take16(metamacro_tail(__VA_ARGS__)) +#define metamacro_take18(...) metamacro_head(__VA_ARGS__), metamacro_take17(metamacro_tail(__VA_ARGS__)) +#define metamacro_take19(...) metamacro_head(__VA_ARGS__), metamacro_take18(metamacro_tail(__VA_ARGS__)) +#define metamacro_take20(...) metamacro_head(__VA_ARGS__), metamacro_take19(metamacro_tail(__VA_ARGS__)) + +// metamacro_drop expansions +#define metamacro_drop0(...) __VA_ARGS__ +#define metamacro_drop1(...) metamacro_tail(__VA_ARGS__) +#define metamacro_drop2(...) metamacro_drop1(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop3(...) metamacro_drop2(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop4(...) metamacro_drop3(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop5(...) metamacro_drop4(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop6(...) metamacro_drop5(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop7(...) metamacro_drop6(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop8(...) metamacro_drop7(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop9(...) metamacro_drop8(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop10(...) metamacro_drop9(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop11(...) metamacro_drop10(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop12(...) metamacro_drop11(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop13(...) metamacro_drop12(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop14(...) metamacro_drop13(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop15(...) metamacro_drop14(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop16(...) metamacro_drop15(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop17(...) metamacro_drop16(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop18(...) metamacro_drop17(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop19(...) metamacro_drop18(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop20(...) metamacro_drop19(metamacro_tail(__VA_ARGS__)) + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDmetamacros.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDmetamacros.h.meta new file mode 100644 index 00000000..1cf76d62 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_SDmetamacros.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b3f3cc248cd884d788d9a184b6bb11e1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayer.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayer.h new file mode 100755 index 00000000..ea3b3d22 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayer.h @@ -0,0 +1,32 @@ +// +// ZFPlayer.h +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import "BUPlayer.h" +#import "BUPlayerDefine.h" +#import "UIImageView+BU_ZFCache.h" +#import "BU_ZFPlayerControlView.h" +#import "BUPlayerInternalDefine.h" +#import "BUPlayerSettingsProtocol.h" +#import "BUPlayerItem.h" +#import "BUVideoPrefetchManager.h" +#import "BUCacheManager.h" diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayer.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayer.h.meta new file mode 100644 index 00000000..e3191810 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayer.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d412485abcb1413db7105f4a1ed3200 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayerControlView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayerControlView.h new file mode 100755 index 00000000..7d52ddef --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayerControlView.h @@ -0,0 +1,31 @@ +// +// ZFPlayerControlView.h +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import "BUPlayerDefine.h" + +@interface BU_ZFPlayerControlView : UIView + +- (void)hideControlView; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayerControlView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayerControlView.h.meta new file mode 100644 index 00000000..5cf797b3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZFPlayerControlView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 60d3970464ea44253b5b077b09e202bf +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZipArchiveUtility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZipArchiveUtility.h new file mode 100755 index 00000000..a58e54b9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZipArchiveUtility.h @@ -0,0 +1,153 @@ +// +// BU_ZipArchiveUtility.h +// BU_ZipArchiveUtility +// +// Created by Sam Soffes on 7/21/10. +// Copyright (c) Sam Soffes 2010-2015. All rights reserved. +// + +#ifndef _BUZipArchive_H +#define _BUZipArchive_H + +#import +#import "BUZipCommon.h" + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const BUZipArchiveErrorDomain; +typedef NS_ENUM(NSInteger, BUZipArchiveErrorCode) { + BUZipArchiveErrorCodeFailedOpenZipFile = -1, + BUZipArchiveErrorCodeFailedOpenFileInZip = -2, + BUZipArchiveErrorCodeFileInfoNotLoadable = -3, + BUZipArchiveErrorCodeFileContentNotReadable = -4, + BUZipArchiveErrorCodeFailedToWriteFile = -5, + BUZipArchiveErrorCodeInvalidArguments = -6, +}; + +@protocol BUZipArchiveDelegate; + +@interface BU_ZipArchiveUtility : NSObject + + +// Password check +//+ (BOOL)isFilePasswordProtectedAtPath:(NSString *)path; +//+ (BOOL)isPasswordValidForArchiveAtPath:(NSString *)path password:(NSString *)pw error:(NSError * _Nullable * _Nullable)error NS_SWIFT_NOTHROW; + +// Total payload size +//+ (NSNumber *)payloadSizeForArchiveAtPath:(NSString *)path error:(NSError **)error; + +// Unzip ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination; ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination delegate:(nullable id)delegate; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// error:(NSError * *)error; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + overwrite:(BOOL)overwrite + needRename:(BOOL)needRename + password:(nullable NSString *)password + error:(NSError * *)error + delegate:(nullable id)delegate NS_REFINED_FOR_SWIFT; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// preserveAttributes:(BOOL)preserveAttributes +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// error:(NSError * *)error +// delegate:(nullable id)delegate; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler +// completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + +//+ (BOOL)unzipFileAtPath:(NSString *)path +// toDestination:(NSString *)destination +// overwrite:(BOOL)overwrite +// password:(nullable NSString *)password +// progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler +// completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + preserveAttributes:(BOOL)preserveAttributes + overwrite:(BOOL)overwrite + needRename:(BOOL)needRename + nestedZipLevel:(NSInteger)nestedZipLevel + password:(nullable NSString *)password + error:(NSError **)error + delegate:(nullable id)delegate + progressHandler:(void (^_Nullable)(NSString *entry, bu_unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + +// Zip +// default compression level is Z_DEFAULT_COMPRESSION (from "zlib.h") +// keepParentDirectory: if YES, then unzipping will give `directoryName/fileName`. If NO, then unzipping will just give `fileName`. Default is NO. + +// without password +//+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath; +// +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory; + +// with optional password, default encryption is AES +// don't use AES if you need compatibility with native macOS unzip and Archive Utility +//+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(nullable NSString *)password; +//+ (BOOL)createZipFileAtPath:(NSString *)path +// withContentsOfDirectory:(NSString *)directoryPath +// keepParentDirectory:(BOOL)keepParentDirectory +// withPassword:(nullable NSString *)password +// andProgressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; +//+ (BOOL)createZipFileAtPath:(NSString *)path +// withContentsOfDirectory:(NSString *)directoryPath +// keepParentDirectory:(BOOL)keepParentDirectory +// compressionLevel:(int)compressionLevel +// password:(nullable NSString *)password +// AES:(BOOL)aes +// progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; + +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)initWithPath:(NSString *)path NS_DESIGNATED_INITIALIZER; +- (BOOL)open; + +/// write empty folder +- (BOOL)writeFolderAtPath:(NSString *)path withFolderName:(NSString *)folderName withPassword:(nullable NSString *)password; +/// write file +- (BOOL)writeFile:(NSString *)path withPassword:(nullable NSString *)password; +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName withPassword:(nullable NSString *)password; +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; +/// write data +//- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename withPassword:(nullable NSString *)password; +- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; + +- (BOOL)close; + +@end + +@protocol BUZipArchiveDelegate + +@optional + +- (void)zipArchiveWillUnzipArchiveAtPath:(NSString *)path zipInfo:(bu_unz_global_info)zipInfo; +- (void)zipArchiveDidUnzipArchiveAtPath:(NSString *)path zipInfo:(bu_unz_global_info)zipInfo unzippedPath:(NSString *)unzippedPath; + +- (BOOL)zipArchiveShouldUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveWillUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(bu_unz_file_info)fileInfo; +- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath unzippedFilePath:(NSString *)unzippedFilePath; + +- (void)zipArchiveProgressEvent:(unsigned long long)loaded total:(unsigned long long)total; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* _BUZipArchive_H */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZipArchiveUtility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZipArchiveUtility.h.meta new file mode 100644 index 00000000..25b39e9c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/BU_ZipArchiveUtility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 675a2c0e28bd44b90b72aa586289938a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSArray+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSArray+BUUtilities.h new file mode 100755 index 00000000..4c818589 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSArray+BUUtilities.h @@ -0,0 +1,58 @@ +// +// NSMutableArray+Utilities.h +// BUAdSDK +// +// Created by 李盛 on 2018/2/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSMutableArray (BU_Utilities) + +- (void)bu_safeAddObject:(id)object; +- (void)bu_safeAddNilObject; +- (void)bu_safeInsertObject:(id)object atIndex:(NSUInteger)index; +- (void)bu_safeInsertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes; +- (void)bu_safeRemoveObject:(id)object; +- (nullable id)bu_objectAtIndexSafely:(NSUInteger)index; +- (void)bu_removeObjectAtIndexSafely:(NSUInteger)index; + + + + + + +@end + +@interface NSArray(BU_JSONValue) +- (nullable NSString *)bu_JSONRepresentation:(NSError **)error; + + + +- (void)bu_forEachWithBlock:(void(^)(id item))block; +- (void)bu_forEachWithIndexBlock:(void(^)(id item, NSInteger index))indexBlock; + +- (NSArray *)bu_mapWithBlock:(id(^)(id item))block; +- (NSArray *)bu_mapWithIndexBlock:(id(^)(id item, NSInteger index))indexBlock; + +- (NSArray *)bu_filterWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (NSArray *)bu_filterWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (BOOL)bu_someWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (BOOL)bu_someWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (BOOL)bu_everyWithConditionBlock:(BOOL(^)(id item))conditionBlock; +- (BOOL)bu_everyWithIndexConditionBlock:(BOOL(^)(id item, NSInteger index))indexConditionBlock; + +- (id)bu_reduceWithBlock:(id(^)(id item1, id item2))block initial:(id)initial; + + + +- (id)bu_findWithConditionBlock:(id(^)(id item))conditionBlock; +- (id)bu_findWithIndexConditionBlock:(id(^)(id item, NSInteger index))indexConditionBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSArray+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSArray+BUUtilities.h.meta new file mode 100644 index 00000000..39b6b7d4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSArray+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e2ecbeef71e24496cb640ca152206458 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSBezierPath+BURoundedCorners.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSBezierPath+BURoundedCorners.h new file mode 100755 index 00000000..8576286b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSBezierPath+BURoundedCorners.h @@ -0,0 +1,24 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +#import "UIImage+BUTransform.h" + +@interface NSBezierPath (RoundedCorners) + +/** + Convenience way to create a bezier path with the specify rounding corners on macOS. Same as the one on `UIBezierPath`. + */ ++ (nonnull instancetype)sdBu_bezierPathWithRoundedRect:(NSRect)rect byRoundingCorners:(BU_SDRectCorner)corners cornerRadius:(CGFloat)cornerRadius; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSBezierPath+BURoundedCorners.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSBezierPath+BURoundedCorners.h.meta new file mode 100644 index 00000000..ff35784f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSBezierPath+BURoundedCorners.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6d43aa111960647b09b08ea6ccfc7d86 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSButton+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSButton+BUWebCache.h new file mode 100755 index 00000000..8f445e8e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSButton+BUWebCache.h @@ -0,0 +1,340 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with NSButton. + */ +@interface NSButton (WebCache) + +#pragma mark - Image + +/** + * Get the current image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentImageURL; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Alternate Image + +/** + * Get the current alternateImage URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentAlternateImageURL; + +/** + * Set the button `alternateImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @see sdBu_setAlternateImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `alternateImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while alternateImage is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `alternateImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the alternateImage. + * @param placeholder The alternateImage to be set initially, until the alternateImage request finishes. + * @param options The options to use when downloading the alternateImage. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while alternateImage is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the alternateImage parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the alternateImage was retrieved from the local cache or from the network. + * The fourth parameter is the original alternateImage url. + */ +- (void)sdBu_setAlternateImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Cancel + +/** + * Cancel the current image download + */ +- (void)sdBu_cancelCurrentImageLoad; + +/** + * Cancel the current alternateImage download + */ +- (void)sdBu_cancelCurrentAlternateImageLoad; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSButton+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSButton+BUWebCache.h.meta new file mode 100644 index 00000000..a4cf3a24 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSButton+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8efdbdbc7039f4addb85a2bd3ba76580 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSData+BUImageContentType.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSData+BUImageContentType.h new file mode 100755 index 00000000..81880423 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSData+BUImageContentType.h @@ -0,0 +1,59 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Fabrice Aneche + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import +#import "BU_SDWebImageCompat.h" + +/** + You can use switch case like normal enum. It's also recommended to add a default case. You should not assume anything about the raw value. + For custom coder plugin, it can also extern the enum for supported format. See `SDImageCoder` for more detailed information. + */ +typedef NSInteger BU_SDImageFormat NS_TYPED_EXTENSIBLE_ENUM; +static const BU_SDImageFormat BU_SDImageFormatUndefined = -1; +static const BU_SDImageFormat BU_SDImageFormatJPEG = 0; +static const BU_SDImageFormat BU_SDImageFormatPNG = 1; +static const BU_SDImageFormat BU_SDImageFormatGIF = 2; +static const BU_SDImageFormat BU_SDImageFormatTIFF = 3; +static const BU_SDImageFormat BU_SDImageFormatWebP = 4; +static const BU_SDImageFormat BU_SDImageFormatHEIC = 5; +static const BU_SDImageFormat BU_SDImageFormatHEIF = 6; +static const BU_SDImageFormat BU_SDImageFormatPDF = 7; +static const BU_SDImageFormat BU_SDImageFormatSVG = 8; + +/** + NSData category about the image content type and UTI. + */ +@interface NSData (BU_ImageContentType) + +/** + * Return image format + * + * @param data the input image data + * + * @return the image format as `BU_SDImageFormat` (enum) + */ ++ (BU_SDImageFormat)sdBu_imageFormatForImageData:(nullable NSData *)data; + +/** + * Convert BU_SDImageFormat to UTType + * + * @param format Format as BU_SDImageFormat + * @return The UTType as CFStringRef + */ ++ (nonnull CFStringRef)sdBu_UTTypeFromImageFormat:(BU_SDImageFormat)format CF_RETURNS_NOT_RETAINED NS_SWIFT_NAME(sdBu_UTType(from:)); + +/** + * Convert UTTyppe to BU_SDImageFormat + * + * @param uttype The UTType as CFStringRef + * @return The Format as BU_SDImageFormat + */ ++ (BU_SDImageFormat)sdBu_imageFormatFromUTType:(nonnull CFStringRef)uttype; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSData+BUImageContentType.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSData+BUImageContentType.h.meta new file mode 100644 index 00000000..8d041c60 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSData+BUImageContentType.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5f33e140b565d4124a80e0e3798b7430 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSDictionary+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSDictionary+BUUtilities.h new file mode 100755 index 00000000..9e1d3d29 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSDictionary+BUUtilities.h @@ -0,0 +1,58 @@ +// +// NSMutableDictionary+Utilities.h +// BUAdSDK +// +// Created by 李盛 on 2018/2/28. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSDictionary (BU_Helper) + +#pragma mark - Safe Value Type From Key +- (nullable NSString *)bu_stringForKey:(NSString *)key defaultValue:(nullable NSString *)defalutValue; +- (BOOL)bu_boolForKey:(NSString *)key defaultValue:(BOOL)defalutValue; +- (NSInteger)bu_integerForKey:(NSString *)key defaultValue:(NSInteger)defalutValue; +- (long)bu_longForKey:(NSString *)key defaultValue:(long)defalutValue; +- (long long)bu_longLongForKey:(NSString *)key defaultValue:(long long)defalutValue; +- (NSTimeInterval)bu_timeIntervalForKey:(NSString *)key defaultValue:(NSTimeInterval)defalutValue; +- (float)bu_floatForKey:(NSString *)key defaultValue:(float)defalutValue; +- (nullable NSArray *)bu_arrayForKey:(NSString *)key defaultValue:(nullable NSArray *)defalutValue; +- (nullable NSDictionary *)bu_dictionaryForKey:(NSString *)key defaultValue:(nullable NSDictionary *)defalutValue; + +@end + +@interface NSDictionary(BU_JSONValue) + +- (nullable NSString *)bu_JSONRepresentation:(NSError **)error; ++ (nullable NSDictionary *)bu_dictionaryWithJSONData:(nullable NSData *)inData error:(NSError **)outError; ++ (nullable NSDictionary *)bu_dictionaryWithJSONString:(NSString *)inJSON error:(NSError **)outError; + + + + +- (void)bu_forEachWithBlock:(void(^)(id key, id value))block; + + + + + +@end + +@interface NSDictionary(BU_Formate) + +- (void)bu_parserWithKey:(NSString *)key stringValue:(NSString *_Nullable*_Nullable)stringValue dictValue:(NSDictionary *_Nullable*_Nullable)dictValue aryValue:(NSArray *_Nullable*_Nullable)aryValue; + +@end + +@interface NSMutableDictionary (BU_Helper) + +#pragma mark - Safe Set Object For Key +- (void)bu_setObject:(nullable id)object forKey:(nullable id)key; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSDictionary+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSDictionary+BUUtilities.h.meta new file mode 100644 index 00000000..de731fdd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSDictionary+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 771886c3443b44aca9363f6e187113c2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSImage+BUCompatibility.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSImage+BUCompatibility.h new file mode 100755 index 00000000..6c705a99 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSImage+BUCompatibility.h @@ -0,0 +1,53 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_MAC + +/** + This category is provided to easily write cross-platform(AppKit/UIKit) code. For common usage, see `UIImage+BUMetadata.h`. + */ +@interface NSImage (Compatibility) + +/** +The underlying Core Graphics image object. This will actually use `CGImageForProposedRect` with the image size. + */ +@property (nonatomic, readonly, nullable) CGImageRef CGImage; +/** + The scale factor of the image. This wil actually use `bestRepresentationForRect` with image size and pixel size to calculate the scale factor. If failed, use the default value 1.0. Should be greater than or equal to 1.0. + */ +@property (nonatomic, readonly) CGFloat scale; + +// These are convenience methods to make AppKit's `NSImage` match UIKit's `UIImage` behavior. The scale factor should be greater than or equal to 1.0. + +/** + Returns an image object with the scale factor and orientation. The representation is created from the Core Graphics image object. + @note The difference between this and `initWithCGImage:size` is that `initWithCGImage:size` will actually create a `NSCGImageSnapshotRep` representation and always use `backingScaleFactor` as scale factor. So we should avoid it and use `NSBitmapImageRep` with `initWithCGImage:` instead. + @note The difference between this and UIKit's `UIImage` equivalent method is the way to process orientation. If the provided image orientation is not equal to Up orientation, this method will firstly rotate the CGImage to the correct orientation to work compatible with `NSImageView`. However, UIKit will not actually rotate CGImage and just store it as `imageOrientation` property. + + @param cgImage A Core Graphics image object + @param scale The image scale factor + @param orientation The orientation of the image data + @return The image object + */ +- (nonnull instancetype)initWithCGImage:(nonnull CGImageRef)cgImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation; + +/** + Returns an image object with the scale factor. The representation is created from the image data. + @note The difference between these this and `initWithData:` is that `initWithData:` will always use `backingScaleFactor` as scale factor. + + @param data The image data + @param scale The image scale factor + @return The image object + */ +- (nullable instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSImage+BUCompatibility.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSImage+BUCompatibility.h.meta new file mode 100644 index 00000000..611b140b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSImage+BUCompatibility.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 91f0abd1435024da382b513aba5747a4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSJSONSerialization+BUSafeSerializaiton.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSJSONSerialization+BUSafeSerializaiton.h new file mode 100755 index 00000000..3589bb04 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSJSONSerialization+BUSafeSerializaiton.h @@ -0,0 +1,18 @@ +// +// NSJSONSerialization+BUSafeSerializaiton.h +// BUFoundation +// +// Created by bytedance on 2020/10/10. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSJSONSerialization (BUSafeSerializaiton) ++ (nonnull NSString *)bu_stringJsonSerializationWithObject:(id)object options:(NSJSONWritingOptions)opt error:(NSError **)error; ++ (nullable NSData *)bu_dataJsonSerializationWithObject:(id)object options:(NSJSONWritingOptions)opt error:(NSError **)error; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta new file mode 100644 index 00000000..81535ba5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSJSONSerialization+BUSafeSerializaiton.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f76019a5fc9d241f98c8c34e40b2ed2b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSKeyedArchiver+BUKeyedArchiver.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSKeyedArchiver+BUKeyedArchiver.h new file mode 100755 index 00000000..6a6a8e50 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSKeyedArchiver+BUKeyedArchiver.h @@ -0,0 +1,16 @@ +// +// NSKeyedArchiver+BUKeyedArchiver.h +// BUFoundation +// +// Created by Eason on 2021/4/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSKeyedArchiver (BUKeyedArchiver) ++ (NSData *)bu_archivedDataWithRootObject:(id)rootObject; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta new file mode 100644 index 00000000..98297a74 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSKeyedArchiver+BUKeyedArchiver.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c74ef1c7163ca4014b44a38167a63916 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUSafeKVO.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUSafeKVO.h new file mode 100755 index 00000000..93f5d9ed --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUSafeKVO.h @@ -0,0 +1,25 @@ +// +// NSObject+BUSafeKVO.h +// BUFoundation +// +// Created by Siwant on 2019/9/2. +// Copyright © 2019 Union. All rights reserved. +// + +#import + +@interface NSObject (BUSafeKVO) + +- (void)bu_addObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath + options:(NSKeyValueObservingOptions)options + context:(void *)context; + +- (void)bu_removeObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath + context:(void *)context; + +- (void)bu_removeObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUSafeKVO.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUSafeKVO.h.meta new file mode 100644 index 00000000..151d4558 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUSafeKVO.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1493b2c14960448689b1a0a8287ffe46 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUUtils.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUUtils.h new file mode 100755 index 00000000..107d150e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUUtils.h @@ -0,0 +1,22 @@ +// +// NSObject+BUUtils.h +// BUFoundation +// +// Created by wangyanlin on 2020/12/7. +// Copyright © 2020 Union. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSObject (BUUtils) + ++ (NSString *)bu_convertToStringWithOrignalObj:(id)obj; + ++ (NSDictionary *)bu_dictAfterFormatWithOriginDict:(NSDictionary *)originDict; ++ (NSArray *)bu_aryAfterFormatWithOriginAry:(NSArray *)originAry; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUUtils.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUUtils.h.meta new file mode 100644 index 00000000..b24df978 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUUtils.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1152d7604e7cc42fcadd8c589832edda +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUYYModel.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUYYModel.h new file mode 100755 index 00000000..456a5ab3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUYYModel.h @@ -0,0 +1,427 @@ +// +// NSObject+BUYYModel.h +// BUYYModel +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Provide some data-model method: + + * Convert json to any object, or convert any object to json. + * Set object properties with a key-value dictionary (like KVC). + * Implementations of `NSCoding`, `NSCopying`, `-hash` and `-isEqual:`. + + See `BUYYModel` protocol for custom methods. + + + Sample Code: + + ********************** json convertor ********************* + [at]interface BUYYAuthor : NSObject + @property (nonatomic, strong) NSString *name; + @property (nonatomic, assign) NSDate *birthday; + @end + @implementation BUYYAuthor + @end + + [at]interface BUYYBook : NSObject + @property (nonatomic, copy) NSString *name; + @property (nonatomic, assign) NSUInteger pages; + @property (nonatomic, strong) BUYYAuthor *author; + @end + @implementation BUYYBook + @end + + int main() { + // create model from json + BUYYBook *book = [BUYYBook BUYY_modelWithJSON:@"{\"name\": \"Harry Potter\", \"pages\": 256, \"author\": {\"name\": \"J.K.Rowling\", \"birthday\": \"1965-07-31\" }}"]; + + // convert model to json + NSString *json = [book BUYY_modelToJSONString]; + // {"author":{"name":"J.K.Rowling","birthday":"1965-07-31T00:00:00+0000"},"name":"Harry Potter","pages":256} + } + + ********************** Coding/Copying/hash/equal ********************* + [at]interface BUYYShadow :NSObject + @property (nonatomic, copy) NSString *name; + @property (nonatomic, assign) CGSize size; + @end + + @implementation BUYYShadow + - (void)encodeWithCoder:(NSCoder *)aCoder { [self BUYY_modelEncodeWithCoder:aCoder]; } + - (id)initWithCoder:(NSCoder *)aDecoder { self = [super init]; return [self BUYY_modelInitWithCoder:aDecoder]; } + - (id)copyWithZone:(NSZone *)zone { return [self BUYY_modelCopy]; } + - (NSUInteger)hash { return [self BUYY_modelHash]; } + - (BOOL)isEqual:(id)object { return [self BUYY_modelIsEqual:object]; } + @end + + */ +@interface NSObject (BUYYModel) + +/** + Creates and returns a new instance of the receiver from a json. + This method is thread-safe. + + @param json A json object in `NSDictionary`, `NSString` or `NSData`. + + @return A new instance created from the json, or nil if an error occurs. + */ ++ (nullable instancetype)BUYY_modelWithJSON:(id)json; + +/** + Creates and returns a new instance of the receiver from a key-value dictionary. + This method is thread-safe. + + @param dictionary A key-value dictionary mapped to the instance's properties. + Any invalid key-value pair in dictionary will be ignored. + + @return A new instance created from the dictionary, or nil if an error occurs. + + @discussion The key in `dictionary` will mapped to the reciever's property name, + and the value will set to the property. If the value's type does not match the + property, this method will try to convert the value based on these rules: + + `NSString` or `NSNumber` -> c number, such as BOOL, int, long, float, NSUInteger... + `NSString` -> NSDate, parsed with format "BUYYBUYY-MM-dd'T'HH:mm:ssZ", "BUYYBUYY-MM-dd HH:mm:ss" or "BUYYBUYY-MM-dd". + `NSString` -> NSURL. + `NSValue` -> struct or union, such as CGRect, CGSize, ... + `NSString` -> SEL, Class. + */ ++ (nullable instancetype)BUYY_modelWithDictionary:(NSDictionary *)dictionary; + +/** + Set the receiver's properties with a json object. + + @discussion Any invalid data in json will be ignored. + + @param json A json object of `NSDictionary`, `NSString` or `NSData`, mapped to the + receiver's properties. + + @return Whether succeed. + */ +- (BOOL)BUYY_modelSetWithJSON:(id)json; + +/** + Set the receiver's properties with a key-value dictionary. + + @param dic A key-value dictionary mapped to the receiver's properties. + Any invalid key-value pair in dictionary will be ignored. + + @discussion The key in `dictionary` will mapped to the reciever's property name, + and the value will set to the property. If the value's type doesn't match the + property, this method will try to convert the value based on these rules: + + `NSString`, `NSNumber` -> c number, such as BOOL, int, long, float, NSUInteger... + `NSString` -> NSDate, parsed with format "BUYYBUYY-MM-dd'T'HH:mm:ssZ", "BUYYBUYY-MM-dd HH:mm:ss" or "BUYYBUYY-MM-dd". + `NSString` -> NSURL. + `NSValue` -> struct or union, such as CGRect, CGSize, ... + `NSString` -> SEL, Class. + + @return Whether succeed. + */ +- (BOOL)BUYY_modelSetWithDictionary:(NSDictionary *)dic; + +/** + Generate a json object from the receiver's properties. + + @return A json object in `NSDictionary` or `NSArray`, or nil if an error occurs. + See [NSJSONSerialization isValidJSONObject] for more information. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it just convert + the inner object to json object. + */ +- (nullable id)BUYY_modelToJSONObject; + +/** + Generate a json string's data from the receiver's properties. + + @return A json string's data, or nil if an error occurs. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it will also convert the + inner object to json string. + */ +- (nullable NSData *)BUYY_modelToJSONData; + +/** + Generate a json string from the receiver's properties. + + @return A json string, or nil if an error occurs. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it will also convert the + inner object to json string. + */ +- (nullable NSString *)BUYY_modelToJSONString; + +/** + Copy a instance with the receiver's properties. + + @return A copied instance, or nil if an error occurs. + */ +- (nullable id)BUYY_modelCopy; + +/** + Encode the receiver's properties to a coder. + + @param aCoder An archiver object. + */ +- (void)BUYY_modelEncodeWithCoder:(NSCoder *)aCoder; + +/** + Decode the receiver's properties from a decoder. + + @param aDecoder An archiver object. + + @return self + */ +- (id)BUYY_modelInitWithCoder:(NSCoder *)aDecoder; + +/** + Get a hash code with the receiver's properties. + + @return Hash code. + */ +- (NSUInteger)BUYY_modelHash; + +/** + Compares the receiver with another object for equality, based on properties. + + @param model Another object. + + @return `YES` if the reciever is equal to the object, otherwise `NO`. + */ +- (BOOL)BUYY_modelIsEqual:(id)model; + +/** + Description method for debugging purposes based on properties. + + @return A string that describes the contents of the receiver. + */ +- (NSString *)BUYY_modelDescription; + +@end + + + +/** + Provide some data-model method for NSArray. + */ +@interface NSArray (BUYYModel) + +/** + Creates and returns an array from a json-array. + This method is thread-safe. + + @param cls The instance's class in array. + @param json A json array of `NSArray`, `NSString` or `NSData`. + Example: [{"name","Mary"},{name:"Joe"}] + + @return A array, or nil if an error occurs. + */ ++ (nullable NSArray *)BUYY_modelArrayWithClass:(Class)cls json:(id)json; + +@end + + + +/** + Provide some data-model method for NSDictionary. + */ +@interface NSDictionary (BUYYModel) + +/** + Creates and returns a dictionary from a json. + This method is thread-safe. + + @param cls The value instance's class in dictionary. + @param json A json dictionary of `NSDictionary`, `NSString` or `NSData`. + Example: {"user1":{"name","Mary"}, "user2": {name:"Joe"}} + + @return A dictionary, or nil if an error occurs. + */ ++ (nullable NSDictionary *)BUYY_modelDictionaryWithClass:(Class)cls json:(id)json; +@end + + + +/** + If the default model transform does not fit to your model class, implement one or + more method in this protocol to change the default key-value transform process. + There's no need to add '' to your class header. + */ +@protocol BUYYModel +@optional + +/** + Custom property mapper. + + @discussion If the key in JSON/Dictionary does not match to the model's property name, + implements this method and returns the additional mapper. + + Example: + + json: + { + "n":"Harry Pottery", + "p": 256, + "ext" : { + "desc" : "A book written by J.K.Rowling." + }, + "ID" : 100010 + } + + model: + [at]interface BUYYBook : NSObject + @property NSString *name; + @property NSInteger page; + @property NSString *desc; + @property NSString *bookID; + @end + + @implementation BUYYBook + + (NSDictionary *)modelCustomPropertyMapper { + return @{@"name" : @"n", + @"page" : @"p", + @"desc" : @"ext.desc", + @"bookID": @[@"id", @"ID", @"book_id"]}; + } + @end + + @return A custom mapper for properties. + */ ++ (nullable NSDictionary *)modelCustomPropertyMapper; + +/** + The generic class mapper for container properties. + + @discussion If the property is a container object, such as NSArray/NSSet/NSDictionary, + implements this method and returns a property->class mapper, tells which kind of + object will be add to the array/set/dictionary. + + Example: + [at]class BUYYShadow, BUYYBorder, BUYYAttachment; + + [at]interface BUYYAttributes + @property NSString *name; + @property NSArray *shadows; + @property NSSet *borders; + @property NSDictionary *attachments; + @end + + @implementation BUYYAttributes + + (NSDictionary *)modelContainerPropertyGenericClass { + return @{@"shadows" : [BUYYShadow class], + @"borders" : BUYYBorder.class, + @"attachments" : @"BUYYAttachment" }; + } + @end + + @return A class mapper. + */ ++ (nullable NSDictionary *)modelContainerPropertyGenericClass; + +/** + If you need to create instances of different classes during json->object transform, + use the method to choose custom class based on dictionary data. + + @discussion If the model implements this method, it will be called to determine resulting class + during `+modelWithJSON:`, `+modelWithDictionary:`, conveting object of properties of parent objects + (both singular and containers via `+modelContainerPropertyGenericClass`). + + Example: + [at]class BUYYCircle, BUYYRectangle, BUYYLine; + + @implementation BUYYShape + + + (Class)modelCustomClassForDictionary:(NSDictionary*)dictionary { + if (dictionary[@"radius"] != nil) { + return [BUYYCircle class]; + } else if (dictionary[@"width"] != nil) { + return [BUYYRectangle class]; + } else if (dictionary[@"y2"] != nil) { + return [BUYYLine class]; + } else { + return [self class]; + } + } + + @end + + @param dictionary The json/kv dictionary. + + @return Class to create from this dictionary, `nil` to use current class. + + */ ++ (nullable Class)modelCustomClassForDictionary:(NSDictionary *)dictionary; + +/** + All the properties in blacklist will be ignored in model transform process. + Returns nil to ignore this feature. + + @return An array of property's name. + */ ++ (nullable NSArray *)modelPropertyBlacklist; + +/** + If a property is not in the whitelist, it will be ignored in model transform process. + Returns nil to ignore this feature. + + @return An array of property's name. + */ ++ (nullable NSArray *)modelPropertyWhitelist; + +/** + This method's behavior is similar to `- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic;`, + but be called before the model transform. + + @discussion If the model implements this method, it will be called before + `+modelWithJSON:`, `+modelWithDictionary:`, `-modelSetWithJSON:` and `-modelSetWithDictionary:`. + If this method returns nil, the transform process will ignore this model. + + @param dic The json/kv dictionary. + + @return Returns the modified dictionary, or nil to ignore this model. + */ +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic; + +/** + If the default json-to-model transform does not fit to your model object, implement + this method to do additional process. You can also use this method to validate the + model's properties. + + @discussion If the model implements this method, it will be called at the end of + `+modelWithJSON:`, `+modelWithDictionary:`, `-modelSetWithJSON:` and `-modelSetWithDictionary:`. + If this method returns NO, the transform process will ignore this model. + + @param dic The json/kv dictionary. + + @return Returns YES if the model is valid, or NO to ignore this model. + */ +- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic; + +/** + If the default model-to-json transform does not fit to your model class, implement + this method to do additional process. You can also use this method to validate the + json dictionary. + + @discussion If the model implements this method, it will be called at the end of + `-modelToJSONObject` and `-modelToJSONString`. + If this method returns NO, the transform process will ignore this json dictionary. + + @param dic The json dictionary. + + @return Returns YES if the model is valid, or NO to ignore this model. + */ +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUYYModel.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUYYModel.h.meta new file mode 100644 index 00000000..c69c692c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSObject+BUYYModel.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c119014163e874fd3b0180cf59f9c696 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSPointerArray+BUSafely.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSPointerArray+BUSafely.h new file mode 100755 index 00000000..579fb0e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSPointerArray+BUSafely.h @@ -0,0 +1,13 @@ +// +// NSPointerArray+Safely.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/6/21. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +@interface NSPointerArray (BU_Safely) +- (id)bu_safelyAccessObjectAtIndex:(NSUInteger)index; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSPointerArray+BUSafely.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSPointerArray+BUSafely.h.meta new file mode 100644 index 00000000..06d5ea54 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSPointerArray+BUSafely.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a8d7a55c712274eb4b2e0b2f8efe90c3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSString+BUAddtion.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSString+BUAddtion.h new file mode 100755 index 00000000..87cea50d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSString+BUAddtion.h @@ -0,0 +1,135 @@ +// +// NSString+URLEncoding.h +// BUAdSDK +// +// Created by carl on 2017/10/26. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, BULanguageType) {//"万"转换规则 + BULanguageType_showWan = 0, //直接拼接万,默认 + BULanguageType_showNum = 1, //直接展示数字 +}; + +@interface NSString (BU_URLCoding) +- (nullable NSString *)bu_URLEncodedString; +- (nullable NSString *)bu_URLDecodedString; +- (nullable NSString *)bu_URLEncodedStringWithCustomSet; +@end + +@interface NSString (BU_Encryption) +- (nullable NSString *)bu_sha256; +/** + * @brief 返回自身的md5 + * @return 返回自身的md5的16进制字串 + */ +- (nullable NSString *)bu_MD5HashString; +@end + +@interface NSString (BU_NumberToWan) +/// 数字转换成x万(以1w为界限,小于1w显示原始数字) 没有”万“走另一套展示逻辑 ++ (NSString *)bu_numberToWan:(NSInteger)target wan:(NSString *)wan; + +/// 大于1w就用k表示,不大于就直接展示多少个评分 ++ (NSString *)bu_numberToThousand:(NSInteger)target; + +@end + +@interface NSString (BU_URLStringAppend) +/* + * + string转URL + */ ++ (nullable NSURL *)bu_URLWithURLString:(NSString *)str; +/* + * + string转字典 + */ ++ (NSDictionary*)bu_parametersOfURLQueryString:(NSString*)urlString; + +/* + * + url字符串拼接参数,需要判断是否是第一个 + */ ++ (NSString *)bu_urlStringWithOriginUrlString:(NSString *)originUrlString appendParameters:(NSDictionary *)parameters; + ++ (NSString *)bu_urlStringWithBaseUrlString:(NSString *)baseUrlString requestURLString:(NSString *)requestURLString; + ++ (NSString *)bu_urlStringWithUrlString:(NSString *)urlString parameterString:(NSString *)parameterString; + +/* + * 格式转化 + 222222 -> 222,222 + */ ++ (NSString *)bu_convertNumberFormatter:(NSString *)str; + + + +/// 正则匹配字符 +/// @param pattern 正则表达式 +/// @param withTemplate 返回样式: "$1 + $2" +/// @param error 错误信息 +- (nullable NSString *)bu_replacingWithPattern:(NSString * _Nonnull)pattern withTemplate:(NSString * _Nonnull)withTemplate error:(NSError **)error; +@end + + +@interface NSString (BU_Sandbox) +/** + * 获取缓存路径 + * + * @return path where to cache + */ +- (NSString *)bu_CachePath; + +/** + * @brief 获取程序的用户文档目录的路径加上自身 + * @return 用户文档目录路径字串加上自身,该字符串是自动释放的 + */ +- (NSString *)bu_DocumentsPath; +@end + + +@interface NSString(BU_JSONValue) + +- (nullable id)bu_JSONValue:(NSError **)error; ++ (nullable id)bu_objectWithJSONData:(nullable NSData *)inData error:(NSError **)outError; + +@end + + +@interface NSString(BU_Time) + ++ (NSString*)bu_dateNowString; + ++ (NSString*)bu_dateStringSince:(NSTimeInterval)timeInterval; + ++ (NSNumber*)bu_currentInterval; + +@end + + +@interface NSString(BU_Random) + +/* @deccription生成随机字符 + * @param count 多少位随机数 + */ ++ (NSString *)randomStringWithCount:(NSUInteger)count; +@end + +@interface NSString (BU_Size) + +- (CGSize)bu_boundingRectWithSize:(CGSize)size font:(UIFont *)font; + +@end + +@interface NSString (BU_CheckingResult) + +- (nullable NSString *)bu_substringWithPattern:(NSString *)pattern; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSString+BUAddtion.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSString+BUAddtion.h.meta new file mode 100644 index 00000000..07550cad --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSString+BUAddtion.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1dcb1328800474c8e9ab93636e0bef4e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSTimer+BUBlockSupport.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSTimer+BUBlockSupport.h new file mode 100755 index 00000000..0d889ae3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSTimer+BUBlockSupport.h @@ -0,0 +1,16 @@ +// +// NSTimer+BUBlockSupport.h +// BUAdSDK +// +// Created by gdp on 2017/12/23. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +@interface NSTimer (BU_BlockSupport) + ++ (NSTimer *)bu_scheduledTimerWithTimeInterval:(NSTimeInterval)interval + repeats:(BOOL)repeats + block:(void (^)(NSTimer *))block; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSTimer+BUBlockSupport.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSTimer+BUBlockSupport.h.meta new file mode 100644 index 00000000..5bf38fa4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSTimer+BUBlockSupport.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1e1a199fa57a34d6e992367b866347dc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSUserDefaults+BUCrypt.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSUserDefaults+BUCrypt.h new file mode 100755 index 00000000..f6945cd5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSUserDefaults+BUCrypt.h @@ -0,0 +1,32 @@ +// +// NSUserDefaults+BUCrypt.h +// BUFoundation +// +// Created by Willie on 2020/9/11. +// Copyright © 2020 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSUserDefaults (BUCrypt) + +- (void)setValue:(nullable id)value + forKey:(NSString *)key + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] setObject:forkey'"))); + +- (nullable id)valueForKey:(NSString *)defaultName + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] objectForKey:'"))); + +- (void)removeObjectForKey:(NSString *)defaultName + crypt:(BOOL)crypt + error:(NSError **)error __attribute__((deprecated("This method will become invalid in version 4300, please use '[BUPersistence commonPersistence] removeObjectsForKeys:'")));; + +- (void)bu_synchronize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSUserDefaults+BUCrypt.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSUserDefaults+BUCrypt.h.meta new file mode 100644 index 00000000..fd572dd2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/NSUserDefaults+BUCrypt.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f1f9ad5b78edd44b0a477de399231c18 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIButton+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIButton+BUWebCache.h new file mode 100755 index 00000000..5d772104 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIButton+BUWebCache.h @@ -0,0 +1,387 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIButton. + */ +@interface UIButton (BUWebCache) + +#pragma mark - Image + +/** + * Get the current image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentImageURL; + +/** + * Get the image URL for a control state. + * + * @param state Which state you want to know the URL for. The values are described in UIControlState. + */ +- (nullable NSURL *)sdBu_imageURLForState:(UIControlState)state; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Background Image + +/** + * Get the current background image URL. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_currentBackgroundImageURL; + +/** + * Get the background image URL for a control state. + * + * @param state Which state you want to know the URL for. The values are described in UIControlState. + */ +- (nullable NSURL *)sdBu_backgroundImageURLForState:(UIControlState)state; + +/** + * Set the button `backgroundImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the button `backgroundImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param state The state that uses the specified title. The values are described in UIControlState. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the button `backgroundImage` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setBackgroundImageWithURL:(nullable NSURL *)url + forState:(UIControlState)state + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +#pragma mark - Cancel + +/** + * Cancel the current image download + */ +- (void)sdBu_cancelImageLoadForState:(UIControlState)state; + +/** + * Cancel the current backgroundImage download + */ +- (void)sdBu_cancelBackgroundImageLoadForState:(UIControlState)state; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIButton+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIButton+BUWebCache.h.meta new file mode 100644 index 00000000..7ae81a1f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIButton+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3be2dc1cc24364c7cbfc3845a88fb951 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUHexString.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUHexString.h new file mode 100755 index 00000000..8834ee23 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUHexString.h @@ -0,0 +1,18 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +@interface UIColor (BUHexString) + +/** + Convenience way to get hex string from color. The output should always be 32-bit RGBA hex string like `#00000000`. + */ +@property (nonatomic, copy, readonly, nonnull) NSString *sdBu_hexString; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUHexString.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUHexString.h.meta new file mode 100644 index 00000000..6a5c94a1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUHexString.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ceea0d5ffcf4241eebf7370e3af42a1e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUTheme.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUTheme.h new file mode 100755 index 00000000..653586b2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUTheme.h @@ -0,0 +1,22 @@ +// +// UIColor+BUTheme.h +// BUAdSDK +// +// Created by carl on 2017/8/15. +// Copyright © 2017年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIColor (BU_Theme) ++ (UIColor *)bu_colorWithHEX:(NSUInteger)hex; ++ (UIColor *)bu_colorWithHEX:(NSUInteger)hex alpha:(CGFloat)alpha; + ++ (UIColor *)bu_colorWithHexString:(NSString *)color; ++ (UIColor *)bu_colorWithHexString:(NSString *)color alpha:(CGFloat)alpha; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUTheme.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUTheme.h.meta new file mode 100644 index 00000000..7c7253e4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIColor+BUTheme.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8ae45270f1bad450089943c8fffe9700 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUForceDecode.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUForceDecode.h new file mode 100755 index 00000000..408e681f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUForceDecode.h @@ -0,0 +1,46 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + UIImage category about force decode feature (avoid Image/IO's lazy decoding during rendering behavior). + */ +@interface UIImage (BUForceDecode) + +/** + A bool value indicating whether the image has already been decoded. This can help to avoid extra force decode. + */ +@property (nonatomic, assign) BOOL sdBu_isDecoded; + +/** + Decode the provided image. This is useful if you want to force decode the image before rendering to improve performance. + + @param image The image to be decoded + @return The decoded image + */ ++ (nullable UIImage *)sdBu_decodedImageWithImage:(nullable UIImage *)image; + +/** + Decode and scale down the provided image + + @param image The image to be decoded + @return The decoded and scaled down image + */ ++ (nullable UIImage *)sdBu_decodedAndScaledDownImageWithImage:(nullable UIImage *)image; + +/** + Decode and scale down the provided image with limit bytes + + @param image The image to be decoded + @param bytes The limit bytes size. Provide 0 to use the build-in limit. + @return The decoded and scaled down image + */ ++ (nullable UIImage *)sdBu_decodedAndScaledDownImageWithImage:(nullable UIImage *)image limitBytes:(NSUInteger)bytes; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUForceDecode.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUForceDecode.h.meta new file mode 100644 index 00000000..a0cd1e74 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUForceDecode.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b5d4568a4f9054e3e832163d516db7e3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUGIF.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUGIF.h new file mode 100755 index 00000000..df458135 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUGIF.h @@ -0,0 +1,26 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * (c) Laurin Brandner + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + This category is just use as a convenience method. For more detail control, use methods in `UIImage+BUMultiFormat.h` or directlly use `SDImageCoder`. + */ +@interface UIImage (BUGIF) + +/** + Creates an animated UIImage from an NSData. + This will create animated image if the data is Animated GIF. And will create a static image is the data is Static GIF. + + @param data The GIF data + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithGIFData:(nullable NSData *)data; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUGIF.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUGIF.h.meta new file mode 100644 index 00000000..535ab2ec --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUGIF.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6f4f146c9726b4266a0b96530ce6c914 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMemoryCacheCost.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMemoryCacheCost.h new file mode 100755 index 00000000..288e3a43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMemoryCacheCost.h @@ -0,0 +1,27 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +/** + UIImage category for memory cache cost. + */ +@interface UIImage (BUMemoryCacheCost) + +/** + The memory cache cost for specify image used by image cache. The cost function is the bytes size held in memory. + If you set some associated object to `UIImage`, you can set the custom value to indicate the memory cost. + + For `UIImage`, this method return the single frame bytes size when `image.images` is nil for static image. Retuen full frame bytes size when `image.images` is not nil for animated image. + For `NSImage`, this method return the single frame bytes size because `NSImage` does not store all frames in memory. + @note Note that because of the limitations of category this property can get out of sync if you create another instance with CGImage or other methods. + @note For custom animated class conforms to `BU_SDAnimatedImage`, you can override this getter method in your subclass to return a more proper value instead, which representing the current frame's total bytes. + */ +@property (assign, nonatomic) NSUInteger sdBu_memoryCost; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMemoryCacheCost.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMemoryCacheCost.h.meta new file mode 100644 index 00000000..14112c81 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMemoryCacheCost.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eac3dab2bd4464c74b006392b6bbd9d6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMetadata.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMetadata.h new file mode 100755 index 00000000..df253c67 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMetadata.h @@ -0,0 +1,49 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +/** + UIImage category for image metadata, including animation, loop count, format, incremental, etc. + */ +@interface UIImage (BUMetadata) + +/** + * UIKit: + * For static image format, this value is always 0. + * For animated image format, 0 means infinite looping. + * Note that because of the limitations of categories this property can get out of sync if you create another instance with CGImage or other methods. + * AppKit: + * NSImage currently only support animated via GIF imageRep unlike UIImage. + * The getter of this property will get the loop count from GIF imageRep + * The setter of this property will set the loop count from GIF imageRep + */ +@property (nonatomic, assign) NSUInteger sdBu_imageLoopCount; + +/** + * UIKit: + * Check the `images` array property + * AppKit: + * NSImage currently only support animated via GIF imageRep unlike UIImage. It will check the imageRep's frame count. + */ +@property (nonatomic, assign, readonly) BOOL sdBu_isAnimated; + +/** + * The image format represent the original compressed image data format. + * If you don't manually specify a format, this information is retrieve from CGImage using `CGImageGetUTType`, which may return nil for non-CG based image. At this time it will return `BU_SDImageFormatUndefined` as default value. + * @note Note that because of the limitations of categories this property can get out of sync if you create another instance with CGImage or other methods. + */ +@property (nonatomic, assign) BU_SDImageFormat sdBu_imageFormat; + +/** + A bool value indicating whether the image is during incremental decoding and may not contains full pixels. + */ +@property (nonatomic, assign) BOOL sdBu_isIncremental; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMetadata.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMetadata.h.meta new file mode 100644 index 00000000..2cebc057 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMetadata.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: faaed85255807483094ebc63f7fdb7c8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMultiFormat.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMultiFormat.h new file mode 100755 index 00000000..5104babe --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMultiFormat.h @@ -0,0 +1,79 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "NSData+BUImageContentType.h" + +/** + UIImage category for convenient image format decoding/encoding. + */ +@interface UIImage (BUMultiFormat) +#pragma mark - Decode +/** + Create and decode a image with the specify image data + + @param data The image data + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data; + +/** + Create and decode a image with the specify image data and scale + + @param data The image data + @param scale The image scale factor. Should be greater than or equal to 1.0. + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data scale:(CGFloat)scale; + +/** + Create and decode a image with the specify image data and scale, allow specify animate/static control + + @param data The image data + @param scale The image scale factor. Should be greater than or equal to 1.0. + @param firstFrameOnly Even if the image data is animated image format, decode the first frame only as static image. + @return The created image + */ ++ (nullable UIImage *)sdBu_imageWithData:(nullable NSData *)data scale:(CGFloat)scale firstFrameOnly:(BOOL)firstFrameOnly; + +#pragma mark - Encode +/** + Encode the current image to the data, the image format is unspecified + + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageData; + +/** + Encode the current image to data with the specify image format + + @param imageFormat The specify image format + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat NS_SWIFT_NAME(sdBu_imageData(as:)); + +/** + Encode the current image to data with the specify image format and compression quality + + @param imageFormat The specify image format + @param compressionQuality The quality of the resulting image data. Value between 0.0-1.0. Some coders may not support compression quality. + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat compressionQuality:(double)compressionQuality NS_SWIFT_NAME(sdBu_imageData(as:compressionQuality:)); + +/** + Encode the current image to data with the specify image format and compression quality, allow specify animate/static control + + @param imageFormat The specify image format + @param compressionQuality The quality of the resulting image data. Value between 0.0-1.0. Some coders may not support compression quality. + @param firstFrameOnly Even if the image is animated image, encode the first frame only as static image. + @return The encoded data. If can't encode, return nil + */ +- (nullable NSData *)sdBu_imageDataAsFormat:(BU_SDImageFormat)imageFormat compressionQuality:(double)compressionQuality firstFrameOnly:(BOOL)firstFrameOnly NS_SWIFT_NAME(sdBu_imageData(as:compressionQuality:firstFrameOnly:)); + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMultiFormat.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMultiFormat.h.meta new file mode 100644 index 00000000..67a73d20 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUMultiFormat.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e8b2736f92c8e46ae9d39e60a15dc41f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUTransform.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUTransform.h new file mode 100755 index 00000000..e322ca96 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUTransform.h @@ -0,0 +1,146 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +typedef NS_ENUM(NSUInteger, BU_SDImageScaleMode) { + BU_SDImageScaleModeFill = 0, + BU_SDImageScaleModeAspectFit = 1, + BU_SDImageScaleModeAspectFill = 2 +}; + +#if SD_UIKIT || SD_WATCH +typedef UIRectCorner BU_SDRectCorner; +#else +typedef NS_OPTIONS(NSUInteger, BU_SDRectCorner) { + BU_SDRectCornerTopLeft = 1 << 0, + BU_SDRectCornerTopRight = 1 << 1, + BU_SDRectCornerBottomLeft = 1 << 2, + BU_SDRectCornerBottomRight = 1 << 3, + BU_SDRectCornerAllCorners = ~0UL +}; +#endif + +/** + Provide some commen method for `UIImage`. + Image process is based on Core Graphics and vImage. + */ +@interface UIImage (BUTransform) + +#pragma mark - Image Geometry + +/** + Returns a new image which is resized from this image. + You can specify a larger or smaller size than the image size. The image content will be changed with the scale mode. + + @param size The new size to be resized, values should be positive. + @param scaleMode The scale mode for image content. + @return The new image with the given size. + */ +- (nullable UIImage *)sdBu_resizedImageWithSize:(CGSize)size scaleMode:(BU_SDImageScaleMode)scaleMode; + +/** + Returns a new image which is cropped from this image. + + @param rect Image's inner rect. + @return The new image with the cropping rect. + */ +- (nullable UIImage *)sdBu_croppedImageWithRect:(CGRect)rect; + +/** + Rounds a new image with a given corner radius and corners. + + @param cornerRadius The radius of each corner oval. Values larger than half the + rectangle's width or height are clamped appropriately to + half the width or height. + @param corners A bitmask value that identifies the corners that you want + rounded. You can use this parameter to round only a subset + of the corners of the rectangle. + @param borderWidth The inset border line width. Values larger than half the rectangle's + width or height are clamped appropriately to half the width + or height. + @param borderColor The border stroke color. nil means clear color. + @return The new image with the round corner. + */ +- (nullable UIImage *)sdBu_roundedCornerImageWithRadius:(CGFloat)cornerRadius + corners:(BU_SDRectCorner)corners + borderWidth:(CGFloat)borderWidth + borderColor:(nullable UIColor *)borderColor; + +/** + Returns a new rotated image (relative to the center). + + @param angle Rotated radians in counterclockwise.⟲ + @param fitSize YES: new image's size is extend to fit all content. + NO: image's size will not change, content may be clipped. + @return The new image with the rotation. + */ +- (nullable UIImage *)sdBu_rotatedImageWithAngle:(CGFloat)angle fitSize:(BOOL)fitSize; + +/** + Returns a new horizontally(vertically) flipped image. + + @param horizontal YES to flip the image horizontally. ⇋ + @param vertical YES to flip the image vertically. ⥯ + @return The new image with the flipping. + */ +- (nullable UIImage *)sdBu_flippedImageWithHorizontal:(BOOL)horizontal vertical:(BOOL)vertical; + +#pragma mark - Image Blending + +/** + Return a tinted image with the given color. This actually use alpha blending of current image and the tint color. + + @param tintColor The tint color. + @return The new image with the tint color. + */ +- (nullable UIImage *)sdBu_tintedImageWithColor:(nonnull UIColor *)tintColor; + +/** + Return the pixel color at specify position. The point is from the top-left to the bottom-right and 0-based. The returned the color is always be RGBA format. The image must be CG-based. + @note The point's x/y should not be smaller than 0, or greater than or equal to width/height. + @note The overhead of object creation means this method is best suited for infrequent color sampling. For heavy image processing, grab the raw bitmap data and process yourself. + + @param point The position of pixel + @return The color for specify pixel, or nil if any error occur + */ +- (nullable UIColor *)sdBu_colorAtPoint:(CGPoint)point; + +/** + Return the pixel color array with specify rectangle. The rect is from the top-left to the bottom-right and 0-based. The returned the color is always be RGBA format. The image must be CG-based. + @note The rect's width/height should not be smaller than or equal to 0. The minX/minY should not be smaller than 0. The maxX/maxY should not be greater than width/height. Attention this limit is different from `sdBu_colorAtPoint:` (point: (0, 0) like rect: (0, 0, 1, 1)) + @note The overhead of object creation means this method is best suited for infrequent color sampling. For heavy image processing, grab the raw bitmap data and process yourself. + + @param rect The rectangle of pixels + @return The color array for specify pixels, or nil if any error occur + */ +- (nullable NSArray *)sdBu_colorsWithRect:(CGRect)rect; + +#pragma mark - Image Effect + +/** + Return a new image applied a blur effect. + + @param blurRadius The radius of the blur in points, 0 means no blur effect. + + @return The new image with blur effect, or nil if an error occurs (e.g. no enough memory). + */ +- (nullable UIImage *)sdBu_blurredImageWithRadius:(CGFloat)blurRadius; + +#if SD_UIKIT || SD_MAC +/** + Return a new image applied a CIFilter. + + @param filter The CIFilter to be applied to the image. + @return The new image with the CIFilter, or nil if an error occurs (e.g. no + enough memory). + */ +- (nullable UIImage *)sdBu_filteredImageWithFilter:(nonnull CIFilter *)filter; +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUTransform.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUTransform.h.meta new file mode 100644 index 00000000..86dfbd0e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImage+BUTransform.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5bdc28ebb06df421e99cf752cda7d1bf +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUHighlightedWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUHighlightedWebCache.h new file mode 100755 index 00000000..dbc4405e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUHighlightedWebCache.h @@ -0,0 +1,129 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" + +#if SD_UIKIT + +#import "BU_SDWebImageManager.h" + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIImageView for highlighted state. + */ +@interface UIImageView (BUHighlightedWebCache) + +/** + * Set the imageView `highlightedImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url`, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the imageView `highlightedImage` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `highlightedImage` with an `url` and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `highlightedImage` with an `url`, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setHighlightedImageWithURL:(nullable NSURL *)url + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUHighlightedWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUHighlightedWebCache.h.meta new file mode 100644 index 00000000..4ddf1d25 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUHighlightedWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 80053e4a16eff4b2db6907a079473bc0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUWebCache.h new file mode 100755 index 00000000..2d4fc81e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUWebCache.h @@ -0,0 +1,194 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageManager.h" + +/** + * Usage with a UITableViewCell sub-class: + * + * @code + +#import + +... + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + static NSString *MyIdentifier = @"MyIdentifier"; + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; + + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier]; + } + + // Here we use the provided sdBu_setImageWithURL:placeholderImage: method to load the web image + // Ensure you use a placeholder image otherwise cells will be initialized with no image + [cell.imageView sdBu_setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"] + placeholderImage:[UIImage imageNamed:@"placeholder"]]; + + cell.textLabel.text = @"My BU_Text"; + return cell; +} + + * @endcode + */ + +/** + * Integrates SDWebImage async downloading and caching of remote images with UIImageView. + */ +@interface UIImageView (BUWebCache) + +/** + * Set the imageView `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @see sdBu_setImageWithURL:placeholderImage:options: + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context; + +/** + * Set the imageView `image` with an `url`. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + completed:(nullable BU_SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder and custom options. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +/** + * Set the imageView `image` with an `url`, placeholder, custom options and context. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)sdBu_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDExternalCompletionBlock)completedBlock; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUWebCache.h.meta new file mode 100644 index 00000000..9998ac9d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 15bd66f495f8e4252aaa93510af00ce1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BU_ZFCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BU_ZFCache.h new file mode 100755 index 00000000..609b46d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BU_ZFCache.h @@ -0,0 +1,127 @@ +// +// UIImageView+ZFCache.h +// Player +// +// Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import + +typedef void (^BU_ZFDownLoadDataCallBack)(NSData *data, NSError *error); +typedef void (^BU_ZFDownloadProgressBlock)(unsigned long long total, unsigned long long current); + +@interface BU_ZFImageDownloader : NSObject + +@property (nonatomic, strong) NSURLSession *session; +@property (nonatomic, strong) NSURLSessionDownloadTask *task; + +@property (nonatomic, assign) unsigned long long totalLength; +@property (nonatomic, assign) unsigned long long currentLength; + +@property (nonatomic, copy) BU_ZFDownloadProgressBlock progressBlock; +@property (nonatomic, copy) BU_ZFDownLoadDataCallBack callbackOnFinished; + +- (void)startDownloadImageWithUrl:(NSString *)url + progress:(BU_ZFDownloadProgressBlock)progress + finished:(BU_ZFDownLoadDataCallBack)finished; + +@end + +typedef void (^BU_ZFImageBlock)(UIImage *image); + +@interface UIImageView (BU_ZFCache) + +/** + * Get/Set the callback block when download the image finished. + * + * param image The image object from network or from disk. + */ +@property (nonatomic, copy) BU_ZFImageBlock bu_completion; + +/** + * Image downloader + */ +@property (nonatomic, strong) BU_ZFImageDownloader *bu_imageDownloader; + +/** + * Specify the URL to download images fails, the number of retries, the default is 2 + */ +@property (nonatomic, assign) NSUInteger bu_attemptToReloadTimesForFailedURL; + +/** + * Will automatically download to cutting for UIImageView size of image.The default value is NO. + * If set to YES, then the download after a successful store only after cutting the image + */ +@property (nonatomic, assign) BOOL bu_shouldAutoClipImageToViewSize; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImageName The image name to be set initially, until the image request finishes. + */ +- (void)setBUImageWithURLString:(NSString *)url placeholderImageName:(NSString *)placeholderImageName; + +/** + * Set the imageView `image` with an `url` and a placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImage The image to be set initially, until the image request finishes. + */ +- (void)setBUImageWithURLString:(NSString *)url placeholder:(UIImage *)placeholderImage; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImage The image to be set initially, until the image request finishes. + * @param completion A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)setBUImageWithURLString:(NSString *)url + placeholder:(UIImage *)placeholderImage + completion:(void (^)(UIImage *image))completion; + +/** + * Set the imageView `image` with an `url`, placeholder. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholderImageName The image name to be set initially, until the image request finishes. + * @param completion A block called when operation has been completed. This block has no return value + * and takes the requested UIImage as first parameter. In case of error the image parameter + * is nil and the second parameter may contain an NSError. The third parameter is a Boolean + * indicating if the image was retrieved from the local cache or from the network. + * The fourth parameter is the original image url. + */ +- (void)setBUImageWithURLString:(NSString *)url + placeholderImageName:(NSString *)placeholderImageName + completion:(void (^)(UIImage *image))completion; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BU_ZFCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BU_ZFCache.h.meta new file mode 100644 index 00000000..f123dded --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIImageView+BU_ZFCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6dcad4fa379d9421d9e0ba85e29e36dc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUAdditions.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUAdditions.h new file mode 100755 index 00000000..79b30267 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUAdditions.h @@ -0,0 +1,116 @@ +// +// UIView+Additions.h +// BUAdSDK +// +// Created by bytedance_yuanhuan on 2018/3/15. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIView (BU_Additions) + +- (UIImage *)bu_captureView; + +@end + +typedef enum { + UIViewBorderOptionTop = 0, + UIViewBorderOptionRight, + UIViewBorderOptionBottom, + UIViewBorderOptionLeft, + UIViewBorderOptionAll +} UIViewBorderOption; + + +typedef struct { + CGFloat topLeft; + CGFloat topRight; + CGFloat bottomLeft; + CGFloat bottomRight; +} BUFCornerRadii; + + +@interface UIView (BU_Border) + +- (void)bu_setBorder:(UIViewBorderOption)option width:(CGFloat)width color:(UIColor *)color; +- (void)bu_setDashBorder:(UIViewBorderOption)option width:(CGFloat)width color:(UIColor *)color; +- (void)bu_roundCornerWithDashBorder:(CGFloat)radius width:(CGFloat)widht color:(UIColor *)color; +- (void)bu_updateClippingForLayer:(CALayer *)layer cornerRadii:(BUFCornerRadii)cornerRadii maxRadius:(CGFloat)maxRadius; +@end + + +@interface UIView (BU_FrameAdditions) +@property (nonatomic) float bu_x; +@property (nonatomic) float bu_y; +@property (nonatomic) float bu_width; +@property (nonatomic) float bu_height; +@property (nonatomic, getter = bu_y,setter = setBu_y:) float bu_top; // 增加bu前缀,防止与外部开发者的分类属性名冲突:https://jira.bytedance.com/browse/UNION-4447 fixed in 3300 by chaors +@property (nonatomic, getter = bu_x,setter = setBu_x:) float bu_left; +@property (nonatomic) float bu_bottom; +@property (nonatomic) float bu_right; +@property (nonatomic) CGSize bu_size; +@property (nonatomic) CGPoint bu_origin; +@property (nonatomic) CGFloat bu_centerX; +@property (nonatomic) CGFloat bu_centerY; + +// 设置最大右边 +- (void)bu_setMaxRight:(CGFloat)maxRight; + +- (UIViewController *)bu_viewController; +@end + + +@interface UIView (BU_TKCategory) + +// DRAW GRADIENT ++ (void)bu_drawGradientInRect:(CGRect)rect withColors:(NSArray*)colors; + +// DRAW ROUNDED RECTANGLE ++ (void)bu_drawRoundRectangleInRect:(CGRect)rect withRadius:(CGFloat)radius color:(UIColor*)color; + +// DRAW LINE ++ (void)bu_drawLineInRect:(CGRect)rect red:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha; ++ (void)bu_drawLineInRect:(CGRect)rect colors:(CGFloat[_Nullable])colors; ++ (void)bu_drawLineInRect:(CGRect)rect colors:(CGFloat[_Nullable])colors width:(CGFloat)lineWidth cap:(CGLineCap)cap; + +@end + + +@interface UIView (BU_Gesture) + +- (UILongPressGestureRecognizer *)bu_addLogPressGestureWithTarget:(id)target selecter:(SEL)aSelector; + +@property (nonatomic, strong, nullable) UITapGestureRecognizer *bu_tgr; +// 会移除旧的手势 +- (void)bu_addGestureRecognizerWithTarget:(id)target action:(SEL)action; +- (void)bu_removeGestureRecognizer; +@end + +@interface UIView (BU_FindFirstResponder) +- (UIView *)bu_findViewThatIsFirstResponder; +@end + +@interface UIView (BU_InScreen) +- (BOOL)bu_checkInCurrentScreenWithEdgeInsets:(UIEdgeInsets)edgeInsets; +- (BOOL)bu_checkInScreenYWithPaddingTop:(CGFloat)paddingTop paddingToBottom:(CGFloat)paddingToBottom; +- (BOOL)bu_checkInScreenXWithPaddingLeft:(CGFloat)paddingLeft paddingToRight:(CGFloat)paddingToRight; +@end + +@interface UIView (BU_NearestController) +- (UIViewController *)bu_findNearestController; + + + + +@end + +@interface UIView (BU_SafeArea) +- (UIEdgeInsets)bu_safeAreaInsets; + ++ (UIEdgeInsets)bu_defaultAreaInsets; + +@end +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUAdditions.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUAdditions.h.meta new file mode 100644 index 00000000..81a96e2a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUAdditions.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a2be583ab54f84fd598cc0597dc2a5a7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCache.h new file mode 100755 index 00000000..a5cf63a8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCache.h @@ -0,0 +1,101 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageDefine.h" +#import "BU_SDWebImageManager.h" +#import "BU_SDWebImageTransition.h" +#import "BU_SDWebImageIndicator.h" + +/** + The value specify that the image progress unit count cannot be determined because the progressBlock is not been called. + */ +FOUNDATION_EXPORT const int64_t BU_SDWebImageProgressUnitCountUnknown; /* 1LL */ + +typedef void(^SDSetImageBlock)(UIImage * _Nullable image, NSData * _Nullable imageData, BU_SDImageCacheType cacheType, NSURL * _Nullable imageURL); + +/** + Integrates SDWebImage async downloading and caching of remote images with UIView subclass. + */ +@interface UIView (BUWebCache) + +/** + * Get the current image URL. + * + * @note Note that because of the limitations of categories this property can get out of sync if you use setImage: directly. + */ +@property (nonatomic, strong, readonly, nullable) NSURL *sdBu_imageURL; + +/** + * The current image loading progress associated to the view. The unit count is the received size and excepted size of download. + * The `totalUnitCount` and `completedUnitCount` will be reset to 0 after a new image loading start (change from current queue). And they will be set to `BU_SDWebImageProgressUnitCountUnknown` if the progressBlock not been called but the image loading success to mark the progress finished (change from main queue). + * @note You can use Key-Value Observing on the progress, but you should take care that the change to progress is from a background queue during download(the same as progressBlock). If you want to using KVO and update the UI, make sure to dispatch on the main queue. And it's recommand to use some KVO libs like KVOController because it's more safe and easy to use. + * @note The getter will create a progress instance if the value is nil. But by default, we don't create one. If you need to use Key-Value Observing, you must trigger the getter or set a custom progresss instance before the loading start. The default value is nil. + * @note Note that because of the limitations of categories this property can get out of sync if you update the progress directly. + */ +@property (nonatomic, strong, null_resettable) NSProgress *sdBu_imageProgress; + +/** + * Set the imageView `image` with an `url` and optionally a placeholder image. + * + * The download is asynchronous and cached. + * + * @param url The url for the image. + * @param placeholder The image to be set initially, until the image request finishes. + * @param options The options to use when downloading the image. @see BU_SDWebImageOptions for the possible values. + * @param context A context contains different options to perform specify changes or processes, see `BU_SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. + * @param setImageBlock Block used for custom set image code. If not provide, use the built-in set image code (supports `UIImageView/NSImageView` and `UIButton/NSButton` currently) + * @param progressBlock A block called while image is downloading + * @note the progress block is executed on a background queue + * @param completedBlock A block called when operation has been completed. + * This block has no return value and takes the requested UIImage as first parameter and the NSData representation as second parameter. + * In case of error the image parameter is nil and the third parameter may contain an NSError. + * + * The forth parameter is an `BU_SDImageCacheType` enum indicating if the image was retrieved from the local cache + * or from the memory cache or from the network. + * + * The fith parameter normally is always YES. However, if you provide SDWebImageAvoidAutoSetImage with SDWebImageProgressiveLoad options to enable progressive downloading and set the image yourself. This block is thus called repeatedly with a partial image. When image is fully downloaded, the + * block is called a last time with the full image and the last parameter set to YES. + * + * The last parameter is the original image URL + */ +- (void)sdBu_internalSetImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder + options:(BU_SDWebImageOptions)options + context:(nullable SDWebImageContext *)context + setImageBlock:(nullable SDSetImageBlock)setImageBlock + progress:(nullable SDImageLoaderProgressBlock)progressBlock + completed:(nullable BU_SDInternalCompletionBlock)completedBlock; + +/** + * Cancel the current image load + */ +- (void)sdBu_cancelCurrentImageLoad; + +#if SD_UIKIT || SD_MAC + +#pragma mark - Image Transition + +/** + The image transition when image load finished. See `SDWebImageTransition`. + If you specify nil, do not do transition. Defautls to nil. + */ +@property (nonatomic, strong, nullable) BU_SDWebImageTransition *sdBu_imageTransition; + +#pragma mark - Image Indicator + +/** + The image indicator during the image loading. If you do not need indicator, specify nil. Defaults to nil + The setter will remove the old indicator view and add new indicator view to current view's subview. + @note Because this is UI related, you should access only from the main queue. + */ +@property (nonatomic, strong, nullable) id sdBu_imageIndicator; + +#endif + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCache.h.meta new file mode 100644 index 00000000..9a8f492f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 29f7e71c0d8954d7fbe416534d8004d1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCacheOperation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCacheOperation.h new file mode 100755 index 00000000..e541d0c0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCacheOperation.h @@ -0,0 +1,48 @@ +/* + * This file is part of the SDWebImage package. + * (c) Olivier Poitrey + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#import "BU_SDWebImageCompat.h" +#import "BU_SDWebImageOperation.h" + +/** + These methods are used to support canceling for UIView image loading, it's designed to be used internal but not external. + All the stored operations are weak, so it will be dalloced after image loading finished. If you need to store operations, use your own class to keep a strong reference for them. + */ +@interface UIView (BUWebCacheOperation) + +/** + * Get the image load operation for key + * + * @param key key for identifying the operations + * @return the image load operation + */ +- (nullable id)sdBu_imageLoadOperationForKey:(nullable NSString *)key; + +/** + * Set the image load operation (storage in a UIView based weak map table) + * + * @param operation the operation + * @param key key for storing the operation + */ +- (void)sdBu_setImageLoadOperation:(nullable id)operation forKey:(nullable NSString *)key; + +/** + * Cancel all operations for the current UIView and key + * + * @param key key for identifying the operations + */ +- (void)sdBu_cancelImageLoadOperationWithKey:(nullable NSString *)key; + +/** + * Just remove the operations corresponding to the current UIView and key without cancelling them + * + * @param key key for identifying the operations + */ +- (void)sdBu_removeImageLoadOperationWithKey:(nullable NSString *)key; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCacheOperation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCacheOperation.h.meta new file mode 100644 index 00000000..fc4745dc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIView+BUWebCacheOperation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 226a0dac153f44cca8dc4b9bbcbe7a5a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIViewController+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIViewController+BUUtilities.h new file mode 100755 index 00000000..18435340 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIViewController+BUUtilities.h @@ -0,0 +1,41 @@ +// +// UIViewController+BUUtilities.h +// BUAdSDK +// +// Created by Siwant on 2019/4/11. +// Copyright © 2019 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIViewController (BUUtilities) + +- (void)bu_safelyPresentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion; + + + +// 获取当前最后一个被present出的VC,如果没有返回self +- (UIViewController *)bu_presentingViewController; +// 获取当前最后一个被present出的VC,如果没有返回window的最上的topVC ++ (UIViewController *)bu_presentingViewController; + +// 获取广义mainWindow的rootViewController ++ (nullable UIViewController*)bu_mainWindowRootViewController; + +// 获取指定UIResponder的链下游第一个ViewController对象 ++ (nullable UIViewController*)bu_nextViewControllerFor:(UIResponder* _Nullable)responder; + +// 获取指定UIResponder的链下游第一个UINavigationController对象 ++ (nullable UINavigationController*)bu_nextNavigationControllerFor:(UIResponder* _Nullable)responder; + +/** 查找当前显示的ViewController*/ ++ (UIViewController *)bu_topViewController; + ++ (UIViewController *)bu_recursiveFindCurrentShowViewControllerFromViewController:(UIViewController *)fromVC; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIViewController+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIViewController+BUUtilities.h.meta new file mode 100644 index 00000000..2a5488b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIViewController+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2b5ec8dc652d84ac38716f7415e7eb6b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIWindow+BUUtilities.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIWindow+BUUtilities.h new file mode 100755 index 00000000..f7aab091 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIWindow+BUUtilities.h @@ -0,0 +1,21 @@ +// +// UIWindow+BUUtilities.h +// BUFoundation +// +// Created by Rush.D.Xzj on 2020/12/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIWindow (BUUtilities) +// 获取当前应用的广义mainWindow ++ (nullable UIWindow *)bu_mainWindow; + +// 广义mainWindow的大小(兼容iOS7) ++ (CGSize)bu_windowSize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIWindow+BUUtilities.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIWindow+BUUtilities.h.meta new file mode 100644 index 00000000..af2801ba --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BUFoundation.framework/Versions/Current/Headers/UIWindow+BUUtilities.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d0a9bcfee225c495cb75ba18a98e42bb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework.meta new file mode 100644 index 00000000..b81360df --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 8405b1bf10f8b4b75be21a65e0df0c9b +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/BURelyFoundation b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/BURelyFoundation new file mode 100755 index 00000000..213d065d Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/BURelyFoundation differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/BURelyFoundation.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/BURelyFoundation.meta new file mode 100644 index 00000000..f84c3ec0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/BURelyFoundation.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cf7078c18eed2445093f482a2091ab88 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers.meta new file mode 100644 index 00000000..b3af95fd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1edd031fe8142423ca051376b0fcdbad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUBaseRequest.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUBaseRequest.h new file mode 100755 index 00000000..27546f75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUBaseRequest.h @@ -0,0 +1,147 @@ +// +// BUBaseRequest.h +// BUAdSDK +// +// Created by 李盛 on 2018/4/2. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// HTTP Request method. +typedef NS_ENUM(NSInteger, BURequestMethod) { + BURequestMethodGET = 0, + BURequestMethodPOST, + BURequestMethodHEAD, + BURequestMethodPUT, + BURequestMethodDELETE, + BURequestMethodPATCH, +}; + +/// Request serializer type. +typedef NS_ENUM(NSInteger, BURequestSerializerType) { + BURequestSerializerTypeHTTP = 0, + BURequestSerializerTypeJSON, + BURequestSerializerTypeProtobuf +}; + +/// Response serializer type, which determines response serialization process and +/// the type of `responseObject`. +typedef NS_ENUM(NSInteger, BUResponseSerializerType) { + /// NSData type + BUResponseSerializerTypeHTTP, + /// JSON object type + BUResponseSerializerTypeJSON, + /// Protobuf object type + BUResponseSerializerTypeProtobuf +}; + +/// Request priority +typedef NS_ENUM(NSInteger, BURequestPriority) { + BURequestPriorityLow = -4L, + BURequestPriorityDefault = 0, + BURequestPriorityHigh = 4, +}; + +@protocol BU_AFMultipartFormData; + +typedef void (^BUAFConstructingBlock)(id formData); +typedef void (^BUAFURLSessionTaskProgressBlock)(NSProgress *); + +@class BUBaseRequest; + +typedef void(^BURequestCompletionBlock)(__kindof BUBaseRequest *request); + +@interface BUBaseRequest : NSObject + +/// The underlying NSURLSessionTask. +/// +/// @warning This value is actually nil and should not be accessed before the request starts. +@property (nonatomic, strong) NSURLSessionTask *requestTask; +@property (nonatomic, strong) NSData *responseData; +@property (nonatomic, strong) id responseJSONObject; +@property (nonatomic, strong) id responseObject; +@property (nonatomic, strong) NSString *responseString; +@property (nonatomic, strong) NSError *error; +@property (nonatomic, assign) BURequestMethod requestMethod; +/// For post method, when httpbody can not be Serialized from NSDictionary json. if httpBody exists, please use httpBody directively and ignore 'requestArgument' +@property (nonatomic, strong) NSData *httpBody; + +/// Shortcut for `requestTask.currentRequest`.当前活跃的request +@property (nonatomic, strong, readonly) NSURLRequest *currentRequest; + +/// Shortcut for `requestTask.originalRequest`.在task创建的时候传入的request(有可能会重定向) +@property (nonatomic, strong, readonly) NSURLRequest *originalRequest; + +/// Shortcut for `requestTask.response`. +@property (nonatomic, strong, readonly) NSHTTPURLResponse *response; + +/// The response status code. +@property (nonatomic, readonly) NSInteger responseStatusCode; + +/// The success callback. Note if this value is not nil and `requestFinished` delegate method is +/// also implemented, both will be executed but delegate method is first called. This block +/// will be called on the main queue. +@property (nonatomic, copy, nullable) BURequestCompletionBlock successCompletionBlock; + +/// The failure callback. Note if this value is not nil and `requestFailed` delegate method is +/// also implemented, both will be executed but delegate method is first called. This block +/// will be called on the main queue. +@property (nonatomic, copy, nullable) BURequestCompletionBlock failureCompletionBlock; + +/// Additional HTTP request header field. +- (nullable NSDictionary *)requestHeaderFieldValueDictionary; + +/// Request serializer type. +- (BURequestSerializerType)requestSerializerType; + +/// Response serializer type. See also `responseObject`. +- (BUResponseSerializerType)responseSerializerType; + +/// Request cache policy. +- (NSURLRequestCachePolicy)bu_requestCachePolicy; + +//constructingBodyWithBlock:在此block种可以为上传的参数添加(拼接)新的需要的上传的数据,适用于上传给服务器的数据流比较大的时候 +@property (nonatomic, copy, nullable) BUAFConstructingBlock constructingBodyBlock; + +- (NSString *)requestUrl; +- (NSString *)cdnUrl; +- (NSString *)baseUrl; +- (NSTimeInterval)requestTimeoutInterval; +- (nullable id)requestArgument; +/// Whether the request is allowed to use the cellular radio (if present). Default is YES. +- (BOOL)allowsCellularAccess; +/// Nil out both success and failure callback blocks. +- (void)clearCompletionBlock; + +@property (nonatomic) BURequestPriority requestPriority; + +/// Should use CDN when sending request. +- (BOOL)useCDN; + +#pragma mark - Request Action +///============================================================================= +/// @name Request Action +///============================================================================= + +/// Append self to request queue and start the request. +- (void)start; + +/// Remove self from request queue and cancel the request. +- (void)stop; + +/// Convenience method to start the request with block callbacks. +- (void)startWithCompletionBlockWithSuccess:(nullable BURequestCompletionBlock)success + failure:(nullable BURequestCompletionBlock)failure; + +/// Return cancelled state of request task. +@property (nonatomic, readonly, getter=isCancelled) BOOL cancelled; + +/// Executing state of request task. +@property (nonatomic, readonly, getter=isExecuting) BOOL executing; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUBaseRequest.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUBaseRequest.h.meta new file mode 100644 index 00000000..1daf6a68 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUBaseRequest.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b26acd6649cc5432d81d90bc04b26db7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUNetworkAgent.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUNetworkAgent.h new file mode 100755 index 00000000..640e8d7c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUNetworkAgent.h @@ -0,0 +1,58 @@ +// +// BUNetworkAgent.h +// BUAdSDK +// +// Created by 李盛 on 2018/4/2. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, BUSSLPinningMode) { + BU_SSLPinningModeNone, + BU_SSLPinningModePublicKey, + BU_SSLPinningModeCertificate +}; + +typedef NSURLSessionAuthChallengeDisposition (^BUURLSessionDidReceiveAuthenticationChallengeBlock)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential); + +@class BUBaseRequest; + + +@interface BUNetworkAgent : NSObject + +- (instancetype)init; ++ (instancetype)new NS_UNAVAILABLE; + +/// Get the shared agent. ++ (BUNetworkAgent *)sharedAgent; + +/// network is DEBUG ++ (void)openNetWorkDebug; + +/// Add request to session and start it. +- (void)addRequest:(BUBaseRequest *)request; + +/// Cancel a request that was previously added. +- (void)cancelRequest:(BUBaseRequest *)request; + +/// Cancel all requests that were previously added. +- (void)cancelAllRequests; + +/// Return the constructed URL of request. +/// +/// @param request The request to parse. Should not be nil. +/// +/// @return The result URL. +- (NSString *)buildRequestUrl:(BUBaseRequest *)request; + +/// set custom AuthenticationChanllengeBlock, do not set it when using shareAgent, you can use it when using another instance of BUNetworkAgent +- (void)setSessionDidReceiveAuthenticationChanllengeBlock:(BUURLSessionDidReceiveAuthenticationChallengeBlock)challengeBlock; + +- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust + forDomain:(nullable NSString *)domain; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUNetworkAgent.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUNetworkAgent.h.meta new file mode 100644 index 00000000..e90c6fb4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BUNetworkAgent.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 680949f2ecac147e5a03312b2990eb99 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BURelyFoundation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BURelyFoundation.h new file mode 100755 index 00000000..aed0c823 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BURelyFoundation.h @@ -0,0 +1,27 @@ +// +// BURelyFoundation.h +// BURelyFoundation +// +// Created by zth on 2022/1/4. +// + +#ifndef BURelyFoundation_h +#define BURelyFoundation_h + +# pragma mark - NET + +#import +#import + +# pragma mark - AFN + +#import +#import +#import +#import + + + + + +#endif /* BURelyFoundation_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BURelyFoundation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BURelyFoundation.h.meta new file mode 100644 index 00000000..72cb63ea --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BURelyFoundation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 363a2276557fc43d9af6a31dda65845e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFAutoPurgingImageCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFAutoPurgingImageCache.h new file mode 100755 index 00000000..4a9443a2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFAutoPurgingImageCache.h @@ -0,0 +1,149 @@ +// BU_AFAutoPurgingImageCache.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +#if TARGET_OS_IOS || TARGET_OS_TV +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The `BU_AFImageCache` protocol defines a set of APIs for adding, removing and fetching images from a cache synchronously. + */ +@protocol BU_AFImageCache + +/** + Adds the image to the cache with the given identifier. + + @param image The image to cache. + @param identifier The unique identifier for the image in the cache. + */ +- (void)addImage:(NSData *)image withIdentifier:(NSString *)identifier; + +/** + Removes the image from the cache matching the given identifier. + + @param identifier The unique identifier for the image in the cache. + + @return A BOOL indicating whether or not the image was removed from the cache. + */ +- (BOOL)removeImageWithIdentifier:(NSString *)identifier; + +/** + Removes all images from the cache. + + @return A BOOL indicating whether or not all images were removed from the cache. + */ +- (BOOL)removeAllImages; + +/** + Returns the image in the cache associated with the given identifier. + + @param identifier The unique identifier for the image in the cache. + + @return An image for the matching identifier, or nil. + */ +- (nullable NSData *)imageWithIdentifier:(NSString *)identifier; +@end + + +/** + The `ImageRequestCache` protocol extends the `ImageCache` protocol by adding methods for adding, removing and fetching images from a cache given an `NSURLRequest` and additional identifier. + */ +@protocol BU_AFImageRequestCache + +/** + Adds the image to the cache using an identifier created from the request and additional identifier. + + @param image The image to cache. + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + */ +//- (void)addImage:(NSData *)image forRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +/** + Removes the image from the cache using an identifier created from the request and additional identifier. + + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + + @return A BOOL indicating whether or not all images were removed from the cache. + */ +//- (BOOL)removeImageforRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +/** + Returns the image from the cache associated with an identifier created from the request and additional identifier. + + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + + @return An image for the matching request and identifier, or nil. + */ +//- (nullable NSData *)imageforRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +@end + +/** + The `AutoPurgingImageCache` in an in-memory image cache used to store images up to a given memory capacity. When the memory capacity is reached, the image cache is sorted by last access date, then the oldest image is continuously purged until the preferred memory usage after purge is met. Each time an image is accessed through the cache, the internal access date of the image is updated. + */ +@interface BU_AFAutoPurgingImageCache : NSObject + +/** + The total memory capacity of the cache in bytes. + */ +@property (nonatomic, assign) UInt64 memoryCapacity; + +/** + The preferred memory usage after purge in bytes. During a purge, images will be purged until the memory capacity drops below this limit. + */ +@property (nonatomic, assign) UInt64 preferredMemoryUsageAfterPurge; + +/** + The current total memory usage in bytes of all images stored within the cache. + */ +@property (nonatomic, assign, readonly) UInt64 memoryUsage; + +/** + Initialies the `AutoPurgingImageCache` instance with default values for memory capacity and preferred memory usage after purge limit. `memoryCapcity` defaults to `100 MB`. `preferredMemoryUsageAfterPurge` defaults to `60 MB`. + + @return The new `AutoPurgingImageCache` instance. + */ +- (instancetype)init; + +/** + Initialies the `AutoPurgingImageCache` instance with the given memory capacity and preferred memory usage + after purge limit. + + @param memoryCapacity The total memory capacity of the cache in bytes. + @param preferredMemoryCapacity The preferred memory usage after purge in bytes. + + @return The new `AutoPurgingImageCache` instance. + */ +- (instancetype)initWithMemoryCapacity:(UInt64)memoryCapacity preferredMemoryCapacity:(UInt64)preferredMemoryCapacity; + +@end + +NS_ASSUME_NONNULL_END + +#endif + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFAutoPurgingImageCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFAutoPurgingImageCache.h.meta new file mode 100644 index 00000000..31d1b4ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFAutoPurgingImageCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f6d4075f3359a4d73aa7e459c3db4529 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFHTTPSessionManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFHTTPSessionManager.h new file mode 100755 index 00000000..85f69ebb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFHTTPSessionManager.h @@ -0,0 +1,245 @@ +// BU_AFHTTPSessionManager.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#if !TARGET_OS_WATCH +#import +#endif +#import + +#if TARGET_OS_IOS || TARGET_OS_WATCH || TARGET_OS_TV +#import +#else +#import +#endif + +#import "BU_AFURLSessionManager.h" + +/** + `BU_AFHTTPSessionManager` is a subclass of `BU_AFURLSessionManager` with convenience methods for making HTTP requests. When a `baseURL` is provided, requests made with the `GET` / `POST` / et al. convenience methods can be made with relative paths. + + ## Subclassing Notes + + Developers targeting iOS 7 or Mac OS X 10.9 or later that deal extensively with a web service are encouraged to subclass `BU_AFHTTPSessionManager`, providing a class method that returns a shared singleton object on which authentication and other configuration can be shared across the application. + + For developers targeting iOS 6 or Mac OS X 10.8 or earlier, `AFHTTPRequestOperationManager` may be used to similar effect. + + ## Methods to Override + + To change the behavior of all data task operation construction, which is also used in the `GET` / `POST` / et al. convenience methods, override `dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:`. + + ## Serialization + + Requests created by an HTTP client will contain default headers and encode parameters according to the `requestSerializer` property, which is an object conforming to ``. + + Responses received from the server are automatically validated and serialized by the `responseSerializers` property, which is an object conforming to `` + + ## URL Construction Using Relative Paths + + For HTTP convenience methods, the request serializer constructs URLs from the path relative to the `-baseURL`, using `NSURL +URLWithString:relativeToURL:`, when provided. If `baseURL` is `nil`, `path` needs to resolve to a valid `NSURL` object using `NSURL +URLWithString:`. + + Below are a few examples of how `baseURL` and relative paths interact: + + NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"]; + [NSURL URLWithString:@"foo" relativeToURL:baseURL]; // http://example.com/v1/foo + [NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL]; // http://example.com/v1/foo?bar=baz + [NSURL URLWithString:@"/foo" relativeToURL:baseURL]; // http://example.com/foo + [NSURL URLWithString:@"foo/" relativeToURL:baseURL]; // http://example.com/v1/foo + [NSURL URLWithString:@"/foo/" relativeToURL:baseURL]; // http://example.com/foo/ + [NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; // http://example2.com/ + + Also important to note is that a trailing slash will be added to any `baseURL` without one. This would otherwise cause unexpected behavior when constructing URLs using paths without a leading slash. + + @warning Managers for background sessions must be owned for the duration of their use. This can be accomplished by creating an application-wide or shared singleton instance. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFHTTPSessionManager : BU_AFURLSessionManager + +/** + The URL used to construct requests from relative paths in methods like `requestWithMethod:URLString:parameters:`, and the `GET` / `POST` / et al. convenience methods. + */ +@property (readonly, nonatomic, strong, nullable) NSURL *baseURL; + +/** + Requests created with `requestWithMethod:URLString:parameters:` & `multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:` are constructed with a set of default headers using a parameter serialization specified by this property. By default, this is set to an instance of `BU_AFHTTPRequestSerializer`, which serializes query string parameters for `GET`, `HEAD`, and `DELETE` requests, or otherwise URL-form-encodes HTTP message bodies. + + @warning `requestSerializer` must not be `nil`. + */ +@property (nonatomic, strong) BU_AFHTTPRequestSerializer * requestSerializer; + +/** + Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an instance of `BU_AFJSONResponseSerializer`. + + @warning `responseSerializer` must not be `nil`. + */ +@property (nonatomic, strong) BU_AFHTTPResponseSerializer * responseSerializer; + +///------------------------------- +/// @name Managing Security Policy +///------------------------------- + +/** + The security policy used by created session to evaluate server trust for secure connections. `BU_AFURLSessionManager` uses the `defaultPolicy` unless otherwise specified. A security policy configured with `BU_AFSSLPinningModePublicKey` or `BU_AFSSLPinningModeCertificate` can only be applied on a session manager initialized with a secure base URL (i.e. https). Applying a security policy with pinning enabled on an insecure session manager throws an `Invalid Security Policy` exception. + */ +@property (nonatomic, strong) BU_AFSecurityPolicy *securityPolicy; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns an `BU_AFHTTPSessionManager` object. + */ ++ (instancetype)manager; + +/** + Initializes an `BU_AFHTTPSessionManager` object with the specified base URL. + + @param url The base URL for the HTTP client. + + @return The newly-initialized HTTP client + */ +- (instancetype)initWithBaseURL:(nullable NSURL *)url; + +/** + Initializes an `BU_AFHTTPSessionManager` object with the specified base URL. + + This is the designated initializer. + + @param url The base URL for the HTTP client. + @param configuration The configuration used to create the managed session. + + @return The newly-initialized HTTP client + */ +- (instancetype)initWithBaseURL:(nullable NSURL *)url + sessionConfiguration:(nullable NSURLSessionConfiguration *)configuration NS_DESIGNATED_INITIALIZER; + +///--------------------------- +/// @name Making HTTP Requests +///--------------------------- + +/** + Creates and runs an `NSURLSessionDataTask` with a `GET` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString + parameters:(nullable id)parameters + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + + +/** + Creates and runs an `NSURLSessionDataTask` with a `GET` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param downloadProgress A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString + parameters:(nullable id)parameters + progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgress + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + + +/** + Creates and runs an `NSURLSessionDataTask` with a `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString + parameters:(nullable id)parameters + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + +/** + Creates and runs an `NSURLSessionDataTask` with a `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param uploadProgress A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString + parameters:(nullable id)parameters + progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + +/** + Creates and runs an `NSURLSessionDataTask` with a multipart `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +//- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString +// parameters:(nullable id)parameters +// constructingBodyWithBlock:(nullable void (^)(id formData))block +// success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success +// failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + +/** + Creates and runs an `NSURLSessionDataTask` with a multipart `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param uploadProgress A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +//- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString +// parameters:(nullable id)parameters +// constructingBodyWithBlock:(nullable void (^)(id formData))block +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress +// success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success +// failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFHTTPSessionManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFHTTPSessionManager.h.meta new file mode 100644 index 00000000..7a515e7b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFHTTPSessionManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 90bd24e4f83864a0c8c60ab2ac4663dd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFSecurityPolicy.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFSecurityPolicy.h new file mode 100755 index 00000000..1d04300c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFSecurityPolicy.h @@ -0,0 +1,154 @@ +// BU_AFSecurityPolicy.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +typedef NS_ENUM(NSUInteger, BU_AFSSLPinningMode) { + BU_AFSSLPinningModeNone, + BU_AFSSLPinningModePublicKey, + BU_AFSSLPinningModeCertificate, +}; + +/** + `BU_AFSecurityPolicy` evaluates server trust against pinned X.509 certificates and public keys over secure connections. + + Adding pinned SSL certificates to your app helps prevent man-in-the-middle attacks and other vulnerabilities. Applications dealing with sensitive customer data or financial information are strongly encouraged to route all communication over an HTTPS connection with SSL pinning configured and enabled. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFSecurityPolicy : NSObject + +/** + The criteria by which server trust should be evaluated against the pinned SSL certificates. Defaults to `BU_AFSSLPinningModeNone`. + */ +@property (readonly, nonatomic, assign) BU_AFSSLPinningMode SSLPinningMode; + +/** + The certificates used to evaluate server trust according to the SSL pinning mode. + + By default, this property is set to any (`.cer`) certificates included in the target compiling BU_AFNetworking. Note that if you are using BU_AFNetworking as embedded framework, no certificates will be pinned by default. Use `certificatesInBundle` to load certificates from your target, and then create a new policy by calling `policyWithPinningMode:withPinnedCertificates`. + + Note that if pinning is enabled, `evaluateServerTrust:forDomain:` will return true if any pinned certificate matches. + */ +@property (nonatomic, strong, nullable) NSSet *pinnedCertificates; + +/** + Whether or not to trust servers with an invalid or expired SSL certificates. Defaults to `NO`. + */ +@property (nonatomic, assign) BOOL allowInvalidCertificates; + +/** + Whether or not to validate the domain name in the certificate's CN field. Defaults to `YES`. + */ +@property (nonatomic, assign) BOOL validatesDomainName; + +///----------------------------------------- +/// @name Getting Certificates from the Bundle +///----------------------------------------- + +/** + Returns any certificates included in the bundle. If you are using BU_AFNetworking as an embedded framework, you must use this method to find the certificates you have included in your app bundle, and use them when creating your security policy by calling `policyWithPinningMode:withPinnedCertificates`. + + @return The certificates included in the given bundle. + */ ++ (NSSet *)certificatesInBundle:(NSBundle *)bundle; + +///----------------------------------------- +/// @name Getting Specific Security Policies +///----------------------------------------- + +/** + Returns the shared default security policy, which does not allow invalid certificates, validates domain name, and does not validate against pinned certificates or public keys. + + @return The default security policy. + */ ++ (instancetype)defaultPolicy; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns a security policy with the specified pinning mode. + + @param pinningMode The SSL pinning mode. + + @return A new security policy. + */ +//+ (instancetype)policyWithPinningMode:(BU_AFSSLPinningMode)pinningMode; + +/** + Creates and returns a security policy with the specified pinning mode. + + @param pinningMode The SSL pinning mode. + @param pinnedCertificates The certificates to pin against. + + @return A new security policy. + */ +//+ (instancetype)policyWithPinningMode:(BU_AFSSLPinningMode)pinningMode withPinnedCertificates:(NSSet *)pinnedCertificates; + +///------------------------------ +/// @name Evaluating Server Trust +///------------------------------ + +/** + Whether or not the specified server trust should be accepted, based on the security policy. + + This method should be used when responding to an authentication challenge from a server. + + @param serverTrust The X.509 certificate trust of the server. + @param domain The domain of serverTrust. If `nil`, the domain will not be validated. + + @return Whether or not to trust the server. + */ +- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust + forDomain:(nullable NSString *)domain; + +@end + +NS_ASSUME_NONNULL_END + +///---------------- +/// @name Constants +///---------------- + +/** + ## SSL Pinning Modes + + The following constants are provided by `BU_AFSSLPinningMode` as possible SSL pinning modes. + + enum { + BU_AFSSLPinningModeNone, + BU_AFSSLPinningModePublicKey, + BU_AFSSLPinningModeCertificate, + } + + `BU_AFSSLPinningModeNone` + Do not used pinned certificates to validate servers. + + `BU_AFSSLPinningModePublicKey` + Validate host certificates against public keys of pinned certificates. + + `BU_AFSSLPinningModeCertificate` + Validate host certificates against pinned certificates. +*/ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFSecurityPolicy.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFSecurityPolicy.h.meta new file mode 100644 index 00000000..a232b96c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFSecurityPolicy.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a8bddb65f65eb4b0e8870b5f68ba0ece +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLRequestSerialization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLRequestSerialization.h new file mode 100755 index 00000000..bb4696ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLRequestSerialization.h @@ -0,0 +1,450 @@ +// BU_AFURLRequestSerialization.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +#if TARGET_OS_IOS || TARGET_OS_TV +#import +#elif TARGET_OS_WATCH +#import +#endif + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a percent-escaped string following RFC 3986 for a query string key or value. + RFC 3986 states that the following characters are "reserved" characters. + - General Delimiters: ":", "#", "[", "]", "@", "?", "/" + - Sub-Delimiters: "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "=" + + In RFC 3986 - Section 3.4, it states that the "?" and "/" characters should not be escaped to allow + query strings to include a URL. Therefore, all "reserved" characters with the exception of "?" and "/" + should be percent-escaped in the query string. + + @param string The string to be percent-escaped. + + @return The percent-escaped string. + */ +FOUNDATION_EXPORT NSString * BU_AFPercentEscapedStringFromString(NSString *string); + +/** + A helper method to generate encoded url query parameters for appending to the end of a URL. + + @param parameters A dictionary of key/values to be encoded. + + @return A url encoded query string + */ +FOUNDATION_EXPORT NSString * BU_AFQueryStringFromParameters(NSDictionary *parameters); + +/** + The `BU_AFURLRequestSerialization` protocol is adopted by an object that encodes parameters for a specified HTTP requests. Request serializers may encode parameters as query strings, HTTP bodies, setting the appropriate HTTP header fields as necessary. + + For example, a JSON request serializer may set the HTTP body of the request to a JSON representation, and set the `Content-Type` HTTP header field value to `application/json`. + */ +@protocol BU_AFURLRequestSerialization + +/** + Returns a request with the specified parameters encoded into a copy of the original request. + + @param request The original request. + @param parameters The parameters to be encoded. + @param error The error that occurred while attempting to encode the request parameters. + + @return A serialized request. + */ +- (nullable NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request + withParameters:(nullable id)parameters + error:(NSError * _Nullable __autoreleasing *)error NS_SWIFT_NOTHROW; + +@end + +#pragma mark - + +/** + + */ +typedef NS_ENUM(NSUInteger, BU_AFHTTPRequestQueryStringSerializationStyle) { + BU_AFHTTPRequestQueryStringDefaultStyle = 0, +}; + +@protocol BU_AFMultipartFormData; + +/** + `BU_AFHTTPRequestSerializer` conforms to the `BU_AFURLRequestSerialization` & `BU_AFURLResponseSerialization` protocols, offering a concrete base implementation of query string / URL form-encoded parameter serialization and default request headers, as well as response status code and content type validation. + + Any request or response serializer dealing with HTTP is encouraged to subclass `BU_AFHTTPRequestSerializer` in order to ensure consistent default behavior. + */ +@interface BU_AFHTTPRequestSerializer : NSObject + +/** + The string encoding used to serialize parameters. `NSUTF8StringEncoding` by default. + */ +@property (nonatomic, assign) NSStringEncoding stringEncoding; + +/** + Whether created requests can use the device’s cellular radio (if present). `YES` by default. + + @see NSMutableURLRequest -setAllowsCellularAccess: + */ +@property (nonatomic, assign) BOOL allowsCellularAccess; + +/** + The cache policy of created requests. `NSURLRequestUseProtocolCachePolicy` by default. + + @see NSMutableURLRequest -setCachePolicy: + */ +@property (nonatomic, assign) NSURLRequestCachePolicy cachePolicy; + +/** + Whether created requests should use the default cookie handling. `YES` by default. + + @see NSMutableURLRequest -setHTTPShouldHandleCookies: + */ +@property (nonatomic, assign) BOOL HTTPShouldHandleCookies; + +/** + Whether created requests can continue transmitting data before receiving a response from an earlier transmission. `NO` by default + + @see NSMutableURLRequest -setHTTPShouldUsePipelining: + */ +@property (nonatomic, assign) BOOL HTTPShouldUsePipelining; + +/** + The network service type for created requests. `NSURLNetworkServiceTypeDefault` by default. + + @see NSMutableURLRequest -setNetworkServiceType: + */ +@property (nonatomic, assign) NSURLRequestNetworkServiceType networkServiceType; + +/** + The timeout interval, in seconds, for created requests. The default timeout interval is 60 seconds. + + @see NSMutableURLRequest -setTimeoutInterval: + */ +@property (nonatomic, assign) NSTimeInterval timeoutInterval; + +///--------------------------------------- +/// @name Configuring HTTP Request Headers +///--------------------------------------- + +/** + Default HTTP header field values to be applied to serialized requests. By default, these include the following: + + - `Accept-Language` with the contents of `NSLocale +preferredLanguages` + - `User-Agent` with the contents of various bundle identifiers and OS designations + + @discussion To add or remove default request headers, use `setValue:forHTTPHeaderField:`. + */ +@property (readonly, nonatomic, strong) NSDictionary *HTTPRequestHeaders; + +/** + Creates and returns a serializer with default configuration. + */ ++ (instancetype)serializer; + +/** + Sets the value for the HTTP headers set in request objects made by the HTTP client. If `nil`, removes the existing value for that header. + + @param field The HTTP header to set a default value for + @param value The value set as default for the specified header, or `nil` + */ +- (void)setValue:(nullable NSString *)value +forHTTPHeaderField:(NSString *)field; + +/** + Returns the value for the HTTP headers set in the request serializer. + + @param field The HTTP header to retrieve the default value for + + @return The value set as default for the specified header, or `nil` + */ +- (nullable NSString *)valueForHTTPHeaderField:(NSString *)field; + +/** + Sets the "Authorization" HTTP header set in request objects made by the HTTP client to a basic authentication value with Base64-encoded username and password. This overwrites any existing value for this header. + + @param username The HTTP basic auth username + @param password The HTTP basic auth password + */ +//- (void)setAuthorizationHeaderFieldWithUsername:(NSString *)username +// password:(NSString *)password; + +/** + Clears any existing value for the "Authorization" HTTP header. + */ +//- (void)clearAuthorizationHeader; + +///------------------------------------------------------- +/// @name Configuring Query String Parameter Serialization +///------------------------------------------------------- + +/** + HTTP methods for which serialized requests will encode parameters as a query string. `GET`, `HEAD`, and `DELETE` by default. + */ +@property (nonatomic, strong) NSSet *HTTPMethodsEncodingParametersInURI; + +/** + Set the method of query string serialization according to one of the pre-defined styles. + + @param style The serialization style. + + @see BU_AFHTTPRequestQueryStringSerializationStyle + */ +- (void)setQueryStringSerializationWithStyle:(BU_AFHTTPRequestQueryStringSerializationStyle)style; + +/** + Set the a custom method of query string serialization according to the specified block. + + @param block A block that defines a process of encoding parameters into a query string. This block returns the query string and takes three arguments: the request, the parameters to encode, and the error that occurred when attempting to encode parameters for the given request. + */ +- (void)setQueryStringSerializationWithBlock:(nullable NSString * (^)(NSURLRequest *request, id parameters, NSError * __autoreleasing *error))block; + +///------------------------------- +/// @name Creating Request Objects +///------------------------------- + +/** + Creates an `NSMutableURLRequest` object with the specified HTTP method and URL string. + + If the HTTP method is `GET`, `HEAD`, or `DELETE`, the parameters will be used to construct a url-encoded query string that is appended to the request's URL. Otherwise, the parameters will be encoded according to the value of the `parameterEncoding` property, and set as the request body. + + @param method The HTTP method for the request, such as `GET`, `POST`, `PUT`, or `DELETE`. This parameter must not be `nil`. + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be either set as a query string for `GET` requests, or the request HTTP body. + @param error The error that occurred while constructing the request. + + @return An `NSMutableURLRequest` object. + */ +- (NSMutableURLRequest *)requestWithMethod:(NSString *)method + URLString:(NSString *)URLString + parameters:(nullable id)parameters + error:(NSError * _Nullable __autoreleasing *)error; + +/** + Creates an `NSMutableURLRequest` object with the specified HTTP method and URLString, and constructs a `multipart/form-data` HTTP body, using the specified parameters and multipart form data block. See http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2 + + Multipart form requests are automatically streamed, reading files directly from disk along with in-memory data in a single HTTP body. The resulting `NSMutableURLRequest` object has an `HTTPBodyStream` property, so refrain from setting `HTTPBodyStream` or `HTTPBody` on this request object, as it will clear out the multipart form body stream. + + @param method The HTTP method for the request. This parameter must not be `GET` or `HEAD`, or `nil`. + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded and set in the request HTTP body. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param error The error that occurred while constructing the request. + + @return An `NSMutableURLRequest` object + */ +- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method + URLString:(NSString *)URLString + parameters:(nullable NSDictionary *)parameters + constructingBodyWithBlock:(nullable void (^)(id formData))block + error:(NSError * _Nullable __autoreleasing *)error; + +/** + Creates an `NSMutableURLRequest` by removing the `HTTPBodyStream` from a request, and asynchronously writing its contents into the specified file, invoking the completion handler when finished. + + @param request The multipart form request. The `HTTPBodyStream` property of `request` must not be `nil`. + @param fileURL The file URL to write multipart form contents to. + @param handler A handler block to execute. + + @discussion There is a bug in `NSURLSessionTask` that causes requests to not send a `Content-Length` header when streaming contents from an HTTP body, which is notably problematic when interacting with the Amazon S3 webservice. As a workaround, this method takes a request constructed with `multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:`, or any other request with an `HTTPBodyStream`, writes the contents to the specified file and returns a copy of the original request with the `HTTPBodyStream` property set to `nil`. From here, the file can either be passed to `BU_AFURLSessionManager -uploadTaskWithRequest:fromFile:progress:completionHandler:`, or have its contents read into an `NSData` that's assigned to the `HTTPBody` property of the request. + + @see https://github.com/BU_AFNetworking/BU_AFNetworking/issues/1398 + */ +//- (NSMutableURLRequest *)requestWithMultipartFormRequest:(NSURLRequest *)request +// writingStreamContentsToFile:(NSURL *)fileURL +// completionHandler:(nullable void (^)(NSError * _Nullable error))handler; + +@end + +#pragma mark - + +/** + The `BU_AFMultipartFormData` protocol defines the methods supported by the parameter in the block argument of `BU_AFHTTPRequestSerializer -multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:`. + */ +@protocol BU_AFMultipartFormData + +/** + Appends the HTTP header `Content-Disposition: file; filename=#{generated filename}; name=#{name}"` and `Content-Type: #{generated mimeType}`, followed by the encoded file data and the multipart form boundary. + + The filename and MIME type for this data in the form will be automatically generated, using the last path component of the `fileURL` and system associated MIME type for the `fileURL` extension, respectively. + + @param fileURL The URL corresponding to the file whose content will be appended to the form. This parameter must not be `nil`. + @param name The name to be associated with the specified data. This parameter must not be `nil`. + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. + + @return `YES` if the file data was successfully appended, otherwise `NO`. + */ +//- (BOOL)appendPartWithFileURL:(NSURL *)fileURL +// name:(NSString *)name +// error:(NSError * _Nullable __autoreleasing *)error; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary. +// +// @param fileURL The URL corresponding to the file whose content will be appended to the form. This parameter must not be `nil`. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// @param fileName The file name to be used in the `Content-Disposition` header. This parameter must not be `nil`. +// @param mimeType The declared MIME type of the file data. This parameter must not be `nil`. +// @param error If an error occurs, upon return contains an `NSError` object that describes the problem. +// +// @return `YES` if the file data was successfully appended otherwise `NO`. +// */ +//- (BOOL)appendPartWithFileURL:(NSURL *)fileURL +// name:(NSString *)name +// fileName:(NSString *)fileName +// mimeType:(NSString *)mimeType +// error:(NSError * _Nullable __autoreleasing *)error; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the data from the input stream and the multipart form boundary. +// +// @param inputStream The input stream to be appended to the form data +// @param name The name to be associated with the specified input stream. This parameter must not be `nil`. +// @param fileName The filename to be associated with the specified input stream. This parameter must not be `nil`. +// @param length The length of the specified input stream in bytes. +// @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`. +// */ +//- (void)appendPartWithInputStream:(nullable NSInputStream *)inputStream +// name:(NSString *)name +// fileName:(NSString *)fileName +// length:(int64_t)length +// mimeType:(NSString *)mimeType; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary. +// +// @param data The data to be encoded and appended to the form data. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// @param fileName The filename to be associated with the specified data. This parameter must not be `nil`. +// @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`. +// */ +//- (void)appendPartWithFileData:(NSData *)data +// name:(NSString *)name +// fileName:(NSString *)fileName +// mimeType:(NSString *)mimeType; +// +///** +// Appends the HTTP headers `Content-Disposition: form-data; name=#{name}"`, followed by the encoded data and the multipart form boundary. +// +// @param data The data to be encoded and appended to the form data. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// */ +// +- (void)appendPartWithFormData:(NSData *)data + name:(NSString *)name; +// +// +///** +// Appends HTTP headers, followed by the encoded data and the multipart form boundary. +// +// @param headers The HTTP headers to be appended to the form data. +// @param body The data to be encoded and appended to the form data. This parameter must not be `nil`. +// */ +- (void)appendPartWithHeaders:(nullable NSDictionary *)headers + body:(NSData *)body; +// +///** +// Throttles request bandwidth by limiting the packet size and adding a delay for each chunk read from the upload stream. +// +// When uploading over a 3G or EDGE connection, requests may fail with "request body stream exhausted". Setting a maximum packet size and delay according to the recommended values (`kBU_AFUploadStream3GSuggestedPacketSize` and `kBU_AFUploadStream3GSuggestedDelay`) lowers the risk of the input stream exceeding its allocated bandwidth. Unfortunately, there is no definite way to distinguish between a 3G, EDGE, or LTE connection over `NSURLConnection`. As such, it is not recommended that you throttle bandwidth based solely on network reachability. Instead, you should consider checking for the "request body stream exhausted" in a failure block, and then retrying the request with throttled bandwidth. +// +// @param numberOfBytes Maximum packet size, in number of bytes. The default packet size for an input stream is 16kb. +// @param delay Duration of delay each time a packet is read. By default, no delay is set. +// */ +//- (void)throttleBandwidthWithPacketSize:(NSUInteger)numberOfBytes +// delay:(NSTimeInterval)delay; + +@end + +#pragma mark - + +/** + `BU_AFJSONRequestSerializer` is a subclass of `BU_AFHTTPRequestSerializer` that encodes parameters as JSON using `NSJSONSerialization`, setting the `Content-Type` of the encoded request to `application/json`. + */ +@interface BU_AFJSONRequestSerializer : BU_AFHTTPRequestSerializer + +/** + Options for writing the request JSON data from Foundation objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONWritingOptions". `0` by default. + */ +@property (nonatomic, assign) NSJSONWritingOptions writingOptions; + +/** + Creates and returns a JSON serializer with specified reading and writing options. + + @param writingOptions The specified JSON writing options. + */ ++ (instancetype)serializerWithWritingOptions:(NSJSONWritingOptions)writingOptions; + +@end + + +#pragma mark - + +///---------------- +/// @name Constants +///---------------- + +/** + ## Error Domains + + The following error domain is predefined. + + - `NSString * const BU_AFURLRequestSerializationErrorDomain` + + ### Constants + + `BU_AFURLRequestSerializationErrorDomain` + AFURLRequestSerializer errors. Error codes for `BU_AFURLRequestSerializationErrorDomain` correspond to codes in `NSURLErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLRequestSerializationErrorDomain; + +/** + ## User info dictionary keys + + These keys may exist in the user info dictionary, in addition to those defined for NSError. + + - `NSString * const BU_AFNetworkingOperationFailingURLRequestErrorKey` + + ### Constants + + `BU_AFNetworkingOperationFailingURLRequestErrorKey` + The corresponding value is an `NSURLRequest` containing the request of the operation associated with an error. This key is only present in the `BU_AFURLRequestSerializationErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLRequestErrorKey; + +/** + ## Throttling Bandwidth for HTTP Request Input Streams + + @see -throttleBandwidthWithPacketSize:delay: + + ### Constants + + `kBU_AFUploadStream3GSuggestedPacketSize` + Maximum packet size, in number of bytes. Equal to 16kb. + + `kBU_AFUploadStream3GSuggestedDelay` + Duration of delay each time a packet is read. Equal to 0.2 seconds. + */ +FOUNDATION_EXPORT NSUInteger const kBU_AFUploadStream3GSuggestedPacketSize; +FOUNDATION_EXPORT NSTimeInterval const kBU_AFUploadStream3GSuggestedDelay; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLRequestSerialization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLRequestSerialization.h.meta new file mode 100644 index 00000000..25034fd8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLRequestSerialization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8fe8ea529d05949dea38b4187d3a5c80 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLResponseSerialization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLResponseSerialization.h new file mode 100755 index 00000000..d0598c28 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLResponseSerialization.h @@ -0,0 +1,225 @@ +// BU_AFURLResponseSerialization.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The `BU_AFURLResponseSerialization` protocol is adopted by an object that decodes data into a more useful object representation, according to details in the server response. Response serializers may additionally perform validation on the incoming response and data. + + For example, a JSON response serializer may check for an acceptable status code (`2XX` range) and content type (`application/json`), decoding a valid JSON response into an object. + */ +@protocol BU_AFURLResponseSerialization + +/** + The response object decoded from the data associated with a specified response. + + @param response The response to be processed. + @param data The response data to be decoded. + @param error The error that occurred while attempting to decode the response data. + + @return The object decoded from the specified response data. + */ +- (nullable id)responseObjectForResponse:(nullable NSURLResponse *)response + data:(nullable NSData *)data + error:(NSError * _Nullable __autoreleasing *)error NS_SWIFT_NOTHROW; + +@end + +#pragma mark - + +/** + `BU_AFHTTPResponseSerializer` conforms to the `BU_AFURLRequestSerialization` & `BU_AFURLResponseSerialization` protocols, offering a concrete base implementation of query string / URL form-encoded parameter serialization and default request headers, as well as response status code and content type validation. + + Any request or response serializer dealing with HTTP is encouraged to subclass `BU_AFHTTPResponseSerializer` in order to ensure consistent default behavior. + */ +@interface BU_AFHTTPResponseSerializer : NSObject + +- (instancetype)init; +/** + Creates and returns a serializer with default configuration. + */ ++ (instancetype)serializer; + +///----------------------------------------- +/// @name Configuring Response Serialization +///----------------------------------------- + +/** + The acceptable HTTP status codes for responses. When non-`nil`, responses with status codes not contained by the set will result in an error during validation. + + See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html + */ +@property (nonatomic, copy, nullable) NSIndexSet *acceptableStatusCodes; + +/** + The acceptable MIME types for responses. When non-`nil`, responses with a `Content-Type` with MIME types that do not intersect with the set will result in an error during validation. + */ +@property (nonatomic, copy, nullable) NSSet *acceptableContentTypes; + +/** + Validates the specified response and data. + + In its base implementation, this method checks for an acceptable status code and content type. Subclasses may wish to add other domain-specific checks. + + @param response The response to be validated. + @param data The data associated with the response. + @param error The error that occurred while attempting to validate the response. + + @return `YES` if the response is valid, otherwise `NO`. + */ +- (BOOL)validateResponse:(nullable NSHTTPURLResponse *)response + data:(nullable NSData *)data + error:(NSError * _Nullable __autoreleasing *)error; + +@end + +#pragma mark - + + +/** + `BU_AFJSONResponseSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that validates and decodes JSON responses. + + By default, `BU_AFJSONResponseSerializer` accepts the following MIME types, which includes the official standard, `application/json`, as well as other commonly-used types: + + - `application/json` + - `text/json` + - `text/javascript` + */ +@interface BU_AFJSONResponseSerializer : BU_AFHTTPResponseSerializer + +- (instancetype)init; + +/** + Options for reading the response JSON data and creating the Foundation objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONReadingOptions". `0` by default. + */ +@property (nonatomic, assign) NSJSONReadingOptions readingOptions; + +/** + Whether to remove keys with `NSNull` values from response JSON. Defaults to `NO`. + */ +@property (nonatomic, assign) BOOL removesKeysWithNullValues; + +/** + Creates and returns a JSON serializer with specified reading and writing options. + + @param readingOptions The specified JSON reading options. + */ ++ (instancetype)serializerWithReadingOptions:(NSJSONReadingOptions)readingOptions; + +@end + +#pragma mark - + +/** + `BU_AFImageResponseSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that validates and decodes image responses. + + By default, `BU_AFImageResponseSerializer` accepts the following MIME types, which correspond to the image formats supported by UIImage or NSImage: + + - `image/tiff` + - `image/jpeg` + - `image/gif` + - `image/png` + - `image/ico` + - `image/x-icon` + - `image/bmp` + - `image/x-bmp` + - `image/x-xbitmap` + - `image/x-win-bitmap` + */ +@interface BU_AFImageResponseSerializer : BU_AFHTTPResponseSerializer + +#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH +/** + The scale factor used when interpreting the image data to construct `responseImage`. Specifying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the size property. This is set to the value of scale of the main screen by default, which automatically scales images for retina displays, for instance. + */ +@property (nonatomic, assign) CGFloat imageScale; + +/** + Whether to automatically inflate response image data for compressed formats (such as PNG or JPEG). Enabling this can significantly improve drawing performance on iOS when used with `setCompletionBlockWithSuccess:failure:`, as it allows a bitmap representation to be constructed in the background rather than on the main thread. `YES` by default. + */ +@property (nonatomic, assign) BOOL automaticallyInflatesResponseImage; +#endif + +@end + +#pragma mark - + +/** + `AFCompoundSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that delegates the response serialization to the first `BU_AFHTTPResponseSerializer` object that returns an object for `responseObjectForResponse:data:error:`, falling back on the default behavior of `BU_AFHTTPResponseSerializer`. This is useful for supporting multiple potential types and structures of server responses with a single serializer. + */ +@interface BU_AFCompoundResponseSerializer : BU_AFHTTPResponseSerializer + +/** + The component response serializers. + */ +@property (readonly, nonatomic, copy) NSArray > *responseSerializers; + +/** + Creates and returns a compound serializer comprised of the specified response serializers. + + @warning Each response serializer specified must be a subclass of `BU_AFHTTPResponseSerializer`, and response to `-validateResponse:data:error:`. + */ ++ (instancetype)compoundSerializerWithResponseSerializers:(NSArray > *)responseSerializers; + +@end + +///---------------- +/// @name Constants +///---------------- + +/** + ## Error Domains + + The following error domain is predefined. + + - `NSString * const BU_AFURLResponseSerializationErrorDomain` + + ### Constants + + `BU_AFURLResponseSerializationErrorDomain` + AFURLResponseSerializer errors. Error codes for `BU_AFURLResponseSerializationErrorDomain` correspond to codes in `NSURLErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLResponseSerializationErrorDomain; + +/** + ## User info dictionary keys + + These keys may exist in the user info dictionary, in addition to those defined for NSError. + + - `NSString * const BU_AFNetworkingOperationFailingURLResponseErrorKey` + - `NSString * const BU_AFNetworkingOperationFailingURLResponseDataErrorKey` + + ### Constants + + `BU_AFNetworkingOperationFailingURLResponseErrorKey` + The corresponding value is an `NSURLResponse` containing the response of the operation associated with an error. This key is only present in the `BU_AFURLResponseSerializationErrorDomain`. + + `BU_AFNetworkingOperationFailingURLResponseDataErrorKey` + The corresponding value is an `NSData` containing the original data of the operation associated with an error. This key is only present in the `BU_AFURLResponseSerializationErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLResponseErrorKey; + +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLResponseDataErrorKey; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLResponseSerialization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLResponseSerialization.h.meta new file mode 100644 index 00000000..362938ad --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLResponseSerialization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f88fee80234814854a1d1d25ee5e491c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLSessionManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLSessionManager.h new file mode 100755 index 00000000..2aeec31b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLSessionManager.h @@ -0,0 +1,486 @@ +// BU_AFURLSessionManager.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +#import + +#import "BU_AFURLResponseSerialization.h" +#import "BU_AFURLRequestSerialization.h" +#import "BU_AFSecurityPolicy.h" + +/** + `BU_AFURLSessionManager` creates and manages an `NSURLSession` object based on a specified `NSURLSessionConfiguration` object, which conforms to ``, ``, ``, and ``. + + ## Subclassing Notes + + This is the base class for `BU_AFHTTPSessionManager`, which adds functionality specific to making HTTP requests. If you are looking to extend `BU_AFURLSessionManager` specifically for HTTP, consider subclassing `BU_AFHTTPSessionManager` instead. + + ## NSURLSession & NSURLSessionTask Delegate Methods + + `BU_AFURLSessionManager` implements the following delegate methods: + + ### `NSURLSessionDelegate` + + - `URLSession:didBecomeInvalidWithError:` + - `URLSession:didReceiveChallenge:completionHandler:` + - `URLSessionDidFinishEventsForBackgroundURLSession:` + + ### `NSURLSessionTaskDelegate` + + - `URLSession:willPerformHTTPRedirection:newRequest:completionHandler:` + - `URLSession:task:didReceiveChallenge:completionHandler:` + - `URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:` + - `URLSession:task:needNewBodyStream:` + - `URLSession:task:didCompleteWithError:` + + ### `NSURLSessionDataDelegate` + + - `URLSession:dataTask:didReceiveResponse:completionHandler:` + - `URLSession:dataTask:didBecomeDownloadTask:` + - `URLSession:dataTask:didReceiveData:` + - `URLSession:dataTask:willCacheResponse:completionHandler:` + + ### `NSURLSessionDownloadDelegate` + + - `URLSession:downloadTask:didFinishDownloadingToURL:` + - `URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:` + - `URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:` + + If any of these methods are overridden in a subclass, they _must_ call the `super` implementation first. + + ## Network Reachability Monitoring + + Network reachability status and change monitoring is available through the `reachabilityManager` property. Applications may choose to monitor network reachability conditions in order to prevent or suspend any outbound requests. See `AFNetworkReachabilityManager` for more details. + + ## NSCoding Caveats + + - Encoded managers do not include any block properties. Be sure to set delegate callback blocks when using `-initWithCoder:` or `NSKeyedUnarchiver`. + + ## NSCopying Caveats + + - `-copy` and `-copyWithZone:` return a new manager with a new `NSURLSession` created from the configuration of the original. + - Operation copies do not include any delegate callback blocks, as they often strongly captures a reference to `self`, which would otherwise have the unintuitive side-effect of pointing to the _original_ session manager when copied. + + @warning Managers for background sessions must be owned for the duration of their use. This can be accomplished by creating an application-wide or shared singleton instance. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFURLSessionManager : NSObject + +/** + The managed session. + */ +@property (readonly, nonatomic, strong) NSURLSession *session; + +/** + The operation queue on which delegate callbacks are run. + */ +@property (readonly, nonatomic, strong) NSOperationQueue *operationQueue; + +/** + Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an instance of `BU_AFJSONResponseSerializer`. + + @warning `responseSerializer` must not be `nil`. + */ +@property (nonatomic, strong) id responseSerializer; + +///------------------------------- +/// @name Managing Security Policy +///------------------------------- + +/** + The security policy used by created session to evaluate server trust for secure connections. `BU_AFURLSessionManager` uses the `defaultPolicy` unless otherwise specified. + */ +@property (nonatomic, strong) BU_AFSecurityPolicy *securityPolicy; + +///---------------------------- +/// @name Getting Session Tasks +///---------------------------- + +/** + The data, upload, and download tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *tasks; + +/** + The data tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *dataTasks; + +/** + The upload tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *uploadTasks; + +/** + The download tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *downloadTasks; + +///------------------------------- +/// @name Managing Callback Queues +///------------------------------- + +/** + The dispatch queue for `completionBlock`. If `NULL` (default), the main queue is used. + */ +@property (nonatomic, strong, nullable) dispatch_queue_t completionQueue; + +/** + The dispatch group for `completionBlock`. If `NULL` (default), a private dispatch group is used. + */ +@property (nonatomic, strong, nullable) dispatch_group_t completionGroup; + +///--------------------------------- +/// @name Working Around System Bugs +///--------------------------------- + +/** + Whether to attempt to retry creation of upload tasks for background sessions when initial call returns `nil`. `NO` by default. + + @bug As of iOS 7.0, there is a bug where upload tasks created for background tasks are sometimes `nil`. As a workaround, if this property is `YES`, BU_AFNetworking will follow Apple's recommendation to try creating the task again. + + @see https://github.com/BU_AFNetworking/BU_AFNetworking/issues/1675 + */ +@property (nonatomic, assign) BOOL attemptsToRecreateUploadTasksForBackgroundSessions; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns a manager for a session created with the specified configuration. This is the designated initializer. + + @param configuration The configuration used to create the managed session. + + @return A manager for a newly-created session. + */ +- (instancetype)initWithSessionConfiguration:(nullable NSURLSessionConfiguration *)configuration NS_DESIGNATED_INITIALIZER; + +/** + Invalidates the managed session, optionally canceling pending tasks. + + @param cancelPendingTasks Whether or not to cancel pending tasks. + */ +- (void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks; + +///------------------------- +/// @name Running Data Tasks +///------------------------- + +/** + Creates an `NSURLSessionDataTask` with the specified request. + + @param request The HTTP request for the request. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler DEPRECATED_ATTRIBUTE; + +/** + Creates an `NSURLSessionDataTask` with the specified request. + + @param request The HTTP request for the request. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request + uploadProgress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock + downloadProgress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +///--------------------------- +/// @name Running Upload Tasks +///--------------------------- + +/** + Creates an `NSURLSessionUploadTask` with the specified request for a local file. + + @param request The HTTP request for the request. + @param fileURL A URL to the local file to be uploaded. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + + @see `attemptsToRecreateUploadTasksForBackgroundSessions` + */ +//- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request +// fromFile:(NSURL *)fileURL +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock +// completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionUploadTask` with the specified request for an HTTP body. + + @param request The HTTP request for the request. + @param bodyData A data object containing the HTTP body to be uploaded. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +//- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request +// fromData:(nullable NSData *)bodyData +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock +// completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionUploadTask` with the specified streaming request. + + @param request The HTTP request for the request. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request + progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +///----------------------------- +/// @name Running Download Tasks +///----------------------------- + +/** + Creates an `NSURLSessionDownloadTask` with the specified request. + + @param request The HTTP request for the request. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param destination A block object to be executed in order to determine the destination of the downloaded file. This block takes two arguments, the target path & the server response, and returns the desired file URL of the resulting download. The temporary file used during the download will be automatically deleted after being moved to the returned URL. + @param completionHandler A block to be executed when a task finishes. This block has no return value and takes three arguments: the server response, the path of the downloaded file, and the error describing the network or parsing error that occurred, if any. + + @warning If using a background `NSURLSessionConfiguration` on iOS, these blocks will be lost when the app is terminated. Background sessions may prefer to use `-setDownloadTaskDidFinishDownloadingBlock:` to specify the URL for saving the downloaded file, rather than the destination block of this method. + */ +//- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request +// progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock +// destination:(nullable NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination +// completionHandler:(nullable void (^)(NSURLResponse *response, NSURL * _Nullable filePath, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionDownloadTask` with the specified resume data. + + @param resumeData The data used to resume downloading. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param destination A block object to be executed in order to determine the destination of the downloaded file. This block takes two arguments, the target path & the server response, and returns the desired file URL of the resulting download. The temporary file used during the download will be automatically deleted after being moved to the returned URL. + @param completionHandler A block to be executed when a task finishes. This block has no return value and takes three arguments: the server response, the path of the downloaded file, and the error describing the network or parsing error that occurred, if any. + */ +//- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData +// progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock +// destination:(nullable NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination +// completionHandler:(nullable void (^)(NSURLResponse *response, NSURL * _Nullable filePath, NSError * _Nullable error))completionHandler; + +///--------------------------------- +/// @name Getting Progress for Tasks +///--------------------------------- + +/** + Returns the upload progress of the specified task. + + @param task The session task. Must not be `nil`. + + @return An `NSProgress` object reporting the upload progress of a task, or `nil` if the progress is unavailable. + */ +//- (nullable NSProgress *)uploadProgressForTask:(NSURLSessionTask *)task; + +/** + Returns the download progress of the specified task. + + @param task The session task. Must not be `nil`. + + @return An `NSProgress` object reporting the download progress of a task, or `nil` if the progress is unavailable. + */ +//- (nullable NSProgress *)downloadProgressForTask:(NSURLSessionTask *)task; + +///----------------------------------------- +/// @name Setting Session Delegate Callbacks +///----------------------------------------- + +/** + Sets a block to be executed when the managed session becomes invalid, as handled by the `NSURLSessionDelegate` method `URLSession:didBecomeInvalidWithError:`. + + @param block A block object to be executed when the managed session becomes invalid. The block has no return value, and takes two arguments: the session, and the error related to the cause of invalidation. + */ +- (void)setSessionDidBecomeInvalidBlock:(nullable void (^)(NSURLSession *session, NSError *error))block; + +/** + Sets a block to be executed when a connection level authentication challenge has occurred, as handled by the `NSURLSessionDelegate` method `URLSession:didReceiveChallenge:completionHandler:`. + + @param block A block object to be executed when a connection level authentication challenge has occurred. The block returns the disposition of the authentication challenge, and takes three arguments: the session, the authentication challenge, and a pointer to the credential that should be used to resolve the challenge. + */ +- (void)setSessionDidReceiveAuthenticationChallengeBlock:(nullable NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential))block; + +///-------------------------------------- +/// @name Setting Task Delegate Callbacks +///-------------------------------------- + +/** + Sets a block to be executed when a task requires a new request body stream to send to the remote server, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:needNewBodyStream:`. + + @param block A block object to be executed when a task requires a new request body stream. + */ +- (void)setTaskNeedNewBodyStreamBlock:(nullable NSInputStream * (^)(NSURLSession *session, NSURLSessionTask *task))block; + +/** + Sets a block to be executed when an HTTP request is attempting to perform a redirection to a different URL, as handled by the `NSURLSessionTaskDelegate` method `URLSession:willPerformHTTPRedirection:newRequest:completionHandler:`. + + @param block A block object to be executed when an HTTP request is attempting to perform a redirection to a different URL. The block returns the request to be made for the redirection, and takes four arguments: the session, the task, the redirection response, and the request corresponding to the redirection response. + */ +- (void)setTaskWillPerformHTTPRedirectionBlock:(nullable NSURLRequest * _Nullable (^)(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request))block; + +/** + Sets a block to be executed when a session task has received a request specific authentication challenge, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didReceiveChallenge:completionHandler:`. + + @param block A block object to be executed when a session task has received a request specific authentication challenge. The block returns the disposition of the authentication challenge, and takes four arguments: the session, the task, the authentication challenge, and a pointer to the credential that should be used to resolve the challenge. + */ +- (void)setTaskDidReceiveAuthenticationChallengeBlock:(nullable NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLSessionTask *task, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential))block; + +/** + Sets a block to be executed periodically to track upload progress, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:`. + + @param block A block object to be called when an undetermined number of bytes have been uploaded to the server. This block has no return value and takes five arguments: the session, the task, the number of bytes written since the last time the upload progress block was called, the total bytes written, and the total bytes expected to be written during the request, as initially determined by the length of the HTTP body. This block may be called multiple times, and will execute on the main thread. + */ +- (void)setTaskDidSendBodyDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend))block; + +/** + Sets a block to be executed as the last message related to a specific task, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didCompleteWithError:`. + + @param block A block object to be executed when a session task is completed. The block has no return value, and takes three arguments: the session, the task, and any error that occurred in the process of executing the task. + */ +- (void)setTaskDidCompleteBlock:(nullable void (^)(NSURLSession *session, NSURLSessionTask *task, NSError * _Nullable error))block; + +///------------------------------------------- +/// @name Setting Data Task Delegate Callbacks +///------------------------------------------- + +/** + Sets a block to be executed when a data task has received a response, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didReceiveResponse:completionHandler:`. + + @param block A block object to be executed when a data task has received a response. The block returns the disposition of the session response, and takes three arguments: the session, the data task, and the received response. + */ +- (void)setDataTaskDidReceiveResponseBlock:(nullable NSURLSessionResponseDisposition (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLResponse *response))block; + +/** + Sets a block to be executed when a data task has become a download task, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didBecomeDownloadTask:`. + + @param block A block object to be executed when a data task has become a download task. The block has no return value, and takes three arguments: the session, the data task, and the download task it has become. + */ +- (void)setDataTaskDidBecomeDownloadTaskBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLSessionDownloadTask *downloadTask))block; + +/** + Sets a block to be executed when a data task receives data, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didReceiveData:`. + + @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes three arguments: the session, the data task, and the data received. This block may be called multiple times, and will execute on the session manager operation queue. + */ +- (void)setDataTaskDidReceiveDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data))block; + +/** + Sets a block to be executed to determine the caching behavior of a data task, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:willCacheResponse:completionHandler:`. + + @param block A block object to be executed to determine the caching behavior of a data task. The block returns the response to cache, and takes three arguments: the session, the data task, and the proposed cached URL response. + */ +- (void)setDataTaskWillCacheResponseBlock:(nullable NSCachedURLResponse * (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSCachedURLResponse *proposedResponse))block; + +/** + Sets a block to be executed once all messages enqueued for a session have been delivered, as handled by the `NSURLSessionDataDelegate` method `URLSessionDidFinishEventsForBackgroundURLSession:`. + + @param block A block object to be executed once all messages enqueued for a session have been delivered. The block has no return value and takes a single argument: the session. + */ +- (void)setDidFinishEventsForBackgroundURLSessionBlock:(nullable void (^)(NSURLSession *session))block; + +///----------------------------------------------- +/// @name Setting Download Task Delegate Callbacks +///----------------------------------------------- + +/** + Sets a block to be executed when a download task has completed a download, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didFinishDownloadingToURL:`. + + @param block A block object to be executed when a download task has completed. The block returns the URL the download should be moved to, and takes three arguments: the session, the download task, and the temporary location of the downloaded file. If the file manager encounters an error while attempting to move the temporary file to the destination, an `BU_AFURLSessionDownloadTaskDidFailToMoveFileNotification` will be posted, with the download task as its object, and the user info of the error. + */ +- (void)setDownloadTaskDidFinishDownloadingBlock:(nullable NSURL * _Nullable (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location))block; + +/** + Sets a block to be executed periodically to track download progress, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:`. + + @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes five arguments: the session, the download task, the number of bytes read since the last time the download progress block was called, the total bytes read, and the total bytes expected to be read during the request, as initially determined by the expected content size of the `NSHTTPURLResponse` object. This block may be called multiple times, and will execute on the session manager operation queue. + */ +- (void)setDownloadTaskDidWriteDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite))block; + +/** + Sets a block to be executed when a download task has been resumed, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:`. + + @param block A block object to be executed when a download task has been resumed. The block has no return value and takes four arguments: the session, the download task, the file offset of the resumed download, and the total number of bytes expected to be downloaded. + */ +- (void)setDownloadTaskDidResumeBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t fileOffset, int64_t expectedTotalBytes))block; + +@end + +///-------------------- +/// @name Notifications +///-------------------- + +/** + Posted when a task resumes. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidResumeNotification; + +/** + Posted when a task finishes executing. Includes a userInfo dictionary with additional information about the task. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteNotification; + +/** + Posted when a task suspends its execution. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidSuspendNotification; + +/** + Posted when a session is invalidated. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLSessionDidInvalidateNotification; + +/** + Posted when a session download task encountered an error when moving the temporary download file to a specified destination. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLSessionDownloadTaskDidFailToMoveFileNotification; + +/** + The raw response data of the task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if response data exists for the task. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteResponseDataKey; + +/** + The serialized response object of the task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if the response was serialized. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteSerializedResponseKey; + +/** + The response serializer used to serialize the response. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if the task has an associated response serializer. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteResponseSerializerKey; + +/** + The file path associated with the download task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if an the response data has been stored directly to disk. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteAssetPathKey; + +/** + Any error associated with the task, or the serialization of the response. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if an error exists. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteErrorKey; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLSessionManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLSessionManager.h.meta new file mode 100644 index 00000000..d6a53f35 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/BU_AFURLSessionManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3dd8507c613ed4304866f0ec834d72ea +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/NSString+BURely.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/NSString+BURely.h new file mode 100755 index 00000000..dbe15932 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/NSString+BURely.h @@ -0,0 +1,19 @@ +// +// NSString+BURely.h +// BUFoundation +// +// Created by zth on 2021/12/25. +// + + + +NS_ASSUME_NONNULL_BEGIN + +@interface NSString (BURely) + + ++ (nullable NSURL *)BU_Rely_URLWithURLString:(NSString *)str; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/NSString+BURely.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/NSString+BURely.h.meta new file mode 100644 index 00000000..8add1052 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Headers/NSString+BURely.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c81c13aea8caa43189c5de7629344bdd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules.meta new file mode 100644 index 00000000..67f8ab1d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9752c5561978a4c74ac146f24780cf78 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules/module.modulemap new file mode 100755 index 00000000..9a27cb75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module BURelyFoundation { + umbrella header "BURelyFoundation.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..fd6c0e24 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3c82be54af7d9423e9a16780a23d1695 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions.meta new file mode 100644 index 00000000..6ab7e718 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8497ec0cde3146fe90bdbab2244d714 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A.meta new file mode 100644 index 00000000..31a244c1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bbe0d8135ea4847d5b185497a7f8b847 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/BURelyFoundation b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/BURelyFoundation new file mode 100755 index 00000000..213d065d Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/BURelyFoundation differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/BURelyFoundation.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/BURelyFoundation.meta new file mode 100644 index 00000000..71825ff7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/BURelyFoundation.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7cc8093a6e3e14a70bcf2d9ac48a87c8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers.meta new file mode 100644 index 00000000..488f56bf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 115a4bf2cf6c146fc8fff0b84440b61f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUBaseRequest.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUBaseRequest.h new file mode 100755 index 00000000..27546f75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUBaseRequest.h @@ -0,0 +1,147 @@ +// +// BUBaseRequest.h +// BUAdSDK +// +// Created by 李盛 on 2018/4/2. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// HTTP Request method. +typedef NS_ENUM(NSInteger, BURequestMethod) { + BURequestMethodGET = 0, + BURequestMethodPOST, + BURequestMethodHEAD, + BURequestMethodPUT, + BURequestMethodDELETE, + BURequestMethodPATCH, +}; + +/// Request serializer type. +typedef NS_ENUM(NSInteger, BURequestSerializerType) { + BURequestSerializerTypeHTTP = 0, + BURequestSerializerTypeJSON, + BURequestSerializerTypeProtobuf +}; + +/// Response serializer type, which determines response serialization process and +/// the type of `responseObject`. +typedef NS_ENUM(NSInteger, BUResponseSerializerType) { + /// NSData type + BUResponseSerializerTypeHTTP, + /// JSON object type + BUResponseSerializerTypeJSON, + /// Protobuf object type + BUResponseSerializerTypeProtobuf +}; + +/// Request priority +typedef NS_ENUM(NSInteger, BURequestPriority) { + BURequestPriorityLow = -4L, + BURequestPriorityDefault = 0, + BURequestPriorityHigh = 4, +}; + +@protocol BU_AFMultipartFormData; + +typedef void (^BUAFConstructingBlock)(id formData); +typedef void (^BUAFURLSessionTaskProgressBlock)(NSProgress *); + +@class BUBaseRequest; + +typedef void(^BURequestCompletionBlock)(__kindof BUBaseRequest *request); + +@interface BUBaseRequest : NSObject + +/// The underlying NSURLSessionTask. +/// +/// @warning This value is actually nil and should not be accessed before the request starts. +@property (nonatomic, strong) NSURLSessionTask *requestTask; +@property (nonatomic, strong) NSData *responseData; +@property (nonatomic, strong) id responseJSONObject; +@property (nonatomic, strong) id responseObject; +@property (nonatomic, strong) NSString *responseString; +@property (nonatomic, strong) NSError *error; +@property (nonatomic, assign) BURequestMethod requestMethod; +/// For post method, when httpbody can not be Serialized from NSDictionary json. if httpBody exists, please use httpBody directively and ignore 'requestArgument' +@property (nonatomic, strong) NSData *httpBody; + +/// Shortcut for `requestTask.currentRequest`.当前活跃的request +@property (nonatomic, strong, readonly) NSURLRequest *currentRequest; + +/// Shortcut for `requestTask.originalRequest`.在task创建的时候传入的request(有可能会重定向) +@property (nonatomic, strong, readonly) NSURLRequest *originalRequest; + +/// Shortcut for `requestTask.response`. +@property (nonatomic, strong, readonly) NSHTTPURLResponse *response; + +/// The response status code. +@property (nonatomic, readonly) NSInteger responseStatusCode; + +/// The success callback. Note if this value is not nil and `requestFinished` delegate method is +/// also implemented, both will be executed but delegate method is first called. This block +/// will be called on the main queue. +@property (nonatomic, copy, nullable) BURequestCompletionBlock successCompletionBlock; + +/// The failure callback. Note if this value is not nil and `requestFailed` delegate method is +/// also implemented, both will be executed but delegate method is first called. This block +/// will be called on the main queue. +@property (nonatomic, copy, nullable) BURequestCompletionBlock failureCompletionBlock; + +/// Additional HTTP request header field. +- (nullable NSDictionary *)requestHeaderFieldValueDictionary; + +/// Request serializer type. +- (BURequestSerializerType)requestSerializerType; + +/// Response serializer type. See also `responseObject`. +- (BUResponseSerializerType)responseSerializerType; + +/// Request cache policy. +- (NSURLRequestCachePolicy)bu_requestCachePolicy; + +//constructingBodyWithBlock:在此block种可以为上传的参数添加(拼接)新的需要的上传的数据,适用于上传给服务器的数据流比较大的时候 +@property (nonatomic, copy, nullable) BUAFConstructingBlock constructingBodyBlock; + +- (NSString *)requestUrl; +- (NSString *)cdnUrl; +- (NSString *)baseUrl; +- (NSTimeInterval)requestTimeoutInterval; +- (nullable id)requestArgument; +/// Whether the request is allowed to use the cellular radio (if present). Default is YES. +- (BOOL)allowsCellularAccess; +/// Nil out both success and failure callback blocks. +- (void)clearCompletionBlock; + +@property (nonatomic) BURequestPriority requestPriority; + +/// Should use CDN when sending request. +- (BOOL)useCDN; + +#pragma mark - Request Action +///============================================================================= +/// @name Request Action +///============================================================================= + +/// Append self to request queue and start the request. +- (void)start; + +/// Remove self from request queue and cancel the request. +- (void)stop; + +/// Convenience method to start the request with block callbacks. +- (void)startWithCompletionBlockWithSuccess:(nullable BURequestCompletionBlock)success + failure:(nullable BURequestCompletionBlock)failure; + +/// Return cancelled state of request task. +@property (nonatomic, readonly, getter=isCancelled) BOOL cancelled; + +/// Executing state of request task. +@property (nonatomic, readonly, getter=isExecuting) BOOL executing; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUBaseRequest.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUBaseRequest.h.meta new file mode 100644 index 00000000..1a103fc6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUBaseRequest.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4ceac25ecb60340a1bed90a5522fee4f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUNetworkAgent.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUNetworkAgent.h new file mode 100755 index 00000000..640e8d7c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUNetworkAgent.h @@ -0,0 +1,58 @@ +// +// BUNetworkAgent.h +// BUAdSDK +// +// Created by 李盛 on 2018/4/2. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, BUSSLPinningMode) { + BU_SSLPinningModeNone, + BU_SSLPinningModePublicKey, + BU_SSLPinningModeCertificate +}; + +typedef NSURLSessionAuthChallengeDisposition (^BUURLSessionDidReceiveAuthenticationChallengeBlock)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential); + +@class BUBaseRequest; + + +@interface BUNetworkAgent : NSObject + +- (instancetype)init; ++ (instancetype)new NS_UNAVAILABLE; + +/// Get the shared agent. ++ (BUNetworkAgent *)sharedAgent; + +/// network is DEBUG ++ (void)openNetWorkDebug; + +/// Add request to session and start it. +- (void)addRequest:(BUBaseRequest *)request; + +/// Cancel a request that was previously added. +- (void)cancelRequest:(BUBaseRequest *)request; + +/// Cancel all requests that were previously added. +- (void)cancelAllRequests; + +/// Return the constructed URL of request. +/// +/// @param request The request to parse. Should not be nil. +/// +/// @return The result URL. +- (NSString *)buildRequestUrl:(BUBaseRequest *)request; + +/// set custom AuthenticationChanllengeBlock, do not set it when using shareAgent, you can use it when using another instance of BUNetworkAgent +- (void)setSessionDidReceiveAuthenticationChanllengeBlock:(BUURLSessionDidReceiveAuthenticationChallengeBlock)challengeBlock; + +- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust + forDomain:(nullable NSString *)domain; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUNetworkAgent.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUNetworkAgent.h.meta new file mode 100644 index 00000000..8de79fc9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BUNetworkAgent.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ed773fd4d69b14560b5dc4704edd0e88 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BURelyFoundation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BURelyFoundation.h new file mode 100755 index 00000000..aed0c823 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BURelyFoundation.h @@ -0,0 +1,27 @@ +// +// BURelyFoundation.h +// BURelyFoundation +// +// Created by zth on 2022/1/4. +// + +#ifndef BURelyFoundation_h +#define BURelyFoundation_h + +# pragma mark - NET + +#import +#import + +# pragma mark - AFN + +#import +#import +#import +#import + + + + + +#endif /* BURelyFoundation_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BURelyFoundation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BURelyFoundation.h.meta new file mode 100644 index 00000000..dcee530f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BURelyFoundation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e7d988e4688694b909247c0aad826770 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFAutoPurgingImageCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFAutoPurgingImageCache.h new file mode 100755 index 00000000..4a9443a2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFAutoPurgingImageCache.h @@ -0,0 +1,149 @@ +// BU_AFAutoPurgingImageCache.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +#if TARGET_OS_IOS || TARGET_OS_TV +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The `BU_AFImageCache` protocol defines a set of APIs for adding, removing and fetching images from a cache synchronously. + */ +@protocol BU_AFImageCache + +/** + Adds the image to the cache with the given identifier. + + @param image The image to cache. + @param identifier The unique identifier for the image in the cache. + */ +- (void)addImage:(NSData *)image withIdentifier:(NSString *)identifier; + +/** + Removes the image from the cache matching the given identifier. + + @param identifier The unique identifier for the image in the cache. + + @return A BOOL indicating whether or not the image was removed from the cache. + */ +- (BOOL)removeImageWithIdentifier:(NSString *)identifier; + +/** + Removes all images from the cache. + + @return A BOOL indicating whether or not all images were removed from the cache. + */ +- (BOOL)removeAllImages; + +/** + Returns the image in the cache associated with the given identifier. + + @param identifier The unique identifier for the image in the cache. + + @return An image for the matching identifier, or nil. + */ +- (nullable NSData *)imageWithIdentifier:(NSString *)identifier; +@end + + +/** + The `ImageRequestCache` protocol extends the `ImageCache` protocol by adding methods for adding, removing and fetching images from a cache given an `NSURLRequest` and additional identifier. + */ +@protocol BU_AFImageRequestCache + +/** + Adds the image to the cache using an identifier created from the request and additional identifier. + + @param image The image to cache. + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + */ +//- (void)addImage:(NSData *)image forRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +/** + Removes the image from the cache using an identifier created from the request and additional identifier. + + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + + @return A BOOL indicating whether or not all images were removed from the cache. + */ +//- (BOOL)removeImageforRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +/** + Returns the image from the cache associated with an identifier created from the request and additional identifier. + + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + + @return An image for the matching request and identifier, or nil. + */ +//- (nullable NSData *)imageforRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +@end + +/** + The `AutoPurgingImageCache` in an in-memory image cache used to store images up to a given memory capacity. When the memory capacity is reached, the image cache is sorted by last access date, then the oldest image is continuously purged until the preferred memory usage after purge is met. Each time an image is accessed through the cache, the internal access date of the image is updated. + */ +@interface BU_AFAutoPurgingImageCache : NSObject + +/** + The total memory capacity of the cache in bytes. + */ +@property (nonatomic, assign) UInt64 memoryCapacity; + +/** + The preferred memory usage after purge in bytes. During a purge, images will be purged until the memory capacity drops below this limit. + */ +@property (nonatomic, assign) UInt64 preferredMemoryUsageAfterPurge; + +/** + The current total memory usage in bytes of all images stored within the cache. + */ +@property (nonatomic, assign, readonly) UInt64 memoryUsage; + +/** + Initialies the `AutoPurgingImageCache` instance with default values for memory capacity and preferred memory usage after purge limit. `memoryCapcity` defaults to `100 MB`. `preferredMemoryUsageAfterPurge` defaults to `60 MB`. + + @return The new `AutoPurgingImageCache` instance. + */ +- (instancetype)init; + +/** + Initialies the `AutoPurgingImageCache` instance with the given memory capacity and preferred memory usage + after purge limit. + + @param memoryCapacity The total memory capacity of the cache in bytes. + @param preferredMemoryCapacity The preferred memory usage after purge in bytes. + + @return The new `AutoPurgingImageCache` instance. + */ +- (instancetype)initWithMemoryCapacity:(UInt64)memoryCapacity preferredMemoryCapacity:(UInt64)preferredMemoryCapacity; + +@end + +NS_ASSUME_NONNULL_END + +#endif + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFAutoPurgingImageCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFAutoPurgingImageCache.h.meta new file mode 100644 index 00000000..3c0b23d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFAutoPurgingImageCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 09e7f4d02c3e84027b251f2b9c36bacd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFHTTPSessionManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFHTTPSessionManager.h new file mode 100755 index 00000000..85f69ebb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFHTTPSessionManager.h @@ -0,0 +1,245 @@ +// BU_AFHTTPSessionManager.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#if !TARGET_OS_WATCH +#import +#endif +#import + +#if TARGET_OS_IOS || TARGET_OS_WATCH || TARGET_OS_TV +#import +#else +#import +#endif + +#import "BU_AFURLSessionManager.h" + +/** + `BU_AFHTTPSessionManager` is a subclass of `BU_AFURLSessionManager` with convenience methods for making HTTP requests. When a `baseURL` is provided, requests made with the `GET` / `POST` / et al. convenience methods can be made with relative paths. + + ## Subclassing Notes + + Developers targeting iOS 7 or Mac OS X 10.9 or later that deal extensively with a web service are encouraged to subclass `BU_AFHTTPSessionManager`, providing a class method that returns a shared singleton object on which authentication and other configuration can be shared across the application. + + For developers targeting iOS 6 or Mac OS X 10.8 or earlier, `AFHTTPRequestOperationManager` may be used to similar effect. + + ## Methods to Override + + To change the behavior of all data task operation construction, which is also used in the `GET` / `POST` / et al. convenience methods, override `dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:`. + + ## Serialization + + Requests created by an HTTP client will contain default headers and encode parameters according to the `requestSerializer` property, which is an object conforming to ``. + + Responses received from the server are automatically validated and serialized by the `responseSerializers` property, which is an object conforming to `` + + ## URL Construction Using Relative Paths + + For HTTP convenience methods, the request serializer constructs URLs from the path relative to the `-baseURL`, using `NSURL +URLWithString:relativeToURL:`, when provided. If `baseURL` is `nil`, `path` needs to resolve to a valid `NSURL` object using `NSURL +URLWithString:`. + + Below are a few examples of how `baseURL` and relative paths interact: + + NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"]; + [NSURL URLWithString:@"foo" relativeToURL:baseURL]; // http://example.com/v1/foo + [NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL]; // http://example.com/v1/foo?bar=baz + [NSURL URLWithString:@"/foo" relativeToURL:baseURL]; // http://example.com/foo + [NSURL URLWithString:@"foo/" relativeToURL:baseURL]; // http://example.com/v1/foo + [NSURL URLWithString:@"/foo/" relativeToURL:baseURL]; // http://example.com/foo/ + [NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; // http://example2.com/ + + Also important to note is that a trailing slash will be added to any `baseURL` without one. This would otherwise cause unexpected behavior when constructing URLs using paths without a leading slash. + + @warning Managers for background sessions must be owned for the duration of their use. This can be accomplished by creating an application-wide or shared singleton instance. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFHTTPSessionManager : BU_AFURLSessionManager + +/** + The URL used to construct requests from relative paths in methods like `requestWithMethod:URLString:parameters:`, and the `GET` / `POST` / et al. convenience methods. + */ +@property (readonly, nonatomic, strong, nullable) NSURL *baseURL; + +/** + Requests created with `requestWithMethod:URLString:parameters:` & `multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:` are constructed with a set of default headers using a parameter serialization specified by this property. By default, this is set to an instance of `BU_AFHTTPRequestSerializer`, which serializes query string parameters for `GET`, `HEAD`, and `DELETE` requests, or otherwise URL-form-encodes HTTP message bodies. + + @warning `requestSerializer` must not be `nil`. + */ +@property (nonatomic, strong) BU_AFHTTPRequestSerializer * requestSerializer; + +/** + Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an instance of `BU_AFJSONResponseSerializer`. + + @warning `responseSerializer` must not be `nil`. + */ +@property (nonatomic, strong) BU_AFHTTPResponseSerializer * responseSerializer; + +///------------------------------- +/// @name Managing Security Policy +///------------------------------- + +/** + The security policy used by created session to evaluate server trust for secure connections. `BU_AFURLSessionManager` uses the `defaultPolicy` unless otherwise specified. A security policy configured with `BU_AFSSLPinningModePublicKey` or `BU_AFSSLPinningModeCertificate` can only be applied on a session manager initialized with a secure base URL (i.e. https). Applying a security policy with pinning enabled on an insecure session manager throws an `Invalid Security Policy` exception. + */ +@property (nonatomic, strong) BU_AFSecurityPolicy *securityPolicy; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns an `BU_AFHTTPSessionManager` object. + */ ++ (instancetype)manager; + +/** + Initializes an `BU_AFHTTPSessionManager` object with the specified base URL. + + @param url The base URL for the HTTP client. + + @return The newly-initialized HTTP client + */ +- (instancetype)initWithBaseURL:(nullable NSURL *)url; + +/** + Initializes an `BU_AFHTTPSessionManager` object with the specified base URL. + + This is the designated initializer. + + @param url The base URL for the HTTP client. + @param configuration The configuration used to create the managed session. + + @return The newly-initialized HTTP client + */ +- (instancetype)initWithBaseURL:(nullable NSURL *)url + sessionConfiguration:(nullable NSURLSessionConfiguration *)configuration NS_DESIGNATED_INITIALIZER; + +///--------------------------- +/// @name Making HTTP Requests +///--------------------------- + +/** + Creates and runs an `NSURLSessionDataTask` with a `GET` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString + parameters:(nullable id)parameters + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + + +/** + Creates and runs an `NSURLSessionDataTask` with a `GET` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param downloadProgress A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString + parameters:(nullable id)parameters + progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgress + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + + +/** + Creates and runs an `NSURLSessionDataTask` with a `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString + parameters:(nullable id)parameters + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + +/** + Creates and runs an `NSURLSessionDataTask` with a `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param uploadProgress A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString + parameters:(nullable id)parameters + progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + +/** + Creates and runs an `NSURLSessionDataTask` with a multipart `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +//- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString +// parameters:(nullable id)parameters +// constructingBodyWithBlock:(nullable void (^)(id formData))block +// success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success +// failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + +/** + Creates and runs an `NSURLSessionDataTask` with a multipart `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param uploadProgress A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +//- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString +// parameters:(nullable id)parameters +// constructingBodyWithBlock:(nullable void (^)(id formData))block +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress +// success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success +// failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFHTTPSessionManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFHTTPSessionManager.h.meta new file mode 100644 index 00000000..c01268ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFHTTPSessionManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 41f3a252b54e6477bbe4209822dfa8bf +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFSecurityPolicy.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFSecurityPolicy.h new file mode 100755 index 00000000..1d04300c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFSecurityPolicy.h @@ -0,0 +1,154 @@ +// BU_AFSecurityPolicy.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +typedef NS_ENUM(NSUInteger, BU_AFSSLPinningMode) { + BU_AFSSLPinningModeNone, + BU_AFSSLPinningModePublicKey, + BU_AFSSLPinningModeCertificate, +}; + +/** + `BU_AFSecurityPolicy` evaluates server trust against pinned X.509 certificates and public keys over secure connections. + + Adding pinned SSL certificates to your app helps prevent man-in-the-middle attacks and other vulnerabilities. Applications dealing with sensitive customer data or financial information are strongly encouraged to route all communication over an HTTPS connection with SSL pinning configured and enabled. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFSecurityPolicy : NSObject + +/** + The criteria by which server trust should be evaluated against the pinned SSL certificates. Defaults to `BU_AFSSLPinningModeNone`. + */ +@property (readonly, nonatomic, assign) BU_AFSSLPinningMode SSLPinningMode; + +/** + The certificates used to evaluate server trust according to the SSL pinning mode. + + By default, this property is set to any (`.cer`) certificates included in the target compiling BU_AFNetworking. Note that if you are using BU_AFNetworking as embedded framework, no certificates will be pinned by default. Use `certificatesInBundle` to load certificates from your target, and then create a new policy by calling `policyWithPinningMode:withPinnedCertificates`. + + Note that if pinning is enabled, `evaluateServerTrust:forDomain:` will return true if any pinned certificate matches. + */ +@property (nonatomic, strong, nullable) NSSet *pinnedCertificates; + +/** + Whether or not to trust servers with an invalid or expired SSL certificates. Defaults to `NO`. + */ +@property (nonatomic, assign) BOOL allowInvalidCertificates; + +/** + Whether or not to validate the domain name in the certificate's CN field. Defaults to `YES`. + */ +@property (nonatomic, assign) BOOL validatesDomainName; + +///----------------------------------------- +/// @name Getting Certificates from the Bundle +///----------------------------------------- + +/** + Returns any certificates included in the bundle. If you are using BU_AFNetworking as an embedded framework, you must use this method to find the certificates you have included in your app bundle, and use them when creating your security policy by calling `policyWithPinningMode:withPinnedCertificates`. + + @return The certificates included in the given bundle. + */ ++ (NSSet *)certificatesInBundle:(NSBundle *)bundle; + +///----------------------------------------- +/// @name Getting Specific Security Policies +///----------------------------------------- + +/** + Returns the shared default security policy, which does not allow invalid certificates, validates domain name, and does not validate against pinned certificates or public keys. + + @return The default security policy. + */ ++ (instancetype)defaultPolicy; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns a security policy with the specified pinning mode. + + @param pinningMode The SSL pinning mode. + + @return A new security policy. + */ +//+ (instancetype)policyWithPinningMode:(BU_AFSSLPinningMode)pinningMode; + +/** + Creates and returns a security policy with the specified pinning mode. + + @param pinningMode The SSL pinning mode. + @param pinnedCertificates The certificates to pin against. + + @return A new security policy. + */ +//+ (instancetype)policyWithPinningMode:(BU_AFSSLPinningMode)pinningMode withPinnedCertificates:(NSSet *)pinnedCertificates; + +///------------------------------ +/// @name Evaluating Server Trust +///------------------------------ + +/** + Whether or not the specified server trust should be accepted, based on the security policy. + + This method should be used when responding to an authentication challenge from a server. + + @param serverTrust The X.509 certificate trust of the server. + @param domain The domain of serverTrust. If `nil`, the domain will not be validated. + + @return Whether or not to trust the server. + */ +- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust + forDomain:(nullable NSString *)domain; + +@end + +NS_ASSUME_NONNULL_END + +///---------------- +/// @name Constants +///---------------- + +/** + ## SSL Pinning Modes + + The following constants are provided by `BU_AFSSLPinningMode` as possible SSL pinning modes. + + enum { + BU_AFSSLPinningModeNone, + BU_AFSSLPinningModePublicKey, + BU_AFSSLPinningModeCertificate, + } + + `BU_AFSSLPinningModeNone` + Do not used pinned certificates to validate servers. + + `BU_AFSSLPinningModePublicKey` + Validate host certificates against public keys of pinned certificates. + + `BU_AFSSLPinningModeCertificate` + Validate host certificates against pinned certificates. +*/ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFSecurityPolicy.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFSecurityPolicy.h.meta new file mode 100644 index 00000000..ff4df771 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFSecurityPolicy.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 52d03a723433d4748a693da160552f5b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLRequestSerialization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLRequestSerialization.h new file mode 100755 index 00000000..bb4696ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLRequestSerialization.h @@ -0,0 +1,450 @@ +// BU_AFURLRequestSerialization.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +#if TARGET_OS_IOS || TARGET_OS_TV +#import +#elif TARGET_OS_WATCH +#import +#endif + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a percent-escaped string following RFC 3986 for a query string key or value. + RFC 3986 states that the following characters are "reserved" characters. + - General Delimiters: ":", "#", "[", "]", "@", "?", "/" + - Sub-Delimiters: "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "=" + + In RFC 3986 - Section 3.4, it states that the "?" and "/" characters should not be escaped to allow + query strings to include a URL. Therefore, all "reserved" characters with the exception of "?" and "/" + should be percent-escaped in the query string. + + @param string The string to be percent-escaped. + + @return The percent-escaped string. + */ +FOUNDATION_EXPORT NSString * BU_AFPercentEscapedStringFromString(NSString *string); + +/** + A helper method to generate encoded url query parameters for appending to the end of a URL. + + @param parameters A dictionary of key/values to be encoded. + + @return A url encoded query string + */ +FOUNDATION_EXPORT NSString * BU_AFQueryStringFromParameters(NSDictionary *parameters); + +/** + The `BU_AFURLRequestSerialization` protocol is adopted by an object that encodes parameters for a specified HTTP requests. Request serializers may encode parameters as query strings, HTTP bodies, setting the appropriate HTTP header fields as necessary. + + For example, a JSON request serializer may set the HTTP body of the request to a JSON representation, and set the `Content-Type` HTTP header field value to `application/json`. + */ +@protocol BU_AFURLRequestSerialization + +/** + Returns a request with the specified parameters encoded into a copy of the original request. + + @param request The original request. + @param parameters The parameters to be encoded. + @param error The error that occurred while attempting to encode the request parameters. + + @return A serialized request. + */ +- (nullable NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request + withParameters:(nullable id)parameters + error:(NSError * _Nullable __autoreleasing *)error NS_SWIFT_NOTHROW; + +@end + +#pragma mark - + +/** + + */ +typedef NS_ENUM(NSUInteger, BU_AFHTTPRequestQueryStringSerializationStyle) { + BU_AFHTTPRequestQueryStringDefaultStyle = 0, +}; + +@protocol BU_AFMultipartFormData; + +/** + `BU_AFHTTPRequestSerializer` conforms to the `BU_AFURLRequestSerialization` & `BU_AFURLResponseSerialization` protocols, offering a concrete base implementation of query string / URL form-encoded parameter serialization and default request headers, as well as response status code and content type validation. + + Any request or response serializer dealing with HTTP is encouraged to subclass `BU_AFHTTPRequestSerializer` in order to ensure consistent default behavior. + */ +@interface BU_AFHTTPRequestSerializer : NSObject + +/** + The string encoding used to serialize parameters. `NSUTF8StringEncoding` by default. + */ +@property (nonatomic, assign) NSStringEncoding stringEncoding; + +/** + Whether created requests can use the device’s cellular radio (if present). `YES` by default. + + @see NSMutableURLRequest -setAllowsCellularAccess: + */ +@property (nonatomic, assign) BOOL allowsCellularAccess; + +/** + The cache policy of created requests. `NSURLRequestUseProtocolCachePolicy` by default. + + @see NSMutableURLRequest -setCachePolicy: + */ +@property (nonatomic, assign) NSURLRequestCachePolicy cachePolicy; + +/** + Whether created requests should use the default cookie handling. `YES` by default. + + @see NSMutableURLRequest -setHTTPShouldHandleCookies: + */ +@property (nonatomic, assign) BOOL HTTPShouldHandleCookies; + +/** + Whether created requests can continue transmitting data before receiving a response from an earlier transmission. `NO` by default + + @see NSMutableURLRequest -setHTTPShouldUsePipelining: + */ +@property (nonatomic, assign) BOOL HTTPShouldUsePipelining; + +/** + The network service type for created requests. `NSURLNetworkServiceTypeDefault` by default. + + @see NSMutableURLRequest -setNetworkServiceType: + */ +@property (nonatomic, assign) NSURLRequestNetworkServiceType networkServiceType; + +/** + The timeout interval, in seconds, for created requests. The default timeout interval is 60 seconds. + + @see NSMutableURLRequest -setTimeoutInterval: + */ +@property (nonatomic, assign) NSTimeInterval timeoutInterval; + +///--------------------------------------- +/// @name Configuring HTTP Request Headers +///--------------------------------------- + +/** + Default HTTP header field values to be applied to serialized requests. By default, these include the following: + + - `Accept-Language` with the contents of `NSLocale +preferredLanguages` + - `User-Agent` with the contents of various bundle identifiers and OS designations + + @discussion To add or remove default request headers, use `setValue:forHTTPHeaderField:`. + */ +@property (readonly, nonatomic, strong) NSDictionary *HTTPRequestHeaders; + +/** + Creates and returns a serializer with default configuration. + */ ++ (instancetype)serializer; + +/** + Sets the value for the HTTP headers set in request objects made by the HTTP client. If `nil`, removes the existing value for that header. + + @param field The HTTP header to set a default value for + @param value The value set as default for the specified header, or `nil` + */ +- (void)setValue:(nullable NSString *)value +forHTTPHeaderField:(NSString *)field; + +/** + Returns the value for the HTTP headers set in the request serializer. + + @param field The HTTP header to retrieve the default value for + + @return The value set as default for the specified header, or `nil` + */ +- (nullable NSString *)valueForHTTPHeaderField:(NSString *)field; + +/** + Sets the "Authorization" HTTP header set in request objects made by the HTTP client to a basic authentication value with Base64-encoded username and password. This overwrites any existing value for this header. + + @param username The HTTP basic auth username + @param password The HTTP basic auth password + */ +//- (void)setAuthorizationHeaderFieldWithUsername:(NSString *)username +// password:(NSString *)password; + +/** + Clears any existing value for the "Authorization" HTTP header. + */ +//- (void)clearAuthorizationHeader; + +///------------------------------------------------------- +/// @name Configuring Query String Parameter Serialization +///------------------------------------------------------- + +/** + HTTP methods for which serialized requests will encode parameters as a query string. `GET`, `HEAD`, and `DELETE` by default. + */ +@property (nonatomic, strong) NSSet *HTTPMethodsEncodingParametersInURI; + +/** + Set the method of query string serialization according to one of the pre-defined styles. + + @param style The serialization style. + + @see BU_AFHTTPRequestQueryStringSerializationStyle + */ +- (void)setQueryStringSerializationWithStyle:(BU_AFHTTPRequestQueryStringSerializationStyle)style; + +/** + Set the a custom method of query string serialization according to the specified block. + + @param block A block that defines a process of encoding parameters into a query string. This block returns the query string and takes three arguments: the request, the parameters to encode, and the error that occurred when attempting to encode parameters for the given request. + */ +- (void)setQueryStringSerializationWithBlock:(nullable NSString * (^)(NSURLRequest *request, id parameters, NSError * __autoreleasing *error))block; + +///------------------------------- +/// @name Creating Request Objects +///------------------------------- + +/** + Creates an `NSMutableURLRequest` object with the specified HTTP method and URL string. + + If the HTTP method is `GET`, `HEAD`, or `DELETE`, the parameters will be used to construct a url-encoded query string that is appended to the request's URL. Otherwise, the parameters will be encoded according to the value of the `parameterEncoding` property, and set as the request body. + + @param method The HTTP method for the request, such as `GET`, `POST`, `PUT`, or `DELETE`. This parameter must not be `nil`. + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be either set as a query string for `GET` requests, or the request HTTP body. + @param error The error that occurred while constructing the request. + + @return An `NSMutableURLRequest` object. + */ +- (NSMutableURLRequest *)requestWithMethod:(NSString *)method + URLString:(NSString *)URLString + parameters:(nullable id)parameters + error:(NSError * _Nullable __autoreleasing *)error; + +/** + Creates an `NSMutableURLRequest` object with the specified HTTP method and URLString, and constructs a `multipart/form-data` HTTP body, using the specified parameters and multipart form data block. See http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2 + + Multipart form requests are automatically streamed, reading files directly from disk along with in-memory data in a single HTTP body. The resulting `NSMutableURLRequest` object has an `HTTPBodyStream` property, so refrain from setting `HTTPBodyStream` or `HTTPBody` on this request object, as it will clear out the multipart form body stream. + + @param method The HTTP method for the request. This parameter must not be `GET` or `HEAD`, or `nil`. + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded and set in the request HTTP body. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param error The error that occurred while constructing the request. + + @return An `NSMutableURLRequest` object + */ +- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method + URLString:(NSString *)URLString + parameters:(nullable NSDictionary *)parameters + constructingBodyWithBlock:(nullable void (^)(id formData))block + error:(NSError * _Nullable __autoreleasing *)error; + +/** + Creates an `NSMutableURLRequest` by removing the `HTTPBodyStream` from a request, and asynchronously writing its contents into the specified file, invoking the completion handler when finished. + + @param request The multipart form request. The `HTTPBodyStream` property of `request` must not be `nil`. + @param fileURL The file URL to write multipart form contents to. + @param handler A handler block to execute. + + @discussion There is a bug in `NSURLSessionTask` that causes requests to not send a `Content-Length` header when streaming contents from an HTTP body, which is notably problematic when interacting with the Amazon S3 webservice. As a workaround, this method takes a request constructed with `multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:`, or any other request with an `HTTPBodyStream`, writes the contents to the specified file and returns a copy of the original request with the `HTTPBodyStream` property set to `nil`. From here, the file can either be passed to `BU_AFURLSessionManager -uploadTaskWithRequest:fromFile:progress:completionHandler:`, or have its contents read into an `NSData` that's assigned to the `HTTPBody` property of the request. + + @see https://github.com/BU_AFNetworking/BU_AFNetworking/issues/1398 + */ +//- (NSMutableURLRequest *)requestWithMultipartFormRequest:(NSURLRequest *)request +// writingStreamContentsToFile:(NSURL *)fileURL +// completionHandler:(nullable void (^)(NSError * _Nullable error))handler; + +@end + +#pragma mark - + +/** + The `BU_AFMultipartFormData` protocol defines the methods supported by the parameter in the block argument of `BU_AFHTTPRequestSerializer -multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:`. + */ +@protocol BU_AFMultipartFormData + +/** + Appends the HTTP header `Content-Disposition: file; filename=#{generated filename}; name=#{name}"` and `Content-Type: #{generated mimeType}`, followed by the encoded file data and the multipart form boundary. + + The filename and MIME type for this data in the form will be automatically generated, using the last path component of the `fileURL` and system associated MIME type for the `fileURL` extension, respectively. + + @param fileURL The URL corresponding to the file whose content will be appended to the form. This parameter must not be `nil`. + @param name The name to be associated with the specified data. This parameter must not be `nil`. + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. + + @return `YES` if the file data was successfully appended, otherwise `NO`. + */ +//- (BOOL)appendPartWithFileURL:(NSURL *)fileURL +// name:(NSString *)name +// error:(NSError * _Nullable __autoreleasing *)error; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary. +// +// @param fileURL The URL corresponding to the file whose content will be appended to the form. This parameter must not be `nil`. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// @param fileName The file name to be used in the `Content-Disposition` header. This parameter must not be `nil`. +// @param mimeType The declared MIME type of the file data. This parameter must not be `nil`. +// @param error If an error occurs, upon return contains an `NSError` object that describes the problem. +// +// @return `YES` if the file data was successfully appended otherwise `NO`. +// */ +//- (BOOL)appendPartWithFileURL:(NSURL *)fileURL +// name:(NSString *)name +// fileName:(NSString *)fileName +// mimeType:(NSString *)mimeType +// error:(NSError * _Nullable __autoreleasing *)error; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the data from the input stream and the multipart form boundary. +// +// @param inputStream The input stream to be appended to the form data +// @param name The name to be associated with the specified input stream. This parameter must not be `nil`. +// @param fileName The filename to be associated with the specified input stream. This parameter must not be `nil`. +// @param length The length of the specified input stream in bytes. +// @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`. +// */ +//- (void)appendPartWithInputStream:(nullable NSInputStream *)inputStream +// name:(NSString *)name +// fileName:(NSString *)fileName +// length:(int64_t)length +// mimeType:(NSString *)mimeType; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary. +// +// @param data The data to be encoded and appended to the form data. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// @param fileName The filename to be associated with the specified data. This parameter must not be `nil`. +// @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`. +// */ +//- (void)appendPartWithFileData:(NSData *)data +// name:(NSString *)name +// fileName:(NSString *)fileName +// mimeType:(NSString *)mimeType; +// +///** +// Appends the HTTP headers `Content-Disposition: form-data; name=#{name}"`, followed by the encoded data and the multipart form boundary. +// +// @param data The data to be encoded and appended to the form data. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// */ +// +- (void)appendPartWithFormData:(NSData *)data + name:(NSString *)name; +// +// +///** +// Appends HTTP headers, followed by the encoded data and the multipart form boundary. +// +// @param headers The HTTP headers to be appended to the form data. +// @param body The data to be encoded and appended to the form data. This parameter must not be `nil`. +// */ +- (void)appendPartWithHeaders:(nullable NSDictionary *)headers + body:(NSData *)body; +// +///** +// Throttles request bandwidth by limiting the packet size and adding a delay for each chunk read from the upload stream. +// +// When uploading over a 3G or EDGE connection, requests may fail with "request body stream exhausted". Setting a maximum packet size and delay according to the recommended values (`kBU_AFUploadStream3GSuggestedPacketSize` and `kBU_AFUploadStream3GSuggestedDelay`) lowers the risk of the input stream exceeding its allocated bandwidth. Unfortunately, there is no definite way to distinguish between a 3G, EDGE, or LTE connection over `NSURLConnection`. As such, it is not recommended that you throttle bandwidth based solely on network reachability. Instead, you should consider checking for the "request body stream exhausted" in a failure block, and then retrying the request with throttled bandwidth. +// +// @param numberOfBytes Maximum packet size, in number of bytes. The default packet size for an input stream is 16kb. +// @param delay Duration of delay each time a packet is read. By default, no delay is set. +// */ +//- (void)throttleBandwidthWithPacketSize:(NSUInteger)numberOfBytes +// delay:(NSTimeInterval)delay; + +@end + +#pragma mark - + +/** + `BU_AFJSONRequestSerializer` is a subclass of `BU_AFHTTPRequestSerializer` that encodes parameters as JSON using `NSJSONSerialization`, setting the `Content-Type` of the encoded request to `application/json`. + */ +@interface BU_AFJSONRequestSerializer : BU_AFHTTPRequestSerializer + +/** + Options for writing the request JSON data from Foundation objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONWritingOptions". `0` by default. + */ +@property (nonatomic, assign) NSJSONWritingOptions writingOptions; + +/** + Creates and returns a JSON serializer with specified reading and writing options. + + @param writingOptions The specified JSON writing options. + */ ++ (instancetype)serializerWithWritingOptions:(NSJSONWritingOptions)writingOptions; + +@end + + +#pragma mark - + +///---------------- +/// @name Constants +///---------------- + +/** + ## Error Domains + + The following error domain is predefined. + + - `NSString * const BU_AFURLRequestSerializationErrorDomain` + + ### Constants + + `BU_AFURLRequestSerializationErrorDomain` + AFURLRequestSerializer errors. Error codes for `BU_AFURLRequestSerializationErrorDomain` correspond to codes in `NSURLErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLRequestSerializationErrorDomain; + +/** + ## User info dictionary keys + + These keys may exist in the user info dictionary, in addition to those defined for NSError. + + - `NSString * const BU_AFNetworkingOperationFailingURLRequestErrorKey` + + ### Constants + + `BU_AFNetworkingOperationFailingURLRequestErrorKey` + The corresponding value is an `NSURLRequest` containing the request of the operation associated with an error. This key is only present in the `BU_AFURLRequestSerializationErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLRequestErrorKey; + +/** + ## Throttling Bandwidth for HTTP Request Input Streams + + @see -throttleBandwidthWithPacketSize:delay: + + ### Constants + + `kBU_AFUploadStream3GSuggestedPacketSize` + Maximum packet size, in number of bytes. Equal to 16kb. + + `kBU_AFUploadStream3GSuggestedDelay` + Duration of delay each time a packet is read. Equal to 0.2 seconds. + */ +FOUNDATION_EXPORT NSUInteger const kBU_AFUploadStream3GSuggestedPacketSize; +FOUNDATION_EXPORT NSTimeInterval const kBU_AFUploadStream3GSuggestedDelay; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLRequestSerialization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLRequestSerialization.h.meta new file mode 100644 index 00000000..d07da1dc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLRequestSerialization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c000fbace32524dbd8c1cace3dc35fd7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLResponseSerialization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLResponseSerialization.h new file mode 100755 index 00000000..d0598c28 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLResponseSerialization.h @@ -0,0 +1,225 @@ +// BU_AFURLResponseSerialization.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The `BU_AFURLResponseSerialization` protocol is adopted by an object that decodes data into a more useful object representation, according to details in the server response. Response serializers may additionally perform validation on the incoming response and data. + + For example, a JSON response serializer may check for an acceptable status code (`2XX` range) and content type (`application/json`), decoding a valid JSON response into an object. + */ +@protocol BU_AFURLResponseSerialization + +/** + The response object decoded from the data associated with a specified response. + + @param response The response to be processed. + @param data The response data to be decoded. + @param error The error that occurred while attempting to decode the response data. + + @return The object decoded from the specified response data. + */ +- (nullable id)responseObjectForResponse:(nullable NSURLResponse *)response + data:(nullable NSData *)data + error:(NSError * _Nullable __autoreleasing *)error NS_SWIFT_NOTHROW; + +@end + +#pragma mark - + +/** + `BU_AFHTTPResponseSerializer` conforms to the `BU_AFURLRequestSerialization` & `BU_AFURLResponseSerialization` protocols, offering a concrete base implementation of query string / URL form-encoded parameter serialization and default request headers, as well as response status code and content type validation. + + Any request or response serializer dealing with HTTP is encouraged to subclass `BU_AFHTTPResponseSerializer` in order to ensure consistent default behavior. + */ +@interface BU_AFHTTPResponseSerializer : NSObject + +- (instancetype)init; +/** + Creates and returns a serializer with default configuration. + */ ++ (instancetype)serializer; + +///----------------------------------------- +/// @name Configuring Response Serialization +///----------------------------------------- + +/** + The acceptable HTTP status codes for responses. When non-`nil`, responses with status codes not contained by the set will result in an error during validation. + + See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html + */ +@property (nonatomic, copy, nullable) NSIndexSet *acceptableStatusCodes; + +/** + The acceptable MIME types for responses. When non-`nil`, responses with a `Content-Type` with MIME types that do not intersect with the set will result in an error during validation. + */ +@property (nonatomic, copy, nullable) NSSet *acceptableContentTypes; + +/** + Validates the specified response and data. + + In its base implementation, this method checks for an acceptable status code and content type. Subclasses may wish to add other domain-specific checks. + + @param response The response to be validated. + @param data The data associated with the response. + @param error The error that occurred while attempting to validate the response. + + @return `YES` if the response is valid, otherwise `NO`. + */ +- (BOOL)validateResponse:(nullable NSHTTPURLResponse *)response + data:(nullable NSData *)data + error:(NSError * _Nullable __autoreleasing *)error; + +@end + +#pragma mark - + + +/** + `BU_AFJSONResponseSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that validates and decodes JSON responses. + + By default, `BU_AFJSONResponseSerializer` accepts the following MIME types, which includes the official standard, `application/json`, as well as other commonly-used types: + + - `application/json` + - `text/json` + - `text/javascript` + */ +@interface BU_AFJSONResponseSerializer : BU_AFHTTPResponseSerializer + +- (instancetype)init; + +/** + Options for reading the response JSON data and creating the Foundation objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONReadingOptions". `0` by default. + */ +@property (nonatomic, assign) NSJSONReadingOptions readingOptions; + +/** + Whether to remove keys with `NSNull` values from response JSON. Defaults to `NO`. + */ +@property (nonatomic, assign) BOOL removesKeysWithNullValues; + +/** + Creates and returns a JSON serializer with specified reading and writing options. + + @param readingOptions The specified JSON reading options. + */ ++ (instancetype)serializerWithReadingOptions:(NSJSONReadingOptions)readingOptions; + +@end + +#pragma mark - + +/** + `BU_AFImageResponseSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that validates and decodes image responses. + + By default, `BU_AFImageResponseSerializer` accepts the following MIME types, which correspond to the image formats supported by UIImage or NSImage: + + - `image/tiff` + - `image/jpeg` + - `image/gif` + - `image/png` + - `image/ico` + - `image/x-icon` + - `image/bmp` + - `image/x-bmp` + - `image/x-xbitmap` + - `image/x-win-bitmap` + */ +@interface BU_AFImageResponseSerializer : BU_AFHTTPResponseSerializer + +#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH +/** + The scale factor used when interpreting the image data to construct `responseImage`. Specifying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the size property. This is set to the value of scale of the main screen by default, which automatically scales images for retina displays, for instance. + */ +@property (nonatomic, assign) CGFloat imageScale; + +/** + Whether to automatically inflate response image data for compressed formats (such as PNG or JPEG). Enabling this can significantly improve drawing performance on iOS when used with `setCompletionBlockWithSuccess:failure:`, as it allows a bitmap representation to be constructed in the background rather than on the main thread. `YES` by default. + */ +@property (nonatomic, assign) BOOL automaticallyInflatesResponseImage; +#endif + +@end + +#pragma mark - + +/** + `AFCompoundSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that delegates the response serialization to the first `BU_AFHTTPResponseSerializer` object that returns an object for `responseObjectForResponse:data:error:`, falling back on the default behavior of `BU_AFHTTPResponseSerializer`. This is useful for supporting multiple potential types and structures of server responses with a single serializer. + */ +@interface BU_AFCompoundResponseSerializer : BU_AFHTTPResponseSerializer + +/** + The component response serializers. + */ +@property (readonly, nonatomic, copy) NSArray > *responseSerializers; + +/** + Creates and returns a compound serializer comprised of the specified response serializers. + + @warning Each response serializer specified must be a subclass of `BU_AFHTTPResponseSerializer`, and response to `-validateResponse:data:error:`. + */ ++ (instancetype)compoundSerializerWithResponseSerializers:(NSArray > *)responseSerializers; + +@end + +///---------------- +/// @name Constants +///---------------- + +/** + ## Error Domains + + The following error domain is predefined. + + - `NSString * const BU_AFURLResponseSerializationErrorDomain` + + ### Constants + + `BU_AFURLResponseSerializationErrorDomain` + AFURLResponseSerializer errors. Error codes for `BU_AFURLResponseSerializationErrorDomain` correspond to codes in `NSURLErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLResponseSerializationErrorDomain; + +/** + ## User info dictionary keys + + These keys may exist in the user info dictionary, in addition to those defined for NSError. + + - `NSString * const BU_AFNetworkingOperationFailingURLResponseErrorKey` + - `NSString * const BU_AFNetworkingOperationFailingURLResponseDataErrorKey` + + ### Constants + + `BU_AFNetworkingOperationFailingURLResponseErrorKey` + The corresponding value is an `NSURLResponse` containing the response of the operation associated with an error. This key is only present in the `BU_AFURLResponseSerializationErrorDomain`. + + `BU_AFNetworkingOperationFailingURLResponseDataErrorKey` + The corresponding value is an `NSData` containing the original data of the operation associated with an error. This key is only present in the `BU_AFURLResponseSerializationErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLResponseErrorKey; + +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLResponseDataErrorKey; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLResponseSerialization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLResponseSerialization.h.meta new file mode 100644 index 00000000..f3938bfd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLResponseSerialization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 09926195ef2384275b2ef761a6eb2547 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLSessionManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLSessionManager.h new file mode 100755 index 00000000..2aeec31b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLSessionManager.h @@ -0,0 +1,486 @@ +// BU_AFURLSessionManager.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +#import + +#import "BU_AFURLResponseSerialization.h" +#import "BU_AFURLRequestSerialization.h" +#import "BU_AFSecurityPolicy.h" + +/** + `BU_AFURLSessionManager` creates and manages an `NSURLSession` object based on a specified `NSURLSessionConfiguration` object, which conforms to ``, ``, ``, and ``. + + ## Subclassing Notes + + This is the base class for `BU_AFHTTPSessionManager`, which adds functionality specific to making HTTP requests. If you are looking to extend `BU_AFURLSessionManager` specifically for HTTP, consider subclassing `BU_AFHTTPSessionManager` instead. + + ## NSURLSession & NSURLSessionTask Delegate Methods + + `BU_AFURLSessionManager` implements the following delegate methods: + + ### `NSURLSessionDelegate` + + - `URLSession:didBecomeInvalidWithError:` + - `URLSession:didReceiveChallenge:completionHandler:` + - `URLSessionDidFinishEventsForBackgroundURLSession:` + + ### `NSURLSessionTaskDelegate` + + - `URLSession:willPerformHTTPRedirection:newRequest:completionHandler:` + - `URLSession:task:didReceiveChallenge:completionHandler:` + - `URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:` + - `URLSession:task:needNewBodyStream:` + - `URLSession:task:didCompleteWithError:` + + ### `NSURLSessionDataDelegate` + + - `URLSession:dataTask:didReceiveResponse:completionHandler:` + - `URLSession:dataTask:didBecomeDownloadTask:` + - `URLSession:dataTask:didReceiveData:` + - `URLSession:dataTask:willCacheResponse:completionHandler:` + + ### `NSURLSessionDownloadDelegate` + + - `URLSession:downloadTask:didFinishDownloadingToURL:` + - `URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:` + - `URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:` + + If any of these methods are overridden in a subclass, they _must_ call the `super` implementation first. + + ## Network Reachability Monitoring + + Network reachability status and change monitoring is available through the `reachabilityManager` property. Applications may choose to monitor network reachability conditions in order to prevent or suspend any outbound requests. See `AFNetworkReachabilityManager` for more details. + + ## NSCoding Caveats + + - Encoded managers do not include any block properties. Be sure to set delegate callback blocks when using `-initWithCoder:` or `NSKeyedUnarchiver`. + + ## NSCopying Caveats + + - `-copy` and `-copyWithZone:` return a new manager with a new `NSURLSession` created from the configuration of the original. + - Operation copies do not include any delegate callback blocks, as they often strongly captures a reference to `self`, which would otherwise have the unintuitive side-effect of pointing to the _original_ session manager when copied. + + @warning Managers for background sessions must be owned for the duration of their use. This can be accomplished by creating an application-wide or shared singleton instance. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFURLSessionManager : NSObject + +/** + The managed session. + */ +@property (readonly, nonatomic, strong) NSURLSession *session; + +/** + The operation queue on which delegate callbacks are run. + */ +@property (readonly, nonatomic, strong) NSOperationQueue *operationQueue; + +/** + Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an instance of `BU_AFJSONResponseSerializer`. + + @warning `responseSerializer` must not be `nil`. + */ +@property (nonatomic, strong) id responseSerializer; + +///------------------------------- +/// @name Managing Security Policy +///------------------------------- + +/** + The security policy used by created session to evaluate server trust for secure connections. `BU_AFURLSessionManager` uses the `defaultPolicy` unless otherwise specified. + */ +@property (nonatomic, strong) BU_AFSecurityPolicy *securityPolicy; + +///---------------------------- +/// @name Getting Session Tasks +///---------------------------- + +/** + The data, upload, and download tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *tasks; + +/** + The data tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *dataTasks; + +/** + The upload tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *uploadTasks; + +/** + The download tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *downloadTasks; + +///------------------------------- +/// @name Managing Callback Queues +///------------------------------- + +/** + The dispatch queue for `completionBlock`. If `NULL` (default), the main queue is used. + */ +@property (nonatomic, strong, nullable) dispatch_queue_t completionQueue; + +/** + The dispatch group for `completionBlock`. If `NULL` (default), a private dispatch group is used. + */ +@property (nonatomic, strong, nullable) dispatch_group_t completionGroup; + +///--------------------------------- +/// @name Working Around System Bugs +///--------------------------------- + +/** + Whether to attempt to retry creation of upload tasks for background sessions when initial call returns `nil`. `NO` by default. + + @bug As of iOS 7.0, there is a bug where upload tasks created for background tasks are sometimes `nil`. As a workaround, if this property is `YES`, BU_AFNetworking will follow Apple's recommendation to try creating the task again. + + @see https://github.com/BU_AFNetworking/BU_AFNetworking/issues/1675 + */ +@property (nonatomic, assign) BOOL attemptsToRecreateUploadTasksForBackgroundSessions; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns a manager for a session created with the specified configuration. This is the designated initializer. + + @param configuration The configuration used to create the managed session. + + @return A manager for a newly-created session. + */ +- (instancetype)initWithSessionConfiguration:(nullable NSURLSessionConfiguration *)configuration NS_DESIGNATED_INITIALIZER; + +/** + Invalidates the managed session, optionally canceling pending tasks. + + @param cancelPendingTasks Whether or not to cancel pending tasks. + */ +- (void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks; + +///------------------------- +/// @name Running Data Tasks +///------------------------- + +/** + Creates an `NSURLSessionDataTask` with the specified request. + + @param request The HTTP request for the request. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler DEPRECATED_ATTRIBUTE; + +/** + Creates an `NSURLSessionDataTask` with the specified request. + + @param request The HTTP request for the request. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request + uploadProgress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock + downloadProgress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +///--------------------------- +/// @name Running Upload Tasks +///--------------------------- + +/** + Creates an `NSURLSessionUploadTask` with the specified request for a local file. + + @param request The HTTP request for the request. + @param fileURL A URL to the local file to be uploaded. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + + @see `attemptsToRecreateUploadTasksForBackgroundSessions` + */ +//- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request +// fromFile:(NSURL *)fileURL +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock +// completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionUploadTask` with the specified request for an HTTP body. + + @param request The HTTP request for the request. + @param bodyData A data object containing the HTTP body to be uploaded. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +//- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request +// fromData:(nullable NSData *)bodyData +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock +// completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionUploadTask` with the specified streaming request. + + @param request The HTTP request for the request. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request + progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +///----------------------------- +/// @name Running Download Tasks +///----------------------------- + +/** + Creates an `NSURLSessionDownloadTask` with the specified request. + + @param request The HTTP request for the request. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param destination A block object to be executed in order to determine the destination of the downloaded file. This block takes two arguments, the target path & the server response, and returns the desired file URL of the resulting download. The temporary file used during the download will be automatically deleted after being moved to the returned URL. + @param completionHandler A block to be executed when a task finishes. This block has no return value and takes three arguments: the server response, the path of the downloaded file, and the error describing the network or parsing error that occurred, if any. + + @warning If using a background `NSURLSessionConfiguration` on iOS, these blocks will be lost when the app is terminated. Background sessions may prefer to use `-setDownloadTaskDidFinishDownloadingBlock:` to specify the URL for saving the downloaded file, rather than the destination block of this method. + */ +//- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request +// progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock +// destination:(nullable NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination +// completionHandler:(nullable void (^)(NSURLResponse *response, NSURL * _Nullable filePath, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionDownloadTask` with the specified resume data. + + @param resumeData The data used to resume downloading. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param destination A block object to be executed in order to determine the destination of the downloaded file. This block takes two arguments, the target path & the server response, and returns the desired file URL of the resulting download. The temporary file used during the download will be automatically deleted after being moved to the returned URL. + @param completionHandler A block to be executed when a task finishes. This block has no return value and takes three arguments: the server response, the path of the downloaded file, and the error describing the network or parsing error that occurred, if any. + */ +//- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData +// progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock +// destination:(nullable NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination +// completionHandler:(nullable void (^)(NSURLResponse *response, NSURL * _Nullable filePath, NSError * _Nullable error))completionHandler; + +///--------------------------------- +/// @name Getting Progress for Tasks +///--------------------------------- + +/** + Returns the upload progress of the specified task. + + @param task The session task. Must not be `nil`. + + @return An `NSProgress` object reporting the upload progress of a task, or `nil` if the progress is unavailable. + */ +//- (nullable NSProgress *)uploadProgressForTask:(NSURLSessionTask *)task; + +/** + Returns the download progress of the specified task. + + @param task The session task. Must not be `nil`. + + @return An `NSProgress` object reporting the download progress of a task, or `nil` if the progress is unavailable. + */ +//- (nullable NSProgress *)downloadProgressForTask:(NSURLSessionTask *)task; + +///----------------------------------------- +/// @name Setting Session Delegate Callbacks +///----------------------------------------- + +/** + Sets a block to be executed when the managed session becomes invalid, as handled by the `NSURLSessionDelegate` method `URLSession:didBecomeInvalidWithError:`. + + @param block A block object to be executed when the managed session becomes invalid. The block has no return value, and takes two arguments: the session, and the error related to the cause of invalidation. + */ +- (void)setSessionDidBecomeInvalidBlock:(nullable void (^)(NSURLSession *session, NSError *error))block; + +/** + Sets a block to be executed when a connection level authentication challenge has occurred, as handled by the `NSURLSessionDelegate` method `URLSession:didReceiveChallenge:completionHandler:`. + + @param block A block object to be executed when a connection level authentication challenge has occurred. The block returns the disposition of the authentication challenge, and takes three arguments: the session, the authentication challenge, and a pointer to the credential that should be used to resolve the challenge. + */ +- (void)setSessionDidReceiveAuthenticationChallengeBlock:(nullable NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential))block; + +///-------------------------------------- +/// @name Setting Task Delegate Callbacks +///-------------------------------------- + +/** + Sets a block to be executed when a task requires a new request body stream to send to the remote server, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:needNewBodyStream:`. + + @param block A block object to be executed when a task requires a new request body stream. + */ +- (void)setTaskNeedNewBodyStreamBlock:(nullable NSInputStream * (^)(NSURLSession *session, NSURLSessionTask *task))block; + +/** + Sets a block to be executed when an HTTP request is attempting to perform a redirection to a different URL, as handled by the `NSURLSessionTaskDelegate` method `URLSession:willPerformHTTPRedirection:newRequest:completionHandler:`. + + @param block A block object to be executed when an HTTP request is attempting to perform a redirection to a different URL. The block returns the request to be made for the redirection, and takes four arguments: the session, the task, the redirection response, and the request corresponding to the redirection response. + */ +- (void)setTaskWillPerformHTTPRedirectionBlock:(nullable NSURLRequest * _Nullable (^)(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request))block; + +/** + Sets a block to be executed when a session task has received a request specific authentication challenge, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didReceiveChallenge:completionHandler:`. + + @param block A block object to be executed when a session task has received a request specific authentication challenge. The block returns the disposition of the authentication challenge, and takes four arguments: the session, the task, the authentication challenge, and a pointer to the credential that should be used to resolve the challenge. + */ +- (void)setTaskDidReceiveAuthenticationChallengeBlock:(nullable NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLSessionTask *task, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential))block; + +/** + Sets a block to be executed periodically to track upload progress, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:`. + + @param block A block object to be called when an undetermined number of bytes have been uploaded to the server. This block has no return value and takes five arguments: the session, the task, the number of bytes written since the last time the upload progress block was called, the total bytes written, and the total bytes expected to be written during the request, as initially determined by the length of the HTTP body. This block may be called multiple times, and will execute on the main thread. + */ +- (void)setTaskDidSendBodyDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend))block; + +/** + Sets a block to be executed as the last message related to a specific task, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didCompleteWithError:`. + + @param block A block object to be executed when a session task is completed. The block has no return value, and takes three arguments: the session, the task, and any error that occurred in the process of executing the task. + */ +- (void)setTaskDidCompleteBlock:(nullable void (^)(NSURLSession *session, NSURLSessionTask *task, NSError * _Nullable error))block; + +///------------------------------------------- +/// @name Setting Data Task Delegate Callbacks +///------------------------------------------- + +/** + Sets a block to be executed when a data task has received a response, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didReceiveResponse:completionHandler:`. + + @param block A block object to be executed when a data task has received a response. The block returns the disposition of the session response, and takes three arguments: the session, the data task, and the received response. + */ +- (void)setDataTaskDidReceiveResponseBlock:(nullable NSURLSessionResponseDisposition (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLResponse *response))block; + +/** + Sets a block to be executed when a data task has become a download task, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didBecomeDownloadTask:`. + + @param block A block object to be executed when a data task has become a download task. The block has no return value, and takes three arguments: the session, the data task, and the download task it has become. + */ +- (void)setDataTaskDidBecomeDownloadTaskBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLSessionDownloadTask *downloadTask))block; + +/** + Sets a block to be executed when a data task receives data, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didReceiveData:`. + + @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes three arguments: the session, the data task, and the data received. This block may be called multiple times, and will execute on the session manager operation queue. + */ +- (void)setDataTaskDidReceiveDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data))block; + +/** + Sets a block to be executed to determine the caching behavior of a data task, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:willCacheResponse:completionHandler:`. + + @param block A block object to be executed to determine the caching behavior of a data task. The block returns the response to cache, and takes three arguments: the session, the data task, and the proposed cached URL response. + */ +- (void)setDataTaskWillCacheResponseBlock:(nullable NSCachedURLResponse * (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSCachedURLResponse *proposedResponse))block; + +/** + Sets a block to be executed once all messages enqueued for a session have been delivered, as handled by the `NSURLSessionDataDelegate` method `URLSessionDidFinishEventsForBackgroundURLSession:`. + + @param block A block object to be executed once all messages enqueued for a session have been delivered. The block has no return value and takes a single argument: the session. + */ +- (void)setDidFinishEventsForBackgroundURLSessionBlock:(nullable void (^)(NSURLSession *session))block; + +///----------------------------------------------- +/// @name Setting Download Task Delegate Callbacks +///----------------------------------------------- + +/** + Sets a block to be executed when a download task has completed a download, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didFinishDownloadingToURL:`. + + @param block A block object to be executed when a download task has completed. The block returns the URL the download should be moved to, and takes three arguments: the session, the download task, and the temporary location of the downloaded file. If the file manager encounters an error while attempting to move the temporary file to the destination, an `BU_AFURLSessionDownloadTaskDidFailToMoveFileNotification` will be posted, with the download task as its object, and the user info of the error. + */ +- (void)setDownloadTaskDidFinishDownloadingBlock:(nullable NSURL * _Nullable (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location))block; + +/** + Sets a block to be executed periodically to track download progress, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:`. + + @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes five arguments: the session, the download task, the number of bytes read since the last time the download progress block was called, the total bytes read, and the total bytes expected to be read during the request, as initially determined by the expected content size of the `NSHTTPURLResponse` object. This block may be called multiple times, and will execute on the session manager operation queue. + */ +- (void)setDownloadTaskDidWriteDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite))block; + +/** + Sets a block to be executed when a download task has been resumed, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:`. + + @param block A block object to be executed when a download task has been resumed. The block has no return value and takes four arguments: the session, the download task, the file offset of the resumed download, and the total number of bytes expected to be downloaded. + */ +- (void)setDownloadTaskDidResumeBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t fileOffset, int64_t expectedTotalBytes))block; + +@end + +///-------------------- +/// @name Notifications +///-------------------- + +/** + Posted when a task resumes. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidResumeNotification; + +/** + Posted when a task finishes executing. Includes a userInfo dictionary with additional information about the task. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteNotification; + +/** + Posted when a task suspends its execution. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidSuspendNotification; + +/** + Posted when a session is invalidated. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLSessionDidInvalidateNotification; + +/** + Posted when a session download task encountered an error when moving the temporary download file to a specified destination. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLSessionDownloadTaskDidFailToMoveFileNotification; + +/** + The raw response data of the task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if response data exists for the task. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteResponseDataKey; + +/** + The serialized response object of the task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if the response was serialized. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteSerializedResponseKey; + +/** + The response serializer used to serialize the response. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if the task has an associated response serializer. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteResponseSerializerKey; + +/** + The file path associated with the download task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if an the response data has been stored directly to disk. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteAssetPathKey; + +/** + Any error associated with the task, or the serialization of the response. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if an error exists. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteErrorKey; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLSessionManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLSessionManager.h.meta new file mode 100644 index 00000000..0adbada4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/BU_AFURLSessionManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aa096c0ae2cad438384cea0acf9aa45c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/NSString+BURely.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/NSString+BURely.h new file mode 100755 index 00000000..dbe15932 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/NSString+BURely.h @@ -0,0 +1,19 @@ +// +// NSString+BURely.h +// BUFoundation +// +// Created by zth on 2021/12/25. +// + + + +NS_ASSUME_NONNULL_BEGIN + +@interface NSString (BURely) + + ++ (nullable NSURL *)BU_Rely_URLWithURLString:(NSString *)str; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/NSString+BURely.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/NSString+BURely.h.meta new file mode 100644 index 00000000..dd5ed5fc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/A/Headers/NSString+BURely.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b33e7d8b868834a4fb970377c2ca609d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current.meta new file mode 100644 index 00000000..f9656a85 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b33fd2fdd7ee14d59a666e9306d10851 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/BURelyFoundation b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/BURelyFoundation new file mode 100755 index 00000000..213d065d Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/BURelyFoundation differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/BURelyFoundation.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/BURelyFoundation.meta new file mode 100644 index 00000000..e1c444c5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/BURelyFoundation.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fd42ecd6169064d4bb0d5515d22fd73d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers.meta new file mode 100644 index 00000000..1a2580fe --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d2abc6c801d484817abaa0d9fb50c5d7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUBaseRequest.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUBaseRequest.h new file mode 100755 index 00000000..27546f75 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUBaseRequest.h @@ -0,0 +1,147 @@ +// +// BUBaseRequest.h +// BUAdSDK +// +// Created by 李盛 on 2018/4/2. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// HTTP Request method. +typedef NS_ENUM(NSInteger, BURequestMethod) { + BURequestMethodGET = 0, + BURequestMethodPOST, + BURequestMethodHEAD, + BURequestMethodPUT, + BURequestMethodDELETE, + BURequestMethodPATCH, +}; + +/// Request serializer type. +typedef NS_ENUM(NSInteger, BURequestSerializerType) { + BURequestSerializerTypeHTTP = 0, + BURequestSerializerTypeJSON, + BURequestSerializerTypeProtobuf +}; + +/// Response serializer type, which determines response serialization process and +/// the type of `responseObject`. +typedef NS_ENUM(NSInteger, BUResponseSerializerType) { + /// NSData type + BUResponseSerializerTypeHTTP, + /// JSON object type + BUResponseSerializerTypeJSON, + /// Protobuf object type + BUResponseSerializerTypeProtobuf +}; + +/// Request priority +typedef NS_ENUM(NSInteger, BURequestPriority) { + BURequestPriorityLow = -4L, + BURequestPriorityDefault = 0, + BURequestPriorityHigh = 4, +}; + +@protocol BU_AFMultipartFormData; + +typedef void (^BUAFConstructingBlock)(id formData); +typedef void (^BUAFURLSessionTaskProgressBlock)(NSProgress *); + +@class BUBaseRequest; + +typedef void(^BURequestCompletionBlock)(__kindof BUBaseRequest *request); + +@interface BUBaseRequest : NSObject + +/// The underlying NSURLSessionTask. +/// +/// @warning This value is actually nil and should not be accessed before the request starts. +@property (nonatomic, strong) NSURLSessionTask *requestTask; +@property (nonatomic, strong) NSData *responseData; +@property (nonatomic, strong) id responseJSONObject; +@property (nonatomic, strong) id responseObject; +@property (nonatomic, strong) NSString *responseString; +@property (nonatomic, strong) NSError *error; +@property (nonatomic, assign) BURequestMethod requestMethod; +/// For post method, when httpbody can not be Serialized from NSDictionary json. if httpBody exists, please use httpBody directively and ignore 'requestArgument' +@property (nonatomic, strong) NSData *httpBody; + +/// Shortcut for `requestTask.currentRequest`.当前活跃的request +@property (nonatomic, strong, readonly) NSURLRequest *currentRequest; + +/// Shortcut for `requestTask.originalRequest`.在task创建的时候传入的request(有可能会重定向) +@property (nonatomic, strong, readonly) NSURLRequest *originalRequest; + +/// Shortcut for `requestTask.response`. +@property (nonatomic, strong, readonly) NSHTTPURLResponse *response; + +/// The response status code. +@property (nonatomic, readonly) NSInteger responseStatusCode; + +/// The success callback. Note if this value is not nil and `requestFinished` delegate method is +/// also implemented, both will be executed but delegate method is first called. This block +/// will be called on the main queue. +@property (nonatomic, copy, nullable) BURequestCompletionBlock successCompletionBlock; + +/// The failure callback. Note if this value is not nil and `requestFailed` delegate method is +/// also implemented, both will be executed but delegate method is first called. This block +/// will be called on the main queue. +@property (nonatomic, copy, nullable) BURequestCompletionBlock failureCompletionBlock; + +/// Additional HTTP request header field. +- (nullable NSDictionary *)requestHeaderFieldValueDictionary; + +/// Request serializer type. +- (BURequestSerializerType)requestSerializerType; + +/// Response serializer type. See also `responseObject`. +- (BUResponseSerializerType)responseSerializerType; + +/// Request cache policy. +- (NSURLRequestCachePolicy)bu_requestCachePolicy; + +//constructingBodyWithBlock:在此block种可以为上传的参数添加(拼接)新的需要的上传的数据,适用于上传给服务器的数据流比较大的时候 +@property (nonatomic, copy, nullable) BUAFConstructingBlock constructingBodyBlock; + +- (NSString *)requestUrl; +- (NSString *)cdnUrl; +- (NSString *)baseUrl; +- (NSTimeInterval)requestTimeoutInterval; +- (nullable id)requestArgument; +/// Whether the request is allowed to use the cellular radio (if present). Default is YES. +- (BOOL)allowsCellularAccess; +/// Nil out both success and failure callback blocks. +- (void)clearCompletionBlock; + +@property (nonatomic) BURequestPriority requestPriority; + +/// Should use CDN when sending request. +- (BOOL)useCDN; + +#pragma mark - Request Action +///============================================================================= +/// @name Request Action +///============================================================================= + +/// Append self to request queue and start the request. +- (void)start; + +/// Remove self from request queue and cancel the request. +- (void)stop; + +/// Convenience method to start the request with block callbacks. +- (void)startWithCompletionBlockWithSuccess:(nullable BURequestCompletionBlock)success + failure:(nullable BURequestCompletionBlock)failure; + +/// Return cancelled state of request task. +@property (nonatomic, readonly, getter=isCancelled) BOOL cancelled; + +/// Executing state of request task. +@property (nonatomic, readonly, getter=isExecuting) BOOL executing; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUBaseRequest.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUBaseRequest.h.meta new file mode 100644 index 00000000..dfe3dfd5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUBaseRequest.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7922c27ce1b8b4311b96951f788e1b66 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUNetworkAgent.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUNetworkAgent.h new file mode 100755 index 00000000..640e8d7c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUNetworkAgent.h @@ -0,0 +1,58 @@ +// +// BUNetworkAgent.h +// BUAdSDK +// +// Created by 李盛 on 2018/4/2. +// Copyright © 2018年 bytedance. All rights reserved. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, BUSSLPinningMode) { + BU_SSLPinningModeNone, + BU_SSLPinningModePublicKey, + BU_SSLPinningModeCertificate +}; + +typedef NSURLSessionAuthChallengeDisposition (^BUURLSessionDidReceiveAuthenticationChallengeBlock)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential); + +@class BUBaseRequest; + + +@interface BUNetworkAgent : NSObject + +- (instancetype)init; ++ (instancetype)new NS_UNAVAILABLE; + +/// Get the shared agent. ++ (BUNetworkAgent *)sharedAgent; + +/// network is DEBUG ++ (void)openNetWorkDebug; + +/// Add request to session and start it. +- (void)addRequest:(BUBaseRequest *)request; + +/// Cancel a request that was previously added. +- (void)cancelRequest:(BUBaseRequest *)request; + +/// Cancel all requests that were previously added. +- (void)cancelAllRequests; + +/// Return the constructed URL of request. +/// +/// @param request The request to parse. Should not be nil. +/// +/// @return The result URL. +- (NSString *)buildRequestUrl:(BUBaseRequest *)request; + +/// set custom AuthenticationChanllengeBlock, do not set it when using shareAgent, you can use it when using another instance of BUNetworkAgent +- (void)setSessionDidReceiveAuthenticationChanllengeBlock:(BUURLSessionDidReceiveAuthenticationChallengeBlock)challengeBlock; + +- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust + forDomain:(nullable NSString *)domain; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUNetworkAgent.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUNetworkAgent.h.meta new file mode 100644 index 00000000..4d319f54 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BUNetworkAgent.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6c7545f3dd95f43fb9305917a180e494 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BURelyFoundation.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BURelyFoundation.h new file mode 100755 index 00000000..aed0c823 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BURelyFoundation.h @@ -0,0 +1,27 @@ +// +// BURelyFoundation.h +// BURelyFoundation +// +// Created by zth on 2022/1/4. +// + +#ifndef BURelyFoundation_h +#define BURelyFoundation_h + +# pragma mark - NET + +#import +#import + +# pragma mark - AFN + +#import +#import +#import +#import + + + + + +#endif /* BURelyFoundation_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BURelyFoundation.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BURelyFoundation.h.meta new file mode 100644 index 00000000..6bee5979 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BURelyFoundation.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: caefb81223aa44b919fa5678c8e9376b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFAutoPurgingImageCache.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFAutoPurgingImageCache.h new file mode 100755 index 00000000..4a9443a2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFAutoPurgingImageCache.h @@ -0,0 +1,149 @@ +// BU_AFAutoPurgingImageCache.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +#if TARGET_OS_IOS || TARGET_OS_TV +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The `BU_AFImageCache` protocol defines a set of APIs for adding, removing and fetching images from a cache synchronously. + */ +@protocol BU_AFImageCache + +/** + Adds the image to the cache with the given identifier. + + @param image The image to cache. + @param identifier The unique identifier for the image in the cache. + */ +- (void)addImage:(NSData *)image withIdentifier:(NSString *)identifier; + +/** + Removes the image from the cache matching the given identifier. + + @param identifier The unique identifier for the image in the cache. + + @return A BOOL indicating whether or not the image was removed from the cache. + */ +- (BOOL)removeImageWithIdentifier:(NSString *)identifier; + +/** + Removes all images from the cache. + + @return A BOOL indicating whether or not all images were removed from the cache. + */ +- (BOOL)removeAllImages; + +/** + Returns the image in the cache associated with the given identifier. + + @param identifier The unique identifier for the image in the cache. + + @return An image for the matching identifier, or nil. + */ +- (nullable NSData *)imageWithIdentifier:(NSString *)identifier; +@end + + +/** + The `ImageRequestCache` protocol extends the `ImageCache` protocol by adding methods for adding, removing and fetching images from a cache given an `NSURLRequest` and additional identifier. + */ +@protocol BU_AFImageRequestCache + +/** + Adds the image to the cache using an identifier created from the request and additional identifier. + + @param image The image to cache. + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + */ +//- (void)addImage:(NSData *)image forRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +/** + Removes the image from the cache using an identifier created from the request and additional identifier. + + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + + @return A BOOL indicating whether or not all images were removed from the cache. + */ +//- (BOOL)removeImageforRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +/** + Returns the image from the cache associated with an identifier created from the request and additional identifier. + + @param request The unique URL request identifing the image asset. + @param identifier The additional identifier to apply to the URL request to identify the image. + + @return An image for the matching request and identifier, or nil. + */ +//- (nullable NSData *)imageforRequest:(NSURLRequest *)request withAdditionalIdentifier:(nullable NSString *)identifier; + +@end + +/** + The `AutoPurgingImageCache` in an in-memory image cache used to store images up to a given memory capacity. When the memory capacity is reached, the image cache is sorted by last access date, then the oldest image is continuously purged until the preferred memory usage after purge is met. Each time an image is accessed through the cache, the internal access date of the image is updated. + */ +@interface BU_AFAutoPurgingImageCache : NSObject + +/** + The total memory capacity of the cache in bytes. + */ +@property (nonatomic, assign) UInt64 memoryCapacity; + +/** + The preferred memory usage after purge in bytes. During a purge, images will be purged until the memory capacity drops below this limit. + */ +@property (nonatomic, assign) UInt64 preferredMemoryUsageAfterPurge; + +/** + The current total memory usage in bytes of all images stored within the cache. + */ +@property (nonatomic, assign, readonly) UInt64 memoryUsage; + +/** + Initialies the `AutoPurgingImageCache` instance with default values for memory capacity and preferred memory usage after purge limit. `memoryCapcity` defaults to `100 MB`. `preferredMemoryUsageAfterPurge` defaults to `60 MB`. + + @return The new `AutoPurgingImageCache` instance. + */ +- (instancetype)init; + +/** + Initialies the `AutoPurgingImageCache` instance with the given memory capacity and preferred memory usage + after purge limit. + + @param memoryCapacity The total memory capacity of the cache in bytes. + @param preferredMemoryCapacity The preferred memory usage after purge in bytes. + + @return The new `AutoPurgingImageCache` instance. + */ +- (instancetype)initWithMemoryCapacity:(UInt64)memoryCapacity preferredMemoryCapacity:(UInt64)preferredMemoryCapacity; + +@end + +NS_ASSUME_NONNULL_END + +#endif + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFAutoPurgingImageCache.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFAutoPurgingImageCache.h.meta new file mode 100644 index 00000000..a66823ea --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFAutoPurgingImageCache.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7b98d598cbb52468b836cd5d91ebaadc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFHTTPSessionManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFHTTPSessionManager.h new file mode 100755 index 00000000..85f69ebb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFHTTPSessionManager.h @@ -0,0 +1,245 @@ +// BU_AFHTTPSessionManager.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#if !TARGET_OS_WATCH +#import +#endif +#import + +#if TARGET_OS_IOS || TARGET_OS_WATCH || TARGET_OS_TV +#import +#else +#import +#endif + +#import "BU_AFURLSessionManager.h" + +/** + `BU_AFHTTPSessionManager` is a subclass of `BU_AFURLSessionManager` with convenience methods for making HTTP requests. When a `baseURL` is provided, requests made with the `GET` / `POST` / et al. convenience methods can be made with relative paths. + + ## Subclassing Notes + + Developers targeting iOS 7 or Mac OS X 10.9 or later that deal extensively with a web service are encouraged to subclass `BU_AFHTTPSessionManager`, providing a class method that returns a shared singleton object on which authentication and other configuration can be shared across the application. + + For developers targeting iOS 6 or Mac OS X 10.8 or earlier, `AFHTTPRequestOperationManager` may be used to similar effect. + + ## Methods to Override + + To change the behavior of all data task operation construction, which is also used in the `GET` / `POST` / et al. convenience methods, override `dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:`. + + ## Serialization + + Requests created by an HTTP client will contain default headers and encode parameters according to the `requestSerializer` property, which is an object conforming to ``. + + Responses received from the server are automatically validated and serialized by the `responseSerializers` property, which is an object conforming to `` + + ## URL Construction Using Relative Paths + + For HTTP convenience methods, the request serializer constructs URLs from the path relative to the `-baseURL`, using `NSURL +URLWithString:relativeToURL:`, when provided. If `baseURL` is `nil`, `path` needs to resolve to a valid `NSURL` object using `NSURL +URLWithString:`. + + Below are a few examples of how `baseURL` and relative paths interact: + + NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"]; + [NSURL URLWithString:@"foo" relativeToURL:baseURL]; // http://example.com/v1/foo + [NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL]; // http://example.com/v1/foo?bar=baz + [NSURL URLWithString:@"/foo" relativeToURL:baseURL]; // http://example.com/foo + [NSURL URLWithString:@"foo/" relativeToURL:baseURL]; // http://example.com/v1/foo + [NSURL URLWithString:@"/foo/" relativeToURL:baseURL]; // http://example.com/foo/ + [NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; // http://example2.com/ + + Also important to note is that a trailing slash will be added to any `baseURL` without one. This would otherwise cause unexpected behavior when constructing URLs using paths without a leading slash. + + @warning Managers for background sessions must be owned for the duration of their use. This can be accomplished by creating an application-wide or shared singleton instance. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFHTTPSessionManager : BU_AFURLSessionManager + +/** + The URL used to construct requests from relative paths in methods like `requestWithMethod:URLString:parameters:`, and the `GET` / `POST` / et al. convenience methods. + */ +@property (readonly, nonatomic, strong, nullable) NSURL *baseURL; + +/** + Requests created with `requestWithMethod:URLString:parameters:` & `multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:` are constructed with a set of default headers using a parameter serialization specified by this property. By default, this is set to an instance of `BU_AFHTTPRequestSerializer`, which serializes query string parameters for `GET`, `HEAD`, and `DELETE` requests, or otherwise URL-form-encodes HTTP message bodies. + + @warning `requestSerializer` must not be `nil`. + */ +@property (nonatomic, strong) BU_AFHTTPRequestSerializer * requestSerializer; + +/** + Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an instance of `BU_AFJSONResponseSerializer`. + + @warning `responseSerializer` must not be `nil`. + */ +@property (nonatomic, strong) BU_AFHTTPResponseSerializer * responseSerializer; + +///------------------------------- +/// @name Managing Security Policy +///------------------------------- + +/** + The security policy used by created session to evaluate server trust for secure connections. `BU_AFURLSessionManager` uses the `defaultPolicy` unless otherwise specified. A security policy configured with `BU_AFSSLPinningModePublicKey` or `BU_AFSSLPinningModeCertificate` can only be applied on a session manager initialized with a secure base URL (i.e. https). Applying a security policy with pinning enabled on an insecure session manager throws an `Invalid Security Policy` exception. + */ +@property (nonatomic, strong) BU_AFSecurityPolicy *securityPolicy; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns an `BU_AFHTTPSessionManager` object. + */ ++ (instancetype)manager; + +/** + Initializes an `BU_AFHTTPSessionManager` object with the specified base URL. + + @param url The base URL for the HTTP client. + + @return The newly-initialized HTTP client + */ +- (instancetype)initWithBaseURL:(nullable NSURL *)url; + +/** + Initializes an `BU_AFHTTPSessionManager` object with the specified base URL. + + This is the designated initializer. + + @param url The base URL for the HTTP client. + @param configuration The configuration used to create the managed session. + + @return The newly-initialized HTTP client + */ +- (instancetype)initWithBaseURL:(nullable NSURL *)url + sessionConfiguration:(nullable NSURLSessionConfiguration *)configuration NS_DESIGNATED_INITIALIZER; + +///--------------------------- +/// @name Making HTTP Requests +///--------------------------- + +/** + Creates and runs an `NSURLSessionDataTask` with a `GET` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString + parameters:(nullable id)parameters + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + + +/** + Creates and runs an `NSURLSessionDataTask` with a `GET` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param downloadProgress A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString + parameters:(nullable id)parameters + progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgress + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + + +/** + Creates and runs an `NSURLSessionDataTask` with a `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString + parameters:(nullable id)parameters + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + +/** + Creates and runs an `NSURLSessionDataTask` with a `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param uploadProgress A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString + parameters:(nullable id)parameters + progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress + success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success + failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + +/** + Creates and runs an `NSURLSessionDataTask` with a multipart `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:completionHandler: + */ +//- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString +// parameters:(nullable id)parameters +// constructingBodyWithBlock:(nullable void (^)(id formData))block +// success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success +// failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE; + +/** + Creates and runs an `NSURLSessionDataTask` with a multipart `POST` request. + + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded according to the client request serializer. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param uploadProgress A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. + @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. + + @see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: + */ +//- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString +// parameters:(nullable id)parameters +// constructingBodyWithBlock:(nullable void (^)(id formData))block +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress +// success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success +// failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFHTTPSessionManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFHTTPSessionManager.h.meta new file mode 100644 index 00000000..35aa5319 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFHTTPSessionManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c9aed3d1cabc84fd5b7fd3fa8b68a9f4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFSecurityPolicy.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFSecurityPolicy.h new file mode 100755 index 00000000..1d04300c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFSecurityPolicy.h @@ -0,0 +1,154 @@ +// BU_AFSecurityPolicy.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +typedef NS_ENUM(NSUInteger, BU_AFSSLPinningMode) { + BU_AFSSLPinningModeNone, + BU_AFSSLPinningModePublicKey, + BU_AFSSLPinningModeCertificate, +}; + +/** + `BU_AFSecurityPolicy` evaluates server trust against pinned X.509 certificates and public keys over secure connections. + + Adding pinned SSL certificates to your app helps prevent man-in-the-middle attacks and other vulnerabilities. Applications dealing with sensitive customer data or financial information are strongly encouraged to route all communication over an HTTPS connection with SSL pinning configured and enabled. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFSecurityPolicy : NSObject + +/** + The criteria by which server trust should be evaluated against the pinned SSL certificates. Defaults to `BU_AFSSLPinningModeNone`. + */ +@property (readonly, nonatomic, assign) BU_AFSSLPinningMode SSLPinningMode; + +/** + The certificates used to evaluate server trust according to the SSL pinning mode. + + By default, this property is set to any (`.cer`) certificates included in the target compiling BU_AFNetworking. Note that if you are using BU_AFNetworking as embedded framework, no certificates will be pinned by default. Use `certificatesInBundle` to load certificates from your target, and then create a new policy by calling `policyWithPinningMode:withPinnedCertificates`. + + Note that if pinning is enabled, `evaluateServerTrust:forDomain:` will return true if any pinned certificate matches. + */ +@property (nonatomic, strong, nullable) NSSet *pinnedCertificates; + +/** + Whether or not to trust servers with an invalid or expired SSL certificates. Defaults to `NO`. + */ +@property (nonatomic, assign) BOOL allowInvalidCertificates; + +/** + Whether or not to validate the domain name in the certificate's CN field. Defaults to `YES`. + */ +@property (nonatomic, assign) BOOL validatesDomainName; + +///----------------------------------------- +/// @name Getting Certificates from the Bundle +///----------------------------------------- + +/** + Returns any certificates included in the bundle. If you are using BU_AFNetworking as an embedded framework, you must use this method to find the certificates you have included in your app bundle, and use them when creating your security policy by calling `policyWithPinningMode:withPinnedCertificates`. + + @return The certificates included in the given bundle. + */ ++ (NSSet *)certificatesInBundle:(NSBundle *)bundle; + +///----------------------------------------- +/// @name Getting Specific Security Policies +///----------------------------------------- + +/** + Returns the shared default security policy, which does not allow invalid certificates, validates domain name, and does not validate against pinned certificates or public keys. + + @return The default security policy. + */ ++ (instancetype)defaultPolicy; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns a security policy with the specified pinning mode. + + @param pinningMode The SSL pinning mode. + + @return A new security policy. + */ +//+ (instancetype)policyWithPinningMode:(BU_AFSSLPinningMode)pinningMode; + +/** + Creates and returns a security policy with the specified pinning mode. + + @param pinningMode The SSL pinning mode. + @param pinnedCertificates The certificates to pin against. + + @return A new security policy. + */ +//+ (instancetype)policyWithPinningMode:(BU_AFSSLPinningMode)pinningMode withPinnedCertificates:(NSSet *)pinnedCertificates; + +///------------------------------ +/// @name Evaluating Server Trust +///------------------------------ + +/** + Whether or not the specified server trust should be accepted, based on the security policy. + + This method should be used when responding to an authentication challenge from a server. + + @param serverTrust The X.509 certificate trust of the server. + @param domain The domain of serverTrust. If `nil`, the domain will not be validated. + + @return Whether or not to trust the server. + */ +- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust + forDomain:(nullable NSString *)domain; + +@end + +NS_ASSUME_NONNULL_END + +///---------------- +/// @name Constants +///---------------- + +/** + ## SSL Pinning Modes + + The following constants are provided by `BU_AFSSLPinningMode` as possible SSL pinning modes. + + enum { + BU_AFSSLPinningModeNone, + BU_AFSSLPinningModePublicKey, + BU_AFSSLPinningModeCertificate, + } + + `BU_AFSSLPinningModeNone` + Do not used pinned certificates to validate servers. + + `BU_AFSSLPinningModePublicKey` + Validate host certificates against public keys of pinned certificates. + + `BU_AFSSLPinningModeCertificate` + Validate host certificates against pinned certificates. +*/ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFSecurityPolicy.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFSecurityPolicy.h.meta new file mode 100644 index 00000000..048a98a6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFSecurityPolicy.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 49602f20c7ba747c5a2d87a1e3af2dba +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLRequestSerialization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLRequestSerialization.h new file mode 100755 index 00000000..bb4696ab --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLRequestSerialization.h @@ -0,0 +1,450 @@ +// BU_AFURLRequestSerialization.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +#if TARGET_OS_IOS || TARGET_OS_TV +#import +#elif TARGET_OS_WATCH +#import +#endif + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a percent-escaped string following RFC 3986 for a query string key or value. + RFC 3986 states that the following characters are "reserved" characters. + - General Delimiters: ":", "#", "[", "]", "@", "?", "/" + - Sub-Delimiters: "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "=" + + In RFC 3986 - Section 3.4, it states that the "?" and "/" characters should not be escaped to allow + query strings to include a URL. Therefore, all "reserved" characters with the exception of "?" and "/" + should be percent-escaped in the query string. + + @param string The string to be percent-escaped. + + @return The percent-escaped string. + */ +FOUNDATION_EXPORT NSString * BU_AFPercentEscapedStringFromString(NSString *string); + +/** + A helper method to generate encoded url query parameters for appending to the end of a URL. + + @param parameters A dictionary of key/values to be encoded. + + @return A url encoded query string + */ +FOUNDATION_EXPORT NSString * BU_AFQueryStringFromParameters(NSDictionary *parameters); + +/** + The `BU_AFURLRequestSerialization` protocol is adopted by an object that encodes parameters for a specified HTTP requests. Request serializers may encode parameters as query strings, HTTP bodies, setting the appropriate HTTP header fields as necessary. + + For example, a JSON request serializer may set the HTTP body of the request to a JSON representation, and set the `Content-Type` HTTP header field value to `application/json`. + */ +@protocol BU_AFURLRequestSerialization + +/** + Returns a request with the specified parameters encoded into a copy of the original request. + + @param request The original request. + @param parameters The parameters to be encoded. + @param error The error that occurred while attempting to encode the request parameters. + + @return A serialized request. + */ +- (nullable NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request + withParameters:(nullable id)parameters + error:(NSError * _Nullable __autoreleasing *)error NS_SWIFT_NOTHROW; + +@end + +#pragma mark - + +/** + + */ +typedef NS_ENUM(NSUInteger, BU_AFHTTPRequestQueryStringSerializationStyle) { + BU_AFHTTPRequestQueryStringDefaultStyle = 0, +}; + +@protocol BU_AFMultipartFormData; + +/** + `BU_AFHTTPRequestSerializer` conforms to the `BU_AFURLRequestSerialization` & `BU_AFURLResponseSerialization` protocols, offering a concrete base implementation of query string / URL form-encoded parameter serialization and default request headers, as well as response status code and content type validation. + + Any request or response serializer dealing with HTTP is encouraged to subclass `BU_AFHTTPRequestSerializer` in order to ensure consistent default behavior. + */ +@interface BU_AFHTTPRequestSerializer : NSObject + +/** + The string encoding used to serialize parameters. `NSUTF8StringEncoding` by default. + */ +@property (nonatomic, assign) NSStringEncoding stringEncoding; + +/** + Whether created requests can use the device’s cellular radio (if present). `YES` by default. + + @see NSMutableURLRequest -setAllowsCellularAccess: + */ +@property (nonatomic, assign) BOOL allowsCellularAccess; + +/** + The cache policy of created requests. `NSURLRequestUseProtocolCachePolicy` by default. + + @see NSMutableURLRequest -setCachePolicy: + */ +@property (nonatomic, assign) NSURLRequestCachePolicy cachePolicy; + +/** + Whether created requests should use the default cookie handling. `YES` by default. + + @see NSMutableURLRequest -setHTTPShouldHandleCookies: + */ +@property (nonatomic, assign) BOOL HTTPShouldHandleCookies; + +/** + Whether created requests can continue transmitting data before receiving a response from an earlier transmission. `NO` by default + + @see NSMutableURLRequest -setHTTPShouldUsePipelining: + */ +@property (nonatomic, assign) BOOL HTTPShouldUsePipelining; + +/** + The network service type for created requests. `NSURLNetworkServiceTypeDefault` by default. + + @see NSMutableURLRequest -setNetworkServiceType: + */ +@property (nonatomic, assign) NSURLRequestNetworkServiceType networkServiceType; + +/** + The timeout interval, in seconds, for created requests. The default timeout interval is 60 seconds. + + @see NSMutableURLRequest -setTimeoutInterval: + */ +@property (nonatomic, assign) NSTimeInterval timeoutInterval; + +///--------------------------------------- +/// @name Configuring HTTP Request Headers +///--------------------------------------- + +/** + Default HTTP header field values to be applied to serialized requests. By default, these include the following: + + - `Accept-Language` with the contents of `NSLocale +preferredLanguages` + - `User-Agent` with the contents of various bundle identifiers and OS designations + + @discussion To add or remove default request headers, use `setValue:forHTTPHeaderField:`. + */ +@property (readonly, nonatomic, strong) NSDictionary *HTTPRequestHeaders; + +/** + Creates and returns a serializer with default configuration. + */ ++ (instancetype)serializer; + +/** + Sets the value for the HTTP headers set in request objects made by the HTTP client. If `nil`, removes the existing value for that header. + + @param field The HTTP header to set a default value for + @param value The value set as default for the specified header, or `nil` + */ +- (void)setValue:(nullable NSString *)value +forHTTPHeaderField:(NSString *)field; + +/** + Returns the value for the HTTP headers set in the request serializer. + + @param field The HTTP header to retrieve the default value for + + @return The value set as default for the specified header, or `nil` + */ +- (nullable NSString *)valueForHTTPHeaderField:(NSString *)field; + +/** + Sets the "Authorization" HTTP header set in request objects made by the HTTP client to a basic authentication value with Base64-encoded username and password. This overwrites any existing value for this header. + + @param username The HTTP basic auth username + @param password The HTTP basic auth password + */ +//- (void)setAuthorizationHeaderFieldWithUsername:(NSString *)username +// password:(NSString *)password; + +/** + Clears any existing value for the "Authorization" HTTP header. + */ +//- (void)clearAuthorizationHeader; + +///------------------------------------------------------- +/// @name Configuring Query String Parameter Serialization +///------------------------------------------------------- + +/** + HTTP methods for which serialized requests will encode parameters as a query string. `GET`, `HEAD`, and `DELETE` by default. + */ +@property (nonatomic, strong) NSSet *HTTPMethodsEncodingParametersInURI; + +/** + Set the method of query string serialization according to one of the pre-defined styles. + + @param style The serialization style. + + @see BU_AFHTTPRequestQueryStringSerializationStyle + */ +- (void)setQueryStringSerializationWithStyle:(BU_AFHTTPRequestQueryStringSerializationStyle)style; + +/** + Set the a custom method of query string serialization according to the specified block. + + @param block A block that defines a process of encoding parameters into a query string. This block returns the query string and takes three arguments: the request, the parameters to encode, and the error that occurred when attempting to encode parameters for the given request. + */ +- (void)setQueryStringSerializationWithBlock:(nullable NSString * (^)(NSURLRequest *request, id parameters, NSError * __autoreleasing *error))block; + +///------------------------------- +/// @name Creating Request Objects +///------------------------------- + +/** + Creates an `NSMutableURLRequest` object with the specified HTTP method and URL string. + + If the HTTP method is `GET`, `HEAD`, or `DELETE`, the parameters will be used to construct a url-encoded query string that is appended to the request's URL. Otherwise, the parameters will be encoded according to the value of the `parameterEncoding` property, and set as the request body. + + @param method The HTTP method for the request, such as `GET`, `POST`, `PUT`, or `DELETE`. This parameter must not be `nil`. + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be either set as a query string for `GET` requests, or the request HTTP body. + @param error The error that occurred while constructing the request. + + @return An `NSMutableURLRequest` object. + */ +- (NSMutableURLRequest *)requestWithMethod:(NSString *)method + URLString:(NSString *)URLString + parameters:(nullable id)parameters + error:(NSError * _Nullable __autoreleasing *)error; + +/** + Creates an `NSMutableURLRequest` object with the specified HTTP method and URLString, and constructs a `multipart/form-data` HTTP body, using the specified parameters and multipart form data block. See http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2 + + Multipart form requests are automatically streamed, reading files directly from disk along with in-memory data in a single HTTP body. The resulting `NSMutableURLRequest` object has an `HTTPBodyStream` property, so refrain from setting `HTTPBodyStream` or `HTTPBody` on this request object, as it will clear out the multipart form body stream. + + @param method The HTTP method for the request. This parameter must not be `GET` or `HEAD`, or `nil`. + @param URLString The URL string used to create the request URL. + @param parameters The parameters to be encoded and set in the request HTTP body. + @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `BU_AFMultipartFormData` protocol. + @param error The error that occurred while constructing the request. + + @return An `NSMutableURLRequest` object + */ +- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method + URLString:(NSString *)URLString + parameters:(nullable NSDictionary *)parameters + constructingBodyWithBlock:(nullable void (^)(id formData))block + error:(NSError * _Nullable __autoreleasing *)error; + +/** + Creates an `NSMutableURLRequest` by removing the `HTTPBodyStream` from a request, and asynchronously writing its contents into the specified file, invoking the completion handler when finished. + + @param request The multipart form request. The `HTTPBodyStream` property of `request` must not be `nil`. + @param fileURL The file URL to write multipart form contents to. + @param handler A handler block to execute. + + @discussion There is a bug in `NSURLSessionTask` that causes requests to not send a `Content-Length` header when streaming contents from an HTTP body, which is notably problematic when interacting with the Amazon S3 webservice. As a workaround, this method takes a request constructed with `multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:`, or any other request with an `HTTPBodyStream`, writes the contents to the specified file and returns a copy of the original request with the `HTTPBodyStream` property set to `nil`. From here, the file can either be passed to `BU_AFURLSessionManager -uploadTaskWithRequest:fromFile:progress:completionHandler:`, or have its contents read into an `NSData` that's assigned to the `HTTPBody` property of the request. + + @see https://github.com/BU_AFNetworking/BU_AFNetworking/issues/1398 + */ +//- (NSMutableURLRequest *)requestWithMultipartFormRequest:(NSURLRequest *)request +// writingStreamContentsToFile:(NSURL *)fileURL +// completionHandler:(nullable void (^)(NSError * _Nullable error))handler; + +@end + +#pragma mark - + +/** + The `BU_AFMultipartFormData` protocol defines the methods supported by the parameter in the block argument of `BU_AFHTTPRequestSerializer -multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:`. + */ +@protocol BU_AFMultipartFormData + +/** + Appends the HTTP header `Content-Disposition: file; filename=#{generated filename}; name=#{name}"` and `Content-Type: #{generated mimeType}`, followed by the encoded file data and the multipart form boundary. + + The filename and MIME type for this data in the form will be automatically generated, using the last path component of the `fileURL` and system associated MIME type for the `fileURL` extension, respectively. + + @param fileURL The URL corresponding to the file whose content will be appended to the form. This parameter must not be `nil`. + @param name The name to be associated with the specified data. This parameter must not be `nil`. + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. + + @return `YES` if the file data was successfully appended, otherwise `NO`. + */ +//- (BOOL)appendPartWithFileURL:(NSURL *)fileURL +// name:(NSString *)name +// error:(NSError * _Nullable __autoreleasing *)error; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary. +// +// @param fileURL The URL corresponding to the file whose content will be appended to the form. This parameter must not be `nil`. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// @param fileName The file name to be used in the `Content-Disposition` header. This parameter must not be `nil`. +// @param mimeType The declared MIME type of the file data. This parameter must not be `nil`. +// @param error If an error occurs, upon return contains an `NSError` object that describes the problem. +// +// @return `YES` if the file data was successfully appended otherwise `NO`. +// */ +//- (BOOL)appendPartWithFileURL:(NSURL *)fileURL +// name:(NSString *)name +// fileName:(NSString *)fileName +// mimeType:(NSString *)mimeType +// error:(NSError * _Nullable __autoreleasing *)error; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the data from the input stream and the multipart form boundary. +// +// @param inputStream The input stream to be appended to the form data +// @param name The name to be associated with the specified input stream. This parameter must not be `nil`. +// @param fileName The filename to be associated with the specified input stream. This parameter must not be `nil`. +// @param length The length of the specified input stream in bytes. +// @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`. +// */ +//- (void)appendPartWithInputStream:(nullable NSInputStream *)inputStream +// name:(NSString *)name +// fileName:(NSString *)fileName +// length:(int64_t)length +// mimeType:(NSString *)mimeType; +// +///** +// Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary. +// +// @param data The data to be encoded and appended to the form data. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// @param fileName The filename to be associated with the specified data. This parameter must not be `nil`. +// @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`. +// */ +//- (void)appendPartWithFileData:(NSData *)data +// name:(NSString *)name +// fileName:(NSString *)fileName +// mimeType:(NSString *)mimeType; +// +///** +// Appends the HTTP headers `Content-Disposition: form-data; name=#{name}"`, followed by the encoded data and the multipart form boundary. +// +// @param data The data to be encoded and appended to the form data. +// @param name The name to be associated with the specified data. This parameter must not be `nil`. +// */ +// +- (void)appendPartWithFormData:(NSData *)data + name:(NSString *)name; +// +// +///** +// Appends HTTP headers, followed by the encoded data and the multipart form boundary. +// +// @param headers The HTTP headers to be appended to the form data. +// @param body The data to be encoded and appended to the form data. This parameter must not be `nil`. +// */ +- (void)appendPartWithHeaders:(nullable NSDictionary *)headers + body:(NSData *)body; +// +///** +// Throttles request bandwidth by limiting the packet size and adding a delay for each chunk read from the upload stream. +// +// When uploading over a 3G or EDGE connection, requests may fail with "request body stream exhausted". Setting a maximum packet size and delay according to the recommended values (`kBU_AFUploadStream3GSuggestedPacketSize` and `kBU_AFUploadStream3GSuggestedDelay`) lowers the risk of the input stream exceeding its allocated bandwidth. Unfortunately, there is no definite way to distinguish between a 3G, EDGE, or LTE connection over `NSURLConnection`. As such, it is not recommended that you throttle bandwidth based solely on network reachability. Instead, you should consider checking for the "request body stream exhausted" in a failure block, and then retrying the request with throttled bandwidth. +// +// @param numberOfBytes Maximum packet size, in number of bytes. The default packet size for an input stream is 16kb. +// @param delay Duration of delay each time a packet is read. By default, no delay is set. +// */ +//- (void)throttleBandwidthWithPacketSize:(NSUInteger)numberOfBytes +// delay:(NSTimeInterval)delay; + +@end + +#pragma mark - + +/** + `BU_AFJSONRequestSerializer` is a subclass of `BU_AFHTTPRequestSerializer` that encodes parameters as JSON using `NSJSONSerialization`, setting the `Content-Type` of the encoded request to `application/json`. + */ +@interface BU_AFJSONRequestSerializer : BU_AFHTTPRequestSerializer + +/** + Options for writing the request JSON data from Foundation objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONWritingOptions". `0` by default. + */ +@property (nonatomic, assign) NSJSONWritingOptions writingOptions; + +/** + Creates and returns a JSON serializer with specified reading and writing options. + + @param writingOptions The specified JSON writing options. + */ ++ (instancetype)serializerWithWritingOptions:(NSJSONWritingOptions)writingOptions; + +@end + + +#pragma mark - + +///---------------- +/// @name Constants +///---------------- + +/** + ## Error Domains + + The following error domain is predefined. + + - `NSString * const BU_AFURLRequestSerializationErrorDomain` + + ### Constants + + `BU_AFURLRequestSerializationErrorDomain` + AFURLRequestSerializer errors. Error codes for `BU_AFURLRequestSerializationErrorDomain` correspond to codes in `NSURLErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLRequestSerializationErrorDomain; + +/** + ## User info dictionary keys + + These keys may exist in the user info dictionary, in addition to those defined for NSError. + + - `NSString * const BU_AFNetworkingOperationFailingURLRequestErrorKey` + + ### Constants + + `BU_AFNetworkingOperationFailingURLRequestErrorKey` + The corresponding value is an `NSURLRequest` containing the request of the operation associated with an error. This key is only present in the `BU_AFURLRequestSerializationErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLRequestErrorKey; + +/** + ## Throttling Bandwidth for HTTP Request Input Streams + + @see -throttleBandwidthWithPacketSize:delay: + + ### Constants + + `kBU_AFUploadStream3GSuggestedPacketSize` + Maximum packet size, in number of bytes. Equal to 16kb. + + `kBU_AFUploadStream3GSuggestedDelay` + Duration of delay each time a packet is read. Equal to 0.2 seconds. + */ +FOUNDATION_EXPORT NSUInteger const kBU_AFUploadStream3GSuggestedPacketSize; +FOUNDATION_EXPORT NSTimeInterval const kBU_AFUploadStream3GSuggestedDelay; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLRequestSerialization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLRequestSerialization.h.meta new file mode 100644 index 00000000..3860e54d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLRequestSerialization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3fe504168e7274572b10c72b29bd1571 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLResponseSerialization.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLResponseSerialization.h new file mode 100755 index 00000000..d0598c28 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLResponseSerialization.h @@ -0,0 +1,225 @@ +// BU_AFURLResponseSerialization.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The `BU_AFURLResponseSerialization` protocol is adopted by an object that decodes data into a more useful object representation, according to details in the server response. Response serializers may additionally perform validation on the incoming response and data. + + For example, a JSON response serializer may check for an acceptable status code (`2XX` range) and content type (`application/json`), decoding a valid JSON response into an object. + */ +@protocol BU_AFURLResponseSerialization + +/** + The response object decoded from the data associated with a specified response. + + @param response The response to be processed. + @param data The response data to be decoded. + @param error The error that occurred while attempting to decode the response data. + + @return The object decoded from the specified response data. + */ +- (nullable id)responseObjectForResponse:(nullable NSURLResponse *)response + data:(nullable NSData *)data + error:(NSError * _Nullable __autoreleasing *)error NS_SWIFT_NOTHROW; + +@end + +#pragma mark - + +/** + `BU_AFHTTPResponseSerializer` conforms to the `BU_AFURLRequestSerialization` & `BU_AFURLResponseSerialization` protocols, offering a concrete base implementation of query string / URL form-encoded parameter serialization and default request headers, as well as response status code and content type validation. + + Any request or response serializer dealing with HTTP is encouraged to subclass `BU_AFHTTPResponseSerializer` in order to ensure consistent default behavior. + */ +@interface BU_AFHTTPResponseSerializer : NSObject + +- (instancetype)init; +/** + Creates and returns a serializer with default configuration. + */ ++ (instancetype)serializer; + +///----------------------------------------- +/// @name Configuring Response Serialization +///----------------------------------------- + +/** + The acceptable HTTP status codes for responses. When non-`nil`, responses with status codes not contained by the set will result in an error during validation. + + See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html + */ +@property (nonatomic, copy, nullable) NSIndexSet *acceptableStatusCodes; + +/** + The acceptable MIME types for responses. When non-`nil`, responses with a `Content-Type` with MIME types that do not intersect with the set will result in an error during validation. + */ +@property (nonatomic, copy, nullable) NSSet *acceptableContentTypes; + +/** + Validates the specified response and data. + + In its base implementation, this method checks for an acceptable status code and content type. Subclasses may wish to add other domain-specific checks. + + @param response The response to be validated. + @param data The data associated with the response. + @param error The error that occurred while attempting to validate the response. + + @return `YES` if the response is valid, otherwise `NO`. + */ +- (BOOL)validateResponse:(nullable NSHTTPURLResponse *)response + data:(nullable NSData *)data + error:(NSError * _Nullable __autoreleasing *)error; + +@end + +#pragma mark - + + +/** + `BU_AFJSONResponseSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that validates and decodes JSON responses. + + By default, `BU_AFJSONResponseSerializer` accepts the following MIME types, which includes the official standard, `application/json`, as well as other commonly-used types: + + - `application/json` + - `text/json` + - `text/javascript` + */ +@interface BU_AFJSONResponseSerializer : BU_AFHTTPResponseSerializer + +- (instancetype)init; + +/** + Options for reading the response JSON data and creating the Foundation objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONReadingOptions". `0` by default. + */ +@property (nonatomic, assign) NSJSONReadingOptions readingOptions; + +/** + Whether to remove keys with `NSNull` values from response JSON. Defaults to `NO`. + */ +@property (nonatomic, assign) BOOL removesKeysWithNullValues; + +/** + Creates and returns a JSON serializer with specified reading and writing options. + + @param readingOptions The specified JSON reading options. + */ ++ (instancetype)serializerWithReadingOptions:(NSJSONReadingOptions)readingOptions; + +@end + +#pragma mark - + +/** + `BU_AFImageResponseSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that validates and decodes image responses. + + By default, `BU_AFImageResponseSerializer` accepts the following MIME types, which correspond to the image formats supported by UIImage or NSImage: + + - `image/tiff` + - `image/jpeg` + - `image/gif` + - `image/png` + - `image/ico` + - `image/x-icon` + - `image/bmp` + - `image/x-bmp` + - `image/x-xbitmap` + - `image/x-win-bitmap` + */ +@interface BU_AFImageResponseSerializer : BU_AFHTTPResponseSerializer + +#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH +/** + The scale factor used when interpreting the image data to construct `responseImage`. Specifying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the size property. This is set to the value of scale of the main screen by default, which automatically scales images for retina displays, for instance. + */ +@property (nonatomic, assign) CGFloat imageScale; + +/** + Whether to automatically inflate response image data for compressed formats (such as PNG or JPEG). Enabling this can significantly improve drawing performance on iOS when used with `setCompletionBlockWithSuccess:failure:`, as it allows a bitmap representation to be constructed in the background rather than on the main thread. `YES` by default. + */ +@property (nonatomic, assign) BOOL automaticallyInflatesResponseImage; +#endif + +@end + +#pragma mark - + +/** + `AFCompoundSerializer` is a subclass of `BU_AFHTTPResponseSerializer` that delegates the response serialization to the first `BU_AFHTTPResponseSerializer` object that returns an object for `responseObjectForResponse:data:error:`, falling back on the default behavior of `BU_AFHTTPResponseSerializer`. This is useful for supporting multiple potential types and structures of server responses with a single serializer. + */ +@interface BU_AFCompoundResponseSerializer : BU_AFHTTPResponseSerializer + +/** + The component response serializers. + */ +@property (readonly, nonatomic, copy) NSArray > *responseSerializers; + +/** + Creates and returns a compound serializer comprised of the specified response serializers. + + @warning Each response serializer specified must be a subclass of `BU_AFHTTPResponseSerializer`, and response to `-validateResponse:data:error:`. + */ ++ (instancetype)compoundSerializerWithResponseSerializers:(NSArray > *)responseSerializers; + +@end + +///---------------- +/// @name Constants +///---------------- + +/** + ## Error Domains + + The following error domain is predefined. + + - `NSString * const BU_AFURLResponseSerializationErrorDomain` + + ### Constants + + `BU_AFURLResponseSerializationErrorDomain` + AFURLResponseSerializer errors. Error codes for `BU_AFURLResponseSerializationErrorDomain` correspond to codes in `NSURLErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLResponseSerializationErrorDomain; + +/** + ## User info dictionary keys + + These keys may exist in the user info dictionary, in addition to those defined for NSError. + + - `NSString * const BU_AFNetworkingOperationFailingURLResponseErrorKey` + - `NSString * const BU_AFNetworkingOperationFailingURLResponseDataErrorKey` + + ### Constants + + `BU_AFNetworkingOperationFailingURLResponseErrorKey` + The corresponding value is an `NSURLResponse` containing the response of the operation associated with an error. This key is only present in the `BU_AFURLResponseSerializationErrorDomain`. + + `BU_AFNetworkingOperationFailingURLResponseDataErrorKey` + The corresponding value is an `NSData` containing the original data of the operation associated with an error. This key is only present in the `BU_AFURLResponseSerializationErrorDomain`. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLResponseErrorKey; + +FOUNDATION_EXPORT NSString * const BU_AFNetworkingOperationFailingURLResponseDataErrorKey; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLResponseSerialization.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLResponseSerialization.h.meta new file mode 100644 index 00000000..5a918357 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLResponseSerialization.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 129cd960a47214037ad95575d38b774e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLSessionManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLSessionManager.h new file mode 100755 index 00000000..2aeec31b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLSessionManager.h @@ -0,0 +1,486 @@ +// BU_AFURLSessionManager.h +// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +#import + +#import "BU_AFURLResponseSerialization.h" +#import "BU_AFURLRequestSerialization.h" +#import "BU_AFSecurityPolicy.h" + +/** + `BU_AFURLSessionManager` creates and manages an `NSURLSession` object based on a specified `NSURLSessionConfiguration` object, which conforms to ``, ``, ``, and ``. + + ## Subclassing Notes + + This is the base class for `BU_AFHTTPSessionManager`, which adds functionality specific to making HTTP requests. If you are looking to extend `BU_AFURLSessionManager` specifically for HTTP, consider subclassing `BU_AFHTTPSessionManager` instead. + + ## NSURLSession & NSURLSessionTask Delegate Methods + + `BU_AFURLSessionManager` implements the following delegate methods: + + ### `NSURLSessionDelegate` + + - `URLSession:didBecomeInvalidWithError:` + - `URLSession:didReceiveChallenge:completionHandler:` + - `URLSessionDidFinishEventsForBackgroundURLSession:` + + ### `NSURLSessionTaskDelegate` + + - `URLSession:willPerformHTTPRedirection:newRequest:completionHandler:` + - `URLSession:task:didReceiveChallenge:completionHandler:` + - `URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:` + - `URLSession:task:needNewBodyStream:` + - `URLSession:task:didCompleteWithError:` + + ### `NSURLSessionDataDelegate` + + - `URLSession:dataTask:didReceiveResponse:completionHandler:` + - `URLSession:dataTask:didBecomeDownloadTask:` + - `URLSession:dataTask:didReceiveData:` + - `URLSession:dataTask:willCacheResponse:completionHandler:` + + ### `NSURLSessionDownloadDelegate` + + - `URLSession:downloadTask:didFinishDownloadingToURL:` + - `URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:` + - `URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:` + + If any of these methods are overridden in a subclass, they _must_ call the `super` implementation first. + + ## Network Reachability Monitoring + + Network reachability status and change monitoring is available through the `reachabilityManager` property. Applications may choose to monitor network reachability conditions in order to prevent or suspend any outbound requests. See `AFNetworkReachabilityManager` for more details. + + ## NSCoding Caveats + + - Encoded managers do not include any block properties. Be sure to set delegate callback blocks when using `-initWithCoder:` or `NSKeyedUnarchiver`. + + ## NSCopying Caveats + + - `-copy` and `-copyWithZone:` return a new manager with a new `NSURLSession` created from the configuration of the original. + - Operation copies do not include any delegate callback blocks, as they often strongly captures a reference to `self`, which would otherwise have the unintuitive side-effect of pointing to the _original_ session manager when copied. + + @warning Managers for background sessions must be owned for the duration of their use. This can be accomplished by creating an application-wide or shared singleton instance. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface BU_AFURLSessionManager : NSObject + +/** + The managed session. + */ +@property (readonly, nonatomic, strong) NSURLSession *session; + +/** + The operation queue on which delegate callbacks are run. + */ +@property (readonly, nonatomic, strong) NSOperationQueue *operationQueue; + +/** + Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an instance of `BU_AFJSONResponseSerializer`. + + @warning `responseSerializer` must not be `nil`. + */ +@property (nonatomic, strong) id responseSerializer; + +///------------------------------- +/// @name Managing Security Policy +///------------------------------- + +/** + The security policy used by created session to evaluate server trust for secure connections. `BU_AFURLSessionManager` uses the `defaultPolicy` unless otherwise specified. + */ +@property (nonatomic, strong) BU_AFSecurityPolicy *securityPolicy; + +///---------------------------- +/// @name Getting Session Tasks +///---------------------------- + +/** + The data, upload, and download tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *tasks; + +/** + The data tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *dataTasks; + +/** + The upload tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *uploadTasks; + +/** + The download tasks currently run by the managed session. + */ +@property (readonly, nonatomic, strong) NSArray *downloadTasks; + +///------------------------------- +/// @name Managing Callback Queues +///------------------------------- + +/** + The dispatch queue for `completionBlock`. If `NULL` (default), the main queue is used. + */ +@property (nonatomic, strong, nullable) dispatch_queue_t completionQueue; + +/** + The dispatch group for `completionBlock`. If `NULL` (default), a private dispatch group is used. + */ +@property (nonatomic, strong, nullable) dispatch_group_t completionGroup; + +///--------------------------------- +/// @name Working Around System Bugs +///--------------------------------- + +/** + Whether to attempt to retry creation of upload tasks for background sessions when initial call returns `nil`. `NO` by default. + + @bug As of iOS 7.0, there is a bug where upload tasks created for background tasks are sometimes `nil`. As a workaround, if this property is `YES`, BU_AFNetworking will follow Apple's recommendation to try creating the task again. + + @see https://github.com/BU_AFNetworking/BU_AFNetworking/issues/1675 + */ +@property (nonatomic, assign) BOOL attemptsToRecreateUploadTasksForBackgroundSessions; + +///--------------------- +/// @name Initialization +///--------------------- + +/** + Creates and returns a manager for a session created with the specified configuration. This is the designated initializer. + + @param configuration The configuration used to create the managed session. + + @return A manager for a newly-created session. + */ +- (instancetype)initWithSessionConfiguration:(nullable NSURLSessionConfiguration *)configuration NS_DESIGNATED_INITIALIZER; + +/** + Invalidates the managed session, optionally canceling pending tasks. + + @param cancelPendingTasks Whether or not to cancel pending tasks. + */ +- (void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks; + +///------------------------- +/// @name Running Data Tasks +///------------------------- + +/** + Creates an `NSURLSessionDataTask` with the specified request. + + @param request The HTTP request for the request. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler DEPRECATED_ATTRIBUTE; + +/** + Creates an `NSURLSessionDataTask` with the specified request. + + @param request The HTTP request for the request. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request + uploadProgress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock + downloadProgress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +///--------------------------- +/// @name Running Upload Tasks +///--------------------------- + +/** + Creates an `NSURLSessionUploadTask` with the specified request for a local file. + + @param request The HTTP request for the request. + @param fileURL A URL to the local file to be uploaded. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + + @see `attemptsToRecreateUploadTasksForBackgroundSessions` + */ +//- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request +// fromFile:(NSURL *)fileURL +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock +// completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionUploadTask` with the specified request for an HTTP body. + + @param request The HTTP request for the request. + @param bodyData A data object containing the HTTP body to be uploaded. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +//- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request +// fromData:(nullable NSData *)bodyData +// progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock +// completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionUploadTask` with the specified streaming request. + + @param request The HTTP request for the request. + @param uploadProgressBlock A block object to be executed when the upload progress is updated. Note this block is called on the session queue, not the main queue. + @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. + */ +- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request + progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock + completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler; + +///----------------------------- +/// @name Running Download Tasks +///----------------------------- + +/** + Creates an `NSURLSessionDownloadTask` with the specified request. + + @param request The HTTP request for the request. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param destination A block object to be executed in order to determine the destination of the downloaded file. This block takes two arguments, the target path & the server response, and returns the desired file URL of the resulting download. The temporary file used during the download will be automatically deleted after being moved to the returned URL. + @param completionHandler A block to be executed when a task finishes. This block has no return value and takes three arguments: the server response, the path of the downloaded file, and the error describing the network or parsing error that occurred, if any. + + @warning If using a background `NSURLSessionConfiguration` on iOS, these blocks will be lost when the app is terminated. Background sessions may prefer to use `-setDownloadTaskDidFinishDownloadingBlock:` to specify the URL for saving the downloaded file, rather than the destination block of this method. + */ +//- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request +// progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock +// destination:(nullable NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination +// completionHandler:(nullable void (^)(NSURLResponse *response, NSURL * _Nullable filePath, NSError * _Nullable error))completionHandler; + +/** + Creates an `NSURLSessionDownloadTask` with the specified resume data. + + @param resumeData The data used to resume downloading. + @param downloadProgressBlock A block object to be executed when the download progress is updated. Note this block is called on the session queue, not the main queue. + @param destination A block object to be executed in order to determine the destination of the downloaded file. This block takes two arguments, the target path & the server response, and returns the desired file URL of the resulting download. The temporary file used during the download will be automatically deleted after being moved to the returned URL. + @param completionHandler A block to be executed when a task finishes. This block has no return value and takes three arguments: the server response, the path of the downloaded file, and the error describing the network or parsing error that occurred, if any. + */ +//- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData +// progress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock +// destination:(nullable NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination +// completionHandler:(nullable void (^)(NSURLResponse *response, NSURL * _Nullable filePath, NSError * _Nullable error))completionHandler; + +///--------------------------------- +/// @name Getting Progress for Tasks +///--------------------------------- + +/** + Returns the upload progress of the specified task. + + @param task The session task. Must not be `nil`. + + @return An `NSProgress` object reporting the upload progress of a task, or `nil` if the progress is unavailable. + */ +//- (nullable NSProgress *)uploadProgressForTask:(NSURLSessionTask *)task; + +/** + Returns the download progress of the specified task. + + @param task The session task. Must not be `nil`. + + @return An `NSProgress` object reporting the download progress of a task, or `nil` if the progress is unavailable. + */ +//- (nullable NSProgress *)downloadProgressForTask:(NSURLSessionTask *)task; + +///----------------------------------------- +/// @name Setting Session Delegate Callbacks +///----------------------------------------- + +/** + Sets a block to be executed when the managed session becomes invalid, as handled by the `NSURLSessionDelegate` method `URLSession:didBecomeInvalidWithError:`. + + @param block A block object to be executed when the managed session becomes invalid. The block has no return value, and takes two arguments: the session, and the error related to the cause of invalidation. + */ +- (void)setSessionDidBecomeInvalidBlock:(nullable void (^)(NSURLSession *session, NSError *error))block; + +/** + Sets a block to be executed when a connection level authentication challenge has occurred, as handled by the `NSURLSessionDelegate` method `URLSession:didReceiveChallenge:completionHandler:`. + + @param block A block object to be executed when a connection level authentication challenge has occurred. The block returns the disposition of the authentication challenge, and takes three arguments: the session, the authentication challenge, and a pointer to the credential that should be used to resolve the challenge. + */ +- (void)setSessionDidReceiveAuthenticationChallengeBlock:(nullable NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential))block; + +///-------------------------------------- +/// @name Setting Task Delegate Callbacks +///-------------------------------------- + +/** + Sets a block to be executed when a task requires a new request body stream to send to the remote server, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:needNewBodyStream:`. + + @param block A block object to be executed when a task requires a new request body stream. + */ +- (void)setTaskNeedNewBodyStreamBlock:(nullable NSInputStream * (^)(NSURLSession *session, NSURLSessionTask *task))block; + +/** + Sets a block to be executed when an HTTP request is attempting to perform a redirection to a different URL, as handled by the `NSURLSessionTaskDelegate` method `URLSession:willPerformHTTPRedirection:newRequest:completionHandler:`. + + @param block A block object to be executed when an HTTP request is attempting to perform a redirection to a different URL. The block returns the request to be made for the redirection, and takes four arguments: the session, the task, the redirection response, and the request corresponding to the redirection response. + */ +- (void)setTaskWillPerformHTTPRedirectionBlock:(nullable NSURLRequest * _Nullable (^)(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request))block; + +/** + Sets a block to be executed when a session task has received a request specific authentication challenge, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didReceiveChallenge:completionHandler:`. + + @param block A block object to be executed when a session task has received a request specific authentication challenge. The block returns the disposition of the authentication challenge, and takes four arguments: the session, the task, the authentication challenge, and a pointer to the credential that should be used to resolve the challenge. + */ +- (void)setTaskDidReceiveAuthenticationChallengeBlock:(nullable NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLSessionTask *task, NSURLAuthenticationChallenge *challenge, NSURLCredential * _Nullable __autoreleasing * _Nullable credential))block; + +/** + Sets a block to be executed periodically to track upload progress, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:`. + + @param block A block object to be called when an undetermined number of bytes have been uploaded to the server. This block has no return value and takes five arguments: the session, the task, the number of bytes written since the last time the upload progress block was called, the total bytes written, and the total bytes expected to be written during the request, as initially determined by the length of the HTTP body. This block may be called multiple times, and will execute on the main thread. + */ +- (void)setTaskDidSendBodyDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend))block; + +/** + Sets a block to be executed as the last message related to a specific task, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didCompleteWithError:`. + + @param block A block object to be executed when a session task is completed. The block has no return value, and takes three arguments: the session, the task, and any error that occurred in the process of executing the task. + */ +- (void)setTaskDidCompleteBlock:(nullable void (^)(NSURLSession *session, NSURLSessionTask *task, NSError * _Nullable error))block; + +///------------------------------------------- +/// @name Setting Data Task Delegate Callbacks +///------------------------------------------- + +/** + Sets a block to be executed when a data task has received a response, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didReceiveResponse:completionHandler:`. + + @param block A block object to be executed when a data task has received a response. The block returns the disposition of the session response, and takes three arguments: the session, the data task, and the received response. + */ +- (void)setDataTaskDidReceiveResponseBlock:(nullable NSURLSessionResponseDisposition (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLResponse *response))block; + +/** + Sets a block to be executed when a data task has become a download task, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didBecomeDownloadTask:`. + + @param block A block object to be executed when a data task has become a download task. The block has no return value, and takes three arguments: the session, the data task, and the download task it has become. + */ +- (void)setDataTaskDidBecomeDownloadTaskBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLSessionDownloadTask *downloadTask))block; + +/** + Sets a block to be executed when a data task receives data, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didReceiveData:`. + + @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes three arguments: the session, the data task, and the data received. This block may be called multiple times, and will execute on the session manager operation queue. + */ +- (void)setDataTaskDidReceiveDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data))block; + +/** + Sets a block to be executed to determine the caching behavior of a data task, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:willCacheResponse:completionHandler:`. + + @param block A block object to be executed to determine the caching behavior of a data task. The block returns the response to cache, and takes three arguments: the session, the data task, and the proposed cached URL response. + */ +- (void)setDataTaskWillCacheResponseBlock:(nullable NSCachedURLResponse * (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSCachedURLResponse *proposedResponse))block; + +/** + Sets a block to be executed once all messages enqueued for a session have been delivered, as handled by the `NSURLSessionDataDelegate` method `URLSessionDidFinishEventsForBackgroundURLSession:`. + + @param block A block object to be executed once all messages enqueued for a session have been delivered. The block has no return value and takes a single argument: the session. + */ +- (void)setDidFinishEventsForBackgroundURLSessionBlock:(nullable void (^)(NSURLSession *session))block; + +///----------------------------------------------- +/// @name Setting Download Task Delegate Callbacks +///----------------------------------------------- + +/** + Sets a block to be executed when a download task has completed a download, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didFinishDownloadingToURL:`. + + @param block A block object to be executed when a download task has completed. The block returns the URL the download should be moved to, and takes three arguments: the session, the download task, and the temporary location of the downloaded file. If the file manager encounters an error while attempting to move the temporary file to the destination, an `BU_AFURLSessionDownloadTaskDidFailToMoveFileNotification` will be posted, with the download task as its object, and the user info of the error. + */ +- (void)setDownloadTaskDidFinishDownloadingBlock:(nullable NSURL * _Nullable (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location))block; + +/** + Sets a block to be executed periodically to track download progress, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:`. + + @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes five arguments: the session, the download task, the number of bytes read since the last time the download progress block was called, the total bytes read, and the total bytes expected to be read during the request, as initially determined by the expected content size of the `NSHTTPURLResponse` object. This block may be called multiple times, and will execute on the session manager operation queue. + */ +- (void)setDownloadTaskDidWriteDataBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite))block; + +/** + Sets a block to be executed when a download task has been resumed, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:`. + + @param block A block object to be executed when a download task has been resumed. The block has no return value and takes four arguments: the session, the download task, the file offset of the resumed download, and the total number of bytes expected to be downloaded. + */ +- (void)setDownloadTaskDidResumeBlock:(nullable void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t fileOffset, int64_t expectedTotalBytes))block; + +@end + +///-------------------- +/// @name Notifications +///-------------------- + +/** + Posted when a task resumes. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidResumeNotification; + +/** + Posted when a task finishes executing. Includes a userInfo dictionary with additional information about the task. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteNotification; + +/** + Posted when a task suspends its execution. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidSuspendNotification; + +/** + Posted when a session is invalidated. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLSessionDidInvalidateNotification; + +/** + Posted when a session download task encountered an error when moving the temporary download file to a specified destination. + */ +FOUNDATION_EXPORT NSString * const BU_AFURLSessionDownloadTaskDidFailToMoveFileNotification; + +/** + The raw response data of the task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if response data exists for the task. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteResponseDataKey; + +/** + The serialized response object of the task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if the response was serialized. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteSerializedResponseKey; + +/** + The response serializer used to serialize the response. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if the task has an associated response serializer. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteResponseSerializerKey; + +/** + The file path associated with the download task. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if an the response data has been stored directly to disk. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteAssetPathKey; + +/** + Any error associated with the task, or the serialization of the response. Included in the userInfo dictionary of the `BU_AFNetworkingTaskDidCompleteNotification` if an error exists. + */ +FOUNDATION_EXPORT NSString * const BU_AFNetworkingTaskDidCompleteErrorKey; + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLSessionManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLSessionManager.h.meta new file mode 100644 index 00000000..5966e17c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/BU_AFURLSessionManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bfcb1c9cb0fe8426c81c61d52a08fbf3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/NSString+BURely.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/NSString+BURely.h new file mode 100755 index 00000000..dbe15932 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/NSString+BURely.h @@ -0,0 +1,19 @@ +// +// NSString+BURely.h +// BUFoundation +// +// Created by zth on 2021/12/25. +// + + + +NS_ASSUME_NONNULL_BEGIN + +@interface NSString (BURely) + + ++ (nullable NSURL *)BU_Rely_URLWithURLString:(NSString *)str; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/NSString+BURely.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/NSString+BURely.h.meta new file mode 100644 index 00000000..a14ea113 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/pangle_China/BURelyFoundation.framework/Versions/Current/Headers/NSString+BURely.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7d1cec4d6c6c343e6a6c4f3b4591c002 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob.meta new file mode 100644 index 00000000..340f45b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4fd51b391af714efdaea5224e0fbb79c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework.meta new file mode 100644 index 00000000..f9937108 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 92ec91e123425472f96a64a8e0c23d63 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/AnyThinkSigmobAdapter b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/AnyThinkSigmobAdapter new file mode 100755 index 00000000..1fcf3d83 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/AnyThinkSigmobAdapter differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/AnyThinkSigmobAdapter.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/AnyThinkSigmobAdapter.meta new file mode 100644 index 00000000..b47b9f98 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/AnyThinkSigmobAdapter.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7ee977c8ed8584fc2851f9251985057d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers.meta new file mode 100644 index 00000000..70ea2f85 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: efd2aab42e6164beea8a629a56f28a10 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers/AnyThinkSigmobAdapter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers/AnyThinkSigmobAdapter.h new file mode 100755 index 00000000..d2e3bbec --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers/AnyThinkSigmobAdapter.h @@ -0,0 +1,19 @@ +// +// AnyThinkSigmobAdapter.h +// AnyThinkSigmobAdapter +// +// Created by Topon on 11/15/20. +// Copyright © 2020 AnyThink. All rights reserved. +// + +#import + +//! Project version number for AnyThinkSigmobAdapter. +FOUNDATION_EXPORT double AnyThinkSigmobAdapterVersionNumber; + +//! Project version string for AnyThinkSigmobAdapter. +FOUNDATION_EXPORT const unsigned char AnyThinkSigmobAdapterVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers/AnyThinkSigmobAdapter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers/AnyThinkSigmobAdapter.h.meta new file mode 100644 index 00000000..1e79bf4d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Headers/AnyThinkSigmobAdapter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dae8c97aac5654c2581bf60050b0a829 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Info.plist b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Info.plist new file mode 100755 index 00000000..651c7b2a Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Info.plist differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Info.plist.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Info.plist.meta new file mode 100644 index 00000000..986fc6d8 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1842ba952a31644b7b8c98f2c9dc1056 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules.meta new file mode 100644 index 00000000..9beae304 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c63c11ae9818d4bf1bc5be921af08962 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules/module.modulemap new file mode 100755 index 00000000..506d10e5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module AnyThinkSigmobAdapter { + umbrella header "AnyThinkSigmobAdapter.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..615c7174 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/AnyThinkSigmobAdapter.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fb63a2d22ea85426e9d93cb3fdfb2515 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework.meta new file mode 100644 index 00000000..35a6d677 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: de78d83de0ed44621bb3d153231f383c +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers.meta new file mode 100644 index 00000000..13b58feb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 55581273a49c648ef8409f239f43b11a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/SigmobLog.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/SigmobLog.h new file mode 100755 index 00000000..93569798 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/SigmobLog.h @@ -0,0 +1,54 @@ +// +// SMLog.h +// SigmobDemo +// +// Created by happyelements on 03/04/2018. +// Copyright © 2018 Codi. All rights reserved. +// + +#ifndef SMSIGLog_h +#define SMSIGLog_h + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, SIGLogLevel){ + SIGLogLevelDebug=2, + SIGLogLevelInfo=4, + SIGLogLevelWarning=6, + SIGLogLevelError=8, +}; + + +#define SIGLog(level, ...) \ +{ \ +SMLogEx(level, @(__FILE__), @(__PRETTY_FUNCTION__), __LINE__, nil, __VA_ARGS__); \ +} + + + +//! Log to Error level +#define SIGLogError(...) SIGLog(SIGLogLevelError,__VA_ARGS__) +//! Log to Warning level +#define SIGLogWarning(...) SIGLog(SIGLogLevelWarning, __VA_ARGS__) +//! Log to Information level +#define SIGLogInfo(...) SIGLog(SIGLogLevelInfo, __VA_ARGS__) +//! Log to Debug level +#define SIGLogDebug(...) SIGLog(SIGLogLevelDebug, __VA_ARGS__) + + + + +FOUNDATION_EXPORT void SMLogEx(SIGLogLevel level, + NSString *file, + NSString *function, + unsigned int line, + id __nullable contextObject, + NSString *format, ...) NS_FORMAT_FUNCTION(6,7); + + + +NS_ASSUME_NONNULL_END + +#endif /* SMLog_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/SigmobLog.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/SigmobLog.h.meta new file mode 100644 index 00000000..4e0334e6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/SigmobLog.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01d9836d5bfcc4e14a14c67e11530c9f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WADStrategy.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WADStrategy.h new file mode 100755 index 00000000..b0a50255 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WADStrategy.h @@ -0,0 +1,69 @@ +// +// WADStrategyOptions.h +// WindSDK +// +// Created by happyelements on 2018/4/9. +// Copyright © 2018 Codi. All rights reserved. +// + +#import + +@class SMGCDTimer; + +static NSString *const WindAdsSDKChannelSigmob = @"sigmob"; + + +@interface WADOptions : NSObject +@property (nonatomic,copy) NSString *appId; +@property (nonatomic,copy) NSString *apiKey; +@property (nonatomic,copy) NSString *placementId; +@property (nonatomic,copy) NSString *unitId; +@property (nonatomic,copy) NSString *repApiKey; +@property (nonatomic,copy) NSString *repApiSecret; +@property (nonatomic,copy) NSString *templateType; +@property (nonatomic,copy) NSString *publisherId; +@property (nonatomic, copy) NSString *playDirection; +@property (nonatomic, copy) NSString *appName; +@property (nonatomic, copy) NSString *bidToken; + +@property (nonatomic, copy) NSString *countdown; +@property (nonatomic, copy) NSString *allowSkip; +@property (nonatomic, copy) NSString *subType; +@property (nonatomic, copy) NSString *ratio; +@property (nonatomic, copy) NSString *autoPlayPolicy; +@property (nonatomic, copy) NSString *autoPlayMuted; +@property (nonatomic, copy) NSString *detailPageMuted; +@property (nonatomic, copy) NSString *minVideoDuration; +@property (nonatomic, copy) NSString *maxVideoDuration; +@property (nonatomic, copy) NSString *clickType;//0按钮点击;1全屏点击 + + + + +@end + + +@interface WADStrategy : NSObject +@property (nonatomic,strong) NSError *error; +@property (nonatomic,copy) NSString *placementId; +@property (nonatomic,copy) NSString *adapterClass; +@property (nonatomic,copy) NSString *name; +@property (nonatomic, assign) NSUInteger adType; +@property (nonatomic,strong) WADOptions *options; +@property (nonatomic,copy) NSString *loadId; +@property(nonatomic, assign) uint32_t channelId; +@property(nonatomic, assign) BOOL enableAbTest; +@property(nonatomic, readwrite) uint32_t abFlag; +@property (nonatomic, copy) NSString *strategyId; +@property(nonatomic, readwrite) uint32_t elementId; +@property (nonatomic, assign) NSUInteger index; +/** 渠道广告素材有效期。默认3600s过期,0代表不设置过期不展示逻辑,最小颗粒度为 900s(15 min) */ +@property(nonatomic, readwrite) uint32_t adExpireTime; +@property(nonatomic, readwrite) uint64_t adReadyTime; +@property(nonatomic, readwrite) uint32_t singleChannelTimeout; +@property (nonatomic, strong) SMGCDTimer *gcdTimer; + +- (BOOL)isExpired; + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WADStrategy.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WADStrategy.h.meta new file mode 100644 index 00000000..066edb27 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WADStrategy.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ffdb335a4781142af8b8a11b0ff23fa4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdAdapter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdAdapter.h new file mode 100755 index 00000000..d43dbe5e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdAdapter.h @@ -0,0 +1,43 @@ +// +// WindAdAdapter.h +// WindSDK +// +// Created by Codi on 2021/1/7. +// Copyright © 2021 Codi. All rights reserved. +// + +#ifndef WindAdAdapter_h +#define WindAdAdapter_h + +#import +#import + +@class WADStrategy; +@protocol WindAdConnector; + + +@protocol WindAdAdapter + +@required + +- (instancetype)initWithAdConnector:(id)connector; + +- (BOOL)isReadyWithStrategy:(WADStrategy *)strategy; + +@optional + +- (void)destory; + +- (void)loadAd:(WADStrategy *)strategy; + +- (void)presentAdWithViewController:(UIViewController *)controller + strategy:(WADStrategy *)strategy + options:(NSDictionary *)options; + +@end + + + + + +#endif /* WindAdAdapter_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdAdapter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdAdapter.h.meta new file mode 100644 index 00000000..07ff0006 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdAdapter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 584a2b5715a5b479dab63c418cc46474 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseAdapter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseAdapter.h new file mode 100755 index 00000000..f3661207 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseAdapter.h @@ -0,0 +1,22 @@ +// +// WindAdBaseAdapter.h +// WindSDK +// +// Created by Codi on 2021/7/26. +// Copyright © 2021 Codi. All rights reserved. +// + +@class WADStrategy; + +@protocol WindAdBaseAdapter + ++ (BOOL)isInitilized; + +- (void)setup:(WADStrategy *)strategy options:(NSDictionary *)options; + +- (NSUInteger)adapterVersion; + +- (NSString *)sdkVersion; + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseAdapter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseAdapter.h.meta new file mode 100644 index 00000000..6cec40b5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseAdapter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8ba9fd54c1b8a43deb60870bc89ddf6b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseConnector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseConnector.h new file mode 100755 index 00000000..95c84d12 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseConnector.h @@ -0,0 +1,30 @@ +// +// WindAdBaseConnector.h +// WindSDK +// +// Created by Codi on 2021/7/26. +// Copyright © 2021 Codi. All rights reserved. +// + +#ifndef WindAdBaseConnector_h +#define WindAdBaseConnector_h + +#import +@class WADStrategy; + +@protocol WindAdBaseConnector + +/** + * + * 初始化成功 + */ +- (void)adapterDidSuccessedSetUp; + +/** + * 初始化失败 + */ +- (void)adapterDidFailToSetUp:(WADStrategy *)strategy error:(NSError *)error; + +@end + +#endif diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseConnector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseConnector.h.meta new file mode 100644 index 00000000..fb151eb4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdBaseConnector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9646272f99fd947bbabfd0d0a59de1e7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdConnector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdConnector.h new file mode 100755 index 00000000..582c1e07 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdConnector.h @@ -0,0 +1,70 @@ +// +// WindAdConnector.h +// WindSDK +// +// Created by Codi on 2021/1/7. +// Copyright © 2021 Codi. All rights reserved. +// + +#ifndef WindAdConnector_h +#define WindAdConnector_h + +#import +#import + +@class WADStrategy; +@class WindAdRequest; + + +@protocol WindAdConnector + +@required + +- (WindAdRequest *)adRequest; + +- (NSString *)loadId; + +@optional + + +/** + * 广告加载成功 + */ +- (void)adapterDidAdLoadSuccessed:(WADStrategy *)strategy; + +/** + * 广告加载失败 + */ +- (void)adapterDidAdLoadFailed:(WADStrategy *)strategy error:(NSError *)error; + +/** + * 广告成功展示 + */ +-(void)adapterDidSuccessPresentScreen:(WADStrategy *)strategy; + +/** + * 广告展示失败 + */ +-(void)adapterDidFailToPresent:(WADStrategy *)strategy error:(NSError *)error ; + +/** + * 广告点击回调 + */ +- (void)adapterDidClicked:(WADStrategy *)strategy; + +/** + * 广告点击跳过 + */ +- (void)adapterDidSkiped:(WADStrategy *)strategy; + +/** + * 广告视频部分播放完成 + * @param error : error代表播放错误 + */ +- (void)adapterAdDidPlayFinish:(WADStrategy *)strategy didFailWithError:(NSError *)error; + + + +@end + +#endif /* WindAdConnector_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdConnector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdConnector.h.meta new file mode 100644 index 00000000..1ba7ebba --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdConnector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 26b7d1e7e213a43ad9517c79ac43649f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdOptions.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdOptions.h new file mode 100755 index 00000000..1ee6f800 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdOptions.h @@ -0,0 +1,28 @@ +// +// WindAdOptions.h +// WindSDK +// +// Created by happyelements on 2018/4/8. +// Copyright © 2018 Codi. All rights reserved. +// + +#import + +@interface WindAdOptions : NSObject + +/// Sigmob平台申请的appId +@property (copy, nonatomic, readonly) NSString* appId; +/// Sigmob平台申请的appKey +@property (copy, nonatomic, readonly) NSString* appKey; +/// 声明是否使用的是聚合 default = NO +@property (nonatomic, assign, readonly) BOOL usedMediation; + + +- (instancetype)initWithAppId:(NSString *)appId appKey:(NSString *)appKey usedMediation:(BOOL)usedMediation; + +// 非单例 ++ (instancetype)options NS_UNAVAILABLE;; ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)init NS_UNAVAILABLE; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdOptions.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdOptions.h.meta new file mode 100644 index 00000000..862e10e4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdOptions.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e50f41e95869405abcf35e8e3f26c7f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdRequest.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdRequest.h new file mode 100755 index 00000000..a53cae66 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdRequest.h @@ -0,0 +1,24 @@ +// +// WindAdRequest.h +// WindSDK +// +// Created by happyelements on 2018/4/8. +// Copyright © 2018 Codi. All rights reserved. +// + +#import + +@interface WindAdRequest : NSObject + +@property (nonatomic,copy) NSString *userId; + +@property (nonatomic,copy) NSString *placementId; + +//做为扩展参数使用 +@property (nonatomic,strong) NSDictionary *options; + ++ (instancetype)request; + + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdRequest.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdRequest.h.meta new file mode 100644 index 00000000..4cba5ca9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAdRequest.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b79e84e3b74f547a490ac3f69513680c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAds.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAds.h new file mode 100755 index 00000000..37b9168e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAds.h @@ -0,0 +1,119 @@ +// +// WindAds.h +// WindSDK +// +// Created by happyelements on 2018/4/8. +// Copyright © 2018 Codi. All rights reserved. +// + +#import +#import + +extern NSString * const WindAdSceneName; +extern NSString * const WindAdInterval; +extern NSString * const WindAdSize; +extern NSString * const WindAdRootViewController; + +typedef NS_ENUM(NSUInteger, WindLogLevel){ + WindLogLevelError=8, + WindLogLevelWarning=6, + WindLogLevelInformation=4, + WindLogLevelDebug=2 +}; + +typedef NS_ENUM (NSInteger, WindCCPAStatus) { + WindCCPAUnknown = 0, + WindCCPAAccepted, + WindCCPADenied, +}; + + +typedef NS_ENUM (NSInteger, WindConsentStatus) { + WindConsentUnknown = 0, + WindConsentAccepted, + WindConsentDenied, +}; + +typedef NS_ENUM (NSInteger, WindAgeRestrictedStatus) { + WindAgeRestrictedStatusUnknow = 0, + WindAgeRestrictedStatusYES, //年龄受限制 + WindAgeRestrictedStatusNO, //成年人,年龄不受限制 +}; + +typedef enum : NSUInteger { + WindAdult = 0, + WindChildren = 1, +} WindAdultState; + +typedef enum : NSUInteger { + WindPersonalizedAdvertisingOn = 0, + WindPersonalizedAdvertisingOff = 1, +} WindPersonalizedAdvertisingState; + + +typedef void(^WindAdDebugCallBack)(NSString *msg, WindLogLevel level); + +@interface WindAds : NSObject + ++ (NSString *)sdkVersion; + +// Initialize Wind Ads SDK ++ (void) startWithOptions:(WindAdOptions *)options; + +/** + * DeBug开关显示 + * + * @param enable true 开启debug,false 关闭debug + */ ++ (void)setDebugEnable:(BOOL)enable; + + +/** + * 自定义debug 内容回调显示 + * + * @param callBack debugBlock,若不设置则在Xcode debug中显示, + */ ++ (void)setDebugCallBack:(WindAdDebugCallBack)callBack; + +/// 提供新的资源包,需要把sigmob.bundle的文件放入到新的bundle内。 +/// @param name bundle名称(前缀) ++ (void)setNewBundleName:(NSString *)name; + + +#pragma mark - CCPA SUPPORT ++ (void)updateCCPAStatus:(WindCCPAStatus)status; + ++ (WindCCPAStatus)getCCPAStatus; + + + +#pragma mark - GDPR SUPPORT +/************************** GDPR *********************************/ ++ (WindConsentStatus)getUserGDPRConsentStatus; + ++ (void)setUserGDPRConsentStatus:(WindConsentStatus)status; + +#pragma mark - Age SUPPORT +/************************** Age *********************************/ ++ (WindAgeRestrictedStatus)getAgeRestrictedStatus; + ++ (void)setIsAgeRestrictedUser:(WindAgeRestrictedStatus)status; + +#pragma mark - Adult SUPPORT +/************************** 设置是否是成年人 *********************************/ +/// WindAdult: 成年人, WindChildren: 未成年人 default=WindAdult ++ (void)setAdult:(WindAdultState)state; ++ (WindAdultState)getAdultState; + + +#pragma mark - PersonalizedAdvertisin SUPPORT +/// WindPersonalizedAdvertisingOn: 开启个性化推荐, WindPersonalizedAdvertisingOff: 关闭个性化推荐, default=WindPersonalizedAdvertisingOn ++ (void)setPersonalizedAdvertising:(WindPersonalizedAdvertisingState)state; ++ (WindPersonalizedAdvertisingState)getPersonalizedAdvertisingState; + + ++ (NSUInteger)getUserAge; ++ (void)setUserAge:(NSUInteger)age; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAds.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAds.h.meta new file mode 100644 index 00000000..938d5c1a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindAds.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 23530a09633044367ad8c44547c2ef95 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingIntersititialAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingIntersititialAd.h new file mode 100755 index 00000000..a6dce448 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingIntersititialAd.h @@ -0,0 +1,90 @@ +// +// WindBiddingIntersititialAd.h +// WindSDK +// +// Created by Codi on 2021/6/4. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import + +@class WindAdRequest; +@class WindBiddingIntersititialAd; + + +@protocol WindBiddingIntersititialAdDelegate + +/** + This method is called when video ad material loaded successfully. + */ +- (void)intersititialAdDidLoad:(WindBiddingIntersititialAd *)intersititialAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)intersititialAdDidLoad:(WindBiddingIntersititialAd *)intersititialAd didFailWithError:(NSError *)error; + +/** + This method is called when video ad slot will be showing. + */ +- (void)intersititialAdWillVisible:(WindBiddingIntersititialAd *)intersititialAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)intersititialAdDidVisible:(WindBiddingIntersititialAd *)intersititialAd; + +/** + This method is called when video ad is clicked. + */ +- (void)intersititialAdDidClick:(WindBiddingIntersititialAd *)intersititialAd; + +/** + This method is called when video ad is clicked skip button. + */ +- (void)intersititialAdDidClickSkip:(WindBiddingIntersititialAd *)intersititialAd; + +/** + This method is called when video ad is about to close. + */ +- (void)intersititialAdDidClose:(WindBiddingIntersititialAd *)intersititialAd; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)intersititialAdDidPlayFinish:(WindBiddingIntersititialAd *)intersititialAd didFailWithError:(NSError *)error; + +/** + This method is called when return ads from sigmob ad server. + */ +- (void)intersititialAdServerResponse:(WindBiddingIntersititialAd *)intersititialAd isFillAd:(BOOL)isFillAd; + + + +@end + + +@interface WindBiddingIntersititialAd : NSObject + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, strong, readonly) NSString *placementId; + +@property (nonatomic, getter=isAdReady, readonly) BOOL ready; + + +- (instancetype)initWithPlacementId:(NSString *)placementId request:(WindAdRequest *)request; + +- (void)loadAdData:(NSString *)bidToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param extras : Extended parameters for displaying ad. + */ +- (void)showAdFromRootViewController:(UIViewController *)rootViewController + options:(NSDictionary *)extras; +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingIntersititialAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingIntersititialAd.h.meta new file mode 100644 index 00000000..54f80f56 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingIntersititialAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8856a4fddf42f4a6d871496fd853dc42 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingRewardVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingRewardVideoAd.h new file mode 100755 index 00000000..d2de3a2d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingRewardVideoAd.h @@ -0,0 +1,90 @@ +// +// WindBiddingRewardVideoAd.h +// WindSDK +// +// Created by Codi on 2021/6/8. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import + +@class WindAdRequest; +@class WindRewardInfo; +@class WindBiddingRewardVideoAd; + +@protocol WindBiddingRewardVideoAdDelegate + +/** + This method is called when video ad material loaded successfully. + */ +- (void)rewardVideoAdDidLoad:(WindBiddingRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)rewardVideoAdDidLoad:(WindBiddingRewardVideoAd *)rewardVideoAd didFailWithError:(NSError *)error; + +/** + This method is called when video ad slot will be showing. + */ +- (void)rewardVideoAdWillVisible:(WindBiddingRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)rewardVideoAdDidVisible:(WindBiddingRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)rewardVideoAdDidClick:(WindBiddingRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad is clicked skip button. + */ +- (void)rewardVideoAdDidClickSkip:(WindBiddingRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)rewardVideoAdDidClose:(WindBiddingRewardVideoAd *)rewardVideoAd reward:(WindRewardInfo *)reward; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)rewardVideoAdDidPlayFinish:(WindBiddingRewardVideoAd *)rewardVideoAd didFailWithError:(NSError *)error; + +/** + This method is called when return ads from sigmob ad server. + */ +- (void)rewardVideoAdServerResponse:(WindBiddingRewardVideoAd *)rewardVideoAd isFillAd:(BOOL)isFillAd; + + + +@end + +@interface WindBiddingRewardVideoAd : NSObject + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, strong, readonly) NSString *placementId; + +@property (nonatomic, getter=isAdReady, readonly) BOOL ready; + + +- (instancetype)initWithPlacementId:(NSString *)placementId request:(WindAdRequest *)request; + +- (void)loadAdData:(NSString *)bidToken; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param extras : Extended parameters for displaying ad. + */ +- (void)showAdFromRootViewController:(UIViewController *)rootViewController + options:(NSDictionary *)extras; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingRewardVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingRewardVideoAd.h.meta new file mode 100644 index 00000000..f41a7465 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindBiddingRewardVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6d8472dcc2ba14000b019c3224c9b215 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindDislikeWords.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindDislikeWords.h new file mode 100755 index 00000000..f342517b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindDislikeWords.h @@ -0,0 +1,22 @@ +// +// WindDislikeWords.h +// WindSDK +// +// Created by Codi on 2021/1/8. +// Copyright © 2021 Codi. All rights reserved. +// + +#import + +@protocol WindDislikeCustomEvent; + +@interface WindDislikeWords : NSObject + +@property (nonatomic, copy, readonly) NSString *dislikeId; +@property (nonatomic, copy, readonly) NSString *name; +@property (nonatomic, copy, readonly) NSArray *options; + +- (instancetype)initWithDislikAd:(id)dislike; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindDislikeWords.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindDislikeWords.h.meta new file mode 100644 index 00000000..2365527f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindDislikeWords.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 26856a17cf6854be9ad1b7b3189ae8a3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAd.h new file mode 100755 index 00000000..85dcbc88 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAd.h @@ -0,0 +1,90 @@ +// +// WindIntersititialAd.h +// WindSDK +// +// Created by Codi on 2021/4/19. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import + +@class WindAdRequest; + +@class WindIntersititialAd; + +@protocol WindIntersititialAdDelegate + +/** + This method is called when video ad material loaded successfully. + */ +- (void)intersititialAdDidLoad:(WindIntersititialAd *)intersititialAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)intersititialAdDidLoad:(WindIntersititialAd *)intersititialAd didFailWithError:(NSError *)error; + +/** + This method is called when video ad slot will be showing. + */ +- (void)intersititialAdWillVisible:(WindIntersititialAd *)intersititialAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)intersititialAdDidVisible:(WindIntersititialAd *)intersititialAd; + +/** + This method is called when video ad is clicked. + */ +- (void)intersititialAdDidClick:(WindIntersititialAd *)intersititialAd; + +/** + This method is called when video ad is clicked skip button. + */ +- (void)intersititialAdDidClickSkip:(WindIntersititialAd *)intersititialAd; + +/** + This method is called when video ad is about to close. + */ +- (void)intersititialAdDidClose:(WindIntersititialAd *)intersititialAd; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)intersititialAdDidPlayFinish:(WindIntersititialAd *)intersititialAd didFailWithError:(NSError *)error; + +/** + This method is called when return ads from sigmob ad server. + */ +- (void)intersititialAdServerResponse:(WindIntersititialAd *)intersititialAd isFillAd:(BOOL)isFillAd; + + + +@end + +@interface WindIntersititialAd : NSObject + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, strong, readonly) NSString *placementId; + +@property (nonatomic, getter=isAdReady, readonly) BOOL ready; + + +- (instancetype)initWithPlacementId:(NSString *)placementId request:(WindAdRequest *)request; + +- (void)loadAdData; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param extras : Extended parameters for displaying ad. + */ +- (void)showAdFromRootViewController:(UIViewController *)rootViewController + options:(NSDictionary *)extras; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAd.h.meta new file mode 100644 index 00000000..cc964804 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e5387e49f46e74f7280bb5f4f19f5944 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAdConnector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAdConnector.h new file mode 100755 index 00000000..3b594283 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAdConnector.h @@ -0,0 +1,18 @@ +// +// WindRewardedVideoConnector.h +// WindSDK +// +// Created by Codi on 2021/4/20. +// Copyright © 2021 Codi. All rights reserved. +// + +#import + +@protocol WindIntersititialAdConnector + +/** + * 广告关闭回调 + */ +- (void)adapterDidClosed:(WADStrategy *)strategy; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAdConnector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAdConnector.h.meta new file mode 100644 index 00000000..dff71c86 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindIntersititialAdConnector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8616fb320cf354b1e9600b3a14bbc1af +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindMediationNativeAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindMediationNativeAd.h new file mode 100755 index 00000000..63d270d5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindMediationNativeAd.h @@ -0,0 +1,54 @@ +// +// WindMediationNativeAd.h +// WindSDK +// +// Created by Codi on 2021/7/27. +// Copyright © 2021 Codi. All rights reserved. +// + +#import + +@class WADStrategy; + +NS_ASSUME_NONNULL_BEGIN + + +typedef NS_ENUM(NSInteger, WindFeedADMode) { + WindFeedADModeSmallImage = 2, + WindFeedADModeLargeImage = 3, + WindFeedADModeGroupImage = 4, + WindFeedAdModeVideo = 14, + WindFeedAdModeVideoPortrait = 15, + WindFeedAdModeVideoLandSpace = 16, +}; + + +@protocol WindMediationNativeAd + +/// Title. +@property (nonatomic, copy) NSString *title; + +/// Desc. +@property (nonatomic, copy) NSString *desc; + +/// Icon image. +@property (nonatomic, copy) NSString *iconUrl; + +/// Text that encourages user to take some action with the ad. For example "Install". +@property (nonatomic, copy) NSString *callToAction; + +/// App store rating (0 to 5). +@property (nonatomic, assign) double rating; + +@property (nonatomic, assign) WindFeedADMode adMode; + +/// Native view class string. +@property (nonatomic, copy) NSString *nativeViewClass; + +@property (nonatomic, weak) id adLoader; + +@property (nonatomic, strong) WADStrategy *strategy; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindMediationNativeAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindMediationNativeAd.h.meta new file mode 100644 index 00000000..e382c827 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindMediationNativeAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ae53d4331d3c44b26a28a54dc0f5fce3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAd.h new file mode 100755 index 00000000..8585a170 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAd.h @@ -0,0 +1,35 @@ +// +// WindNativeAd.h +// WindSDK +// +// Created by Codi on 2021/7/14. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import +#import + + +@interface WindNativeAd : NSObject + +/// Typed access to the ad title. +@property (nonatomic, copy, readonly) NSString *title; + +/// Typed access to the body text, usually a longer description of the ad. +@property (nonatomic, copy, readonly) NSString *desc; + +/// Typed access to the ad icon. +@property (nonatomic, copy, readonly) NSString *iconUrl; + +/// Typed access to the call to action phrase of the ad. +@property (nonatomic, copy, readonly) NSString *callToAction; + +/// Typed access to the ad star rating. +@property (nonatomic, assign, readonly) double rating; + +@property (nonatomic, assign, readonly) WindFeedADMode feedADMode; + +- (instancetype)initWithMediatedAd:(id)mediatedAd; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAd.h.meta new file mode 100644 index 00000000..e23ea644 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a89f8feeb1324b4ba528349c21a9f06 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdAdapter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdAdapter.h new file mode 100755 index 00000000..ed626788 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdAdapter.h @@ -0,0 +1,22 @@ +// +// WindNativeAdAdapter.h +// WindSDK +// +// Created by Codi on 2021/7/26. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import + +@class WADStrategy; +@protocol WindAdBaseAdapter; +@protocol WindNativeAdConnector; + +@protocol WindNativeAdAdapter + +- (instancetype)initWithAdConnector:(id)connector; + +- (void)loadAd:(WADStrategy *)strategy; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdAdapter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdAdapter.h.meta new file mode 100644 index 00000000..f7b912fe --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdAdapter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f3b27d900271d41b3a8b0bee7bf39dc8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdConnector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdConnector.h new file mode 100755 index 00000000..f415667d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdConnector.h @@ -0,0 +1,36 @@ +// +// WindNativeAdConnector.h +// WindSDK +// +// Created by Codi on 2021/7/26. +// Copyright © 2021 Codi. All rights reserved. +// + + +#import +#import +#import + + +@class WindNativeAd; + +@protocol WindNativeAdConnector + + +@required + +- (WindAdRequest *)adRequest; + +- (NSString *)loadId; + +- (NSUInteger)loadAdCount; + +@optional +/** + * 广告加载失败 + */ +- (void)adapterDidAdLoadFailed:(WADStrategy *)strategy error:(NSError *)error; + +- (void)adapterDidAdLoadSuccess:(WADStrategy *)strategy nativeAdList:(NSArray> *)nativeAdDataArray; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdConnector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdConnector.h.meta new file mode 100644 index 00000000..d09e58c6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdConnector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bcd4fe5c4726e47e890cbe62fb2322d6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdView.h new file mode 100755 index 00000000..a3c0f0e7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdView.h @@ -0,0 +1,185 @@ +// +// WindNativeView.h +// WindSDK +// +// Created by Codi on 2021/7/27. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import +#import + +@class WindNativeAd; +@class WindDislikeWords; + +@protocol WindNativeAdViewDelegate + +@optional +/** + 广告曝光回调 + + @param nativeAdView WindNativeAdView 实例 + */ +- (void)nativeAdViewWillExpose:(WindNativeAdView *)nativeAdView; + + +/** + 广告点击回调 + + @param nativeAdView WindNativeAdView 实例 + */ +- (void)nativeAdViewDidClick:(WindNativeAdView *)nativeAdView; + + +/** + 广告详情页关闭回调 + + @param nativeAdView WindNativeAdView 实例 + */ +- (void)nativeAdDetailViewClosed:(WindNativeAdView *)nativeAdView; + + +/** + 当点击应用下载或者广告调用系统程序打开时调用 + + @param nativeAdView WindNativeAdView 实例 + */ +- (void)nativeAdViewApplicationWillEnterBackground:(WindNativeAdView *)nativeAdView; + + +/** + 广告详情页面即将展示回调 + + @param nativeAdView WindNativeAdView 实例 + */ +- (void)nativeAdDetailViewWillPresentScreen:(WindNativeAdView *)nativeAdView; + + +/** + 视频广告播放状态更改回调 + + @param nativeAdView WindNativeAdView 实例 + @param status 视频广告播放状态 + @param userInfo 视频广告信息 + */ +- (void)nativeAdView:(WindNativeAdView *)nativeAdView playerStatusChanged:(WindMediaPlayerStatus)status userInfo:(NSDictionary *)userInfo; + + +/** + 点击dislike回调 + 开发者需要在这个回调中移除视图,否则,会出现用户点击叉无效的情况 + + @param filterWords : 选择不喜欢的原因 + */ +- (void)nativeAdView:(WindNativeAdView *)nativeAdView dislikeWithReason:(NSArray *)filterWords; + + + +@end + + +@interface WindNativeAdView : UIView + +@property (nonatomic, strong, readonly) WindNativeAd *nativeAd; + + +/** + 广告 View 时间回调对象 + */ +@property (nonatomic, weak) id delegate; + +/* + * viewControllerForPresentingModalView + * 详解:开发者需传入用来弹出目标页的ViewController,一般为当前ViewController + */ +@property (nonatomic, weak) UIViewController *viewController; + + +/** + 视频组件 + */ +@property (nonatomic, strong, readonly) UIView *mediaView; + +/** + 广告平台logo组件 + */ +@property (nonatomic, strong, readonly) UIView *logoView; + +/** + dislike组件 + */ +@property (nonatomic, strong, readonly) UIButton *dislikeButton; + +/** + 单图广告对应的图片组件 + */ +@property (nonatomic, strong, readonly) UIImageView *mainImageView; + +/** + 3张小图对应的图片组建leftImageView、midImageView、rightImageView + */ +@property (nonatomic, strong, readonly) UIImageView *leftImageView; +@property (nonatomic, strong, readonly) UIImageView *midImageView; +@property (nonatomic, strong, readonly) UIImageView *rightImageView; + +- (instancetype)initWithFrame:(CGRect)frame; + +/** + 每次获取物料信息后需要刷新调用refreshData:方法 + */ +- (void)refreshData:(WindNativeAd *)nativeAd; + +/** + 在物料加载成功方法里获取相关广告信息赋值后,需调用 setClickableViews:绑定点击的View + */ +- (void)setClickableViews:(NSArray *)clickableViews; //for TencentAd + +- (void)setPlaceholderImage:(UIImage *)placeholderImage; + +/** + 注销数据对象,在 tableView、collectionView 等场景需要复用 WindNativeAdView 时, + 需要在合适的时机,例如 cell 的 prepareForReuse 方法内执行 unregisterDataObject 方法, + 将广告对象与 WindNativeAdView 解绑 + */ +- (void)unregisterDataObject; + + + +//**************************************************************************************************** + +/** + * 视频广告时长,单位 s + */ +- (CGFloat)videoDuration; + +/** + * 视频广告已播放时长,单位 s + */ +- (CGFloat)videoPlayTime; + +/** + 播放视频 + */ +- (void)play; + +/** + 暂停视频,调用 pause 后,需要被暂停的视频广告对象,不会再自动播放,需要调用 play 才能恢复播放。 + */ +- (void)pause; + +/** + 停止播放 + */ +- (void)stop; + +/** + 自定义播放按钮 + + @param image 自定义播放按钮图片,不设置为默认图 + @param size 自定义播放按钮大小,不设置为默认大小 44 * 44 + */ +//- (void)setPlayButtonImage:(UIImage *)image size:(CGSize)size; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdView.h.meta new file mode 100644 index 00000000..986833dd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d49b4a9d1468b4cb4aa0cf1a3c3ee034 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdViewConnector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdViewConnector.h new file mode 100755 index 00000000..d1a505ad --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdViewConnector.h @@ -0,0 +1,54 @@ +// +// WindNativeAdViewConnector.h +// WindSDK +// +// Created by Codi on 2021/7/28. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import + +@class WADStrategy; +@class WindNativeAdView; +@protocol WindDislikeCustomEvent; + +@protocol WindNativeAdViewConnector + +/** + 广告曝光回调 + */ +- (void)adapterNativeAdViewWillExpose:(UIView *)nativeAdView strategy:(WADStrategy *)strategy; + +/** + 广告点击回调 + */ +- (void)adapterNativeAdViewDidClick:(UIView *)nativeAdView strategy:(WADStrategy *)strategy; + +/** + 广告详情页关闭回调 + */ +- (void)adapterNativeAdDetailViewClosed:(UIView *)nativeAdView strategy:(WADStrategy *)strategy; + + +/** + 广告详情页面即将展示回调 + */ +- (void)adapterNativeAdDetailViewWillPresentScreen:(UIView *)nativeAdView strategy:(WADStrategy *)strategy; + + +/** + 视频广告播放状态更改回调 + + @param status 视频广告播放状态 + @param userInfo 视频广告信息 + */ +- (void)adapterNativeAdView:(UIView *)nativeAdView playerStatusChanged:(WindMediaPlayerStatus)status userInfo:(NSDictionary *)userInfo strategy:(WADStrategy *)strategy; + + +- (void)adapterNativeAdView:(UIView *)nativeAdView dislikeWithReason:(NSArray> *)filterWords strategy:(WADStrategy *)strategy; + + + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdViewConnector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdViewConnector.h.meta new file mode 100644 index 00000000..0db301ca --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdViewConnector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 33345dc5e8f0d4efcb7176e997ee1273 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdsManager.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdsManager.h new file mode 100755 index 00000000..c9330120 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdsManager.h @@ -0,0 +1,45 @@ +// +// WindNativeAdsManager.h +// WindSDK +// +// Created by Codi on 2021/7/14. +// Copyright © 2021 Codi. All rights reserved. +// + +#import + +@class WindAdRequest; +@class WindNativeAd; +@class WindNativeAdsManager; + +@protocol WindNativeAdsManagerDelegate + +@optional + +- (void)nativeAdsManagerSuccessToLoad:(WindNativeAdsManager *)adsManager; + +- (void)nativeAdsManager:(WindNativeAdsManager *)adsManager didFailWithError:(NSError *)error; + +@end + + +@interface WindNativeAdsManager : NSObject + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, strong, readonly) NSString *placementId; + +- (instancetype)initWithRequest:(WindAdRequest *)request; + +/** + It is recommended to request no more than 3 ads. + */ +- (void)loadAdDataWithCount:(NSInteger)count; + +/** + Get all ads when call methord: nativeAdsManagerSuccessToLoad + */ +- (NSArray *)getAllNativeAds; + +@end + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdsManager.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdsManager.h.meta new file mode 100644 index 00000000..5cce9023 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeAdsManager.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f98b6e56258b94b68824420aef1958b2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeViewCustomEvent.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeViewCustomEvent.h new file mode 100755 index 00000000..db920dd5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeViewCustomEvent.h @@ -0,0 +1,86 @@ +// +// WindNativeViewCustomEvent.h +// WindSDK +// +// Created by Codi on 2021/7/27. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import +#import + +extern NSString* const kWindNativeAdKeyVideoDuration; + +@protocol WindNativeViewCustomEvent + +- (instancetype)initWithFrame:(CGRect)frame connector:(id)connector; + +- (void)setNativeAd:(id)nativeAd options:(NSDictionary *)options; + +/* + * viewControllerForPresentingModalView + * 详解:开发者需传入用来弹出目标页的ViewController,一般为当前ViewController + */ +- (void)setViewController:(UIViewController *)viewController; + +- (void)setClickableViews:(NSArray *)clickableViews; + +/** + 注销数据对象,在 tableView、collectionView 等场景需要复用 WindNativeAdView 时, + 需要在合适的时机,例如 cell 的 prepareForReuse 方法内执行 unregisterDataObject 方法, + 将广告对象与 WindNativeAdView 解绑 + */ +- (void)unregisterDataObject; + +- (UIView *)mediaView; +- (UIView *)logoImageView; +- (UIButton *)dislikeButton; +- (UIImageView *)mainImageView; +- (UIImageView *)leftImageView; +- (UIImageView *)midImageView; +- (UIImageView *)rightImageView; + + +//**************************************************************************************************** + +/** + * 视频广告时长,单位 s + */ +- (CGFloat)videoDuration; + +/** + * 视频广告已播放时长,单位 s + */ +- (CGFloat)videoPlayTime; + +/** + 播放视频 + */ +- (void)play; + +/** + 暂停视频,调用 pause 后,需要被暂停的视频广告对象,不会再自动播放,需要调用 play 才能恢复播放。 + */ +- (void)pause; + +/** + 停止播放 + */ +- (void)stop; + +/** + 播放静音开关 + @param flag 是否静音 + */ +- (void)muteEnable:(BOOL)flag; + +/** + 自定义播放按钮 + + @param image 自定义播放按钮图片,不设置为默认图 + @param size 自定义播放按钮大小,不设置为默认大小 44 * 44 + */ +- (void)setPlayButtonImage:(UIImage *)image size:(CGSize)size; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeViewCustomEvent.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeViewCustomEvent.h.meta new file mode 100644 index 00000000..12e46d4e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindNativeViewCustomEvent.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f0603756917d24aa5914562f3ab685df +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardInfo.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardInfo.h new file mode 100755 index 00000000..21670a0c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardInfo.h @@ -0,0 +1,33 @@ +// +// WindRewardInfo.h +// HeMobTest +// +// Created by zhou.ding on 2017/5/3. +// Copyright © 2017年 happyelements. All rights reserved. +// + +#import + +@interface WindRewardInfo : NSObject +/** + * The ID of the reward as defind on Self Service + */ +@property (nonatomic, copy ) NSString *rewardId; + +/** + * The reward name as defined on Self Service + */ +@property (nonatomic, copy ) NSString *rewardName; + +/** + * Amount of reward type given to the user + */ +@property (nonatomic, assign) NSInteger rewardAmount; + + +/** + The isCompeltedView is Tell you if you've finished watching video. + */ +@property (nonatomic,assign) BOOL isCompeltedView; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardInfo.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardInfo.h.meta new file mode 100644 index 00000000..61eef0d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardInfo.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 08e1497be0c6644158b95a8cf44e0074 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardVideoAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardVideoAd.h new file mode 100755 index 00000000..8974664b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardVideoAd.h @@ -0,0 +1,90 @@ +// +// WindRewardVideoAd.h +// WindSDK +// +// Created by Codi on 2021/4/19. +// Copyright © 2021 Codi. All rights reserved. +// + +#import +#import + +@class WindAdRequest; +@class WindRewardInfo; +@class WindRewardVideoAd; + +@protocol WindRewardVideoAdDelegate + +/** + This method is called when video ad material loaded successfully. + */ +- (void)rewardVideoAdDidLoad:(WindRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)rewardVideoAdDidLoad:(WindRewardVideoAd *)rewardVideoAd didFailWithError:(NSError *)error; + +/** + This method is called when video ad slot will be showing. + */ +- (void)rewardVideoAdWillVisible:(WindRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad slot has been shown. + */ +- (void)rewardVideoAdDidVisible:(WindRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)rewardVideoAdDidClick:(WindRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad is clicked skip button. + */ +- (void)rewardVideoAdDidClickSkip:(WindRewardVideoAd *)rewardVideoAd; + +/** + This method is called when video ad is about to close. + */ +- (void)rewardVideoAdDidClose:(WindRewardVideoAd *)rewardVideoAd reward:(WindRewardInfo *)reward; + +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)rewardVideoAdDidPlayFinish:(WindRewardVideoAd *)rewardVideoAd didFailWithError:(NSError *)error; + +/** + This method is called when return ads from sigmob ad server. + */ +- (void)rewardVideoAdServerResponse:(WindRewardVideoAd *)rewardVideoAd isFillAd:(BOOL)isFillAd; + + + +@end + +@interface WindRewardVideoAd : NSObject + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, strong, readonly) NSString *placementId; + +@property (nonatomic, getter=isAdReady, readonly) BOOL ready; + + +- (instancetype)initWithPlacementId:(NSString *)placementId request:(WindAdRequest *)request; + +- (void)loadAdData; + +/** + Display video ad. + @param rootViewController : root view controller for displaying ad. + @param extras : Extended parameters for displaying ad. + */ +- (void)showAdFromRootViewController:(UIViewController *)rootViewController + options:(NSDictionary *)extras; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardVideoAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardVideoAd.h.meta new file mode 100644 index 00000000..cf40cce7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardVideoAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 14c8633f9d4b54808afbd0f16e3ec6d9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardedVideoConnector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardedVideoConnector.h new file mode 100755 index 00000000..1f071481 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardedVideoConnector.h @@ -0,0 +1,24 @@ +// +// WindRewardedVideoConnector.h +// WindSDK +// +// Created by Codi on 2021/4/20. +// Copyright © 2021 Codi. All rights reserved. +// + +#import + +@class WindRewardInfo; + + +@protocol WindRewardedVideoConnector + + +/** + * 广告关闭回调 + */ +- (void)adapterDidClosed:(WADStrategy *)strategy reward:(WindRewardInfo *)reward; + + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardedVideoConnector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardedVideoConnector.h.meta new file mode 100644 index 00000000..e33dce53 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindRewardedVideoConnector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cfac92c7ce8eb4cf588e505c7ae93b31 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDK.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDK.h new file mode 100755 index 00000000..b8e503fd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDK.h @@ -0,0 +1,37 @@ +// +// WindSDK.h +// WindSDK +// +// Created by happyelements on 2018/4/8. +// Copyright © 2018 Codi. All rights reserved. +// + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDK.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDK.h.meta new file mode 100644 index 00000000..94773a43 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDK.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 12f99c74e86e24c6d86572e080c508db +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDKDefines.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDKDefines.h new file mode 100755 index 00000000..eec11ae4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDKDefines.h @@ -0,0 +1,16 @@ +// +// WindSDKDefines.h +// WindSDK +// +// Created by Codi on 2021/7/28. +// Copyright © 2021 Codi. All rights reserved. +// + +typedef NS_ENUM(NSUInteger, WindMediaPlayerStatus) { + WindMediaPlayerStatusInitial = 0, // 初始状态 + WindMediaPlayerStatusLoading = 1, // 加载中 + WindMediaPlayerStatusStarted = 2, // 开始播放 + WindMediaPlayerStatusPaused = 3, // 用户行为导致暂停 + WindMediaPlayerStatusError = 4, // 播放出错 + WindMediaPlayerStatusStoped = 5, // 播放停止 +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDKDefines.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDKDefines.h.meta new file mode 100644 index 00000000..5cdd1c01 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSDKDefines.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5defc669d862a40e8a540bbe877c154d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAd.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAd.h new file mode 100755 index 00000000..d8a9f5e5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAd.h @@ -0,0 +1,174 @@ +// +// WindSplashAd.h +// WindSDK +// +// Created by happyelements on 2018/7/30. +// Copyright © 2018 Codi. All rights reserved. +// + +#import +#import + +@class WindSplashAd; + +extern NSString * const kSMSplashExtraAdSize; +extern NSString * const kSMSplashExtraRootViewController; + +@protocol WindSplashAdDelegate + +@optional +/** + * 开屏广告素材加载成功 + */ +- (void)onSplashAdDidLoad:(WindSplashAd *)splashAd; + +/** + * 开屏广告展示失败 + */ +-(void)onSplashAdLoadFail:(WindSplashAd *)splashAd error:(NSError *)error; + +/** + * 开屏广告成功展示 + */ +-(void)onSplashAdSuccessPresentScreen:(WindSplashAd *)splashAd; + +/** + * 开屏广告展示失败 + */ +-(void)onSplashAdFailToPresent:(WindSplashAd *)splashAd withError:(NSError *)error; + + +/** + * 开屏广告点击回调 + */ +- (void)onSplashAdClicked:(WindSplashAd *)splashAd; + + +/** + * 开屏广告点击跳过 + */ +- (void)onSplashAdSkiped:(WindSplashAd *)splashAd; + +/** + * 开屏广告将要关闭回调 + */ +- (void)onSplashAdWillClosed:(WindSplashAd *)splashAd; + +/** + * 开屏广告关闭回调 + */ +- (void)onSplashAdClosed:(WindSplashAd *)splashAd; + +@end + +@interface WindSplashAd : NSObject + +@property (nonatomic,weak) id delegate; + +/** + * 拉取广告超时时间,默认为3秒 + * 详解:拉取广告超时时间,开发者调用loadAd方法以后会立即展示app的启动图,然后在该超时时间内,如果广告拉 + * 取成功,则立马展示开屏广告,否则放弃此次广告展示机会。 + */ +@property (nonatomic, assign) int fetchDelay; + +/** + * 取消关闭动画 default = NO + */ +@property (nonatomic, assign) BOOL cancelClosedAnimate; + + +/** + * 开屏广告的背景色 + * 可以设置开屏图片来作为开屏加载时的默认图片 + */ +@property (nonatomic, copy) UIColor *backgroundColor; + +@property (nonatomic,strong, readonly) NSString *placementId; + +@property (nonatomic,strong) NSString *userId; + + + +/** + * 返回广告是否可展示 + * 对于并行请求,在调用showAdInWindow前时需判断下 + * @return 当广告已经加载完成且未曝光时,为YES,否则为NO + */ +- (BOOL)isAdReady; + + +/** + 初始化splash ad对象(如果是加载后自动播放,请使用该构造函数) + @param placementId 广告位ID + */ +- (instancetype)initWithPlacementId:(NSString *)placementId; + +/** + * 广告发起请求并展示在Window中 + * 详解:[可选]发起拉取广告请求,并将获取的广告以全屏形式展示在传入的Window参数中 + */ +-(void)loadAdAndShow; + + +/** + * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面或是自定义View + * 详解:[可选]发起拉取广告请求,并将获取的广告以半屏形式展示在传入的Window的上半部,剩余部分展示传入的bottomView + * 请注意bottomView需设置好宽高,所占的空间不能过大,并保证广告界面的高度大于360 + * @param bottomView 自定义底部View,可以在此View中设置应用Logo + * + */ +-(void)loadAdAndShowWithBottomView:(UIView *)bottomView; + + + +/** + * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面 + * 详解:[logo会自动读取应用图标] + * + @param title 设置标题 + @param description 设置描述信息 + */ +- (void)loadADAndShowWithTitle:(NSString *)title description:(NSString *)description; + + + + +//////////////////////////////////////////////////////////////////////////////////////////////////// + + +/** + 初始化splash ad对象(如果是加载和播放分开处理,请使用该构造函数) + @param placementId 广告位ID + @param extra 各个平台需要的扩展参数,可以根据聚合的平台设置, + 详细参考在线文档:http://docs.sigmob.cn/#/sdk/SDK%E6%8E%A5%E5%85%A5/ios/ + extra: 中必填参数:kSMSplashExtraRootViewController & kSMSplashExtraAdSize + extra参数介绍:https://support.sigmob.com/#/sdk%E9%9B%86%E6%88%90/iOS/%E5%B9%BF%E5%91%8A%E5%BD%A2%E5%BC%8F%E5%8F%8A%E6%8E%A5%E5%85%A5/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/?id=extra-%e5%8f%82%e6%95%b0%e4%bb%8b%e7%bb%8d + */ +- (instancetype)initWithPlacementId:(NSString *)placementId + extra:(NSDictionary *)extra; + +/** + * 发起拉取广告请求,只拉取不展示 + * 详解:广告素材及广告图片拉取成功后会回调onSplashAdDidLoad方法,当拉取失败时会回调onSplashAdFailToPresent方法 + */ +- (void)loadAd; + +/** + * 展示广告,调用此方法前需调用isAdValid方法判断广告素材是否有效 + * 详解:广告展示成功时会回调onSplashAdSuccessPresentScreen方法,展示失败时会回调onSplashAdFailToPresent方法 + */ +- (void)showAdInWindow:(UIWindow *)window withBottomView:(UIView *)bottomView; + + +/** + * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面 + * 详解:[logo会自动读取应用图标],请中高度位100,宽度为屏幕宽度 + * + @param window 容器 + @param title 设置标题 + @param desc 设置描述信息 + */ +- (void)showAdInWindow:(UIWindow *)window title:(NSString *)title desc:(NSString *)desc; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAd.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAd.h.meta new file mode 100644 index 00000000..07d1de3d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAd.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5f7f22499566d46e88d78002a67c20f9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdAdapter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdAdapter.h new file mode 100755 index 00000000..a03ea553 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdAdapter.h @@ -0,0 +1,28 @@ +// +// WindSplashAdAdapter.h +// WindSDK +// +// Created by happyelements on 2018/8/1. +// Copyright © 2018 Codi. All rights reserved. +// + + +#import + +@class WADStrategy; +@protocol WindAdAdapter; + +@protocol WindSplashAdAdapter + +-(void)loadAdAndShow:(WADStrategy *)strategy + logoView:(UIView *)bottomView + options:(NSDictionary *)options; + +-(void)show:(WADStrategy *)strategy + window:(UIWindow *)window +bottomView:(UIView *)bottomView + options:(NSDictionary *)options; + + + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdAdapter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdAdapter.h.meta new file mode 100644 index 00000000..3106542e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdAdapter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b009bc6ad22f349c88031d5b2381704e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdConnector.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdConnector.h new file mode 100755 index 00000000..d6b4abbd --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdConnector.h @@ -0,0 +1,28 @@ +// +// Header.h +// WindSDK +// +// Created by happyelements on 2018/8/1. +// Copyright © 2018 Codi. All rights reserved. +// + +#import + +@class WADStrategy; + +@protocol WindSplashAdConnector + +@required +- (UIViewController *)showInWindowTopViewController:(UIWindow *)window; + +@optional +/** + * 广告即将关闭 + */ +- (void)adapterWillClose:(WADStrategy *)strategy; +/** + * 广告已关闭 + */ +- (void)adapterDidClose:(WADStrategy *)strategy; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdConnector.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdConnector.h.meta new file mode 100644 index 00000000..e2e86c7e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Headers/WindSplashAdConnector.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1e6f0ca8db64241e193998b24a8ec104 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules.meta new file mode 100644 index 00000000..28c83bdc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 650844e7423e2469eb27f5437f85fae2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules/module.modulemap new file mode 100755 index 00000000..c685fc14 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module WindSDK { + umbrella header "WindSDK.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..7e088b37 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eb49bdce187844c9095ce44ff79fac6b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/WindSDK b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/WindSDK new file mode 100755 index 00000000..9919fe8f Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/WindSDK differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/WindSDK.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/WindSDK.meta new file mode 100644 index 00000000..9247cfe9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/sigmob/WindSDK.framework/WindSDK.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 19198cc9c88bd42aabf5360c5bd89799 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads.meta new file mode 100644 index 00000000..25548b50 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 52cb327d345f84792a6271fd581a8c58 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework.meta new file mode 100644 index 00000000..9b471f51 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: f5f5f2e440bd64356b5638bac13831c9 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/AnyThinkUnityAdsAdapter b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/AnyThinkUnityAdsAdapter new file mode 100755 index 00000000..0578017a Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/AnyThinkUnityAdsAdapter differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/AnyThinkUnityAdsAdapter.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/AnyThinkUnityAdsAdapter.meta new file mode 100644 index 00000000..cc7bd31e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/AnyThinkUnityAdsAdapter.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bdb70176b232544ddbdffa9a33cc0a0b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers.meta new file mode 100644 index 00000000..e856866c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6a16303464da43ebac15d779e93f6af +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers/AnyThinkUnityAdsAdapter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers/AnyThinkUnityAdsAdapter.h new file mode 100755 index 00000000..11d2f6a4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers/AnyThinkUnityAdsAdapter.h @@ -0,0 +1,19 @@ +// +// AnyThinkUnityAdsAdapter.h +// AnyThinkUnityAdsAdapter +// +// Created by Topon on 11/16/20. +// Copyright © 2020 AnyThink. All rights reserved. +// + +#import + +//! Project version number for AnyThinkUnityAdsAdapter. +FOUNDATION_EXPORT double AnyThinkUnityAdsAdapterVersionNumber; + +//! Project version string for AnyThinkUnityAdsAdapter. +FOUNDATION_EXPORT const unsigned char AnyThinkUnityAdsAdapterVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers/AnyThinkUnityAdsAdapter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers/AnyThinkUnityAdsAdapter.h.meta new file mode 100644 index 00000000..d4a166e0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Headers/AnyThinkUnityAdsAdapter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 508a0ae52bc364365854baebc73f2ba9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Info.plist b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Info.plist new file mode 100755 index 00000000..3b4fec26 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Info.plist differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Info.plist.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Info.plist.meta new file mode 100644 index 00000000..d3de16bf --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cabe40fdf7cdf41e0b51a8db36aa98af +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules.meta new file mode 100644 index 00000000..a56559f0 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: af0982306c1d7461a9ced2545abcb02e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules/module.modulemap new file mode 100755 index 00000000..2bec420d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module AnyThinkUnityAdsAdapter { + umbrella header "AnyThinkUnityAdsAdapter.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..e2eb0b34 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/AnyThinkUnityAdsAdapter.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d9b23db4f5f284ddd8b28818bed3edf4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework.meta new file mode 100644 index 00000000..2652ba95 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 74c7fe015f36541508cd17c7a5f7d047 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers.meta new file mode 100644 index 00000000..2023ff4a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 39d904646952a4c2e9494ffd9c093697 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBanner.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBanner.h new file mode 100755 index 00000000..b130e569 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBanner.h @@ -0,0 +1,54 @@ +#include +#include + +NS_ASSUME_NONNULL_BEGIN + +/** + * An enumeration for the various ways to position the Unity Ads banner placement. + */ +typedef NS_ENUM (NSInteger, UnityAdsBannerPosition) { + kUnityAdsBannerPositionTopLeft, + kUnityAdsBannerPositionTopCenter, + kUnityAdsBannerPositionTopRight, + kUnityAdsBannerPositionBottomLeft, + kUnityAdsBannerPositionBottomCenter, + kUnityAdsBannerPositionBottomRight, + kUnityAdsBannerPositionCenter, + kUnityAdsBannerPositionNone +}; + +/** + * UnityAdsBanner is a static class for handling showing and hiding the Unity Ads banner. + */ + +@interface UnityAdsBanner : NSObject +/* + * Loads the banner with the given placement. + * @param placementId The placement ID, as defined in the Unity Ads admin tools. + */ ++ (void)loadBanner: (nonnull NSString *)placementId __attribute__((deprecated)); + +/** + * Destroys the current banner placement. + */ ++ (void) destroy __attribute__((deprecated)); + ++ (void)setBannerPosition: (UnityAdsBannerPosition)bannerPosition __attribute__((deprecated)); + +/** + * Provides the currently assigned `UnityAdsBannerDelegate`. + * + * @return The current `UnityAdsBannerDelegate`. + */ ++ (nullable id )getDelegate __attribute__((deprecated)); + +/** + * Asigns the banner delegate. + * + * @param delegate The new `UnityAdsBannerDelegate' for UnityAds to send banner callbacks to. + */ ++ (void)setDelegate: (id )delegate __attribute__((deprecated)); + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBanner.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBanner.h.meta new file mode 100644 index 00000000..a039f5e5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBanner.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f3fc333c8521441d594f0e731d378ee2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerAdRefreshViewDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerAdRefreshViewDelegate.h new file mode 100755 index 00000000..76e630df --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerAdRefreshViewDelegate.h @@ -0,0 +1,54 @@ +#import + +@class UADSBannerAdRefreshView; + +/** + * UADSBannerAdRefreshViewDelegate is a delegate class for callbacks from Unity Ads Refresh Banner operations. + */ +@protocol UADSBannerAdRefreshViewDelegate + +@optional +/** + * Called when the banner is loaded and ready to be placed in the view hierarchy. + * + * @param bannerAdRefreshView UADSBannerAdRefreshView that is to be placed in the view hierarchy. + */ +- (void)unityAdsRefreshBannerDidLoad: (UADSBannerAdRefreshView *)bannerAdRefreshView; + +/** + * Called when the banner fails to fill. + * + * @param bannerAdRefreshView UADSBannerAdRefreshView that load was called on and failed to fill. + */ +- (void)unityAdsRefreshBannerDidNoFill: (UADSBannerAdRefreshView *)bannerAdRefreshView; + +/** + * Called when the banner is shown. + * + * @param bannerAdRefreshView UADSBannerAdRefreshView that was shown. + */ +- (void)unityAdsRefreshBannerDidShow: (UADSBannerAdRefreshView *)bannerAdRefreshView; + +/** + * Called when the banner is hidden. + * + * @param bannerAdRefreshView UADSBannerAdRefreshView that was hidden + */ +- (void)unityAdsRefreshBannerDidHide: (UADSBannerAdRefreshView *)bannerAdRefreshView; + +/** + * Called when the user clicks the banner. + * + * @param bannerAdRefreshView UADSBannerAdRefreshView that the click occurred on. + */ +- (void)unityAdsRefreshBannerDidClick: (UADSBannerAdRefreshView *)bannerAdRefreshView; + +/** + * Called when `UnityAdsBanner` encounters an error. All errors will be logged but this method can be used as an additional debugging aid. This callback can also be used for collecting statistics from different error scenarios. + * + * @param bannerAdRefreshView UADSBannerAdRefreshView that encountered an error. + * @param message A human readable string indicating the type of error encountered. + */ +- (void)unityAdsRefreshBannerDidError: (UADSBannerAdRefreshView *)bannerAdRefreshView message: (NSString *)message; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerAdRefreshViewDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerAdRefreshViewDelegate.h.meta new file mode 100644 index 00000000..4a9237f1 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerAdRefreshViewDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f2137cb08f8444d7ba422efa79b83e5a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerError.h new file mode 100755 index 00000000..e2c9ff5f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerError.h @@ -0,0 +1,18 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM (NSInteger, UADSBannerErrorCode) { + UADSBannerErrorCodeUnknown = 0, + UADSBannerErrorCodeNativeError = 1, + UADSBannerErrorCodeWebViewError = 2, + UADSBannerErrorCodeNoFillError = 3 +}; + +@interface UADSBannerError : NSError + +- (instancetype)initWithCode: (UADSBannerErrorCode)code userInfo: (nullable NSDictionary *)dict; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerError.h.meta new file mode 100644 index 00000000..615c0c9c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b66a90dac4f34dbc8d5503f045cd0fb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerView.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerView.h new file mode 100755 index 00000000..4be90c54 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerView.h @@ -0,0 +1,19 @@ +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UADSBannerView : UIView + +@property (nonatomic, readonly) CGSize size; +@property (nonatomic, readwrite, nullable, weak) NSObject *delegate; +@property (nonatomic, readonly) NSString *placementId; + +- (instancetype)initWithPlacementId: (NSString *)placementId size: (CGSize)size; + +- (void) load; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerView.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerView.h.meta new file mode 100644 index 00000000..f71596ff --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerView.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: befe02e7e4dd948babfb5ff2a3f89e24 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerViewDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerViewDelegate.h new file mode 100755 index 00000000..92ac983e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerViewDelegate.h @@ -0,0 +1,40 @@ +#import +#import + +@class UADSBannerView; + +/** + * UnityAdsBannerDelegate is a delegate class for callbacks from Unity Ads Banner operations. + */ +@protocol UADSBannerViewDelegate + +@optional +/** + * Called when the banner is loaded and ready to be placed in the view hierarchy. + * + * @param bannerView View that was loaded + */ +- (void)bannerViewDidLoad: (UADSBannerView *)bannerView; + +/** + * Called when the user clicks the banner. + * + * @param bannerView View that the click occurred on. + */ +- (void)bannerViewDidClick: (UADSBannerView *)bannerView; + +/** + * Called when a banner causes + * @param bannerView View that triggered leaving application + */ +- (void)bannerViewDidLeaveApplication: (UADSBannerView *)bannerView; + +/** + * Called when `UnityAdsBanner` encounters an error. All errors will be logged but this method can be used as an additional debugging aid. This callback can also be used for collecting statistics from different error scenarios. + * + * @param bannerView View that encountered an error. + * @param error UADSBannerError that occurred + */ +- (void)bannerViewDidError: (UADSBannerView *)bannerView error: (UADSBannerError *)error; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerViewDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerViewDelegate.h.meta new file mode 100644 index 00000000..9f07c0f4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBannerViewDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dfe5bace1d2674f9092fe58ff9dada3b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBaseOptions.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBaseOptions.h new file mode 100755 index 00000000..00af2c40 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBaseOptions.h @@ -0,0 +1,13 @@ + +@protocol UADSDictionaryConvertible +- (NSDictionary *)dictionary; +@end + +@interface UADSBaseOptions : NSObject + +@property (nonatomic, strong, readonly) NSDictionary *dictionary; +@property (nonatomic, readwrite) NSString *objectId; + +- (instancetype) init; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBaseOptions.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBaseOptions.h.meta new file mode 100644 index 00000000..db554814 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSBaseOptions.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d65742ed227f84a6cac70c77c443c4c2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSLoadOptions.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSLoadOptions.h new file mode 100755 index 00000000..39634135 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSLoadOptions.h @@ -0,0 +1,7 @@ +#import + +@interface UADSLoadOptions : UADSBaseOptions + +@property (nonatomic, readwrite) NSString *adMarkup; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSLoadOptions.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSLoadOptions.h.meta new file mode 100644 index 00000000..02052c0b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSLoadOptions.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6010dcceaf0c64975adefcfd78059152 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMediationMetaData.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMediationMetaData.h new file mode 100755 index 00000000..d2d2f789 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMediationMetaData.h @@ -0,0 +1,10 @@ +#import + +@interface UADSMediationMetaData : UADSMetaData + +- (void)setName: (NSString *)mediationNetworkName; +- (void)setVersion: (NSString *)mediationSdkVersion; +- (void)setOrdinal: (int)mediationOrdinal; +- (void)setMissedImpressionOrdinal: (int)missedImpressionOrdinal; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMediationMetaData.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMediationMetaData.h.meta new file mode 100644 index 00000000..03734925 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMediationMetaData.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb8ab3d2b3cad4f78bc3c5ff5b978b51 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMetaData.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMetaData.h new file mode 100755 index 00000000..99b7d218 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMetaData.h @@ -0,0 +1,11 @@ +#import + +@interface UADSMetaData : USRVJsonStorage + +@property (nonatomic, strong) NSString *category; + +- (instancetype)initWithCategory: (NSString *)category; +- (BOOL)setRaw: (NSString *)key value: (id)value; +- (void) commit; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMetaData.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMetaData.h.meta new file mode 100644 index 00000000..881b0d1b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSMetaData.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fc3053ead898a4720a20ed2e2dce9080 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSPlayerMetaData.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSPlayerMetaData.h new file mode 100755 index 00000000..932c6d3b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSPlayerMetaData.h @@ -0,0 +1,7 @@ +#import + +@interface UADSPlayerMetaData : UADSMetaData + +- (void)setServerId: (NSString *)serverId; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSPlayerMetaData.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSPlayerMetaData.h.meta new file mode 100644 index 00000000..5c095d51 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSPlayerMetaData.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 66c494a5c3c9c446392eb1c13463cb31 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSShowOptions.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSShowOptions.h new file mode 100755 index 00000000..5376932a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSShowOptions.h @@ -0,0 +1,5 @@ +#import + +@interface UADSShowOptions : UADSBaseOptions + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSShowOptions.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSShowOptions.h.meta new file mode 100644 index 00000000..f9100998 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UADSShowOptions.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6fa24916c5a554455874bed4d037ce57 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UANAApiAnalytics.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UANAApiAnalytics.h new file mode 100755 index 00000000..8ba75a2d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UANAApiAnalytics.h @@ -0,0 +1,14 @@ + +NS_ASSUME_NONNULL_BEGIN + +// C# +@protocol UANAEngineDelegate +- (void)addExtras: (NSString *)extras; +@end + +// Webview +@interface UANAApiAnalytics : NSObject ++ (void)setAnalyticsDelegate: (id )analyticsDelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UANAApiAnalytics.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UANAApiAnalytics.h.meta new file mode 100644 index 00000000..5564b1b5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UANAApiAnalytics.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b0819b43949874679a29f98e57ad7bf3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/USRVJsonStorage.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/USRVJsonStorage.h new file mode 100755 index 00000000..b65d32c4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/USRVJsonStorage.h @@ -0,0 +1,15 @@ +@interface USRVJsonStorage : NSObject + +@property (nonatomic, strong) NSMutableDictionary *storageContents; + +- (BOOL)set: (NSString *)key value: (id)value; +- (id)getValueForKey: (NSString *)key; +- (BOOL)deleteKey: (NSString *)key; +- (NSArray *)getKeys: (NSString *)key recursive: (BOOL)recursive; +- (void) clearData; +- (BOOL) initData; +- (BOOL) hasData; +- (void)setContents: (NSDictionary *)contents; +- (NSDictionary *)getContents; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/USRVJsonStorage.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/USRVJsonStorage.h.meta new file mode 100644 index 00000000..2e9d6fd5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/USRVJsonStorage.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 93124eb9c9a724db88ab24ccd51c0d10 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAds.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAds.h new file mode 100755 index 00000000..a696f0a3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAds.h @@ -0,0 +1,31 @@ +#import +/** + * This is an umbrella header, pls modify it with caution ;) + */ +#ifndef UnityAds_h +#define UnityAds_h + +FOUNDATION_EXPORT double UnityAdsModuleVersionNumber; +FOUNDATION_EXPORT const unsigned char UnityAdsModuleVersionString[]; + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#endif /* UnityAds_h */ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAds.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAds.h.meta new file mode 100644 index 00000000..445bb8ad --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAds.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d42cad4934f2b411896098eb1abd41d2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsBannerDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsBannerDelegate.h new file mode 100755 index 00000000..ad07a5d9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsBannerDelegate.h @@ -0,0 +1,51 @@ +#import + +/** + * UnityAdsBannerDelegate is a delegate class for callbacks from Unity Ads Banner operations. + */ +@protocol UnityAdsBannerDelegate + +/** + * Called when the banner is loaded and ready to be placed in the view hierarchy. + * + * @param placementId The ID of the placement of the banner that is loaded. + * @param view View that is to be placed in the view hierarchy. + */ +- (void)unityAdsBannerDidLoad: (NSString *)placementId view: (UIView *)view; + +/** + * Called when the banner is unloaded and references to it should be discarded. + * The view provided in unityAdsBannerDidLoad will be removed from the view hierarchy before + * this method is called. + */ +- (void)unityAdsBannerDidUnload: (NSString *)placementId; + +/** + * Called when the banner is shown. + * + * @param placementId The ID of the placement that has shown. + */ +- (void)unityAdsBannerDidShow: (NSString *)placementId; + +/** + * Called when the banner is hidden. + * + * @param placementId the ID of the that has hidden. + */ +- (void)unityAdsBannerDidHide: (NSString *)placementId; + +/** + * Called when the user clicks the banner. + * + * @param placementId the ID of the placement that has been clicked. + */ +- (void)unityAdsBannerDidClick: (NSString *)placementId; + +/** + * Called when `UnityAdsBanner` encounters an error. All errors will be logged but this method can be used as an additional debugging aid. This callback can also be used for collecting statistics from different error scenarios. + * + * @param message A human readable string indicating the type of error encountered. + */ +- (void)unityAdsBannerDidError: (NSString *)message; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsBannerDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsBannerDelegate.h.meta new file mode 100644 index 00000000..dc4127d2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsBannerDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 80f66ad14027f4c0585bda49f7c08b53 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationDelegate.h new file mode 100755 index 00000000..a9d48577 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationDelegate.h @@ -0,0 +1,27 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * The `UnityAdsInitializationDelegate` defines the methods which will notify UnityAds + * has either successfully initialized or failed with error category and error message + */ + +@protocol UnityAdsInitializationDelegate +/** + * Called when `UnityAds` is successfully initialized + */ +- (void)initializationComplete; +/** + * Called when `UnityAds` is failed in initialization. + * @param error + * if `kUnityInitializationErrorInternalError`, initialization failed due to environment or internal services + * if `kUnityInitializationErrorInvalidArgument`, initialization failed due to invalid argument(e.g. game ID) + * if `kUnityInitializationErrorAdBlockerDetected`, initialization failed due to url being blocked + * @param message A human readable error message + */ +- (void)initializationFailed: (UnityAdsInitializationError)error withMessage: (NSString *)message; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationDelegate.h.meta new file mode 100644 index 00000000..64355f82 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1904fc7de72d542e0a0fcc7cba51f746 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationError.h new file mode 100755 index 00000000..179859f5 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationError.h @@ -0,0 +1,19 @@ +/** + * An enumeration for the error category of initialization errors + */ +typedef NS_ENUM (NSInteger, UnityAdsInitializationError) { + /** + * Error related to environment or internal services. + */ + kUnityInitializationErrorInternalError, + + /** + * Error related to invalid arguments + */ + kUnityInitializationErrorInvalidArgument, + + /** + * Error related to url being blocked + */ + kUnityInitializationErrorAdBlockerDetected +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationError.h.meta new file mode 100644 index 00000000..ebbd8e8f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsInitializationError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aba7564c47ab047d68ec8d05e06c81e3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadDelegate.h new file mode 100755 index 00000000..31bd8e63 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadDelegate.h @@ -0,0 +1,26 @@ +#import +NS_ASSUME_NONNULL_BEGIN + +/** + * The `UnityAdsLoadDelegate` protocol defines the required methods for receiving messages from UnityAds.load() method. + */ +@protocol UnityAdsLoadDelegate +/** + * Callback triggered when a load request has successfully filled the specified placementId with an ad that is ready to show. + * + * @param placementId The ID of the placement as defined in Unity Ads admin tools. + */ +- (void)unityAdsAdLoaded: (NSString *)placementId; + +/** + * Called when load request has failed to load an ad for a requested placement. + * @param placementId The ID of the placement as defined in Unity Ads admin tools. + * @param error UnityAdsLoadError + * @param message A human readable error message + */ +- (void)unityAdsAdFailedToLoad: (NSString *)placementId + withError: (UnityAdsLoadError)error + withMessage: (NSString *)message; +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadDelegate.h.meta new file mode 100644 index 00000000..75b0d474 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6cb8cca7c4e3647319c07532dd33af5d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadError.h new file mode 100755 index 00000000..db1d8fbc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadError.h @@ -0,0 +1,30 @@ +#import +/** + * An enumeration for the error category of load errors + */ +typedef NS_ENUM (NSInteger, UnityAdsLoadError) { + /** + * Error related to SDK not initialized + */ + kUnityAdsLoadErrorInitializeFailed, + + /** + * Error related to environment or internal services + */ + kUnityAdsLoadErrorInternal, + + /** + * Error related to invalid arguments + */ + kUnityAdsLoadErrorInvalidArgument, + + /** + * Error related to there being no ads available + */ + kUnityAdsLoadErrorNoFill, + + /** + * Error related to there being no ads available + */ + kUnityAdsLoadErrorTimeout, +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadError.h.meta new file mode 100644 index 00000000..ccc1230d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsLoadError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 194a5b729179b4619a0aa928c78097cd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowCompletionState.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowCompletionState.h new file mode 100755 index 00000000..b3f4b7a2 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowCompletionState.h @@ -0,0 +1,13 @@ +/** + * An enumeration for the show completion state of an ad. + */ +typedef NS_ENUM (NSInteger, UnityAdsShowCompletionState) { + /** + * A state that indicates that the user skipped the ad. + */ + kUnityShowCompletionStateSkipped, + /** + * A state that indicates that the ad was played entirely. + */ + kUnityShowCompletionStateCompleted +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowCompletionState.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowCompletionState.h.meta new file mode 100644 index 00000000..3e083bed --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowCompletionState.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fb1817a5e30d3460eaee7822cebcf16c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowDelegate.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowDelegate.h new file mode 100755 index 00000000..ebd18617 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowDelegate.h @@ -0,0 +1,45 @@ +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * The `UnityAdsShowDelegate` defines the methods which will notify UnityAds show call + * is either successfully completed with its completion state or failed with error category and error message + */ + +@protocol UnityAdsShowDelegate +/** + * Called when UnityAds completes show operation successfully for a placement with completion state. + * @param placementId The ID of the placement as defined in Unity Ads admin tools. + * @param state An enum value indicating the finish state of the ad. Possible values are `Completed`, `Skipped`. + */ +- (void)unityAdsShowComplete: (NSString *)placementId withFinishState: (UnityAdsShowCompletionState)state; +/** + * Called when UnityAds has failed to show a specific placement with an error message and error category. + * @param placementId The ID of the placement as defined in Unity Ads admin tools. + * @param error + * if `kUnityShowErrorNotInitialized`, show failed due to SDK not initialized. + * if `kUnityShowErrorNotReady`, show failed due to placement not being ready. + * if `kUnityShowErrorVideoPlayerError`, show failed due to video player. + * if `kUnityShowErrorInvalidArgument`, show failed due to invalid arguments. + * if `kUnityShowErrorNoConnection`, show failed due to internet connection. + * if `kUnityShowErrorAlreadyShowing`, show failed due to ad is already being showen. + * if `kUnityShowErrorInternalError`, show failed due to environment or internal services. + * @param message A human readable error message + */ +- (void)unityAdsShowFailed: (NSString *)placementId withError: (UnityAdsShowError)error withMessage: (NSString *)message; +/** + * Called when UnityAds has started to show ad with a specific placement. + * @param placementId The ID of the placement as defined in Unity Ads admin tools. + */ +- (void)unityAdsShowStart: (NSString *)placementId; +/** + * Called when UnityAds has received a click while showing ad with a specific placement. + * @param placementId The ID of the placement as defined in Unity Ads admin tools. + */ +- (void)unityAdsShowClick: (NSString *)placementId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowDelegate.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowDelegate.h.meta new file mode 100644 index 00000000..c74326a6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowDelegate.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6e4a97b3b10d147ab9370e745a86a2a0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowError.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowError.h new file mode 100755 index 00000000..8a62b20e --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowError.h @@ -0,0 +1,41 @@ +#import +/** + * An enumeration for the error category of show errors + */ + +typedef NS_ENUM (NSInteger, UnityAdsShowError) { + /** + * Error related to SDK not initialized + */ + kUnityShowErrorNotInitialized, + + /** + * Error related to placement not being ready + */ + kUnityShowErrorNotReady, + + /** + * Error related to video player + */ + kUnityShowErrorVideoPlayerError, + + /** + * Error related to invalid arguments + */ + kUnityShowErrorInvalidArgument, + + /** + * Error related to internet connection + */ + kUnityShowErrorNoConnection, + + /** + * Error related to ad is already being shown + */ + kUnityShowErrorAlreadyShowing, + + /** + * Error related to environment or internal services + */ + kUnityShowErrorInternalError +}; diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowError.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowError.h.meta new file mode 100644 index 00000000..fc88f756 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdsShowError.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: da7176fafb92045e192b3bf221a44d5e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdvertisement.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdvertisement.h new file mode 100755 index 00000000..df4eb552 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdvertisement.h @@ -0,0 +1,144 @@ +#import + +#import +#import +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * `UnityAds` is a static class with methods for preparing and showing ads. + */ + +@interface UnityAds : NSObject + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)initialize NS_UNAVAILABLE; + + +/** + * Initializes UnityAds. UnityAds should be initialized when app starts. + * + * @param gameId Unique identifier for a game, given by Unity Ads admin tools or Unity editor. + */ ++ (void)initialize: (NSString *)gameId; + +/** + * Initializes UnityAds. UnityAds should be initialized when app starts. + * + * @param gameId Unique identifier for a game, given by Unity Ads admin tools or Unity editor. + * @param initializationDelegate delegate for UnityAdsInitialization + */ ++ (void) initialize: (NSString *)gameId + initializationDelegate: (nullable id)initializationDelegate; + +/** + * Initializes UnityAds. UnityAds should be initialized when app starts. + * + * @param gameId Unique identifier for a game, given by Unity Ads admin tools or Unity editor. + * @param testMode Set this flag to `YES` to indicate test mode and show only test ads. + */ ++ (void)initialize: (NSString *)gameId + testMode: (BOOL)testMode; + +/** + * Initializes UnityAds. UnityAds should be initialized when app starts. + * + * @param gameId Unique identifier for a game, given by Unity Ads admin tools or Unity editor. + * @param testMode Set this flag to `YES` to indicate test mode and show only test ads. + * @param initializationDelegate delegate for UnityAdsInitialization + */ ++ (void) initialize: (NSString *)gameId + testMode: (BOOL)testMode + initializationDelegate: (nullable id)initializationDelegate; +/** + * Load a placement to make it available to show. Ads generally take a few seconds to finish loading before they can be shown. + * Note: The `load` API is in closed beta and available upon invite only. If you would like to be considered for the beta, please contact Unity Ads Support. + * + * @param placementId The placement ID, as defined in Unity Ads admin tools. + */ ++ (void)load: (NSString *)placementId; + +/** + * Load a placement to make it available to show. Ads generally take a few seconds to finish loading before they can be shown. + * + * @param placementId The placement ID, as defined in Unity Ads admin tools. + * @param loadDelegate The load delegate. + */ ++ (void) load: (NSString *)placementId + loadDelegate: (nullable id)loadDelegate; + +/** + * Load a placement to make it available to show. Ads generally take a few seconds to finish loading before they can be shown. + * + * @param placementId The placement ID, as defined in Unity Ads admin tools. + * @param options The load options. + * @param loadDelegate The load delegate. + */ ++ (void) load: (NSString *)placementId + options: (UADSLoadOptions *)options + loadDelegate: (nullable id)loadDelegate; + +/** + * Show an ad using the provided placement ID. + * + * @param viewController The `UIViewController` that is to present the ad view controller. + * @param placementId The placement ID, as defined in Unity Ads admin tools. + * @param showDelegate The show delegate. + */ ++ (void) show: (UIViewController *)viewController + placementId: (NSString *)placementId + showDelegate: (nullable id)showDelegate; + +/** + * Show an ad using the provided placement ID. + * + * @param viewController The `UIViewController` that is to present the ad view controller. + * @param placementId The placement ID, as defined in Unity Ads admin tools. + * @param options Additional options + * @param showDelegate The show delegate. + */ ++ (void) show: (UIViewController *)viewController + placementId: (NSString *)placementId + options: (UADSShowOptions *)options + showDelegate: (nullable id)showDelegate; + + ++ (BOOL) getDebugMode; +/** + * Set the logging verbosity of `UnityAds`. Debug mode indicates verbose logging. + * @warning Does not relate to test mode for ad content. + * @param enableDebugMode `YES` for verbose logging. + */ ++ (void)setDebugMode: (BOOL)enableDebugMode; +/** + * Check to see if the current device supports using Unity Ads. + * + * @return If `NO`, the current device cannot initialize `UnityAds` or show ads. + */ ++ (BOOL) isSupported; +/** + * Check the version of this `UnityAds` SDK + * + * @return String representing the current version name. + */ ++ (NSString *) getVersion; +/** + * Check that `UnityAds` has been initialized. This might be useful for debugging initialization problems. + * + * @return If `YES`, Unity Ads has been successfully initialized. + */ ++ (BOOL) isInitialized; +/** + * Get request token. + * + * @return Active token or null if no active token is available. + */ ++ (NSString *__nullable)getToken; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdvertisement.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdvertisement.h.meta new file mode 100644 index 00000000..d3915bfc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAdvertisement.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 55b5601149005421183e2236438df795 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalytics.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalytics.h new file mode 100755 index 00000000..5b086a0b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalytics.h @@ -0,0 +1,84 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * `UnityAnalytics` is a static class with methods for sending analytics events + */ +@interface UnityAnalytics : NSObject + +/** + * Sends an item acquired event to Unity Analytics + * + * @param transactionId Unique Identifier that can be used to identify the transaction in which the item was acquired. It is recommended to use the transactionId from the app store. + * @param itemId Identifier for the item that is acquired + * @param transactionContext Description about the game context in which the item was acquired. Example : "third_level_shop" + * @param level Developer defined level that the player was on when the item was acquired + * @param itemType Developer defined type that the item is grouped into + * @param amount Number of items acquired + * @param balance Number of items that the player now has after the transaction + * @param acquisitionType The type of acquisition : `kUnityAnalyticsAcquisitionTypeSoft` or `kUnityAnalyticsAcquisitionTypePremium` + */ ++ (void)onItemAcquired: (NSString *)transactionId itemId: (NSString *)itemId transactionContext: (NSString *)transactionContext level: (NSString *)level itemType: (NSString *)itemType amount: (float)amount balance: (float)balance acquisitionType: (UnityAnalyticsAcquisitionType)acquisitionType; + +/** + * Send an item spent event to Unity Analyitcs + * + * @param transactionId Unique Identifier that can be used to identify the transaction in which the item was spent. It is recommended to use the transactionId from the app store. + * @param itemId Identifier for the item that is spent + * @param transactionContext Description about the game context in which the item was spent. Example : "third_level_shop" + * @param level Developer defined level that the player was on when the item was spent + * @param itemType Developer defined type that the item is grouped into + * @param amount Number of items spent + * @param balance Number of items that the player now has after the transaction + * @param acquisitionType The type of acquisition : `kUnityAnalyticsAcquisitionTypeSoft` or `kUnityAnalyticsAcquisitionTypePremium` + */ ++ (void)onItemSpent: (NSString *)transactionId itemId: (NSString *)itemId transactionContext: (NSString *)transactionContext level: (NSString *)level itemType: (NSString *)itemType amount: (float)amount balance: (float)balance acquisitionType: (UnityAnalyticsAcquisitionType)acquisitionType; + +/** + * Sends a level fail event to Unity Analytics + * + * @param levelIndex The index for the level that the player failed + */ ++ (void)onLevelFail: (NSString *)levelIndex; + +/** + * Sends a level up event to Unity Analytics + * + * @param theNewLevelIndex The index for the new level that the player just unlocked + */ ++ (void)onLevelUp: (NSString *)theNewLevelIndex; + +/** + * Send an Ad Complete event to Unity Analytics + * + * @param placementId The Placement ID for the Ad + * @param network Add network name + * @param rewarded Boolean indicating if the Ad was rewarded or not + */ ++ (void)onAdComplete: (NSString *)placementId network: (NSString *)network rewarded: (BOOL)rewarded; + +/** + * Send an In App Purchase Transaction event to Unity Analytics + * + * @param productId The Product Id specified by the developer for a promo + * @param amount The price to purchase the promo + * @param currency The iso currency code for the amount + * @param isPromo A boolean specifying if the transaction came from a promo + * @param receipt A json string of containing information about the transaction + */ ++ (void)onIapTransaction: (NSString *)productId amount: (float)amount currency: (NSString *)currency isPromo: (BOOL)isPromo receipt: (NSString *)receipt; + +/** + * Send an analytics event. + * The dictionary structure must be 100% correct when using this method or the event will not be validated and sent. + * + * @param jsonObject Json dictionary with all necessary fields that will be sent to analytics + * + * @note It is strongly encouraged to use a specific event handler so that the event format is correct + */ ++ (void)onEvent: (NSDictionary *)jsonObject; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalytics.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalytics.h.meta new file mode 100644 index 00000000..2eb3988b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalytics.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1027e3bb02b8d4fa697ed528cfdffb94 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalyticsAcquisitionType.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalyticsAcquisitionType.h new file mode 100755 index 00000000..5fc3d57f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalyticsAcquisitionType.h @@ -0,0 +1,12 @@ + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM (NSInteger, UnityAnalyticsAcquisitionType) { + kUnityAnalyticsAcquisitionTypeUnset, + kUnityAnalyticsAcquisitionTypeSoft, + kUnityAnalyticsAcquisitionTypePremium +}; + +NSString * NSStringFromUnityAnalyticsAcquisitionType(UnityAnalyticsAcquisitionType); + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalyticsAcquisitionType.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalyticsAcquisitionType.h.meta new file mode 100644 index 00000000..65be2f29 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityAnalyticsAcquisitionType.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f32ca2a6f88f84b298e291b8a0c044af +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityServices.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityServices.h new file mode 100755 index 00000000..ce58bf92 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityServices.h @@ -0,0 +1,59 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UnityServices : NSObject + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)initialize NS_UNAVAILABLE; +/** + * Initializes UnityAds. UnityAds should be initialized when app starts. + * + * @param gameId Unique identifier for a game, given by Unity Ads admin tools or Unity editor. + * @param testMode Set this flag to `YES` to indicate test mode and show only test ads. + * @param initializationDelegate Delegate for UnityAdsInitializationDelegate callbacks + */ ++ (void) initialize: (NSString *)gameId + testMode: (BOOL)testMode + initializationDelegate: (nullable id)initializationDelegate; + +/** + * Get the current debug status of `UnityAds`. + * + * @return If `YES`, `UnityAds` will provide verbose logs. + */ ++ (BOOL) getDebugMode; + +/** + * Set the logging verbosity of `UnityAds`. Debug mode indicates verbose logging. + * @warning Does not relate to test mode for ad content. + * @param enableDebugMode `YES` for verbose logging. + */ ++ (void)setDebugMode: (BOOL)enableDebugMode; + +/** + * Check to see if the current device supports using Unity Ads. + * + * @return If `NO`, the current device cannot initialize `UnityAds` or show ads. + */ ++ (BOOL) isSupported; + +/** + * Check the version of this `UnityAds` SDK + * + * @return String representing the current version name. + */ ++ (NSString *)getVersion; + +/** + * Check that `UnityAds` has been initialized. This might be useful for debugging initialization problems. + * + * @return If `YES`, Unity Ads has been successfully initialized. + */ ++ (BOOL) isInitialized; + ++ (NSString *)createExpectedParametersString: (NSString *)fieldName current: (NSString *)current received: (NSString *)received; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityServices.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityServices.h.meta new file mode 100644 index 00000000..d391094b --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Headers/UnityServices.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d70159c440ec8482abe54876612cb573 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Info.plist b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Info.plist new file mode 100755 index 00000000..6f5a2f36 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Info.plist differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Info.plist.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Info.plist.meta new file mode 100644 index 00000000..53f90179 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4ebacb93bb6bd4a7baeb9d14b2ad1bf3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules.meta new file mode 100644 index 00000000..21129154 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3c24490dd9dff4052936ee6268c60bc7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules/module.modulemap new file mode 100755 index 00000000..932592c6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module UnityAds { + umbrella header "UnityAds.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..c26455cc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a058fb33ef0454148b363b328c6ce972 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/MuteSwitchDetection.aiff b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/MuteSwitchDetection.aiff new file mode 100755 index 00000000..cb4590da Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/MuteSwitchDetection.aiff differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/MuteSwitchDetection.aiff.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/MuteSwitchDetection.aiff.meta new file mode 100644 index 00000000..850aba79 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/MuteSwitchDetection.aiff.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 037b2f3a3812449c0adda5db45aee421 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/UnityAds b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/UnityAds new file mode 100755 index 00000000..7fce9932 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/UnityAds differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/UnityAds.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/UnityAds.meta new file mode 100644 index 00000000..e607e44f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/unityads/UnityAds.framework/UnityAds.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 346f9af19a1a642fab4409e1a13cfb8c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle.meta new file mode 100644 index 00000000..771a9b0f --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8fc0d1053f29f4e80a812ae3021ff584 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework.meta new file mode 100644 index 00000000..fb38bae9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: c792a49eb9965498184a05c668ad588d +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/AnyThinkVungleAdapter b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/AnyThinkVungleAdapter new file mode 100755 index 00000000..413cd57f Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/AnyThinkVungleAdapter differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/AnyThinkVungleAdapter.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/AnyThinkVungleAdapter.meta new file mode 100644 index 00000000..faac9b50 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/AnyThinkVungleAdapter.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b31dc04705f1649ae909de42beff14f2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers.meta new file mode 100644 index 00000000..7c0cd8ed --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0bcf1cab89004f60a8232792d396c8b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers/AnyThinkVungleAdapter.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers/AnyThinkVungleAdapter.h new file mode 100755 index 00000000..ab7382f4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers/AnyThinkVungleAdapter.h @@ -0,0 +1,19 @@ +// +// AnyThinkVungleAdapter.h +// AnyThinkVungleAdapter +// +// Created by Topon on 11/16/20. +// Copyright © 2020 AnyThink. All rights reserved. +// + +#import + +//! Project version number for AnyThinkVungleAdapter. +FOUNDATION_EXPORT double AnyThinkVungleAdapterVersionNumber; + +//! Project version string for AnyThinkVungleAdapter. +FOUNDATION_EXPORT const unsigned char AnyThinkVungleAdapterVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers/AnyThinkVungleAdapter.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers/AnyThinkVungleAdapter.h.meta new file mode 100644 index 00000000..98e6b1af --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Headers/AnyThinkVungleAdapter.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c28d7b6a57bab42b8a44b633ba3532eb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Info.plist b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Info.plist new file mode 100755 index 00000000..c8373dcf Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Info.plist differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Info.plist.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Info.plist.meta new file mode 100644 index 00000000..bb65b301 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8db7b62aa36924f69a5343142793c5ff +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules.meta new file mode 100644 index 00000000..82a1463a --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9cb87fd4856d4435b98c06c833cd012b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules/module.modulemap new file mode 100755 index 00000000..b5412747 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module AnyThinkVungleAdapter { + umbrella header "AnyThinkVungleAdapter.h" + + export * + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..e94c6233 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/AnyThinkVungleAdapter.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 897fa468d5f504b61abb844e1af5b2d2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework.meta new file mode 100644 index 00000000..e35b6af3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 366a6582384574944b086acdee6f71ea +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers.meta new file mode 100644 index 00000000..0cd47acb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0aea4de5ccaf34147b47a6ab67e13d96 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDK.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDK.h new file mode 100755 index 00000000..e0da23a7 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDK.h @@ -0,0 +1,440 @@ +// +// VungleSDK.h +// Vungle iOS SDK +// SDK Version: 6.10.6 +// +// Copyright (c) 2013-Present Vungle Inc. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * VungleViewInfo is a container object for state passed + * indicating how the play experience went + */ +@interface VungleViewInfo : NSObject + +/** + * Represents a BOOL whether or not the video can be considered a full view. + */ +@property (nonatomic, readonly) NSNumber *completedView; + +/** + * The time in seconds that the user watched the video. + */ +@property (nonatomic, readonly) NSNumber *playTime; + +/** + * Represents a BOOL whether or not the user clicked the download button. + */ +@property (nonatomic, readonly) NSNumber *didDownload; + +@end + +extern NSString *VungleSDKInitOptionKeyPriorityPlacementID; +extern NSString *VungleSDKInitOptionKeyPriorityPlacementAdSize; + +extern NSString *VungleSDKVersion; +extern NSString *VunglePlayAdOptionKeyIncentivizedAlertTitleText; +extern NSString *VunglePlayAdOptionKeyIncentivizedAlertBodyText; +extern NSString *VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText; +extern NSString *VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText; +extern NSString *VunglePlayAdOptionKeyOrientations; +extern NSString *VunglePlayAdOptionKeyStartMuted; +extern NSString *VunglePlayAdOptionKeyUser; +extern NSString *VunglePlayAdOptionKeyExtraInfoDictionary; +extern NSString *VunglePlayAdOptionKeyExtra1; +extern NSString *VunglePlayAdOptionKeyExtra2; +extern NSString *VunglePlayAdOptionKeyExtra3; +extern NSString *VunglePlayAdOptionKeyExtra4; +extern NSString *VunglePlayAdOptionKeyExtra5; +extern NSString *VunglePlayAdOptionKeyExtra6; +extern NSString *VunglePlayAdOptionKeyExtra7; +extern NSString *VunglePlayAdOptionKeyExtra8; +extern NSString *VunglePlayAdOptionKeyLargeButtons; +extern NSString *VunglePlayAdOptionKeyOrdinal; +extern NSString *VunglePlayAdOptionKeyFlexViewAutoDismissSeconds; + +typedef enum { + VungleSDKErrorInvalidPlayAdOption = 1, + VungleSDKErrorInvalidPlayAdExtraKey, + VungleSDKErrorCannotPlayAd, + VungleSDKErrorCannotPlayAdAlreadyPlaying, + VungleSDKErrorCannotPlayAdWaiting, + VungleSDKErrorInvalidAdTypeForFeedBasedAdExperience, + VungleSDKErrorNoAppID, + VungleSDKErrorFlexFeedContainerViewSizeError, + VungleSDKErrorFlexFeedContainerViewSizeRatioError, + InvalidPlacementsArray, + VungleSDKErrorInvalidiOSVersion, + VungleSDKErrorTopMostViewControllerMismatch, + VungleSDKErrorUnknownPlacementID, + VungleSDKErrorSDKNotInitialized, + VungleSDKErrorSleepingPlacement, + VungleSDKErrorNoAdsAvailable, + VungleSDKErrorNotEnoughFileSystemSize, + VungleDiscSpaceProviderErrorNoFileSystemAttributes, + VungleSDKErrorUnknownBannerSize, + VungleSDKResetPlacementForDifferentAdSize, + VungleSDKErrorSDKAlreadyInitializing, +} VungleSDKErrorCode; + +typedef NS_ENUM (NSInteger, VungleConsentStatus) { + VungleConsentAccepted = 1, + VungleConsentDenied, +}; + +typedef NS_ENUM (NSInteger, VungleCCPAStatus) { + VungleCCPAAccepted = 1, + VungleCCPADenied, +}; + +typedef NS_ENUM (NSInteger, VungleAdSize) { + VungleAdSizeUnknown = 1, + VungleAdSizeBanner, // width = 320.0f, .height = 50.0f + VungleAdSizeBannerShort, // width = 300.0f, .height = 50.0f + VungleAdSizeBannerLeaderboard, // width = 728.0f, .height = 90.0f +}; + +@protocol VungleSDKLogger +- (void)vungleSDKLog:(NSString *)message; +@end + +@class VungleSDK; + +@protocol VungleSDKDelegate +@optional + +/** + * If implemented, this will get called when the SDK has an ad ready to be displayed. Also it will + * get called with an argument `NO` for `isAdPlayable` when for some reason, there is + * no ad available, for instance there is a corrupt ad or the OS wiped the cache. + * Please note that receiving a `NO` here does not mean that you can't play an Ad: if you haven't + * opted-out of our Exchange, you might be able to get a streaming ad if you call `play`. + * @param isAdPlayable A boolean indicating if an ad is currently in a playable state + * @param placementID The ID of a placement which is ready to be played + * @param error The error that was encountered. This is only sent when the placementID is nil. + */ +- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID error:(nullable NSError *)error; + +- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID __attribute__((deprecated("Use vungleAdPlayabilityUpdate:isAdPlayable:plaementID:error: instead."))); +/** + * If implemented, this will get called when the SDK is about to show an ad. This point + * might be a good time to pause your game, and turn off any sound you might be playing. + * @param placementID The placement which is about to be shown. + */ +- (void)vungleWillShowAdForPlacementID:(nullable NSString *)placementID; + +/** + * If implemented, this will get called when the SDK has presented the view controller or the + * view that houses the ad. + * @param placementID The placement which is about to be shown. + */ +- (void)vungleDidShowAdForPlacementID:(nullable NSString *)placementID; + +/** + * If implemented, this will be called when the ad is first rendered for the specified placement. + * @NOTE: Please use this callback to track views. + * @param placementID The placement ID of the advertisement shown + */ +- (void)vungleAdViewedForPlacement:(NSString *)placementID; + +/** + * If implemented, this method gets called when a Vungle Ad Unit is about to be completely dismissed. + * At this point, it's recommended to resume your Game or App. + */ +- (void)vungleWillCloseAdForPlacementID:(nonnull NSString *)placementID; + +- (void)vungleWillCloseAdWithViewInfo:(nonnull VungleViewInfo *)info placementID:(nonnull NSString *)placementID __attribute__((deprecated("Use vungleWillCloseAdForPlacementID: instead."))); + +- (void)vungleSDKwillCloseAdWithViewInfo:(NSDictionary *)viewInfo + willPresentProductSheet:(BOOL)willPresentProductSheet __attribute__((deprecated("Use vungleWillCloseAdForPlacementID: instead."))); + +- (void)vungleSDKwillCloseProductSheet:(id)productSheet __attribute__((deprecated("Use vungleWillCloseAdForPlacementID: instead."))); + +/** + * If implemented, this method gets called when a Vungle Ad Unit has been completely dismissed. + * At this point, you can load another ad for non-auto-cached placement if necessary. + */ +- (void)vungleDidCloseAdForPlacementID:(nonnull NSString *)placementID; + +- (void)vungleDidCloseAdWithViewInfo:(nonnull VungleViewInfo *)info placementID:(nonnull NSString *)placementID __attribute__((deprecated("Use vungleDidCloseAdForPlacementID: instead."))); + +/** + * If implemented, this method gets called when user clicks the Vungle Ad. + * At this point, it's recommended to track the click event. + */ +- (void)vungleTrackClickForPlacementID:(nullable NSString *)placementID; + +/** + * If implemented, this method gets called when user taps the Vungle Ad + * which will cause them to leave the current application(e.g. the ad action + * opens the iTunes store, Mobile Safari, etc). + */ +- (void)vungleWillLeaveApplicationForPlacementID:(nullable NSString *)placementID; + +/** + * This method is called when the user should be rewarded for watching a Rewarded Video Ad. + * At this point, it's recommended to reward the user. + */ +- (void)vungleRewardUserForPlacementID:(nullable NSString *)placementID; + +/** + * If implemented, this will get called when VungleSDK has finished initialization. + * It's only at this point that one can call `playAd:options:placementID:error` + * and `loadPlacementWithID:` without getting initialization errors + */ +- (void)vungleSDKDidInitialize; + +/** + * If implemented, this will get called if the VungleSDK fails to initialize. + * The included NSError object should give some information as to the failure reason. + * @note If initialization fails, you will need to restart the VungleSDK. + */ +- (void)vungleSDKFailedToInitializeWithError:(NSError *)error; + +@end + +@interface VungleSDK : NSObject +@property (strong) NSDictionary *userData; +@property (nullable, strong) id delegate; +@property (atomic, readonly, getter = isInitialized) BOOL initialized; + +/** + * Used when background download has completed. + * @note This is sent by the + * application:handleEventsForBackgroundURLSession:completionHandler: + * and needs to be called in `URLSessionDidFinishEventsForBackgroundURLSession` +*/ +@property void (^backgroundURLSessionCompletionHandler)(void); + +/** + * Returns the singleton instance. + */ ++ (VungleSDK *)sharedSDK; + +/** + * Sets the publish IDFV flag + * This value is persistent and so may be set once. + * @param publish whether to publish the IDFV value + */ ++ (void)setPublishIDFV:(BOOL)publish; + +/** + * Returns the value of the persistent publish IDFV flag. + * @return the current value of the publish IDFV flag + */ ++ (BOOL)shouldPublishIDFV; + +/** + * Enable or disable background downloads. + * @note If enabled you must implement the `application:handleEventsForBackgroundURLSession:completionHandler:` + * in your AppDelegate class. Before the AppDelegate method returns, call the VungleSDK completion handler + * `backgroundURLSessionCompletionHandler`. + * @param enable YES to enable, NO to disable + */ ++ (void)enableBackgroundDownload:(BOOL)enable; + +/** + * Check to find out if background download is enabled. + * @return YES if background download is enabled, NO if not. + */ ++ (BOOL)backgroundDownloadEnabled; + +#pragma mark - Initialization +/** + * Initializes the SDK. You can get your app id on Vungle's dashboard: https://v.vungle.com + * @param appID the unique identifier for your app + * @param placements An array of strings representing placements defined in the dashboard. + * @param error An error object containing information about why initialization failed + * @return YES if the SDK has started, NO otherwise + */ +- (BOOL)startWithAppId:(nonnull NSString *)appID placements:(nullable NSArray *)placements error:(NSError **)error __attribute__((deprecated("Use startWithAppId:appID:error: instead."))); + +/** + * Initializes the SDK. You can get your app id on Vungle's dashboard: https://v.vungle.com + * @param appID the unique identifier for your app + * @param error An error object containing information about why initialization failed + * @return YES if the SDK has started, NO otherwise + */ +- (BOOL)startWithAppId:(nonnull NSString *)appID error:(NSError **)error; + +/** + * Initializes the SDK. You can get your app id on Vungle's dashboard: https://v.vungle.com + * @param appID the unique identifier for your app + * @param options A reference to an instance of NSDictionary with customized ad SDK initilize options + * @param error An error object containing information about why initialization failed + * @return YES if the SDK has started, NO otherwise + */ +- (BOOL)startWithAppId:(nonnull NSString *)appID options:(nullable NSDictionary *)options error:(NSError **)error; + +#pragma mark - Interstitial, Flex View Ad playback +/** + * Will play Ad Unit presenting it over the `controller` parameter + * @note This method should only be called using placements with `fullscreen` or `flexview` template types + * @param controller A subclass of UIViewController. Should correspond to the ViewControler at the top of the ViewController hierarchy + * @param options A reference to an instance of NSDictionary with customized ad playback options + * @param placementID The placement defined on the Vungle dashboard + * @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil + * @return YES/NO in case of success/error while presenting an AdUnit + * @warning Should be called from the main-thread. + */ +- (BOOL)playAd:(UIViewController *)controller options:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:(NSError *__autoreleasing _Nullable *_Nullable)error; + +#pragma mark - MREC / Banner Ad lifecycle +/** + * Pass in an UIView which acts as a container for the ad experience. This view container may be placed in random positions. + * @note This method should only be called using placements that have the `flexfeed` or `mrec` or `banner` template type. For + * the `mrec` template type, note that the UIView must have a width of 300 and a height of 250. If the view is provided without + * these dimensions, an error message will be returned and the ad will not be shown. For the `banner` template type, note that + * the UIView must have the same width and height as the banner size (320x50, 300x50, or 728x90) which you requested. If the + * view is provided with a different banner size, an error message will be returned and the ad will not be shown. + * @param publisherView container view in which an ad will be displayed + * @param options A reference to an instance of NSDictionary with customized ad playback options + * @param placementID The placement defined on the Vungle dashboard + * @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil + * @return YES/NO in case of success/error while presenting an AdUnit + */ +- (BOOL)addAdViewToView:(UIView *)publisherView withOptions:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:(NSError *__autoreleasing _Nullable *_Nullable)error; + +/** + * This method will dismiss the currently playing Flex View, Flex Feed, Banner or MREC advertisement. If you have added an + * advertisement with `addAdViewToView:` or you are playing a placement that has been configured as a Flex View, Flex Feed, + * Banner or MREC placement, then this method will remove the advertisement from the screen and perform any necessary clean up + * steps. + * + * This method will call the existing delegate callbacks as part of the lifecycle. + */ +- (void)finishedDisplayingAd __attribute((deprecated("Use finishDisplayingAd: with the placementID of the ad to finish."))); + +/** + * This method will dismiss the currently playing Flex View, Flex Feed, Banner or MREC advertisement with the placementId specified. + * If you have added an advertisement with `addAdViewToView:` or you are playing a placement that has been configured as a + * Flex View, Flex Feed, Banner or MREC placement, then this method will remove the advertisement from the screen and perform any + * necessary clean up steps. + * This method will call the existing delegate callbacks as part of the lifecycle. + * @param placementId Thje placement identifier for the ad to dismiss. + */ +- (void)finishDisplayingAd:(NSString *)placementId; + +#pragma mark - Placements support +/** + * Returns YES/NO when there is certainty that an ad will be able to play/can't play for a given placementID. + * @param placementID the specific ID of the placement you are trying to present + */ +- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID; + +/** +* (Overloaded method) + * Returns YES/NO when there is certainty that an ad will be able to play/can't play for a given placementID. + * @param size the VungleAdSize (enum) you would like to request (only for banner ad type at the moment) + * @param placementID the specific ID of the placement you are trying to present + */ +- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID withSize:(VungleAdSize)size; + +/** + * Prepares a placement when you know that you will want + * to show an ad experience tied to a specific placementID. + * @param placementID the specific ID of the placement you would like to present at some point soon + * @param error the NSError object that used to hold error generated + * @return NO if something goes immediately wrong with loading, YES otherwise + */ +- (BOOL)loadPlacementWithID:(NSString *)placementID error:(NSError **)error; + +/** + * (Overloaded method) + * Prepares a placement when you know that you will want + * to show an ad experience tied to a specific placementID. + * @param placementID the specific ID of the placement you would like to present at some point soon + * @param size the VungleAdSize (enum) you would like to request (only for banner ad type at the moment) + * @param error the NSError object that used to hold error generated + * @return NO if something goes immediately wrong with loading, YES otherwise + */ +- (BOOL)loadPlacementWithID:(NSString *)placementID withSize:(VungleAdSize)size error:(NSError **)error; + +#pragma mark - Utility methods + +/** + * @note This method replaces the `muted` property previously included in VungleSDK.h + * @note IT IS HIGHLY RECOMMENDED to set the muted property at the placement level using + * play options (key VunglePlayAdOptionKeyStartMuted). + * Assigning a value to this property will allow all ads played by the SDK to start muted, or + * unmuted. Once called, all ads will use the value provided until the SDK restarts, or until the + * method is called with a different value. + */ +- (void)setMuted:(BOOL)muted; + +/** + * Returns debug info. + */ +- (NSDictionary *)debugInfo; + +/** + * By default, logging is off. + */ +- (void)setLoggingEnabled:(BOOL)enable; + +/** + * Log a new message. The message will be sent to all loggers. + */ +- (void)log:(NSString *)message, ... NS_FORMAT_FUNCTION(1, 2); + +/** + * Attach a new logger. It will get called on every log generated by Vungle (internally and externally). + */ +- (void)attachLogger:(id )logger; + +/** + * Detaches a logger. Make sure to do this, otherwise you might leak memory. + */ +- (void)detachLogger:(id )logger; + +/** + * This only works on the simulator + */ +- (void)clearSleep; + +#pragma mark - GDPR support +/** + * This method takes the consent status of users. If consent is given, Vungle will be able to send targeted ads. + * @param status the enum to be set for user consent status. + * @param version the string to be set for publisher's consent version. It can be any string value. + */ +- (void)updateConsentStatus:(VungleConsentStatus)status consentMessageVersion:(NSString *)version; + +/** + * This method returns the current consent status for the user recorded in the SDK. If no status is found, + * the method returns 0. + */ +- (VungleConsentStatus)getCurrentConsentStatus; + +/** + * This method returns the current consent message version that recorded in the SDK. If not version info found, + * the method returns nil. + */ +- (NSString *)getConsentMessageVersion; + +#pragma mark - CCPA support +/** + * This method takes the CCPA status of users. If CCPA status is accepted, Vungle will be able to send targeted ads. + * @param status the enum to be set for user CCPA status. + */ +- (void)updateCCPAStatus:(VungleCCPAStatus)status; + +/** + * This method returns the current CCPA status for the user recorded in the SDK. If no status is found, + * the method returns 0. + */ +- (VungleCCPAStatus)getCurrentCCPAStatus; + +/** + * This method disables refresh functionality for all banner and MREC placements. + */ +- (void)disableBannerRefresh; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDK.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDK.h.meta new file mode 100644 index 00000000..a3dcfa28 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDK.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c68ba061968cb40c09798cbad3932861 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKCreativeTracking.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKCreativeTracking.h new file mode 100755 index 00000000..65f8ef6d --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKCreativeTracking.h @@ -0,0 +1,25 @@ +// +// VungleSDKCreativeTracking.h +// Vungle iOS SDK +// +// Copyright (c) 2013-Present Vungle Inc. All rights reserved. +// + +@protocol VungleSDKCreativeTracking + +@optional +/** + * If implemented, this will get called when the SDK has an ad ready to be displayed. + * The parameters will indicate that an ad associated with the included creative ID is + * ready to play for the specified placement reference ID. Both parameters should return + * a value if an ad is ready to be played. + * @param creativeID The creative ID of the ad unit that is ready to be played + * @param placementID The ID of a placement which is ready to be played + */ +- (void)vungleCreative:(nullable NSString *)creativeID readyForPlacement:(nullable NSString *)placementID; +@end + +@interface VungleSDK () +@property (nullable, weak) NSObject *creativeTrackingDelegate; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKCreativeTracking.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKCreativeTracking.h.meta new file mode 100644 index 00000000..306fb3b6 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKCreativeTracking.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1b520ddb1c9b546f7b88104eb61bf00e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKHeaderBidding.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKHeaderBidding.h new file mode 100755 index 00000000..ade46b66 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKHeaderBidding.h @@ -0,0 +1,245 @@ +// +// VungleSDKHeaderBidding.h +// Vungle iOS SDK +// +// Copyright (c) 2013-Present Vungle Inc. All rights reserved. +// + +#import +#import "VungleSDK.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol VungleSDKHeaderBidding; +@protocol VungleSDKHBDelegate; + +@interface VungleSDK () + +/** + * Setting this to a non-nil value will enabled header bidding and reporting + */ +@property (nonatomic, weak) NSObject *headerBiddingDelegate; + +/** + * Setting this to a non-nil value will enable header bidding SDK callbacks + */ +@property (nonatomic, weak) NSObject *sdkHBDelegate; + +/** + * This is a synchronous method to fetch a bid token for any placement. This method + * will return nil if it is unable to find a bid token, or a cached placement. + * + * @param placement The ID of a that has already been loaded placement + */ +- (NSString *)bidTokenForPlacement:(NSString *)placement __attribute__((deprecated("Use currentSuperToken to get all the participating bid Tokens."))); + +/** + * Prepares a placement when you know that you will want + * to show an ad experience tied to a specific placementID. + * @param placementID the specific ID of the placement you would like to present at some point soon + * @param adMarkup includes the adunit data of the placement you would like to present at some point soon + * @param error the NSError object that used to hold error generated + * @return NO if something goes immediately wrong with loading, YES otherwise + */ +- (BOOL)loadPlacementWithID:(nonnull NSString *)placementID adMarkup:(nullable NSString *)adMarkup error:(NSError *__autoreleasing _Nullable *_Nullable)error; + +/** + * (Overloaded method) + * Prepares a placement when you know that you will want + * to show an ad experience tied to a specific placementID. + * @param placementID the specific ID of the placement you would like to present at some point soon + * @param adMarkup includes the adunit data of the placement you would like to present at some point soon + * @param size the VungleAdSize (enum) you would like to request (only for banner ad type at the moment) + * @param error the NSError object that used to hold error generated + * @return NO if something goes immediately wrong with loading, YES otherwise + */ +- (BOOL)loadPlacementWithID:(nonnull NSString *)placementID adMarkup:(nullable NSString *)adMarkup withSize:(VungleAdSize)size error:(NSError *__autoreleasing _Nullable *_Nullable)error; + +/** + * Pass in an UIView which acts as a container for the ad experience. This view container may be placed in random positions. + * @note This method should only be called using placements that have the `flexfeed` or `mrec` or `banner` template type. For + * the `mrec` template type, note that the UIView must have a width of 300 and a height of 250. If the view is provided without + * these dimensions, an error message will be returned and the ad will not be shown. For the `banner` template type, note that + * the UIView must have the same width and height as the banner size (320x50, 300x50, or 728x90) which you requested. If the + * view is provided with a different banner size, an error message will be returned and the ad will not be shown. + * @param publisherView container view in which an ad will be displayed + * @param options A reference to an instance of NSDictionary with customized ad playback options + * @param placementID The placement defined on the Vungle dashboard + * @param adMarkup includes the adunit data of the placement + * @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil + * @return YES/NO in case of success/error while presenting an AdUnit + */ +- (BOOL)addAdViewToView:(UIView *)publisherView withOptions:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup error:(NSError *__autoreleasing _Nullable *_Nullable)error; + +/** + * Will play Ad Unit presenting it over the `controller` parameter + * @note This method should only be called using placements with `fullscreen` or `flexview` template types + * @param controller A subclass of UIViewController. Should correspond to the ViewControler at the top of the ViewController hierarchy + * @param options A reference to an instance of NSDictionary with customized ad playback options + * @param placementID The placement defined on the Vungle dashboard + * @param adMarkup includes the adunit data of the placement + * @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil + * @return YES/NO in case of success/error while presenting an AdUnit + * @warning Should be called from the main-thread. + */ +- (BOOL)playAd:(UIViewController *)controller options:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup error:(NSError *__autoreleasing _Nullable *_Nullable)error; + +/** + * Returns YES/NO when there is certainty that an ad will be able to play/can't play for a given placementID. + * @param placementID the specific ID of the placement + * @param adMarkup includes the adunit data of the placement + */ +- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** +* (Overloaded method) + * Returns YES/NO when there is certainty that an ad will be able to play/can't play for a given placementID. + * @param placementID the specific ID of the placement + * @param size the VungleAdSize (enum) you would like to request (only for banner ad type at the moment) + * @param adMarkup includes the adunit data of the placement + */ +- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID adMarkup:(nullable NSString *)adMarkup withSize:(VungleAdSize)size; + +/** + * This method will dismiss the currently playing Flex View, Flex Feed, Banner or MREC advertisement with the placementId specified. + * If you have added an advertisement with `addAdViewToView:` or you are playing a placement that has been configured as a + * Flex View, Flex Feed, Banner or MREC placement, then this method will remove the advertisement from the screen and perform any + * necessary clean up steps. + * This method will call the existing delegate callbacks as part of the lifecycle. + * @param placementId the specific ID of the placement + * @param adMarkup includes the adunit data of the placement + */ +- (void)finishDisplayingAd:(nonnull NSString *)placementId adMarkup:(nullable NSString *)adMarkup; + +/** + * This is a synchronous method to fetch super token. This method + * will return nil if it is unable to find an available token. + * + */ +- (NSString *)currentSuperToken; + +/** + * This is a synchronous method to fetch super token. This method + * will return nil if it is unable to find an available token. + * @param size Size limit of the supertoken needs to be returned + */ +- (NSString *)currentSuperTokenForSize:(NSInteger)size; + +@end + +@protocol VungleSDKHeaderBidding + +@optional +/** + * If implemented, this will be called as soon as the SDK receives a bidToken for a particular + * placement. Note that the placement is NOT available to playback until preparation. + * + * @param placement The ID of a placement which is ready to be played + * @param bidToken An encrypted bid token used to identify the placement through the auction + */ +- (void)placementWillBeginCaching:(NSString *)placement + withBidToken:(NSString *)bidToken __attribute__((deprecated("This delegate method will no longer be used in feature releases."))); + +/** + * If implemented, this will be called when the SDK has a placement fully prepared and cached + * to disk with a corresponding bid token. + * + * @param placement The ID of a placement which is ready to be played + * @param bidToken An encrypted bid token used to identify the placement through the auction + */ +- (void)placementPrepared:(NSString *)placement + withBidToken:(NSString *)bidToken __attribute__((deprecated("This delegate method will no longer be used in feature releases."))); + +@end + +@protocol VungleSDKHBDelegate + +@optional +/** + * If implemented, this will get called when the SDK has an ad ready to be displayed. Also it will + * get called with an argument `NO` for `isAdPlayable` when for some reason, there is + * no ad available, for instance there is a corrupt ad or the OS wiped the cache. + * Please note that receiving a `NO` here does not mean that you can't play an Ad: if you haven't + * opted-out of our Exchange, you might be able to get a streaming ad if you call `play`. + * @param isAdPlayable A boolean indicating if an ad is currently in a playable state + * @param placementID The ID of a placement which is ready to be played + * @param adMarkup The ad markup of an adUnit which is ready to be played. + * @param error The error that was encountered. This is only sent when the placementID is nil. + */ +- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup error:(nullable NSError *)error; + +/** + * If implemented, this will get called when the SDK is about to show an ad. This point + * might be a good time to pause your game, and turn off any sound you might be playing. + * @param placementID The placement which is about to be shown. + * @param adMarkup The ad markup of an adUnit which is about to be shown. + */ +- (void)vungleWillShowAdForPlacementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** + * If implemented, this will get called when the SDK has presented the view controller or the + * view that houses the ad. + * @param placementID The placement which is about to be shown. + * @param adMarkup The ad markup of an adUnit which is about to be shown.. + */ +- (void)vungleDidShowAdForPlacementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** + * If implemented, this will be called when the ad is first rendered for the specified placement. + * @NOTE: Please use this callback to track views. + * @param placementID The placement ID of the advertisement shown + * @param adMarkup The ad markup of the advertisement shown. + */ +- (void)vungleAdViewedForPlacementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** + * If implemented, this method gets called when a Vungle Ad Unit is about to be completely dismissed. + * At this point, it's recommended to resume your Game or App. + * @param placementID The placement ID of the advertisement about to be closed. + * @param adMarkup The ad markup of the advertisement about to be closed. + */ +- (void)vungleWillCloseAdForPlacementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** + * If implemented, this method gets called when a Vungle Ad Unit has been completely dismissed. + * At this point, you can load another ad for non-auto-cached placement if necessary. + * @param placementID The placement ID of the advertisement that has been closed. + * @param adMarkup The ad markup of the advertisement that has been closed. + */ +- (void)vungleDidCloseAdForPlacementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** + * If implemented, this method gets called when user clicks the Vungle Ad. + * At this point, it's recommended to track the click event. + * @param placementID The placement ID of the advertisement shown. + * @param adMarkup The ad markup of the advertisement shown + */ +- (void)vungleTrackClickForPlacementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** + * If implemented, this method gets called when user taps the Vungle Ad + * which will cause them to leave the current application(e.g. the ad action + * opens the iTunes store, Mobile Safari, etc). + * @param placementID The placement ID of the advertisement about to leave the current application. + * @param adMarkup The ad markup of the advertisement about to leave the current application. + */ +- (void)vungleWillLeaveApplicationForPlacementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** + * This method is called when the user should be rewarded for watching a Rewarded Video Ad. + * At this point, it's recommended to reward the user. + * @param placementID The placement ID of the advertisement shown. + * @param adMarkup The ad markup of the advertisement shown. + */ +- (void)vungleRewardUserForPlacementID:(nullable NSString *)placementID adMarkup:(nullable NSString *)adMarkup; + +/** + * This method is called when the publisher changes the placement state from HB to NON-HB or the other way. + * At this point, it's recommended to remove all the delegate object references related to placement. + * @param placementID The unique ID referred to the placement of the advertisement shown + */ +- (void)invalidateObjectsForPlacementID:(nullable NSString *)placementID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKHeaderBidding.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKHeaderBidding.h.meta new file mode 100644 index 00000000..a6ccd963 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKHeaderBidding.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7d5f387166db74d96a9a2396c302c097 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKNativeAds.h b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKNativeAds.h new file mode 100755 index 00000000..81af17d3 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKNativeAds.h @@ -0,0 +1,42 @@ +// +// VungleSDKNativeAdsD.h +// Vungle iOS SDK +// +// Created by Clarke Bishop on 6/4/18. +// Copyright © 2018 Vungle Inc. All rights reserved. +// + +#import +#import "VungleSDK.h" + +@protocol VungleSDKNativeAds + +/** + * If implemented, this will get called when the SDK has a placement that has triggered + * a URL launch that will take the user out of the application + * @param placement The ID of a placement which triggered the URL launch + */ +- (void)nativeAdsPlacementWillTriggerURLLaunch:(NSString *)placement; + +/** + * If implemented, this will get called when the SDK has successfully loaded an ad for + * the specified placement + * @param placement The ID of the placement that successfully loaded an ad + */ +- (void)nativeAdsPlacementDidLoadAd:(NSString *)placement; + +/** + * If implemented, this will get called when the SDK fails to load an ad for the + * specified placement + * @param placement The ID of the placement that failed to load an ad + * @param error The NSError object containing details of the failed attempt + */ +- (void)nativeAdsPlacement:(NSString *)placement didFailToLoadAdWithError:(NSError *)error; + +@end + +@interface VungleSDK () + +@property (nonatomic, weak) id nativeAdsDelegate; + +@end diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKNativeAds.h.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKNativeAds.h.meta new file mode 100644 index 00000000..e9433efc --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Headers/VungleSDKNativeAds.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bdee5dad2c61a40019c68a7b7b965981 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Info.plist b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Info.plist new file mode 100755 index 00000000..91f129ab Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Info.plist differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Info.plist.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Info.plist.meta new file mode 100644 index 00000000..0ad0ddeb --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 58c868f0d8b4349f29624f9200bbaa41 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules.meta new file mode 100644 index 00000000..f5429066 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65b5f23f258f24823841c77b058d605c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules/module.modulemap b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules/module.modulemap new file mode 100755 index 00000000..edc431f9 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules/module.modulemap @@ -0,0 +1,17 @@ +framework module VungleSDK { + umbrella header "VungleSDK.h" + + module VungleSDKCreativeTracking { + header "VungleSDKCreativeTracking.h" + } + + module VungleSDKNativeAds { + header "VungleSDKNativeAds.h" + } + + module VungleSDKHeaderBidding { + header "VungleSDKHeaderBidding.h" + } + + module * { export * } +} diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules/module.modulemap.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules/module.modulemap.meta new file mode 100644 index 00000000..2a12675c --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a375c6d3f86e4427facff884f8c56b26 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/VungleSDK b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/VungleSDK new file mode 100755 index 00000000..08fa6db1 Binary files /dev/null and b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/VungleSDK differ diff --git a/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/VungleSDK.meta b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/VungleSDK.meta new file mode 100644 index 00000000..e76de4b4 --- /dev/null +++ b/popcorn/Assets/JoyPacSDK/JoyPacAd/JoyPacAd/Plugins/iOS/Third/vungle/VungleSDK.framework/VungleSDK.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5e240cb875ada47a7ad0cb79c649da12 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: