com.azerion.bluestack 3.1.5 → 3.1.7

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 (28) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/Editor/Android/AndroidDependencyModifier.cs +58 -0
  3. package/Editor/Android/AndroidDependencyParser.cs +5 -4
  4. package/Editor/Android/Gradle/mainTemplate.gradle +1 -1
  5. package/Editor/Android/ManifestProcessor.cs +1 -1
  6. package/Editor/BlueStackDependencies.xml +5 -1
  7. package/Editor/BlueStackMediationNetworks.xml +31 -0
  8. package/Editor/BlueStackSettings.cs +7 -0
  9. package/Editor/BlueStackSettingsEditor.cs +45 -24
  10. package/Editor/DependencyProvider.cs +17 -49
  11. package/Editor/MediationNetworkDependency.cs +5 -2
  12. package/Example/Scripts/NativeAdManager.cs +4 -4
  13. package/Example/Scripts/SmallNativeAdManager.cs +3 -3
  14. package/Plugins/Android/bluestack-unity-android-bridge-2.0.0.aar +0 -0
  15. package/Runtime/API/NativeAd/NativeAd.cs +4 -7
  16. package/Runtime/API/NativeAd/NativeAdObject.cs +198 -138
  17. package/Runtime/API/Rewarded/RewardedItem.cs +3 -2
  18. package/Runtime/API/Rewarded/RewardedVideoAd.cs +3 -1
  19. package/Runtime/Common/NativeAd/NativeUtils.cs +61 -0
  20. package/Runtime/Internal/IRewardedVideoAdClient.cs +0 -1
  21. package/Runtime/Platforms/Android/RewardedVideoAdClient.cs +0 -1
  22. package/Runtime/Platforms/Unity/AdvertisementManager.cs +0 -1
  23. package/Runtime/Platforms/Unity/RewardedTimer.cs +1 -1
  24. package/Runtime/Platforms/Unity/RewardedVideoAdClient.cs +0 -1
  25. package/Runtime/Platforms/iOS/RewardedVideoAdClient.cs +0 -1
  26. package/package.json +2 -2
  27. package/Editor/BlueStackMediationDependencies.xml +0 -8
  28. /package/Editor/{BlueStackMediationDependencies.xml.meta → BlueStackMediationNetworks.xml.meta} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,19 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.1.7] - 2024-10-23
4
+
5
+ ### Changed
6
+
7
+ - Renamed the `GetBadge` method to `GetBadgeText`
8
+ - Renamed the `GetTitle` method to `GetTitleText`
9
+ - Renamed the `RegisterImageGameObject` method to `RegisterCoverImageGameObject`
10
+ - Renamed the `RegisterCallToActionGameObject` method to `RegisterCallToActionTextGameObject`
11
+
12
+ ### Fixed
13
+
14
+ - Rerestricted interaction with Native ad objects while any overlay view is on top.
15
+
16
+ ## [3.1.6] - 2024-07-26
17
+
18
+ ### Changed
19
+
20
+ - BlueStack Android SDK version upgraded to 4.4.0
21
+
22
+ ### Added
23
+
24
+ - Manage Android mediation networks from the BlueStack Settings
25
+
3
26
  ## [3.1.5] - 2024-07-10
4
27
 
5
28
  ### Added
6
- - Method added to refresh Banner in the editor
29
+
30
+ - Method added to refresh Banner in the unity editor
7
31
  - Native ad Close method added to trigger OnNativeAdClosed event in the editor
8
32
 
9
33
  ### Changed
34
+
10
35
  - Unity deprecated methods handled
11
36
  - Readme doc update
12
37
 
13
38
  ### Fixed
39
+
14
40
  - Fixed the BlueStack Settings null exception issue when no settings exist
15
41
  - Fixed the issue with saving AdMob App ids
16
- - Error handled in Native ads, in case of null or empty image urls.
42
+ - Error handled in Native ads, in case of null or empty image urls
17
43
 
18
44
  ## [3.1.4] - 2024-07-04
19
45
 
@@ -2,6 +2,7 @@ using System;
2
2
  using System.Collections.Generic;
