com.azerion.bluestack 3.0.3 → 3.1.0-preview2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/Editor/Android/AndroidBuildPostProcess.cs +0 -1
  2. package/Editor/Android/AndroidDependency.cs +1 -2
  3. package/Editor/Android/AndroidDependencyModifier.cs +55 -0
  4. package/Editor/Android/AndroidDependencyModifier.cs.meta +3 -0
  5. package/Editor/Android/AndroidDependencyParser.cs +26 -1
  6. package/Editor/Android/ManifestProcessor.cs +2 -1
  7. package/Editor/Azerion.BlueStack.Editor.asmdef +14 -14
  8. package/Editor/BlueStackDependencies.xml +1 -1
  9. package/Editor/BlueStackMediationDependencies.xml +11 -0
  10. package/Editor/BlueStackMediationDependencies.xml.meta +7 -0
  11. package/Editor/BlueStackSettings.cs +21 -18
  12. package/Editor/BlueStackSettingsEditor.cs +64 -1
  13. package/Editor/DebugHelper.cs +2 -2
  14. package/Editor/Dependency.cs +1 -1
  15. package/Editor/DependencyProvider.cs +213 -2
  16. package/Editor/IDependencyModifier.cs +12 -0
  17. package/Editor/IDependencyModifier.cs.meta +11 -0
  18. package/Editor/IDependencyParser.cs +1 -0
  19. package/Editor/MediationNetworkDependency.cs +34 -0
  20. package/Editor/MediationNetworkDependency.cs.meta +3 -0
  21. package/Editor/iOS/IOSDependency.cs +12 -0
  22. package/Editor/iOS/IOSDependency.cs.meta +11 -0
  23. package/Editor/iOS/IOSDependencyModifier.cs +105 -0
  24. package/Editor/iOS/IOSDependencyModifier.cs.meta +3 -0
  25. package/Editor/iOS/IOSDependencyParser.cs +32 -0
  26. package/Editor/iOS/PodDependency/PodDependencyUtils.cs +5 -1
  27. package/Example/Azerion.BlueStack.Example.asmdef +14 -14
  28. package/Example/Scripts/NativeAdManager.cs +5 -7
  29. package/Example/Scripts/SmallNativeAdManager.cs +4 -6
  30. package/README.md +4 -1
  31. package/Runtime/API/AdSize.cs +2 -2
  32. package/Runtime/API/Banner/BannerAd.cs +1 -1
  33. package/Runtime/API/BlueStackAds.cs +7 -3
  34. package/Runtime/API/InterstitialAd.cs +20 -5
  35. package/Runtime/API/NativeAd/NativeAd.cs +20 -26
  36. package/Runtime/API/NativeAd/NativeAdEventArgs.cs +1 -5
  37. package/Runtime/API/NativeAd/NativeAdInteractionHandler.cs +176 -173
  38. package/Runtime/API/NativeAd/NativeAdLoader.cs +10 -14
  39. package/Runtime/API/NativeAd/NativeAdObject.cs +563 -547
  40. package/Runtime/API/NativeAd/NativeAdType.cs +6 -6
  41. package/Runtime/API/NativeAd/NativeAssetInfo.cs +28 -28
  42. package/Runtime/Azerion.BlueStack.asmdef +14 -14
  43. package/Runtime/Common/NativeAd/AdLoaderClientArgs.cs +8 -8
  44. package/Runtime/Common/NativeAd/AdsEventExecutor.cs +69 -68
  45. package/Runtime/Common/NativeAd/DummyNativeClient.cs +52 -52
  46. package/Runtime/Common/NativeAd/NativeClientEventArgs.cs +5 -5
  47. package/Runtime/Common/NativeAd/NativeUtils.cs +111 -107
  48. package/Runtime/Internal/IBannerAdClient.cs +1 -1
  49. package/Runtime/Internal/IBlueStackClient.cs +2 -1
  50. package/Runtime/Internal/NativeAd/IAdLoaderClient.cs +12 -12
  51. package/Runtime/Internal/NativeAd/INativeAdClient.cs +1 -1
  52. package/Runtime/Internal/NativeAd/INativeClientFactory.cs +5 -5
  53. package/Runtime/Platforms/Android/BlueStackClient.cs +2 -1
  54. package/Runtime/Platforms/Android/BlueStackNativeClassNames.cs +2 -1
  55. package/Runtime/Platforms/Unity/AdvertisementManager.cs +5 -4
  56. package/Runtime/Platforms/Unity/BannerAdClient.cs +16 -9
  57. package/Runtime/Platforms/Unity/BaseAdClient.cs +7 -5
  58. package/Runtime/Platforms/Unity/BlueStackClient.cs +4 -3
  59. package/Runtime/Platforms/Unity/ClientsFactory.cs +0 -1
  60. package/Runtime/Platforms/Unity/InitializationStatusClient.cs +1 -0
  61. package/Runtime/Platforms/Unity/InterstitialAdClient.cs +12 -6
  62. package/Runtime/Platforms/Unity/NativeAdClient.cs +16 -10
  63. package/Runtime/Platforms/Unity/RewardedVideoAdClient.cs +9 -3
  64. package/Runtime/Platforms/Unity/Utils.cs +7 -3
  65. package/Runtime/Platforms/iOS/BannerAdClient.cs +33 -24
  66. package/Runtime/Platforms/iOS/BlueStackClient.cs +14 -10
  67. package/Runtime/Platforms/iOS/ClientsFactory.cs +0 -2
  68. package/Runtime/Platforms/iOS/Externs.cs +72 -65
  69. package/Runtime/Platforms/iOS/InitializationStatusClient.cs +6 -5
  70. package/Runtime/Platforms/iOS/InterstitialAdClient.cs +27 -21
  71. package/Runtime/Platforms/iOS/NativeAdClient.cs +27 -22
  72. package/Runtime/Platforms/iOS/PreferenceClient.cs +1 -1
  73. package/Runtime/Platforms/iOS/RewardedVideoAdClient.cs +27 -20
  74. package/Runtime/Platforms/iOS/Utils.cs +6 -3
  75. package/Runtime/Utilities/MiniJSON.cs +12 -12
  76. package/package.json +1 -1
  77. package/Editor/iOS/Dependency.cs +0 -0
  78. package/Editor/iOS/Dependency.cs.meta +0 -3
