com.azerion.bluestack 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/Editor/Android/AndroidBuildPostProcess.cs +2 -2
  2. package/Editor/Android/AndroidDependency.cs +1 -1
  3. package/Editor/Android/AndroidDependencyParser.cs +1 -2
  4. package/Editor/Android/Gradle/GradleConfigUtils.cs +4 -4
  5. package/Editor/Android/ManifestProcessor.cs +1 -2
  6. package/Editor/Azerion.BlueStack.Editor.asmdef +16 -0
  7. package/Editor/BlueStackDependencies.xml +2 -2
  8. package/Editor/BlueStackSettings.cs +1 -1
  9. package/Editor/BlueStackSettingsEditor.cs +1 -1
  10. package/Editor/Constants.cs +1 -1
  11. package/Editor/DebugHelper.cs +1 -1
  12. package/Editor/Dependency.cs +1 -1
  13. package/Editor/DependencyCheckResult.cs +1 -1
  14. package/Editor/DependencyProvider.cs +1 -1
  15. package/Editor/IDependencyParser.cs +1 -1
  16. package/Editor/iOS/BlueStackBuildPostProcess.cs +4 -4
  17. package/Editor/iOS/IOSDependencyParser.cs +1 -1
  18. package/Editor/iOS/PodDependency/PodDependencyUtils.cs +1 -1
  19. package/Plugins/Android/bluestack-unity-android-bridge-1.0.1.aar +0 -0
  20. package/Plugins/Android/{bluestack-unity-android-bridge-1.0.0.aar.meta → bluestack-unity-android-bridge-1.0.1.aar.meta} +1 -1
  21. package/Plugins/iOS/BSUAdNetworkStatus.h +2 -1
  22. package/Plugins/iOS/BSUInitializer.h +4 -1
  23. package/Plugins/iOS/BSUInitializer.m +18 -7
  24. package/Plugins/iOS/BSUInterface.h +2 -1
  25. package/Plugins/iOS/BSUInterface.m +48 -26
  26. package/Plugins/iOS/BSUTypes.h +6 -2
  27. package/Runtime/API/AdSize.cs +1 -1
  28. package/Runtime/API/AdapterStatus.cs +3 -2
  29. package/Runtime/API/{InitializationStatus.cs → AdaptersInitializationStatus.cs} +4 -4
  30. package/Runtime/API/AdaptersInitializationStatus.cs.meta +11 -0
  31. package/Runtime/API/Banner/AdPosition.cs +1 -1
  32. package/Runtime/API/Banner/BannerAd.cs +4 -3
  33. package/Runtime/API/BlueStackAds.cs +11 -8
  34. package/Runtime/API/BlueStackError.cs +1 -1
  35. package/Runtime/API/InterstitialAd.cs +2 -2
  36. package/Runtime/API/Preference/Gender.cs +1 -1
  37. package/Runtime/API/Preference/Location.cs +1 -1
  38. package/Runtime/API/Preference/Preference.cs +2 -2
  39. package/Runtime/API/Rewarded/RewardedItem.cs +1 -1
  40. package/Runtime/API/Rewarded/RewardedVideoAd.cs +2 -2
  41. package/Runtime/API/SDKInitializationStatus.cs +15 -0
  42. package/Runtime/API/SDKInitializationStatus.cs.meta +3 -0
  43. package/Runtime/API/Settings.cs +1 -1
  44. package/Runtime/Azerion.BlueStack.asmdef +14 -1
  45. package/Runtime/Internal/IBannerAdClient.cs +4 -3
  46. package/Runtime/Internal/IBlueStackClient.cs +3 -3
  47. package/Runtime/Internal/IClientsFactory.cs +1 -3
  48. package/Runtime/Internal/IInitializationStatusClient.cs +2 -2
  49. package/Runtime/Internal/IInterstitialAdClient.cs +2 -2
  50. package/Runtime/Internal/IPreferenceClient.cs +2 -2
  51. package/Runtime/Internal/IRewardedVideoAdClient.cs +3 -3
  52. package/Runtime/Platforms/Android/AndroidJavaObjectFactory.cs +4 -2
  53. package/Runtime/Platforms/Android/BannerAdClient.cs +7 -5
  54. package/Runtime/Platforms/Android/BlueStackClient.cs +55 -15
  55. package/Runtime/Platforms/Android/BlueStackErrorUtils.cs +5 -3
  56. package/Runtime/Platforms/Android/BlueStackNativeClassNames.cs +16 -16
  57. package/Runtime/Platforms/Android/ClientsFactory.cs +5 -4
  58. package/Runtime/Platforms/Android/InitializationStatusClient.cs +6 -4
  59. package/Runtime/Platforms/Android/InterstitialAdClient.cs +6 -4
  60. package/Runtime/Platforms/Android/PreferenceClient.cs +6 -4
  61. package/Runtime/Platforms/Android/RewardedVideoAdClient.cs +7 -5
  62. package/Runtime/Platforms/Unity/AdBehaviour.cs +1 -1
  63. package/Runtime/Platforms/Unity/AdvertisementManager.cs +4 -4
  64. package/Runtime/Platforms/Unity/BannerAdClient.cs +4 -5
  65. package/Runtime/Platforms/Unity/BaseAdClient.cs +1 -5
  66. package/Runtime/Platforms/Unity/BlueStackClient.cs +7 -11
  67. package/Runtime/Platforms/Unity/ClientsFactory.cs +2 -3
  68. package/Runtime/Platforms/Unity/InitializationStatusClient.cs +3 -3
  69. package/Runtime/Platforms/Unity/InterstitialAdClient.cs +3 -5
  70. package/Runtime/Platforms/Unity/PreferenceClient.cs +3 -3
  71. package/Runtime/Platforms/Unity/RewardedTimer.cs +2 -2
  72. package/Runtime/Platforms/Unity/RewardedVideoAdClient.cs +4 -5
  73. package/Runtime/Platforms/iOS/BannerAdClient.cs +8 -8
  74. package/Runtime/Platforms/iOS/BlueStackClient.cs +27 -12
  75. package/Runtime/Platforms/iOS/BlueStackErrorUtils.cs +2 -4
  76. package/Runtime/Platforms/iOS/ClientsFactory.cs +2 -5
  77. package/Runtime/Platforms/iOS/Externs.cs +18 -20
  78. package/Runtime/Platforms/iOS/InitializationStatusClient.cs +4 -7
  79. package/Runtime/Platforms/iOS/InterstitialAdClient.cs +6 -8
  80. package/Runtime/Platforms/iOS/PreferenceClient.cs +3 -5
  81. package/Runtime/Platforms/iOS/RewardedVideoAdClient.cs +7 -9
  82. package/Runtime/Platforms/iOS/Utils.cs +2 -3
  83. package/package.json +1 -1
  84. package/Editor/BlueStack.Editor.asmdef +0 -10
  85. package/Plugins/Android/bluestack-unity-android-bridge-1.0.0.aar +0 -0
  86. package/ReadmeResources/.gitkeep +0 -0
  87. package/ReadmeResources.meta +0 -8
  88. package/Runtime/API/InitializationStatus.cs.meta +0 -3
  89. package/Sample/.gitkeep +0 -0
  90. package/Sample.meta +0 -8
  91. /package/Editor/{BlueStack.Editor.asmdef.meta → Azerion.BlueStack.Editor.asmdef.meta} +0 -0