3
3
  using System.IO;
4
4
  using System.Xml;
5
+ using UnityEditor;
5
6
  using UnityEngine;
6
7
 
7
8
  namespace Azerion.BlueStack.Editor.Android
@@ -10,7 +11,64 @@ namespace Azerion.BlueStack.Editor.Android
10
11
  {
11
12
  void IDependencyModifier.modifyDependencies(string xmlFilePath, List<MediationNetworkDependency> dependencies)
12
13
  {
14
+ XmlDocument xmlDoc = new XmlDocument();
13
15
 
16
+ try
17
+ {
18
+ xmlDoc.Load(xmlFilePath);
19
+ }
20
+ catch (IOException e)
21
+ {
22
+ throw new Exception("Unable to load xml, error: " + e.Message);
23
+ }
24
+
25
+ XmlNode androidPackages = xmlDoc.SelectSingleNode($"//dependencies/androidPackages");
26
+ if (androidPackages == null)
27
+ {
28
+ Debug.LogError("No node with the name 'androidPackages' found in the xml");
29
+ return;
30
+ }
31
+
32
+ // Remove all networks from the packages node
33
+ // androidPackages.RemoveAll();
34
+
35
+ // Add/remove networks
36
+ foreach (MediationNetworkDependency dependency in dependencies)
37
+ {
38
+ XmlNode packageNode = androidPackages.SelectSingleNode(
39
+ $"//androidPackage[@spec='{dependency.Package}']");
40
+
41
+ if (packageNode != null)
42
+ {
43
+ // Remove inactive network
44
+ if (!dependency.Active)
45
+ {
46
+ androidPackages.RemoveChild(packageNode);
47
+ }
48
+ // else keep it
49
+ }
50
+ else
51
+ {
52
+ // Add new active network
53
+ if (dependency.Active)
54
+ {
55
+ XmlElement package = xmlDoc.CreateElement("androidPackage");
56
+ package.SetAttribute("spec", dependency.Package);
57
+ if (dependency.Repositories != null)
58
+ {
59
+ XmlNode repositories = xmlDoc.ImportNode(dependency.Repositories, true);
60
+ package.AppendChild(repositories);
61
+ }
62
+ androidPackages.AppendChild(package);
63
+ }
64
+ }
65
+ }
66
+
67
+ // Replace main dependency XML content with the updated XML
68
+ System.IO.File.WriteAllText(xmlFilePath, xmlDoc.OuterXml);
69
+ AssetDatabase.Refresh();
70
+
71
+ // Debug.Log("Mediation Dependencies are updated successfully in Main Dependencies XML.");
14
72
  }
15
73
 
16
74
  void IDependencyModifier.modifyMediationNetworkDependencies(string xmlFilePath,
@@ -20,7 +20,6 @@ namespace Azerion.BlueStack.Editor.Android
20
20
  if (specAttribute == null) continue;
21
21
  dependencies.Add(new AndroidDependency(specAttribute.Value, "", ""));
22
22
  }
23
-
24
23
  return dependencies;
25
24
  }
26
25
 
@@ -37,15 +36,17 @@ namespace Azerion.BlueStack.Editor.Android
37
36
  var nameAttribute = androidPackageNode.Attributes?["name"];
38
37
  var packageAttribute = androidPackageNode.Attributes?["package"];
39
38
  var activeAttribute = androidPackageNode.Attributes?["active"];
39
+ var repositoriesNode = androidPackageNode.SelectSingleNode("repositories");
40
40
  if (nameAttribute == null || packageAttribute == null) continue;
41
41
 
42
42
  var name = nameAttribute.Value;
43
43
  var package = packageAttribute.Value;
44
- var active = bool.Parse(activeAttribute.Value);
44
+ var active = activeAttribute != null && bool.Parse(activeAttribute.Value);
45
45
 
46
- dependencies.Add(new MediationNetworkDependency(name, package, active));
46
+ dependencies.Add(repositoriesNode != null
47
+ ? new MediationNetworkDependency(name, package, active, repositoriesNode)
48
+ : new MediationNetworkDependency(name, package, active));
47
49
  }