@@ -7,176 +7,179 @@ using UnityEngine;
7
7
 
8
8
  namespace Azerion.BlueStack.API
9
9
  {
10
- public class NativeAdInteractionHandler
11
- {
12
- private INativeAdClient _nativeAdClient;
13
- private List<NativeAdObject> _nativeAdObjects;
14
-
15
- private INativeAdInteractionHandlerClient _nativeAdInteractionHandlerClient;
16
-
17
- // public NativeAdInteractionHandler(INativeAdInteractionHandlerClient interactionHandlerClient)
18
-
19
- private string _clickUrl;
20
- public NativeAdInteractionHandler(INativeAdClient nativeAdClient)
21
- {
22
- // _nativeAdInteractionHandlerClient = interactionHandlerClient;
23
- _nativeAdObjects = new List<NativeAdObject>();
24
- _nativeAdClient = nativeAdClient;
25
- }
26
-
27
- public bool RegisterImageGameObjects(GameObject gameObject)
28
- {
29
- return RegisterGameObject(gameObject, NativeAssetID.Image);
30
- }
31
-
32
- public bool RegisterIconImageGameObject(GameObject gameObject)
33
- {
34
- return RegisterGameObject(gameObject, NativeAssetID.Icon, true);
35
- }
36
-
37
- public bool RegisterAdChoicesLogoGameObject(GameObject gameObject)
38
- {
39
- return RegisterGameObject(gameObject, NativeAssetID.AdChoices);
40
- }
41
-
42
- public bool RegisterHeadlineTextGameObject(GameObject gameObject)
43
- {
44
- return RegisterGameObject(gameObject, NativeAssetID.Headline, true);
45
- }
46
-
47
- public bool RegisterBodyTextGameObject(GameObject gameObject)
48
- {
49
- return RegisterGameObject(gameObject, NativeAssetID.Body);
50
- }
51
-
52
- public bool RegisterCallToActionGameObject(GameObject gameObject)
53
- {
54
- return RegisterGameObject(gameObject, NativeAssetID.CallToAction, true, true);
55
- }
56
-
57
- public bool RegisterAdvertiserTextGameObject(GameObject gameObject)
58
- {
59
- return RegisterGameObject(gameObject, NativeAssetID.Advertiser, true);
60
- }
61
-
62
- public bool RegisterPriceGameObject(GameObject gameObject)
63
- {
64
- return RegisterGameObject(gameObject, NativeAssetID.Price);
65
- }
66
-
67
- public bool RegisterStoreGameObject(GameObject gameObject)
68
- {
69
- return RegisterGameObject(gameObject, NativeAssetID.Store);
70
- }
71
-
72
- private bool RegisterGameObject(GameObject adObject, NativeAssetID assetID, bool isImpressive = false, bool isClickable = false)
73
- {
74
- return Register(adObject, assetID.Value, isImpressive, isClickable); // replace with GetAssetIDMappings
75
- }
76
-
77
- private bool Register(GameObject adObject, string assetID, bool isImpressive, bool isClickable)
78
- {
79
- NativeAdObject nativeAdObject = adObject.GetComponent<NativeAdObject>();
80
- if (nativeAdObject != null)
81
- {
82
- UnityEngine.Object.DestroyImmediate(nativeAdObject);
83
- }
84
-
85
- nativeAdObject = adObject.AddComponent<NativeAdObject>();
86
- _nativeAdObjects.Add(nativeAdObject);
87
- nativeAdObject.OnAdDisplay += RecordImpression;
88
- nativeAdObject.OnAdClick += RecordClick;
89
- try
90
- {
91
- nativeAdObject.Initialize(assetID, isImpressive, isClickable);
92
- }
93
- catch (InvalidOperationException ex)
94
- {
95
- // Debug.LogWarning("Failed to Register " + assetID + " :" + ex.Message);
96
- UnityEngine.Object.Destroy(nativeAdObject);
97
- _nativeAdObjects.Remove(nativeAdObject);
98
- return false;
99
- }
100
-
101
- return true;
102
- }
103
-
104
- private bool impressionComplete = false;
105
- private bool clickComplete = false;
106
-
107
- internal void SetClickUrl(string url)
108
- {
109
- _clickUrl = url;
110
- }
111
-
112
- // Handle Ad Impression - Incomplete
113
- private void RecordImpression(object sender, EventArgs eventArgs)
114
- {
115
- List<string> requiredAssets = NativeAssetInfo.RequiredAssets;
116
- var successfulImpressiveAssets = _nativeAdObjects.Where(obj => requiredAssets.Contains(obj.ObjectTag) && obj.HasMadeImpression).Select(obj => obj.ObjectTag);
117
- impressionComplete = requiredAssets.All(tag => successfulImpressiveAssets.Contains(tag));
118
- // Debug.LogWarning("Is Impression check successful: " + impressionComplete);
119
-
120
- if(!impressionComplete) return;
121
-
122
- if (sender is NativeAdObject nativeAdObject)
123
- {
124
- _nativeAdClient.OnNativeAdImpression += (sender, args) =>
125
- {
126
- // Debug.LogWarning("InteractionHandlerClient: OnNativeAdImpression!");
127
- foreach (NativeAdObject adObject in _nativeAdObjects)
128
- {
129
- if (adObject != null)
130
- {
131
- AdsEventExecutor.ExecuteInUpdate(delegate { adObject.StopImpressionCheck(); });
132
- }
133
- }
134
- };
135
- _nativeAdClient.RecordImpression();
136
-
137
- // if (_nativeAdInteractionHandlerClient.RecordImpression(NativeAdInteractionUtils.CreateImpressionSignal(nativeAdObject, _nativeAdObjects)))
138
- // {
139
- // foreach (NativeAdObject adObject in _nativeAdObjects)
140
- // {
141
- // }
142
- // }
143
- }
144
- }
145
-
146
- // Handle Ad Clicked - Incomplete
147
- private void RecordClick(object sender, ClickEventArgs clickEventArgs)
148
- {
149
- // clickComplete = true;
150
- Debug.Log("Record Click!");
151
- // Debug.Log("Record Click: " + NativeAdInteractionUtils.BuildVersionString(NativeUtils.Version));
152
-
153
- if (sender is NativeAdObject nativeAdObject)
154
- {
155
- _nativeAdClient.OnNativeAdClicked += (sender, args) =>
156
- {
157
- // OpenURL();
158
- Debug.LogWarning("InteractionHandlerClient: OnNativeAdClicked!");
159
- };
160
- _nativeAdClient.PerformClick();
161
-
162
- // Dictionary<string, string> touchEventSignal =
163
- // NativeAdInteractionUtils.CreateTouchEventSignal(clickEventArgs.startClick, clickEventArgs.endClick);
164
- // Dictionary<string, object> clickSignal =
165
- // NativeAdInteractionUtils.CreateClickSignal(nativeAdObject, _nativeAdObjects, clickEventArgs.startClick, clickEventArgs.endClick);
166
- //
167
- // // _nativeAdInteractionHandlerClient.ReportTouchEvent(touchEventSignal);
168
- // Debug.LogWarning("InteractionHandlerClient: ReportTouchEvent!");
169
- // // _nativeAdInteractionHandlerClient.PerformClick(clickSignal);
170
- // Debug.LogWarning("InteractionHandlerClient: PerformClick!");
171
- // OpenURL();
172
- }
173
- }
174
-
175
- public void OpenURL()
176
- {
177
- Debug.Log("Opened URL");
178
- Application.OpenURL(_clickUrl);
179
- }
180
-
181
- }
182
- }
10
+ public class NativeAdInteractionHandler
11
+ {
12
+ private INativeAdClient _nativeAdClient;
13
+ private List<NativeAdObject> _nativeAdObjects;
14
+
15
+ private INativeAdInteractionHandlerClient _nativeAdInteractionHandlerClient;
16
+
17
+ // public NativeAdInteractionHandler(INativeAdInteractionHandlerClient interactionHandlerClient)
18
+
19
+ private string _clickUrl;
20
+
21
+ public NativeAdInteractionHandler(INativeAdClient nativeAdClient)
22
+ {
23
+ // _nativeAdInteractionHandlerClient = interactionHandlerClient;
24
+ _nativeAdObjects = new List<NativeAdObject>();
25
+ _nativeAdClient = nativeAdClient;
26
+ }
27
+
28
+ public bool RegisterImageGameObjects(GameObject gameObject)
29
+ {
30
+ return RegisterGameObject(gameObject, NativeAssetID.Image);
31
+ }
32
+
33
+ public bool RegisterIconImageGameObject(GameObject gameObject)
34
+ {
35
+ return RegisterGameObject(gameObject, NativeAssetID.Icon, true);
36
+ }
37
+
38
+ public bool RegisterAdChoicesLogoGameObject(GameObject gameObject)
39
+ {
40
+ return RegisterGameObject(gameObject, NativeAssetID.AdChoices);
41
+ }
42
+
43
+ public bool RegisterHeadlineTextGameObject(GameObject gameObject)
44
+ {
45
+ return RegisterGameObject(gameObject, NativeAssetID.Headline, true);
46
+ }
47
+
48
+ public bool RegisterBodyTextGameObject(GameObject gameObject)
49
+ {
50
+ return RegisterGameObject(gameObject, NativeAssetID.Body);
51
+ }
52
+
53
+ public bool RegisterCallToActionGameObject(GameObject gameObject)
54
+ {
55
+ return RegisterGameObject(gameObject, NativeAssetID.CallToAction, true, true);
56
+ }
57
+
58
+ public bool RegisterAdvertiserTextGameObject(GameObject gameObject)
59
+ {
60
+ return RegisterGameObject(gameObject, NativeAssetID.Advertiser, true);
61
+ }
62
+
63
+ public bool RegisterPriceGameObject(GameObject gameObject)
64
+ {
65
+ return RegisterGameObject(gameObject, NativeAssetID.Price);
66
+ }
67
+
68
+ public bool RegisterStoreGameObject(GameObject gameObject)
69
+ {
70
+ return RegisterGameObject(gameObject, NativeAssetID.Store);
71
+ }
72
+
73
+ private bool RegisterGameObject(GameObject adObject, NativeAssetID assetID, bool isImpressive = false,
74
+ bool isClickable = false)
75
+ {
76
+ return Register(adObject, assetID.Value, isImpressive, isClickable); // replace with GetAssetIDMappings
77
+ }
78
+
79
+ private bool Register(GameObject adObject, string assetID, bool isImpressive, bool isClickable)
80
+ {
81
+ NativeAdObject nativeAdObject = adObject.GetComponent<NativeAdObject>();
82
+ if (nativeAdObject != null)
83
+ {
84
+ UnityEngine.Object.DestroyImmediate(nativeAdObject);
85
+ }
86
+
87
+ nativeAdObject = adObject.AddComponent<NativeAdObject>();
88
+ _nativeAdObjects.Add(nativeAdObject);
89
+ nativeAdObject.OnAdDisplay += RecordImpression;
90
+ nativeAdObject.OnAdClick += RecordClick;
91
+ try
92
+ {
93
+ nativeAdObject.Initialize(assetID, isImpressive, isClickable);
94
+ }
95
+ catch (InvalidOperationException ex)
96
+ {
97
+ // Debug.LogWarning("Failed to Register " + assetID + " :" + ex.Message);
98
+ UnityEngine.Object.Destroy(nativeAdObject);
99
+ _nativeAdObjects.Remove(nativeAdObject);
100
+ return false;
101
+ }
102
+
103
+ return true;
104
+ }
105
+
106
+ private bool impressionComplete = false;
107
+ private bool clickComplete = false;
108
+
109
+ internal void SetClickUrl(string url)
110
+ {
111
+ _clickUrl = url;
112
+ }
113
+
114
+ // Handle Ad Impression - Incomplete
115
+ private void RecordImpression(object sender, EventArgs eventArgs)
116
+ {
117
+ List<string> requiredAssets = NativeAssetInfo.RequiredAssets;
118
+ var successfulImpressiveAssets = _nativeAdObjects
119
+ .Where(obj => requiredAssets.Contains(obj.ObjectTag) && obj.HasMadeImpression)
120
+ .Select(obj => obj.ObjectTag);
121
+ impressionComplete = requiredAssets.All(tag => successfulImpressiveAssets.Contains(tag));
122
+ // Debug.LogWarning("Is Impression check successful: " + impressionComplete);
123
+
124
+ if (!impressionComplete) return;
125
+
126
+ if (sender is NativeAdObject nativeAdObject)
127
+ {
128
+ _nativeAdClient.OnNativeAdImpression += (sender, args) =>
129
+ {
130
+ // Debug.LogWarning("InteractionHandlerClient: OnNativeAdImpression!");
131
+ foreach (NativeAdObject adObject in _nativeAdObjects)
132
+ {
133
+ if (adObject != null)
134
+ {
135
+ AdsEventExecutor.ExecuteInUpdate(delegate { adObject.StopImpressionCheck(); });
136
+ }
137
+ }
138
+ };
139
+ _nativeAdClient.RecordImpression();
140
+
141
+ // if (_nativeAdInteractionHandlerClient.RecordImpression(NativeAdInteractionUtils.CreateImpressionSignal(nativeAdObject, _nativeAdObjects)))
142
+ // {
143
+ // foreach (NativeAdObject adObject in _nativeAdObjects)
144
+ // {
145
+ // }
146
+ // }
147
+ }
148
+ }
149
+
150
+ // Handle Ad Clicked - Incomplete
151
+ private void RecordClick(object sender, ClickEventArgs clickEventArgs)
152
+ {
153
+ // clickComplete = true;
154
+ Debug.Log("Record Click!");
155
+ // Debug.Log("Record Click: " + NativeAdInteractionUtils.BuildVersionString(NativeUtils.Version));
156
+
157
+ if (sender is NativeAdObject nativeAdObject)
158
+ {
159
+ _nativeAdClient.OnNativeAdClicked += (sender, args) =>
160
+ {
161
+ // OpenURL();
162
+ Debug.LogWarning("InteractionHandlerClient: OnNativeAdClicked!");
163
+ };
164
+ _nativeAdClient.PerformClick();
165
+
166
+ // Dictionary<string, string> touchEventSignal =
167
+ // NativeAdInteractionUtils.CreateTouchEventSignal(clickEventArgs.startClick, clickEventArgs.endClick);
168
+ // Dictionary<string, object> clickSignal =
169
+ // NativeAdInteractionUtils.CreateClickSignal(nativeAdObject, _nativeAdObjects, clickEventArgs.startClick, clickEventArgs.endClick);
170
+ //
171
+ // // _nativeAdInteractionHandlerClient.ReportTouchEvent(touchEventSignal);
172
+ // Debug.LogWarning("InteractionHandlerClient: ReportTouchEvent!");
173
+ // // _nativeAdInteractionHandlerClient.PerformClick(clickSignal);
174
+ // Debug.LogWarning("InteractionHandlerClient: PerformClick!");
175
+ // OpenURL();
176
+ }
177
+ }
178
+
179
+ public void OpenURL()
180
+ {
181
+ Debug.Log("Opened URL");
182
+ Application.OpenURL(_clickUrl);
183
+ }
184
+ }
185
+ }
@@ -13,26 +13,23 @@ namespace Azerion.BlueStack.API
13
13
  {
14
14
  private IAdLoaderClient _adLoaderClient;
15
15
  public event EventHandler<BlueStackError> OnNativeAdFailedToLoad;
16
- public event EventHandler<NativeAdEventArgs> OnNativeAdLoaded;
16
+ public event EventHandler<NativeAdEventArgs> OnNativeAdLoaded;
17
17
 
18
18
  internal bool IsAdLoaded;
19
19
  internal GameObject AdGameObject;
20
20
  private NativeAd _nativeAd;
21
-
21
+
22
22
  public NativeAdLoader(string adUnitId)
23
23
  {
24
- AdUnitId = adUnitId;
25
-
24
+ AdUnitId = adUnitId;
25
+
26
26
  NativeUtils.CheckInitialization();
27
-
27
+
28
28
  _nativeAd = new NativeAd(AdUnitId);
29
-
30
- _nativeAd.OnNativeAdDidFail += (sender, args) =>
31
- {
32
- OnNativeAdFailedToLoad?.Invoke(this, args);
33
- };
34
-
35
- _nativeAd.OnNativeAdDidLoad +=(_sender, _args) =>
29
+
30
+ _nativeAd.OnNativeAdDidFail += (sender, args) => { OnNativeAdFailedToLoad?.Invoke(this, args); };
31
+
32
+ _nativeAd.OnNativeAdDidLoad += (_sender, _args) =>
36
33
  {
37
34
  NativeAdEventArgs nativeAdEventArgs = new NativeAdEventArgs
38
35
  {
@@ -47,10 +44,9 @@ namespace Azerion.BlueStack.API
47
44
  public HashSet<NativeAdType> AdTypes { get; private set; }
48
45
  public HashSet<string> FormatIds { get; private set; }
49
46
  internal int NumberOfAdsToLoad { get; private set; }
50
-
47
+
51
48
  public void Load() => this._nativeAd.Load();
52
49
  public void Load(Preference preference) => this._nativeAd.Load(preference);
53
50
  public void Destroy() => this._nativeAd.Destroy();
54
51
  }
55
-
56
52
  }