Skip to content

Commit 4673525

Browse files
committed
change mapboxConfig to use new unityEnum method as well
1 parent 63982a5 commit 4673525

File tree

2 files changed

+38
-16
lines changed

2 files changed

+38
-16
lines changed

Runtime/Mapbox/BaseModule/Telemetry/TelemetryAndroid.cs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,13 @@ public class TelemetryAndroid : ITelemetryLibrary
5858
private string _sdkInfoRegistryFactoryClassName = "com.mapbox.common.SdkInfoRegistryFactory";
5959
private string _sdkInfoRegistryFactoryGetMethodName = "getInstance";
6060
private string _sdkInfoRegistryRegisterMethodName = "registerSdkInformation";
61+
62+
private string _unityMausEnumString = "UnityMAUS";
63+
private string _valuesMethodNameForEnums = "values";
64+
private string _toStringMethodName = "toString";
6165

6266
private AndroidJavaObject _sdkInformation;
67+
private AndroidJavaObject _unityEnum;
6368

6469
public void Initialize(string accessToken)
6570
{
@@ -82,6 +87,19 @@ public void Initialize(string accessToken)
8287
return;
8388
}
8489

90+
var skuidClass = new AndroidJavaClass(_mapboxUserSkuIdentifierClassName);
91+
var skuValuesArray = skuidClass.CallStatic<AndroidJavaObject>(_valuesMethodNameForEnums);
92+
var convertedArray = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(skuValuesArray.GetRawObject());
93+
foreach (var javaEnumObject in convertedArray)
94+
{
95+
var enumString = javaEnumObject.Call<string>(_toStringMethodName);
96+
if (enumString == _unityMausEnumString)
97+
{
98+
_unityEnum = javaEnumObject;
99+
break;
100+
}
101+
}
102+
85103
// SdkInformation testInformation = new SdkInformation(applicationName, packageVersion, packageName);
86104
// SdkInfoRegistry registry = SdkInfoRegistryFactory.getInstance();
87105
// registry.registerSdkInformation(testInformation);
@@ -113,13 +131,8 @@ public void SendTurnstile()
113131
Debug.Log(_eventsServiceNullMessage);
114132
return;
115133
}
116-
117-
var skuid = new AndroidJavaClass(_mapboxUserSkuIdentifierClassName);
118-
AndroidJavaObject valueArray = skuid.CallStatic<AndroidJavaObject>("values");
119-
var array = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(valueArray.GetRawObject());
120-
var unityEnum = array[7];
121134

122-
using (AndroidJavaObject turnstileEvent = new AndroidJavaObject(_mapboxTurnstileEventClassName, unityEnum))
135+
using (AndroidJavaObject turnstileEvent = new AndroidJavaObject(_mapboxTurnstileEventClassName, _unityEnum))
123136
{
124137
_mapboxEventService.Call(_sendTurnstileEventMethodName, turnstileEvent, null);
125138
}
@@ -130,14 +143,8 @@ public void SendSdkEvent()
130143
{
131144
var billingServiceFactory = new AndroidJavaClass(_mapboxBillingServiceFactoryClassName);
132145
var billingService = billingServiceFactory.CallStatic<AndroidJavaObject>(_mapboxBillingFactoryGetMethodName);
133-
134-
var skuid = new AndroidJavaClass(_mapboxUserSkuIdentifierClassName);
135-
AndroidJavaObject valueArray = skuid.CallStatic<AndroidJavaObject>("values");
136-
var array = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(valueArray.GetRawObject());
137-
var unityEnum = array[7];
138-
139146

140-
billingService.Call(_mapboxSdkEventMethodName, _sdkInformation, unityEnum, null);
147+
billingService.Call(_mapboxSdkEventMethodName, _sdkInformation, _unityEnum, null);
141148
}
142149

143150
public void SetLocationCollectionState(bool enable)

Runtime/Mapbox/BaseModule/Utilities/MapboxConfiguration.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,27 @@ public string GetMapsSkuToken()
5454
private string _mapboxoptionsClassName = "com.mapbox.common.MapboxOptions";
5555
private string _mapboxOptionsSetAccessTokenMethodName = "setAccessToken";
5656
private string _couldNotGetMapboxOptionsMessage = "Couldn't get Mapbox Options";
57+
private string _unityMausEnumString = "UnityMAUS";
58+
private string _valuesMethodNameForEnums = "values";
59+
private string _toStringMethodName = "toString";
60+
private AndroidJavaObject _unityEnum;
5761

5862
public void Initialize()
5963
{
6064
SetAccessToken(AccessToken);
65+
66+
var skuidClass = new AndroidJavaClass(_mapboxUserSkuIdentifierClassName);
67+
var skuValuesArray = skuidClass.CallStatic<AndroidJavaObject>(_valuesMethodNameForEnums);
68+
var convertedArray = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(skuValuesArray.GetRawObject());
69+
foreach (var javaEnumObject in convertedArray)
70+
{
71+
var enumString = javaEnumObject.Call<string>(_toStringMethodName);
72+
if (enumString == _unityMausEnumString)
73+
{
74+
_unityEnum = javaEnumObject;
75+
break;
76+
}
77+
}
6178
}
6279

6380
private bool SetAccessToken(string accessToken)
@@ -77,9 +94,7 @@ public string GetMapsSkuToken()
7794
{
7895
var billingServiceFactory = new AndroidJavaClass(_mapboxBillingServiceFactoryClassName);
7996
var billingService = billingServiceFactory.CallStatic<AndroidJavaObject>(_mapboxBillingFactoryGetMethodName);
80-
81-
var skuid = new AndroidJavaObject(_mapboxUserSkuIdentifierClassName);
82-
return billingService.Call<string>(_mapboxSkuTokenMethodName, skuid.GetStatic<AndroidJavaObject>(_unityMausEnumName));
97+
return billingService.Call<string>(_mapboxSkuTokenMethodName, _unityEnum);
8398
}
8499
#endif
85100

0 commit comments

Comments
 (0)