48
-
49
50
  return dependencies;
50
51
  }
51
52
  }
@@ -5,7 +5,7 @@ apply plugin: 'com.android.library'
5
5
 
6
6
  dependencies {
7
7
  implementation fileTree(dir: 'libs', include: ['*.jar'])
8
- implementation 'com.madvertise:bluestack-core-sdk:4.2.0'
8
+ implementation 'com.madvertise:bluestack-core-sdk:4.4.0'
9
9
  **DEPS**}
10
10
 
11
11
  android {
@@ -40,7 +40,7 @@ namespace Azerion.BlueStack.Editor.Android
40
40
  }
41
41
  catch (IOException e)
42
42
  {
43
- StopBuildWithMessage(MANIFEST_FILE_MISSING);
43
+ StopBuildWithMessage(MANIFEST_FILE_MISSING +" : " + e.Message );
44
44
  }
45
45
 
46
46
  XElement elemManifest = manifest.Element("manifest");
@@ -1,6 +1,10 @@
1
1
  <dependencies>
2
2
  <androidPackages>
3
- <androidPackage spec="com.azerion:bluestack-sdk-core:4.3.2"/>
3
+ <androidPackage spec="com.azerion:bluestack-sdk-core:4.4.0">
4
+ <repositories>
5
+ <repository>https://packagecloud.io/smartadserver/android/maven2</repository>
6
+ </repositories>
7
+ </androidPackage>
4
8
  </androidPackages>
5
9
  <iosPods>
6
10
  <iosPod name="BlueStack-SDK" version="4.4.6" bitcodeEnabled="false" addToAllTargets="false" subspecs="[]"/>
@@ -0,0 +1,31 @@
1
+ <networkList>
2
+ <androidNetworks>
3
+ <network name="Criteo In-App Bidding" package="com.azerion:bluestack-mediation-criteo:4.4.0.0" active="true"/>
4
+ <network name="AdColony" package="com.azerion:bluestack-mediation-adcolony:4.4.0.0" active="true"/>
5
+ <network name="Huawei" package="com.azerion:bluestack-mediation-huawei:4.4.0.0" active="true">
6
+ <repositories>
7
+ <repository>https://developer.huawei.com/repo/</repository>
8
+ </repositories>
9
+ </network>
10
+ <network name="GAM / AdMob" package="com.azerion:bluestack-mediation-gma:4.4.0.0" active="true"/>
11
+ <network name="In-App Bidding" package="com.azerion:bluestack-mediation-bidding:4.4.0.0" active="true">
12
+ <repositories>
13
+ <repository>https://packagecloud.io/smartadserver/android/maven2</repository>
14
+ </repositories>
15
+ </network>
16
+ <network name="Smart Display / Equativ" package="com.azerion:bluestack-mediation-smartadserver:4.4.0.0" active="true">
17
+ <repositories>
18
+ <repository>https://packagecloud.io/smartadserver/android/maven2</repository>
19
+ </repositories>
20
+ </network>
21
+ <network name="Ogury" package="com.azerion:bluestack-mediation-ogury:4.4.0.0" active="true">
22
+ <repositories>
23
+ <repository>https://maven.ogury.co/</repository>
24
+ </repositories>
25
+ </network>
26
+ </androidNetworks>
27
+ <iosNetworks>
28
+ <network name="AdMob" package="Google-Mobile-Ads-SDK" active="true"/>
29
+ <network name="Smart Display" package="Smart-Display-SDK" active="true"/>
30
+ </iosNetworks>
31
+ </networkList>
@@ -31,6 +31,13 @@ namespace Azerion.BlueStack.Editor
31
31
  get => Instance.iOSMediationNetworks ?? new List<MediationNetworkDependency>();
32
32
  set => Instance.iOSMediationNetworks = value;
33
33
  }
34
+
35
+ [SerializeField] private List<MediationNetworkDependency> androidMediationNetworks;
36
+ public List<MediationNetworkDependency> AndroidMediationNetworks
37
+ {
38
+ get => Instance.androidMediationNetworks ?? new List<MediationNetworkDependency>();
39
+ set => Instance.androidMediationNetworks = value;
40
+ }
34
41
 