@@ -1,13 +1,13 @@
1
1
  using System;
2
2
  using System.IO;
3
3
  using System.Linq;
4
- using Editor.Android.Gradle;
5
4
  using UnityEditor;
6
5
  using UnityEditor.Android;
7
6
  using UnityEditor.Callbacks;
8
7
  using UnityEngine;
8
+ using Azerion.BlueStack.Editor.Android.Gradle;
9
9
 
10
- namespace BlueStack.Editor.Android
10
+ namespace Azerion.BlueStack.Editor.Android
11
11
  {
12
12
  public class AndroidBuildPostProcess
13
13
  {
@@ -1,4 +1,4 @@
1
- namespace BlueStack.Editor.Android
1
+ namespace Azerion.BlueStack.Editor.Android
2
2
  {
3
3
  public class AndroidDependency : Dependency
4
4
  {
@@ -1,9 +1,8 @@
1
1
  using System.Collections.Generic;
2
2
  using System.Xml;
3
- using BlueStack.Editor.Android;
4
3
  using UnityEngine;
5
4
 
6
- namespace BlueStack.Editor.Android
5
+ namespace Azerion.BlueStack.Editor.Android
7
6
  {
8
7
  public class AndroidDependencyParser : IDependencyParser
9
8
  {
@@ -1,10 +1,10 @@
1
1
  using System;
2
2
  using System.IO;
3
- using BlueStack.Editor;
4
- using BlueStack.Editor.Android;
5
- using BlueStack.Editor.iOS;
3
+ using Azerion.BlueStack.Editor;
4
+ using Azerion.BlueStack.Editor.Android;
5
+ using Azerion.BlueStack.Editor.iOS;
6
6
 
7
- namespace Editor.Android.Gradle
7
+ namespace Azerion.BlueStack.Editor.Android.Gradle
8
8
  {
9
9
  public class GradleDependencyCheckResult
10
10
  {
@@ -2,13 +2,12 @@ using System.Collections.Generic;
2
2
  using System.IO;
3
3
  using System.Linq;
4
4
  using System.Xml.Linq;
5
- using BlueStack.Editor;
6
5
  using UnityEditor;
7
6
  using UnityEditor.Build;
8
7
  using UnityEditor.Build.Reporting;
9
8
  using UnityEngine;
10
9
 
11
- namespace BlueStack.Editor.Android
10
+ namespace Azerion.BlueStack.Editor.Android
12
11
  {
13
12
  public class ManifestProcessor
14
13
  {
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "Azerion.BlueStack.Editor",
3
+ "rootNamespace": "",
4
+ "references": [],
5
+ "includePlatforms": [
6
+ "Editor"
7
+ ],
8
+ "excludePlatforms": [],
9
+ "allowUnsafeCode": false,
10
+ "overrideReferences": false,
11
+ "precompiledReferences": [],
12
+ "autoReferenced": true,
13
+ "defineConstraints": [],
14
+ "versionDefines": [],
15
+ "noEngineReferences": false
16
+ }
@@ -1,9 +1,9 @@
1
1
  <dependencies>
2
2
  <androidPackages>
3
- <androidPackage spec="com.azerion:bluestack-sdk-core:4.2.6" />
3
+ <androidPackage spec="com.azerion:bluestack-sdk-core:4.2.8" />
4
4
  </androidPackages>
5
5
  <iosPods>
6
- <iosPod name="BlueStack-SDK" version="4.2.5" bitcodeEnabled="false"
6
+ <iosPod name="BlueStack-SDK" version="4.2.7" bitcodeEnabled="false"
7
7
  addToAllTargets="false"/>
8
8
  </iosPods>
9
9
  </dependencies>
@@ -1,6 +1,6 @@
1
1
  using UnityEngine;
2
2
 
3
- namespace BlueStack.Editor
3
+ namespace Azerion.BlueStack.Editor
4
4
  {
5
5
  public class BlueStackSettings : ScriptableObject
6
6
  {
@@ -2,7 +2,7 @@ using System.IO;
2
2
  using UnityEditor;
3
3
  using UnityEngine;
4
4
 
5
- namespace BlueStack.Editor
5
+ namespace Azerion.BlueStack.Editor
6
6
  {
7
7
  [CustomEditor(typeof(BlueStackSettings))]
8
8
  public class BlueStackSettingsEditor : UnityEditor.Editor
@@ -1,7 +1,7 @@
1
1
  using System;
2
2
  using System.Collections.Generic;
3
3
 
4
- namespace BlueStack.Editor
4
+ namespace Azerion.BlueStack.Editor
5
5
  {
6
6
  public class Constants
7
7
  {
@@ -1,7 +1,7 @@
1
1
  using UnityEditor;
2
2
  using UnityEngine;
3
3
 
4
- namespace BlueStack.Editor
4
+ namespace Azerion.BlueStack.Editor
5
5
  {
6
6
  public class DebugHelper
7
7
  {
@@ -1,4 +1,4 @@
1
- namespace BlueStack.Editor
1
+ namespace Azerion.BlueStack.Editor
2
2
  {
3
3
  public class Dependency
4
4
  {
@@ -1,4 +1,4 @@
1
- namespace BlueStack.Editor
1
+ namespace Azerion.BlueStack.Editor
2
2
  {
3
3
  public class DependencyCheckResult
4
4
  {
@@ -1,6 +1,6 @@
1
1
  using System.Collections.Generic;
2
2
 
3
- namespace BlueStack.Editor
3
+ namespace Azerion.BlueStack.Editor
4
4
  {
5
5
  public class DependencyProvider
6
6
  {
@@ -1,6 +1,6 @@
1
1
  using System.Collections.Generic;
2
2
 
3
- namespace BlueStack.Editor
3
+ namespace Azerion.BlueStack.Editor
4
4
  {
5
5
  public interface IDependencyParser
6
6
  {
@@ -1,14 +1,14 @@
1
- #if UNITY_IOS
1
+ //#if UNITY_IOS
2
2
 
3
3
  using System.Collections.Generic;
4
4
  using UnityEditor;
5
5
  using UnityEditor.Callbacks;
6
6
  using System.IO;
7
- using BlueStack.Editor.iOS.PodDependency;
7
+ using Azerion.BlueStack.Editor.iOS.PodDependency;
8
8
  using UnityEditor.iOS.Xcode;
9
9
  using UnityEngine;
10
10
 
11
- namespace BlueStack.Editor.iOS
11
+ namespace Azerion.BlueStack.Editor.iOS
12
12
  {
13
13
  public class BlueStackBuildPostProcess
14
14
  {
@@ -139,4 +139,4 @@ namespace BlueStack.Editor.iOS
139
139
  }
140
140
  }
141
141
 
142
- #endif
142
+ //#endif
@@ -2,7 +2,7 @@ using System.Collections.Generic;
2
2
  using System.Xml;
3
3
  using UnityEngine;
4
4
 
5
- namespace BlueStack.Editor.iOS
5
+ namespace Azerion.BlueStack.Editor.iOS
6
6
  {
7
7
  public class IOSDependencyParser : IDependencyParser
8
8
  {
@@ -2,7 +2,7 @@ using System;
2
2
  using System.Collections.Generic;
3
3
  using System.IO;
4
4
 
5
- namespace BlueStack.Editor.iOS.PodDependency
5
+ namespace Azerion.BlueStack.Editor.iOS.PodDependency
6
6
  {
7
7
  public class PodDependencyUtils
8
8
  {
@@ -1,5 +1,5 @@
1
1
  fileFormatVersion: 2
2
- guid: 5d4e86c1836724058908de86d85c6d17
2
+ guid: 82ecf432ec49047bfb48b7d7014c1f4b
3
3
  PluginImporter:
4
4
  externalObjects: {}
5
5
  serializedVersion: 2
@@ -12,7 +12,8 @@ NS_ASSUME_NONNULL_BEGIN
12
12
 
13
13
  typedef NS_ENUM(NSUInteger, BSUInitializationState) {
14
14
  BSUInitializationStateNotReady = 0,
15
- BSUInitializationStateReady = 1
15
+ BSUInitializationStateReady = 1,
16
+ BSUInitializationStateUnknown = 2
16
17
  };
17
18
 
18
19
  @interface BSUAdNetworkStatus : NSObject
@@ -7,13 +7,16 @@
7
7
 
8
8
  #import <Foundation/Foundation.h>
9
9
  #import "BSUSettings.h"
10
+ #import <BlueStackSDK/MNGAdsSDKFactory.h>
10
11
 
11
12
  NS_ASSUME_NONNULL_BEGIN
12
13
 
13
14
  @interface BSUInitializer : NSObject
14
15
 
15
16
  + (BSUInitializer*)sharedInstance;
16
- - (void)prepareBlueStackSDKWithAppId:(NSString *)appId withSettings:(BSUSettings *)settings withCompletionHandler:(void (^)(BOOL, NSError*))completionHandler;
17
+ - (void)prepareBlueStackSDKWithAppId:(NSString *)appId withSettings:(BSUSettings *)settings
18
+ withSDKCompletionHandler:(void (^)(BOOL, NSError*))completionHandler
19
+ withAdaptersInitCompletionHandler:(void (^)(BlueStackInitializationStatus*))adaptersInitcompletionHandler;
17
20
 
18
21
  @end
19
22
 
@@ -10,7 +10,8 @@
10
10
 
11
11
  @interface BSUInitializer () <MNGAdsSDKFactoryDelegate>
12
12
 
13
- @property (nonatomic, copy) void (^completionHandler)(BOOL, NSError*);
13
+ @property (nonatomic, copy) void (^sdkInitCompletionHandler)(BOOL, NSError*);
14
+ @property (nonatomic, copy) void (^adaptersInitcompletionHandler)(BlueStackInitializationStatus*);
14
15
 
15
16
  @end
16
17
 
@@ -28,8 +29,11 @@
28
29
  return instance;
29
30
  }
30
31
 
31
- - (void)prepareBlueStackSDKWithAppId:(NSString *)appId withSettings:(BSUSettings *)settings withCompletionHandler:(void (^)(BOOL, NSError*))completionHandler {
32
- self.completionHandler = completionHandler;
32
+ - (void)prepareBlueStackSDKWithAppId:(NSString *)appId withSettings:(BSUSettings *)settings
33
+ withSDKCompletionHandler:(void (^)(BOOL, NSError*))completionHandler
34
+ withAdaptersInitCompletionHandler:(void (^)(BlueStackInitializationStatus*))adaptersInitcompletionHandler {
35
+ self.sdkInitCompletionHandler = completionHandler;
36
+ self.adaptersInitcompletionHandler = adaptersInitcompletionHandler;
33
37
  [MNGAdsSDKFactory setDelegate:[BSUInitializer sharedInstance]];
34
38
  [MNGAdsSDKFactory setDebugModeEnabled:settings.isDebugModeEnabled];
35
39
  [MNGAdsSDKFactory initWithAppId:appId];
@@ -37,15 +41,22 @@
37
41
 
38
42
  -(void)MNGAdsSDKFactoryDidFinishInitializing {
39
43
  NSLog(@"MNGAdsSDKFactoryDidFinishInitializing from native bridging");
40
- if(self.completionHandler != nil) {
41
- self.completionHandler(YES, nil);
44
+ if(self.sdkInitCompletionHandler != nil) {
45
+ self.sdkInitCompletionHandler(YES, nil);
42
46
  }
43
47
  }
44
48
 
45
49
  -(void)MNGAdsSDKFactoryDidFailInitializationWithError:(NSError*) error {
46
50
  NSLog(@"MNGAdsSDKFactoryDidFailInitializationWithError: %@",error.localizedDescription);
47
- if(self.completionHandler != nil) {
48
- self.completionHandler(NO, error);
51
+ if(self.sdkInitCompletionHandler != nil) {
52
+ self.sdkInitCompletionHandler(NO, error);
53
+ }
54
+ }
55
+
56
+ -(void)MNGAdsSDKFactoryDidFinishAdaptersInitializing:(BlueStackInitializationStatus*) blueStackInitializationStatus {
57
+ NSLog(@"MNGAdsSDKFactoryDidFinishAdaptersInitializing from native bridging");
58
+ if(self.sdkInitCompletionHandler != nil) {
59
+ self.adaptersInitcompletionHandler(blueStackInitializationStatus);
49
60
  }
50
61
  }
51
62
 
@@ -20,7 +20,8 @@ const char *BSUGetAdErrorDomain(BSUTypeErrorRef error);
20
20
  const char *BSUGetAdErrorMessage(BSUTypeErrorRef error);
21
21
 
22
22
  // Initialization
23
- void BSUInitializeWithCallback(BSUTypeMobileAdsClientRef *mobileAdsClientRef, const char *appId, BSUTypeSettingsRef settingsRef, BSUInitializationCompleteCallback callback);
23
+ void BSUInitializeWithCallback(BSUTypeMobileAdsClientRef *mobileAdsClientRef, const char *appId, BSUTypeSettingsRef settingsRef, BSUSDKInitializationCompleteCallback sdkInitCallback, BSUAdaptersInitializationCompleteCallback adaptersInitCallback);
24
+ NSDictionary *classNameKeyedDictionaryFromArray(NSArray *array);
24
25
  int BSUGetInitState(BSUTypeInitializationStatusRef statusRef, const char *className);
25
26
  const char **BSUGetInitAdapterClasses(BSUTypeInitializationStatusRef statusRef);
26
27
  int BSUGetInitNumberOfAdapterClasses(BSUTypeInitializationStatusRef statusRef);
@@ -17,6 +17,7 @@
17
17
  #import "BSURewardedVideoAd.h"
18
18
  #import "BSUInterstitialAd.h"
19
19
  #import "BSUBanner.h"
20
+ // #import "BSUNativeAd.h"
20
21
 
21
22
  static NSString *BSUStringFromUTF8String(const char *bytes) { return bytes ? @(bytes) : nil; }
22
23
 
@@ -53,55 +54,76 @@ void BSURelease(BSUTypeRef ref) {
53
54
  }
54
55
  }
55
56
 
56
- void BSUInitializeWithCallback(BSUTypeMobileAdsClientRef *mobileAdsClientRef, const char *appId, BSUTypeSettingsRef settingsRef, BSUInitializationCompleteCallback callback) {
57
+ void BSUInitializeWithCallback(BSUTypeMobileAdsClientRef *mobileAdsClientRef, const char *appId, BSUTypeSettingsRef settingsRef, BSUSDKInitializationCompleteCallback sdkInitCallback, BSUAdaptersInitializationCompleteCallback adaptersInitCallback) {
57
58
  NSString *appIdString = BSUStringFromUTF8String(appId);
58
59
  BSUSettings *settings = (__bridge BSUSettings *)settingsRef;
59
60
  NSLog(@"BSUInitializeWithCallback called for %@",appIdString);
60
- [[BSUInitializer sharedInstance] prepareBlueStackSDKWithAppId:appIdString withSettings:settings withCompletionHandler:^(BOOL success, NSError *error) {
61
-
62
- // Creating hard coded status until bluestack implement adapter status information
63
- BSUAdNetworkStatus *status = nil;
64
- if (success == NO || error != nil) {
65
- status = [[BSUAdNetworkStatus alloc] initWithAdProvider:@"BlueStack" withState:BSUInitializationStateNotReady withDescription:[error localizedDescription]];
66
- }else {
67
- status = [[BSUAdNetworkStatus alloc] initWithAdProvider:@"BlueStack" withState:BSUInitializationStateReady withDescription:@"BlueStack SDK has been initialized"];
61
+ [[BSUInitializer sharedInstance] prepareBlueStackSDKWithAppId:appIdString withSettings:settings
62
+ withSDKCompletionHandler:^(BOOL success, NSError *error) {
63
+ NSLog(@"BSUInitializeWithCallback withCompletionHandler");
64
+ sdkInitCallback(mobileAdsClientRef, success, (__bridge BSUTypeErrorRef)error);
65
+ }
66
+ withAdaptersInitCompletionHandler:^(BlueStackInitializationStatus *bsInitStatus) {
67
+ NSLog(@"BSUInitializeWithCallback withAdaptersInitCompletionHandler");
68
+ if(adaptersInitCallback != nil){
69
+ BSUInitializtionStatus *initStatus = [[BSUInitializtionStatus alloc] init];
70
+ initStatus.adapterStatusesByClassName = classNameKeyedDictionaryFromArray(bsInitStatus.adaptersStatus);
71
+
72
+ BSUObjectCache *cache = [BSUObjectCache sharedInstance];
73
+ cache[initStatus.BSU_referenceKey] = initStatus;
74
+ adaptersInitCallback(mobileAdsClientRef, (__bridge BSUTypeInitializationStatusRef)initStatus);
68
75
  }
69
- BSUInitializtionStatus *initStatus = [[BSUInitializtionStatus alloc] init];
70
- initStatus.adapterStatusesByClassName = [NSDictionary dictionaryWithObject:status forKey:@"BlueStack"];
71
-
72
-
73
- BSUObjectCache *cache = [BSUObjectCache sharedInstance];
74
- cache[status.BSU_referenceKey] = initStatus;
75
- callback(mobileAdsClientRef, (__bridge BSUTypeInitializationStatusRef)initStatus);
76
- }];
77
-
76
+ }];
78
77
  }
79
78
 
80
- //TODO: Later we will implement adapter list in bluestack sdk
79
+ NSDictionary *classNameKeyedDictionaryFromArray(NSArray *array) {
80
+ BlueStackAdapterStatus *objectInstance;
81
+ BSUAdNetworkStatus *status = nil;
82
+ NSMutableDictionary *mutableDictionary = [[NSMutableDictionary alloc] init];
83
+ for (objectInstance in array)
84
+ if (objectInstance.provider != nil && objectInstance.descriptionStatus != nil){
85
+ status = [[BSUAdNetworkStatus alloc] initWithAdProvider:objectInstance.provider withState:objectInstance.state withDescription:objectInstance.descriptionStatus];
86
+ [mutableDictionary setObject:status forKey:[NSString stringWithString:objectInstance.provider]];
87
+ }
88
+ return [mutableDictionary copy];
89
+ }
81
90
 
82
91
  int BSUGetInitState(BSUTypeInitializationStatusRef statusRef, const char *className) {
83
-
84
- return 1;
92
+ BSUInitializtionStatus *initStatus = (__bridge BSUInitializtionStatus *)statusRef;
93
+ NSString *classNameString = BSUStringFromUTF8String(className);
94
+ return initStatus.adapterStatusesByClassName[classNameString].state;
95
+ //return 1;
85
96
  }
86
97
 
87
98
  const char **BSUGetInitAdapterClasses(BSUTypeInitializationStatusRef statusRef) {
88
- NSArray<NSString *> *classes = [NSArray arrayWithObject:@"BlueStack"];
99
+ // NSArray<NSString *> *classes = [NSArray arrayWithObject:@"BlueStack"];
100
+ BSUInitializtionStatus *initStatus = (__bridge BSUInitializtionStatus *)statusRef;
101
+ NSArray *classes = [initStatus.adapterStatusesByClassName allKeys];
89
102
  return cStringArrayCopy(classes);
90
103
  }
91
104
 
92
105
  int BSUGetInitNumberOfAdapterClasses(BSUTypeInitializationStatusRef statusRef) {
93
-
94
- return 1;
106
+ BSUInitializtionStatus *initStatus = (__bridge BSUInitializtionStatus *)statusRef;
107
+ return [initStatus.adapterStatusesByClassName count];
108
+ // return 1;
95
109
  }
96
110
 
97
111
  const char *BSUGetInitDescription(BSUTypeInitializationStatusRef statusRef,
98
112
  const char *className) {
99
- return cStringCopy(@"BlueStack".UTF8String);
113
+ BSUInitializtionStatus *initStatus = (__bridge BSUInitializtionStatus *)statusRef;
114
+ NSString *classNameString = BSUStringFromUTF8String(className);
115
+ const char *description = [initStatus.adapterStatusesByClassName[classNameString].networkDescription UTF8String];
116
+ return cStringCopy(description);
117
+ // return cStringCopy(@"BlueStack".UTF8String);
100
118
  }
101
119
 
102
120
  const char *BSUGetInitProviderName(BSUTypeInitializationStatusRef statusRef,
103
121
  const char *className) {
104
- return cStringCopy(@"BlueStack".UTF8String);
122
+ BSUInitializtionStatus *initStatus = (__bridge BSUInitializtionStatus *)statusRef;
123
+ NSString *classNameString = BSUStringFromUTF8String(className);
124
+ const char *providerName = [initStatus.adapterStatusesByClassName[classNameString].adProvider UTF8String];
125
+ return cStringCopy(providerName);
126
+ // return cStringCopy(@"BlueStack".UTF8String);
105
127
  }
106
128
 
107
129
  #pragma mark Settings
@@ -10,6 +10,8 @@ typedef NS_ENUM(NSInteger, BSUAdPosition) {
10
10
 
11
11
  typedef const void *BSUTypeRef;
12
12
 
13
+ typedef const void *BSUTypeErrorRef;
14
+
13
15
  typedef const void *BSUTypeSettingsRef;
14
16
 
15
17
  typedef const void *BSUTypePreferenceRef;
@@ -18,9 +20,11 @@ typedef const void *BSUTypeMobileAdsClientRef;
18
20
 
19
21
  typedef const void *BSUTypeInitializationStatusRef;
20
22
 
21
- typedef void (*BSUInitializationCompleteCallback)(BSUTypeMobileAdsClientRef *clientRef,
23
+ typedef void (*BSUAdaptersInitializationCompleteCallback)(BSUTypeMobileAdsClientRef *clientRef,
22
24
  BSUTypeInitializationStatusRef statusRef);
23
- typedef const void *BSUTypeErrorRef;
25
+
26
+ typedef void (*BSUSDKInitializationCompleteCallback)(BSUTypeMobileAdsClientRef *clientRef, BOOL success, BSUTypeErrorRef error);
27
+
24
28
 
25
29
 
26
30
 
@@ -1,4 +1,4 @@
1
- namespace BlueStack.API
1
+ namespace Azerion.BlueStack.API
2
2
  {
3
3
  public class AdSize
4
4
  {
@@ -1,4 +1,4 @@
1
- namespace BlueStack.API
1
+ namespace Azerion.BlueStack.API
2
2
  {
3
3
  public class AdapterStatus
4
4
  {
@@ -19,6 +19,7 @@ namespace BlueStack.API
19
19
  public enum AdapterState
20
20
  {
21
21
  NotReady = 0,
22
- Ready = 1
22
+ Ready = 1,
23
+ Unknown = 2
23
24
  }
24
25
  }
@@ -1,13 +1,13 @@
1
1
  using System.Collections.Generic;
2
- using BlueStack.Rumtime.Internal;
2
+ using Azerion.BlueStack.Internal;
3
3
 
4
- namespace BlueStack.API
4
+ namespace Azerion.BlueStack.API
5
5
  {
6
- public class InitializationStatus
6
+ public class AdaptersInitializationStatus
7
7
  {
8
8
  private IInitializationStatusClient _initializationStatusClient;
9
9
 
10
- internal InitializationStatus(IInitializationStatusClient initializationStatusClient)
10
+ internal AdaptersInitializationStatus(IInitializationStatusClient initializationStatusClient)
11
11
  {
12
12
  this._initializationStatusClient = initializationStatusClient;
13
13
  }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 173beb288c4a344ffb1390ddb9a8a2b7
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -1,4 +1,4 @@
1
- namespace BlueStack.API.Banner
1
+ namespace Azerion.BlueStack.API.Banner
2
2
  {
3
3
  public enum AdPosition
4
4
  {
@@ -1,8 +1,9 @@
1
1
  using System;
2
- using BlueStack.API;
3
- using Internal;
2
+ using Azerion.BlueStack;
3
+ using Azerion.BlueStack.API;
4
+ using Azerion.BlueStack.Internal;
4
5
 
5
- namespace BlueStack.API.Banner
6
+ namespace Azerion.BlueStack.API.Banner
6
7
  {
7
8
  public class BannerAd
8
9
  {
@@ -1,8 +1,8 @@
1
1
  using System;
2
- using BlueStack.Rumtime.Internal;
2
+ using Azerion.BlueStack.Internal;
3
3
  using UnityEngine;
4
4
 
5
- namespace BlueStack.API
5
+ namespace Azerion.BlueStack.API
6
6
  {
7
7
  public class BlueStackAds
8
8
  {
@@ -17,11 +17,12 @@ namespace BlueStack.API
17
17
  _blueStackClient = GetClientsFactory().CreateBlueStackClient();
18
18
  }
19
19
 
20
- public static void Initialize(string appId, Settings settings, Action<InitializationStatus> initCompleteAction)
20
+ public static void Initialize(string appId, Settings settings, Action<SDKInitializationStatus> sdkInitCompleteAction, Action<AdaptersInitializationStatus> adaptersInitCompleteAction = null)
21
21
  {
22
22
  Instance._settings = settings;
23
- Instance._blueStackClient.Initialize(appId, settings,
24
- client => { initCompleteAction.Invoke(new InitializationStatus(client)); });
23
+ Instance._blueStackClient.Initialize(appId, settings, sdkInitCompleteAction, client => {
24
+ if (adaptersInitCompleteAction != null) adaptersInitCompleteAction.Invoke(new AdaptersInitializationStatus(client));
25
+ });
25
26
  }
26
27
 
27
28
  internal static IClientsFactory GetClientsFactory()
@@ -31,19 +32,21 @@ namespace BlueStack.API
31
32
  if (Application.platform == RuntimePlatform.Android)
32
33
  {
33
34
  #if !UNITY_EDITOR && !UNITY_IPHONE
34
- _clientsFactory = new Platforms.Android.ClientsFactory();
35
+ _clientsFactory = new Azerion.BlueStack.Platforms.Android.ClientsFactory();
35
36
  #endif
36
37
  }
37
38
  else if (Application.platform == RuntimePlatform.IPhonePlayer)
38
39
  {
39
40
  #if UNITY_IOS && !UNITY_EDITOR
40
- _clientsFactory = new Platforms.iOS.ClientsFactory();
41
+ _clientsFactory = new Azerion.BlueStack.Platforms.iOS.ClientsFactory();
41
42
  #endif
42
43
  }
43
44
  else
44
45
  {
45
- const string factoryClassName = "Platforms.Unity.ClientsFactory";
46
+ const string factoryClassName = "Azerion.BlueStack.Platforms.UnityEditor.ClientsFactory";
47
+ Debug.Log(factoryClassName);
46
48
  Type type = Type.GetType(factoryClassName, true);
49
+ Debug.Log("Client Type: " + type.ToString());
47
50
  _clientsFactory = (IClientsFactory)Activator.CreateInstance(type);
48
51
  }
49
52
  }
@@ -1,6 +1,6 @@
1
1
  using System;
2
2
 
3
- namespace BlueStack.API
3
+ namespace Azerion.BlueStack.API
4
4
  {
5
5
  public class BlueStackError : EventArgs
6
6
  {
@@ -1,7 +1,7 @@
1
1
  using System;
2
- using Internal;
2
+ using Azerion.BlueStack.Internal;
3
3
 
4
- namespace BlueStack.API
4
+ namespace Azerion.BlueStack.API
5
5
  {
6
6
  public class InterstitialAd
7
7
  {
@@ -1,4 +1,4 @@
1
- namespace BlueStack.API
1
+ namespace Azerion.BlueStack.API
2
2
  {
3
3
  public enum Gender
4
4
  {
@@ -1,4 +1,4 @@
1
- namespace BlueStack.API
1
+ namespace Azerion.BlueStack.API
2
2
  {
3
3
  public class Location
4
4
  {
@@ -1,6 +1,6 @@
1
- using Internal;
1
+ using Azerion.BlueStack.Internal;
2
2
 
3
- namespace BlueStack.API
3
+ namespace Azerion.BlueStack.API
4
4
  {
5
5
  public class Preference
6
6
  {
@@ -1,4 +1,4 @@
1
- namespace BlueStack.API.Rewarded
1
+ namespace Azerion.BlueStack.API.Rewarded
2
2
  {
3
3
  public class RewardedItem
4
4
  {
@@ -1,7 +1,7 @@
1
1
  using System;
2
- using Internal;
2
+ using Azerion.BlueStack.Internal;
3
3
 
4
- namespace BlueStack.API.Rewarded
4
+ namespace Azerion.BlueStack.API.Rewarded
5
5
  {
6
6
  public class RewardedVideoAd
7
7
  {