35
42
  public static BlueStackSettings Instance
36
43
  {
@@ -16,9 +16,7 @@ namespace Azerion.BlueStack.Editor
16
16
  private const string BlueStackSettingsResDir = "Assets/Resources";
17
17
  private const string BlueStackSettingsFile = "BlueStackSettings";
18
18
  private const string BlueStackSettingsFileExtension = ".asset";
19
-
20
- private List<bool> iOSMediationNetworkList = new List<bool>();
21
- private List<bool> AndroidMediationNetworkList = new List<bool>();
19
+
22
20
  SerializedProperty iOSMediationNetworkListProperty;
23
21
  SerializedProperty androidMediationNetworkListProperty;
24
22
 
@@ -26,7 +24,8 @@ namespace Azerion.BlueStack.Editor
26
24
  SerializedProperty androidAdmobAppIdProperty;
27
25
 
28
26
  public static event EventHandler<List<MediationNetworkDependency>> onIOSMediationNetworksUpdateEvent;
29
- public static int someint = 12;
27
+ public static event EventHandler<List<MediationNetworkDependency>> onAndroidMediationNetworksUpdateEvent;
28
+
30
29
  [MenuItem("Azerion/BlueStack/Settings")]
31
30
  public static void OpenInspector()
32
31
  {
@@ -41,7 +40,7 @@ namespace Azerion.BlueStack.Editor
41
40
  {
42
41
  if (BlueStackSettings.Instance == null)
43
42
  {
44
- try
43
+ try
45
44
  {
46
45
  Directory.CreateDirectory(BlueStackSettingsResDir);
47
46
  BlueStackSettings.Instance = ScriptableObject.CreateInstance<BlueStackSettings>();
@@ -49,8 +48,8 @@ namespace Azerion.BlueStack.Editor
49
48
  string assetPath = Path.Combine(BlueStackSettingsResDir, BlueStackSettingsFile);
50
49
  string assetPathWithExtension = Path.ChangeExtension(assetPath, BlueStackSettingsFileExtension);
51
50
  AssetDatabase.CreateAsset(BlueStackSettings.Instance, assetPathWithExtension);
52
- AssetDatabase.SaveAssets();
53
-
51
+ AssetDatabase.SaveAssets();
52
+
54
53
  return true;
55
54
  }
56
55
  catch (Exception e)
@@ -86,35 +85,53 @@ namespace Azerion.BlueStack.Editor
86
85
  if (!DoesBlueStackSettingsExist()) return;
87
86
 
88
87
  BlueStackSettings.Instance.IOSMediationNetworks.Clear();
89
-
90
- // Sync/Copy base mediation dependency xml file from Package to Assets directory
91
- DependencyProvider.SyncMediationDependencies();
88
+ BlueStackSettings.Instance.AndroidMediationNetworks.Clear();
92
89
 
93
- var iOSMediationNetworkDependencies = DependencyProvider.GetAllMediationNetworkDependencies(new IOSDependencyParser());
90
+ // Sync/Copy base mediation dependency xml file from Package to Assets directory
91
+ DependencyProvider.SyncDependenciesXMLs();
94
92
 
95
- // BlueStackSettings.Instance.IOSMediationNetworks = BlueStackSettings.Instance.IOSMediationNetworks
96
- // .Where(x => iOSMediationNetworkDependencies.All(l2 => l2.Name != x.Name)).ToList();
93
+ var iOSMediationNetworkDependencies = DependencyProvider.GetMediationNetworkDependenciesFromAsset(new IOSDependencyParser());
94
+ var androidMediationNetworkDependencies = DependencyProvider.GetMediationNetworkDependenciesFromAsset(new AndroidDependencyParser());
97
95
 
98
- BlueStackSettings.Instance.IOSMediationNetworks =
99
- BlueStackSettings.Instance.IOSMediationNetworks.Union(iOSMediationNetworkDependencies).ToList();
96
+ BlueStackSettings.Instance.AndroidMediationNetworks = androidMediationNetworkDependencies;
97
+ BlueStackSettings.Instance.IOSMediationNetworks = iOSMediationNetworkDependencies;
100
98
 
99
+ DependencyProvider.UpdateMediationNetworkDependencies(new AndroidDependencyModifier(),
100
+ BlueStackSettings.Instance.AndroidMediationNetworks);
101
101
  DependencyProvider.UpdateMediationNetworkDependencies(new IOSDependencyModifier(),
102
102
  BlueStackSettings.Instance.IOSMediationNetworks);
103
+
103
104
  }
104
-
105
+
105
106
  public override void OnInspectorGUI()
106
107
  {
107
108
  EditorGUI.BeginChangeCheck();
108
109
  serializedObject.Update();
109
110
 
110
- iOSAdmobAppIdProperty = serializedObject.FindProperty("admobAppIdIOS");
111
111
  androidAdmobAppIdProperty = serializedObject.FindProperty("admobAppIdAndroid");
112
-
113
- EditorGUILayout.PropertyField(iOSAdmobAppIdProperty, new GUIContent("Admob AppId IOS: "));
112
+ iOSAdmobAppIdProperty = serializedObject.FindProperty("admobAppIdIOS");
113
+
114
114
  EditorGUILayout.PropertyField(androidAdmobAppIdProperty, new GUIContent("Admob AppId Android: "));
115
+ EditorGUILayout.PropertyField(iOSAdmobAppIdProperty, new GUIContent("Admob AppId IOS: "));
116
+
117
+ // Android Mediation Networks
115
118
  EditorGUILayout.Separator();
116
- EditorGUILayout.LabelField("iOS Mediation Networks: ", EditorStyles.boldLabel);
119
+ EditorGUILayout.LabelField("Android Mediation Networks: ", EditorStyles.boldLabel);
120
+
121
+ foreach (var dependency in BlueStackSettings.Instance.AndroidMediationNetworks)
122
+ {
123
+ // dependency.Print();
124
+ bool newAutomaticConfigurationFilesUpdate = GUILayout.Toggle(dependency.Active, dependency.Name);
125
+ if (newAutomaticConfigurationFilesUpdate != dependency.Active)
126
+ {
127
+ dependency.Active = newAutomaticConfigurationFilesUpdate;
128
+ }
129
+ }
117
130
 
131
+ // iOS Mediation Networks
132
+ EditorGUILayout.Separator();
133
+ EditorGUILayout.LabelField("iOS Mediation Networks: ", EditorStyles.boldLabel);
134
+
118
135
  foreach (var dependency in BlueStackSettings.Instance.IOSMediationNetworks)
119
136
  {
120
137
  // dependency.Print();
@@ -124,17 +141,21 @@ namespace Azerion.BlueStack.Editor
124
141
  dependency.Active = newAutomaticConfigurationFilesUpdate;
125
142
  }
126
143
  }
127
-
144
+
128
145
  if (EditorGUI.EndChangeCheck())
129
146
  {
130
- Debug.LogWarning("EditorGUI Changed");
147
+ // TODO: Before triggering the event check if any change occured in the list
131
148
  onIOSMediationNetworksUpdateEvent?.Invoke(this, BlueStackSettings.Instance.IOSMediationNetworks);
132
-
149
+ onAndroidMediationNetworksUpdateEvent?.Invoke(this, BlueStackSettings.Instance.AndroidMediationNetworks);
150
+
151
+ DependencyProvider.UpdateMediationNetworkDependencies(new AndroidDependencyModifier(),
152
+ BlueStackSettings.Instance.AndroidMediationNetworks);
133
153
  DependencyProvider.UpdateMediationNetworkDependencies(new IOSDependencyModifier(),
134
154
  BlueStackSettings.Instance.IOSMediationNetworks);
155
+
135
156
  serializedObject.ApplyModifiedProperties();
136
157
  }
137
-
158
+
138
159
  }
139
160
  }
140
161
  }
@@ -8,17 +8,13 @@ namespace Azerion.BlueStack.Editor
8
8
  {
9
9
  public class DependencyProvider
10
10
  {
11
- private static readonly string _dependencyPathInPackage =
12
- "Packages/com.azerion.bluestack/Editor/" + "BlueStackDependencies.xml";
13
-
14
- private static readonly string _mediationDependencyPathInPackage =
15
- "Packages/com.azerion.bluestack/Editor/" + "BlueStackMediationDependencies.xml";
11
+ private static readonly string _editorPathInPackage = "Packages/com.azerion.bluestack/Editor/";
12
+ private static readonly string _dependencyPathInPackage = _editorPathInPackage + "BlueStackDependencies.xml";
13
+ private static readonly string _mediationDependencyPathInPackage = _editorPathInPackage + "BlueStackMediationNetworks.xml";
16
14
 
17
15
  private static readonly string _editorPathInAssets = "Assets/Editor/";
18
16
  private static readonly string _dependencyPathInAssets = _editorPathInAssets + "BlueStackDependencies.xml";
19
-
20
- private static readonly string _mediationDependencyPathInAssets =
21
- _editorPathInAssets + "BlueStackMediationDependencies.xml";
17
+ private static readonly string _mediationDependencyPathInAssets = _editorPathInAssets + "BlueStackMediationNetworks.xml";
22
18
 
23
19
  public static List<Dependency> GetAllDependencies(IDependencyParser parser)
24
20
  {
@@ -33,23 +29,21 @@ namespace Azerion.BlueStack.Editor
33
29
  }
34
30
  }
35
31
 
36
- public static List<MediationNetworkDependency> GetAllMediationNetworkDependencies(IDependencyParser parser)
32
+ public static List<MediationNetworkDependency> GetMediationNetworkDependenciesFromAsset(IDependencyParser parser)
37
33
  {
38
34
  if (File.Exists(_mediationDependencyPathInAssets))
39
35
  {
40
36
  return parser.parseMediationNetworkDependencies(_mediationDependencyPathInAssets);
41
37
  }
42
- else
43
- {
44
- Debug.LogError("Dependencies file not found at: " + _mediationDependencyPathInAssets);
45
- return new List<MediationNetworkDependency>();
46
- }
38
+
39
+ Debug.LogError("Dependencies file not found at: " + _mediationDependencyPathInAssets);
40
+ return new List<MediationNetworkDependency>();
47
41
  }
48
42
 
49
43
  public static void UpdateMediationNetworkDependencies(IDependencyModifier modifier,
50
44
  List<MediationNetworkDependency> dependencies)
51
45
  {
52
- // Update Mediation Network Dependencies in BlueStackMediationDependencies.xml
46
+ // Update Mediation Network Dependencies in BlueStackMediationNetworks.xml
53
47
  if (File.Exists(_mediationDependencyPathInAssets))
54
48
  {
55
49
  modifier.modifyMediationNetworkDependencies(_mediationDependencyPathInAssets, dependencies);
@@ -70,7 +64,7 @@ namespace Azerion.BlueStack.Editor
70
64
  }
71
65
  }
72
66
 
73
- public static void SyncMediationDependencies()
67
+ public static void SyncDependenciesXMLs()
74
68
  {
75
69
  // Copy from the source
76
70
  CopyDependenciesXMLFileToAssets();
@@ -129,39 +123,6 @@ namespace Azerion.BlueStack.Editor
129
123
 
130
124
  // Debug.Log("Mediation Dependency XML files merged and updated successfully.");
131
125
  }
132
-
133
- public static void UpdateMediationDependencyXML(List<MediationNetworkDependency> dependencies)
134
- {
135
- // if file doesn't exists, return
136
- if (!File.Exists(_mediationDependencyPathInAssets))
137
- {
138
- return;
139
- }
140
-
141
- XmlDocument mainDependencyXML = new XmlDocument();
142
- mainDependencyXML.Load(_mediationDependencyPathInAssets);
143
-
144
- foreach (MediationNetworkDependency dependency in dependencies)
145
- {
146
- XmlNode mainNode = mainDependencyXML.SelectSingleNode($"//network[@name='{dependency.Name}']");
147
-
148
- if (mainNode != null)
149
- {
150
- mainNode.Attributes["active"].Value = dependency.Active.ToString();
151
- }
152
- else
153
- {
154
- // Node doesn't exists in Mediation Dependency XML
155
- Debug.LogError("Something went wrong: Node doesn't exists in Mediation Dependency XML! " +
156
- "Please check if you have manually changed the xml");
157
- }
158
- }
159
-
160
- // Save the modified XML
161
- SaveMainXMLFile(mainDependencyXML.OuterXml);
162
-
163
- Debug.Log("Mediation Dependency XML files merged and updated successfully.");
164
- }
165
126
 
166
127
  private static bool XMLStructuresMatch(XmlDocument mainDoc, XmlDocument updateDoc)
167
128
  {
@@ -197,6 +158,13 @@ namespace Azerion.BlueStack.Editor
197
158
 
198
159
  private static bool CopyMediationDependenciesXMLFileToAssets()
199
160
  {
161
+ // Delete previous BlueStackMediationDependencies.xml file - TODO: remove in future
162
+ if (File.Exists(_editorPathInAssets + "BlueStackMediationDependencies.xml"))
163
+ {
164
+ FileUtil.DeleteFileOrDirectory(_editorPathInAssets + "BlueStackMediationDependencies.xml");
165
+ AssetDatabase.Refresh();
166
+ }
167
+
200
168
  if (!File.Exists(_mediationDependencyPathInAssets))
201
169
  {
202
170
  Directory.CreateDirectory(_editorPathInAssets);
@@ -1,4 +1,5 @@
1
1
  using System;
2
+ using System.Xml;
2
3
  using UnityEngine;
3
4
 
4
5
  namespace Azerion.BlueStack.Editor
@@ -6,20 +7,22 @@ namespace Azerion.BlueStack.Editor
6
7
  [Serializable]
7
8
  public class MediationNetworkDependency
8
9
  {
9
- public MediationNetworkDependency(string name, string package, bool active)
10
+ public MediationNetworkDependency(string name, string package, bool active, XmlNode repositories = null)
10
11
  {
11
12
  Name = name;
12
13
  Package = package;
13
14
  Active = active;
15
+ Repositories = repositories;
14
16
  }
15
17
 
16
18
  public string Name { get; set; }
17
19
  public string Package { get; set; }
18
20
  public bool Active { get; set; }
21
+ public XmlNode Repositories { get; set; }
19
22
 
20
23
  public void Print()
21
24
  {
22
- Debug.Log("Name: " + Name + "Package: " + Package + "Active: " + Active);
25
+ Debug.Log("Name: " + Name + "Package: " + Package + "Active: " + Active + "\nRepositories: " + Repositories.ToString());
23
26
  }
24
27
  }
25
28
  }
@@ -86,7 +86,7 @@ namespace Azerion.BlueStack.Example
86
86
  Debug.Log("NativeAdManager: RegisterGameObjects");
87
87
 
88
88
  // badge
89
- string badgeText = this.nativeAd.GetBadge();
89
+ string badgeText = this.nativeAd.GetBadgeText();
90
90
  if (badgeText != null)
91
91
  {
92
92
  Debug.Log("NativeAdManager: Register AdChoices");
@@ -110,7 +110,7 @@ namespace Azerion.BlueStack.Example
110
110
  }
111
111
 
112
112
  // Headline/Title
113
- string titleText = this.nativeAd.GetTitle();
113
+ string titleText = this.nativeAd.GetTitleText();
114
114
  if (titleText != null)
115
115
  {
116
116
  Debug.Log("NativeAdManager: Register Head line");
@@ -139,7 +139,7 @@ namespace Azerion.BlueStack.Example
139
139
  {
140
140
  Debug.Log("NativeAdManager: Register Cover Images");
141
141
  coverImage.GetComponent<RawImage>().texture = imageTexture;
142
- if (!this.nativeAd.RegisterImageGameObject(coverImage))
142
+ if (!this.nativeAd.RegisterCoverImageGameObject(coverImage))
143
143
  {
144
144
  Debug.Log("RegisterImageGameObject Unsuccessful");
145
145
  }
@@ -151,7 +151,7 @@ namespace Azerion.BlueStack.Example
151
151
  {
152
152
  Debug.Log("NativeAdManager: Register CallToAction");
153
153
  callToAction.GetComponent<Text>().text = callToActionText;
154
- if (!this.nativeAd.RegisterCallToActionGameObject(callToAction))
154
+ if (!this.nativeAd.RegisterCallToActionTextGameObject(callToAction))
155
155
  {
156
156
  Debug.Log("RegisterCallToActionGameObject Unsuccessful");
157
157
  }
@@ -84,7 +84,7 @@ namespace Azerion.BlueStack.Example
84
84
  Debug.Log("NativeAdManager: RegisterGameObjects");
85
85
 
86
86
  // badge
87
- string badgeText = this.nativeAd.GetBadge();
87
+ string badgeText = this.nativeAd.GetBadgeText();
88
88
  if (badgeText != null)
89
89
  {
90
90
  Debug.Log("NativeAdManager: Register AdChoices");
@@ -108,7 +108,7 @@ namespace Azerion.BlueStack.Example
108
108
  }
109
109
 
110
110
  // Headline/Title
111
- string titleText = this.nativeAd.GetTitle();
111
+ string titleText = this.nativeAd.GetTitleText();
112
112
  if (titleText != null)
113
113
  {
114
114
  Debug.Log("NativeAdManager: Register Head line");
@@ -125,7 +125,7 @@ namespace Azerion.BlueStack.Example
125
125
  {
126
126
  Debug.Log("NativeAdManager: Register CallToAction");
127
127
  callToAction.GetComponent<Text>().text = callToActionText;
128
- if (!this.nativeAd.RegisterCallToActionGameObject(callToAction))
128
+ if (!this.nativeAd.RegisterCallToActionTextGameObject(callToAction))
129
129
  {
130
130
  Debug.Log("RegisterCallToActionGameObject Unsuccessful");
131
131
  }
@@ -19,7 +19,6 @@ namespace Azerion.BlueStack.API
19
19
  internal event EventHandler<BlueStackError> OnNativeAdDidFail;
20
20
  // internal event EventHandler<EventArgs> OnNativeAdOpening; //TODO
21
21
  internal event EventHandler<EventArgs> OnNativeAdClosed;
22
-
23
22
  public event EventHandler<EventArgs> OnNativeAdImpression;
24
23
  public event EventHandler<EventArgs> OnNativeAdClicked;
25
24
 
@@ -138,10 +137,8 @@ namespace Azerion.BlueStack.API
138
137
  }
139
138
  }
140
139
 
141
- public string GetTitle()
140
+ public string GetTitleText()
142
141
  {
143
- // Debug.Log("GetTitle: " + _nativeAdClient.GetTitle());
144
- // LoadTextures();
145
142
  return _nativeAdClient.GetTitle();
146
143
  }
147
144
 
@@ -160,7 +157,7 @@ namespace Azerion.BlueStack.API
160
157
  return _nativeAdClient.GetBadgeBytes();
161
158
  }
162
159
 
163
- public string GetBadge()
160
+ public string GetBadgeText()
164
161
  {
165
162
  return _nativeAdClient.GetBadge();
166
163
  }
@@ -200,7 +197,7 @@ namespace Azerion.BlueStack.API
200
197
  return _nativeAdInteractionHandler.RegisterBodyTextGameObject(gameObject);
201
198
  }
202
199
 
203
- public bool RegisterImageGameObject(GameObject gameObject)
200
+ public bool RegisterCoverImageGameObject(GameObject gameObject)
204
201
  {
205
202
  return _nativeAdInteractionHandler.RegisterImageGameObjects(gameObject);
206
203
  }
@@ -210,7 +207,7 @@ namespace Azerion.BlueStack.API
210
207
  return _nativeAdInteractionHandler.RegisterIconImageGameObject(gameObject);
211
208
  }
212
209
 
213
- public bool RegisterCallToActionGameObject(GameObject gameObject)
210
+ public bool RegisterCallToActionTextGameObject(GameObject gameObject)
214
211
  {
215
212
  return _nativeAdInteractionHandler.RegisterCallToActionGameObject(gameObject);
216
213
  }