Compare commits
No commits in common. "5df6ee8ae5fd6f2cabb9c3e6d898b546d58e6a4d" and "6b9a2e7b80a8a27c7a90da3e13f3ab7931f01cc3" have entirely different histories.
5df6ee8ae5
...
6b9a2e7b80
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"version": "1.0",
|
|
||||||
"components": [
|
|
||||||
"Microsoft.VisualStudio.Workload.ManagedGame"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1107 &-3377747260944808518
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Base Layer
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: -2380496168706946993}
|
|
||||||
m_Position: {x: 200, y: 0, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: -2380496168706946993}
|
|
||||||
--- !u!1102 &-2380496168706946993
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: coin_anim
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 1
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 7400000, guid: 5cbe1d90687599e4089f303a50a79963, type: 2}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!91 &9100000
|
|
||||||
AnimatorController:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: PickupCoin
|
|
||||||
serializedVersion: 5
|
|
||||||
m_AnimatorParameters: []
|
|
||||||
m_AnimatorLayers:
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: Base Layer
|
|
||||||
m_StateMachine: {fileID: -3377747260944808518}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: b4c3f44121462844fa9bddb0eefb323f
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 9100000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,213 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!74 &7400000
|
|
||||||
AnimationClip:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: coin_anim
|
|
||||||
serializedVersion: 7
|
|
||||||
m_Legacy: 0
|
|
||||||
m_Compressed: 0
|
|
||||||
m_UseHighQualityCurve: 1
|
|
||||||
m_RotationCurves: []
|
|
||||||
m_CompressedRotationCurves: []
|
|
||||||
m_EulerCurves: []
|
|
||||||
m_PositionCurves: []
|
|
||||||
m_ScaleCurves:
|
|
||||||
- curve:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Curve:
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0
|
|
||||||
value: {x: 0.1, y: 0.1, z: 1}
|
|
||||||
inSlope: {x: 0, y: 0, z: 0}
|
|
||||||
outSlope: {x: 0, y: 0, z: 0}
|
|
||||||
tangentMode: 0
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
|
||||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0.75
|
|
||||||
value: {x: 0, y: 0.1, z: 1}
|
|
||||||
inSlope: {x: 0, y: 0, z: 0}
|
|
||||||
outSlope: {x: 0, y: 0, z: 0}
|
|
||||||
tangentMode: 0
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
|
||||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 1.5
|
|
||||||
value: {x: 0.1, y: 0.1, z: 1}
|
|
||||||
inSlope: {x: 0, y: 0, z: 0}
|
|
||||||
outSlope: {x: 0, y: 0, z: 0}
|
|
||||||
tangentMode: 0
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
|
||||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
|
||||||
m_PreInfinity: 2
|
|
||||||
m_PostInfinity: 2
|
|
||||||
m_RotationOrder: 4
|
|
||||||
path:
|
|
||||||
m_FloatCurves: []
|
|
||||||
m_PPtrCurves: []
|
|
||||||
m_SampleRate: 60
|
|
||||||
m_WrapMode: 0
|
|
||||||
m_Bounds:
|
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
|
||||||
m_Extent: {x: 0, y: 0, z: 0}
|
|
||||||
m_ClipBindingConstant:
|
|
||||||
genericBindings:
|
|
||||||
- serializedVersion: 2
|
|
||||||
path: 0
|
|
||||||
attribute: 3
|
|
||||||
script: {fileID: 0}
|
|
||||||
typeID: 4
|
|
||||||
customType: 0
|
|
||||||
isPPtrCurve: 0
|
|
||||||
isIntCurve: 0
|
|
||||||
isSerializeReferenceCurve: 0
|
|
||||||
pptrCurveMapping: []
|
|
||||||
m_AnimationClipSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
|
||||||
m_AdditiveReferencePoseTime: 0
|
|
||||||
m_StartTime: 0
|
|
||||||
m_StopTime: 1.5
|
|
||||||
m_OrientationOffsetY: 0
|
|
||||||
m_Level: 0
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_HasAdditiveReferencePose: 0
|
|
||||||
m_LoopTime: 1
|
|
||||||
m_LoopBlend: 0
|
|
||||||
m_LoopBlendOrientation: 0
|
|
||||||
m_LoopBlendPositionY: 0
|
|
||||||
m_LoopBlendPositionXZ: 0
|
|
||||||
m_KeepOriginalOrientation: 0
|
|
||||||
m_KeepOriginalPositionY: 1
|
|
||||||
m_KeepOriginalPositionXZ: 0
|
|
||||||
m_HeightFromFeet: 0
|
|
||||||
m_Mirror: 0
|
|
||||||
m_EditorCurves:
|
|
||||||
- serializedVersion: 2
|
|
||||||
curve:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Curve:
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0
|
|
||||||
value: 0.1
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0.75
|
|
||||||
value: 0
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 1.5
|
|
||||||
value: 0.1
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
m_PreInfinity: 2
|
|
||||||
m_PostInfinity: 2
|
|
||||||
m_RotationOrder: 4
|
|
||||||
attribute: m_LocalScale.x
|
|
||||||
path:
|
|
||||||
classID: 4
|
|
||||||
script: {fileID: 0}
|
|
||||||
flags: 0
|
|
||||||
- serializedVersion: 2
|
|
||||||
curve:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Curve:
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0
|
|
||||||
value: 0.1
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0.75
|
|
||||||
value: 0.1
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 1.5
|
|
||||||
value: 0.1
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
m_PreInfinity: 2
|
|
||||||
m_PostInfinity: 2
|
|
||||||
m_RotationOrder: 4
|
|
||||||
attribute: m_LocalScale.y
|
|
||||||
path:
|
|
||||||
classID: 4
|
|
||||||
script: {fileID: 0}
|
|
||||||
flags: 0
|
|
||||||
- serializedVersion: 2
|
|
||||||
curve:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Curve:
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0
|
|
||||||
value: 1
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0.75
|
|
||||||
value: 1
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 1.5
|
|
||||||
value: 1
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
m_PreInfinity: 2
|
|
||||||
m_PostInfinity: 2
|
|
||||||
m_RotationOrder: 4
|
|
||||||
attribute: m_LocalScale.z
|
|
||||||
path:
|
|
||||||
classID: 4
|
|
||||||
script: {fileID: 0}
|
|
||||||
flags: 0
|
|
||||||
m_EulerEditorCurves: []
|
|
||||||
m_HasGenericRootTransform: 0
|
|
||||||
m_HasMotionFloatCurves: 0
|
|
||||||
m_Events: []
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 5cbe1d90687599e4089f303a50a79963
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 7400000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 1c3413686ff4e435f9aafc02bd1bf65e
|
|
||||||
folderAsset: yes
|
|
||||||
timeCreated: 1530702704
|
|
||||||
licenseType: Free
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 1c56ccdd8b8194e30b1fd0a6b41fc1a5
|
|
||||||
folderAsset: yes
|
|
||||||
timeCreated: 1530702704
|
|
||||||
licenseType: Free
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 9526cfa6c16d240ebaeefa4ef9601b8f
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,318 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using ConsentManager.Common;
|
|
||||||
using ConsentManager.Platforms;
|
|
||||||
|
|
||||||
namespace ConsentManager
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
public class ConsentManager
|
|
||||||
{
|
|
||||||
private readonly IConsentManager nativeConsentManager;
|
|
||||||
|
|
||||||
private IConsentManager GetNativeConsentManager()
|
|
||||||
{
|
|
||||||
return nativeConsentManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
private ConsentManager()
|
|
||||||
{
|
|
||||||
nativeConsentManager = ConsentManagerClientFactory.GetConsentManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ConsentManager getInstance()
|
|
||||||
{
|
|
||||||
return new ConsentManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Storage
|
|
||||||
{
|
|
||||||
NONE,
|
|
||||||
SHARED_PREFERENCE
|
|
||||||
}
|
|
||||||
|
|
||||||
public void requestConsentInfoUpdate(string appodealAppKey, IConsentInfoUpdateListener listener)
|
|
||||||
{
|
|
||||||
GetNativeConsentManager().requestConsentInfoUpdate(appodealAppKey, listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void disableAppTrackingTransparencyRequest()
|
|
||||||
{
|
|
||||||
GetNativeConsentManager().disableAppTrackingTransparencyRequest();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCustomVendor(Vendor customVendor)
|
|
||||||
{
|
|
||||||
nativeConsentManager.setCustomVendor(customVendor);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Vendor getCustomVendor(string bundle)
|
|
||||||
{
|
|
||||||
return nativeConsentManager.getCustomVendor(bundle);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Storage getStorage()
|
|
||||||
{
|
|
||||||
return nativeConsentManager.getStorage();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Consent.ShouldShow shouldShowConsentDialog()
|
|
||||||
{
|
|
||||||
return nativeConsentManager.shouldShowConsentDialog();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStorage(Storage iabStorage)
|
|
||||||
{
|
|
||||||
nativeConsentManager.setStorage(iabStorage);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Consent.Zone getConsentZone()
|
|
||||||
{
|
|
||||||
return nativeConsentManager.getConsentZone();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Consent.Status getConsentStatus()
|
|
||||||
{
|
|
||||||
return nativeConsentManager.getConsentStatus();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Consent getConsent()
|
|
||||||
{
|
|
||||||
return nativeConsentManager.getConsent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
public class ConsentForm
|
|
||||||
{
|
|
||||||
private readonly IConsentForm nativeConsentForm;
|
|
||||||
|
|
||||||
private ConsentForm(IConsentFormListener listener)
|
|
||||||
{
|
|
||||||
nativeConsentForm = ConsentManagerClientFactory.GetConsentForm(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ConsentForm GetInstance(IConsentFormListener listener)
|
|
||||||
{
|
|
||||||
return new ConsentForm(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IConsentForm GetNativeConsent()
|
|
||||||
{
|
|
||||||
return nativeConsentForm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void load()
|
|
||||||
{
|
|
||||||
nativeConsentForm.load();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void show()
|
|
||||||
{
|
|
||||||
nativeConsentForm.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool isLoaded()
|
|
||||||
{
|
|
||||||
return nativeConsentForm.isLoaded();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool isShowing()
|
|
||||||
{
|
|
||||||
return nativeConsentForm.isShowing();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
public class Vendor : IVendor
|
|
||||||
{
|
|
||||||
private readonly IVendor nativeVendor;
|
|
||||||
|
|
||||||
public Vendor(IVendor builder)
|
|
||||||
{
|
|
||||||
nativeVendor = builder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IVendor getNativeVendor()
|
|
||||||
{
|
|
||||||
return nativeVendor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Builder
|
|
||||||
{
|
|
||||||
private readonly IVendorBuilder nativeVendorBuilder;
|
|
||||||
|
|
||||||
public Builder(string customVen, string customVendor, string httpsCustomVendorCom)
|
|
||||||
{
|
|
||||||
nativeVendorBuilder =
|
|
||||||
ConsentManagerClientFactory.GetVendorBuilder(customVen, customVendor, httpsCustomVendorCom);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Vendor build()
|
|
||||||
{
|
|
||||||
return new Vendor(nativeVendorBuilder.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setPurposeIds(IEnumerable<int> purposeIds)
|
|
||||||
{
|
|
||||||
nativeVendorBuilder.setPurposeIds(purposeIds);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setFeatureIds(IEnumerable<int> featureIds)
|
|
||||||
{
|
|
||||||
nativeVendorBuilder.setFeatureIds(featureIds);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setLegitimateInterestPurposeIds(IEnumerable<int> legitimateInterestPurposeIds)
|
|
||||||
{
|
|
||||||
nativeVendorBuilder.setLegitimateInterestPurposeIds(legitimateInterestPurposeIds);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string getName()
|
|
||||||
{
|
|
||||||
return nativeVendor.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
public string getBundle()
|
|
||||||
{
|
|
||||||
return nativeVendor.getBundle();
|
|
||||||
}
|
|
||||||
|
|
||||||
public string getPolicyUrl()
|
|
||||||
{
|
|
||||||
return nativeVendor.getPolicyUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<int> getPurposeIds()
|
|
||||||
{
|
|
||||||
return nativeVendor.getPurposeIds();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<int> getFeatureIds()
|
|
||||||
{
|
|
||||||
return nativeVendor.getFeatureIds();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<int> getLegitimateInterestPurposeIds()
|
|
||||||
{
|
|
||||||
return nativeVendor.getLegitimateInterestPurposeIds();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
public class Consent : IConsent
|
|
||||||
{
|
|
||||||
private readonly IConsent consent;
|
|
||||||
|
|
||||||
public Consent(IConsent consent)
|
|
||||||
{
|
|
||||||
this.consent = consent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IConsent getConsent()
|
|
||||||
{
|
|
||||||
return consent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Status
|
|
||||||
{
|
|
||||||
UNKNOWN,
|
|
||||||
NON_PERSONALIZED,
|
|
||||||
PARTLY_PERSONALIZED,
|
|
||||||
PERSONALIZED
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Zone
|
|
||||||
{
|
|
||||||
UNKNOWN,
|
|
||||||
NONE,
|
|
||||||
GDPR,
|
|
||||||
CCPA
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum HasConsent
|
|
||||||
{
|
|
||||||
UNKNOWN,
|
|
||||||
TRUE,
|
|
||||||
FALSE
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum ShouldShow
|
|
||||||
{
|
|
||||||
UNKNOWN,
|
|
||||||
TRUE,
|
|
||||||
FALSE
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum AuthorizationStatus
|
|
||||||
{
|
|
||||||
NOT_DETERMINED,
|
|
||||||
RESTRICTED,
|
|
||||||
DENIED,
|
|
||||||
AUTHORIZED
|
|
||||||
}
|
|
||||||
|
|
||||||
public Zone getZone()
|
|
||||||
{
|
|
||||||
return consent.getZone();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Status getStatus()
|
|
||||||
{
|
|
||||||
return consent.getStatus();
|
|
||||||
}
|
|
||||||
|
|
||||||
public AuthorizationStatus getAuthorizationStatus()
|
|
||||||
{
|
|
||||||
return consent.getAuthorizationStatus();
|
|
||||||
}
|
|
||||||
|
|
||||||
public HasConsent hasConsentForVendor(string bundle)
|
|
||||||
{
|
|
||||||
return consent.hasConsentForVendor(bundle);
|
|
||||||
}
|
|
||||||
|
|
||||||
public string getIabConsentString()
|
|
||||||
{
|
|
||||||
return consent.getIabConsentString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
public class ConsentManagerException : IConsentManagerException
|
|
||||||
{
|
|
||||||
private readonly IConsentManagerException consentManagerException;
|
|
||||||
|
|
||||||
public ConsentManagerException()
|
|
||||||
{
|
|
||||||
consentManagerException = ConsentManagerClientFactory.GetConsentManagerException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ConsentManagerException(IConsentManagerException androidConsentManagerException)
|
|
||||||
{
|
|
||||||
consentManagerException = androidConsentManagerException;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string getReason()
|
|
||||||
{
|
|
||||||
return consentManagerException.getReason();
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCode()
|
|
||||||
{
|
|
||||||
return consentManagerException.getCode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: c22e7af053c004371a396017f8284b50
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 3a076746f2cb340c0a2de3075b77daa8
|
|
||||||
folderAsset: yes
|
|
||||||
timeCreated: 1530702704
|
|
||||||
licenseType: Free
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,89 +0,0 @@
|
||||||
// ReSharper Disable CheckNamespace
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// This class is designed to store ad revenue information.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
public class AppodealAdRevenue
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// Appodeal Ad Type as a not-null string.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
public string AdType;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// Ad Network Name as a not-null string.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
public string NetworkName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// Appodeal Ad Unit Name as a not-null string.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
public string AdUnitName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// Demand Source as a not-null string.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>Bidder name in case of RTB, otherwise - the same as ad network name.</remarks>
|
|
||||||
public string DemandSource;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// Appodeal Placement as a not-null string.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
public string Placement;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// The amount of revenue for an ad.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>It can be zero in case of an invalid impression.</remarks>
|
|
||||||
public double Revenue;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// The Revenue Currency as a not-null string.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>At the moment the only supported currency is USD.</remarks>
|
|
||||||
public string Currency;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// Ad Revenue Precision as a not-null string.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks><para>'exact' - programmatic revenue is the resulting price of an auction.</para><para>'publisher_defined' - revenue from cross-promo campaigns.</para><para>'estimated' - revenue based on ad unit price floor or historical eCPM.</para><para>'undefined' - revenue amount is not defined.</para></remarks>
|
|
||||||
public string RevenuePrecision;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// Returns ad revenue information as a json-formatted string.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="isPretty">If true, format the output for readability. If false, format the output for minimum size. Default is false.</param>
|
|
||||||
public string ToJsonString(bool isPretty = false) => UnityEngine.JsonUtility.ToJson(this, isPretty);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 771fde5441a6402694ccdaa1a8023e20
|
|
||||||
timeCreated: 1664789154
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
// ReSharper Disable CheckNamespace
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Interface containing signature of Appodeal Ad Revenue callback method.
|
|
||||||
/// </summary>
|
|
||||||
public interface IAdRevenueListener
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// <para>
|
|
||||||
/// Fires when Appodeal SDK tracks ad impression.
|
|
||||||
/// </para>
|
|
||||||
/// See <see href=""/> for more details.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="ad">contains info about the tracked impression.</param>
|
|
||||||
void onAdRevenueReceived(AppodealAdRevenue ad);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 431d8147345e4487852bf2fad7935c42
|
|
||||||
timeCreated: 1664789084
|
|
||||||
|
|
@ -1,86 +0,0 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using AppodealAds.Unity.Api;
|
|
||||||
using ConsentManager;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
public interface IAppodealAdsClient
|
|
||||||
{
|
|
||||||
void initialize(string appKey, int adTypes, IAppodealInitializationListener listener);
|
|
||||||
bool isInitialized(int adType);
|
|
||||||
bool show(int adTypes);
|
|
||||||
bool show(int adTypes, string placement);
|
|
||||||
bool isLoaded(int adTypes);
|
|
||||||
void cache(int adTypes);
|
|
||||||
void hide(int adTypes);
|
|
||||||
void setAutoCache(int adTypes, bool autoCache);
|
|
||||||
bool isPrecache(int adTypes);
|
|
||||||
bool showBannerView(int YAxis, int XGravity, string Placement);
|
|
||||||
bool showMrecView(int YAxis, int XGravity, string Placement);
|
|
||||||
void hideBannerView();
|
|
||||||
void hideMrecView();
|
|
||||||
void setSmartBanners(bool value);
|
|
||||||
bool isSmartBannersEnabled();
|
|
||||||
void setBannerAnimation(bool value);
|
|
||||||
void setTabletBanners(bool value);
|
|
||||||
void setBannerRotation(int leftBannerRotation, int rightBannerRotation);
|
|
||||||
void setTesting(bool test);
|
|
||||||
void setLogLevel(Appodeal.LogLevel level);
|
|
||||||
void setChildDirectedTreatment(bool value);
|
|
||||||
void updateConsent(Consent consent);
|
|
||||||
void updateGdprConsent(Appodeal.GdprUserConsent consent);
|
|
||||||
void updateCcpaConsent(Appodeal.CcpaUserConsent consent);
|
|
||||||
List<string> getNetworks(int adType);
|
|
||||||
void disableNetwork(string network);
|
|
||||||
void disableNetwork(string network, int type);
|
|
||||||
void disableLocationPermissionCheck();
|
|
||||||
void muteVideosIfCallsMuted(bool value);
|
|
||||||
void showTestScreen();
|
|
||||||
string getVersion();
|
|
||||||
bool canShow(int adTypes);
|
|
||||||
bool canShow(int adTypes, string placement);
|
|
||||||
void setCustomFilter(string name, bool value);
|
|
||||||
void setCustomFilter(string name, int value);
|
|
||||||
void setCustomFilter(string name, double value);
|
|
||||||
void setCustomFilter(string name, string value);
|
|
||||||
void resetCustomFilter(string name);
|
|
||||||
void setExtraData(string key, bool value);
|
|
||||||
void setExtraData(string key, int value);
|
|
||||||
void setExtraData(string key, double value);
|
|
||||||
void setExtraData(string key, string value);
|
|
||||||
void resetExtraData(string key);
|
|
||||||
string getRewardCurrency(string placement);
|
|
||||||
double getRewardAmount(string placement);
|
|
||||||
string getRewardCurrency();
|
|
||||||
double getRewardAmount();
|
|
||||||
double getPredictedEcpm(int adTypes);
|
|
||||||
double getPredictedEcpmForPlacement(int adType, string placement);
|
|
||||||
void setTriggerOnLoadedOnPrecache(int adTypes, bool onLoadedTriggerBoth);
|
|
||||||
void setUserId(string id);
|
|
||||||
string getUserId();
|
|
||||||
long getSegmentId();
|
|
||||||
void trackInAppPurchase(double amount, string currency);
|
|
||||||
void setInterstitialCallbacks(IInterstitialAdListener listener);
|
|
||||||
void setRewardedVideoCallbacks(IRewardedVideoAdListener listener);
|
|
||||||
void setBannerCallbacks(IBannerAdListener listener);
|
|
||||||
void setMrecCallbacks(IMrecAdListener listener);
|
|
||||||
void setAdRevenueCallback(IAdRevenueListener listener);
|
|
||||||
void destroy(int adTypes);
|
|
||||||
void setUseSafeArea(bool value);
|
|
||||||
bool isAutoCacheEnabled(int adType);
|
|
||||||
void logEvent(string eventName, Dictionary<string, object> eventParams);
|
|
||||||
void validatePlayStoreInAppPurchase(IPlayStoreInAppPurchase purchase, IInAppPurchaseValidationListener listener);
|
|
||||||
void validateAppStoreInAppPurchase(IAppStoreInAppPurchase purchase, IInAppPurchaseValidationListener listener);
|
|
||||||
|
|
||||||
#region Deprecated signatures
|
|
||||||
|
|
||||||
void setSharedAdsInstanceAcrossActivities(bool value);
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 0d45dae8ca00349059f33fb823bb283e
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
public interface IAppodealInitializationListener
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMemberInSuper.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
void onInitializationFinished(List<string> errors);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 15002fc8e807d40a29672f293f73c425
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMemberInSuper.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
public interface IBannerAdListener
|
|
||||||
{
|
|
||||||
void onBannerLoaded(int height, bool isPrecache);
|
|
||||||
void onBannerFailedToLoad();
|
|
||||||
void onBannerShown();
|
|
||||||
void onBannerShowFailed();
|
|
||||||
void onBannerClicked();
|
|
||||||
void onBannerExpired();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 3c523f46716394956be24ac369155edb
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using AppodealAds.Unity.Api;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
public interface IInAppPurchaseBase
|
|
||||||
{
|
|
||||||
string getPrice();
|
|
||||||
string getCurrency();
|
|
||||||
string getAdditionalParameters();
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IInAppPurchaseBaseBuilder
|
|
||||||
{
|
|
||||||
void withPrice(string price);
|
|
||||||
void withCurrency(string currency);
|
|
||||||
void withAdditionalParameters(Dictionary<string, string> additionalParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IPlayStoreInAppPurchase : IInAppPurchaseBase
|
|
||||||
{
|
|
||||||
Appodeal.PlayStorePurchaseType getPurchaseType();
|
|
||||||
string getSku();
|
|
||||||
string getOrderId();
|
|
||||||
string getSignature();
|
|
||||||
string getPublicKey();
|
|
||||||
string getPurchaseData();
|
|
||||||
string getPurchaseToken();
|
|
||||||
string getDeveloperPayload();
|
|
||||||
long getPurchaseTimestamp();
|
|
||||||
IPlayStoreInAppPurchase NativeInAppPurchase { get; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IPlayStoreInAppPurchaseBuilder : IInAppPurchaseBaseBuilder
|
|
||||||
{
|
|
||||||
void withSku(string sku);
|
|
||||||
void withOrderId(string orderId);
|
|
||||||
void withPublicKey(string publicKey);
|
|
||||||
void withSignature(string signature);
|
|
||||||
void withPurchaseData(string purchaseData);
|
|
||||||
void withPurchaseToken(string purchaseToken);
|
|
||||||
void withDeveloperPayload(string developerPayload);
|
|
||||||
void withPurchaseTimestamp(long purchaseTimestamp);
|
|
||||||
IPlayStoreInAppPurchase build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IAppStoreInAppPurchase : IInAppPurchaseBase
|
|
||||||
{
|
|
||||||
Appodeal.AppStorePurchaseType getPurchaseType();
|
|
||||||
string getProductId();
|
|
||||||
string getTransactionId();
|
|
||||||
IAppStoreInAppPurchase NativeInAppPurchase { get; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IAppStoreInAppPurchaseBuilder : IInAppPurchaseBaseBuilder
|
|
||||||
{
|
|
||||||
void withProductId(string productId);
|
|
||||||
void withTransactionId(string transactionId);
|
|
||||||
IAppStoreInAppPurchase build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 72b801c20c7544e1fb74b1ba0cacf6f0
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMemberInSuper.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
public interface IInAppPurchaseValidationListener
|
|
||||||
{
|
|
||||||
void onInAppPurchaseValidationSucceeded(string json);
|
|
||||||
void onInAppPurchaseValidationFailed(string json);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 57ad42aab5dbf46d1a556bb9a145f682
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMemberInSuper.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
public interface IInterstitialAdListener
|
|
||||||
{
|
|
||||||
void onInterstitialLoaded(bool isPrecache);
|
|
||||||
void onInterstitialFailedToLoad();
|
|
||||||
void onInterstitialShowFailed();
|
|
||||||
void onInterstitialShown();
|
|
||||||
void onInterstitialClosed();
|
|
||||||
void onInterstitialClicked();
|
|
||||||
void onInterstitialExpired();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: e84ede4c77b104546a6dc73eb1b3402c
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMemberInSuper.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
public interface IMrecAdListener
|
|
||||||
{
|
|
||||||
void onMrecLoaded(bool isPrecache);
|
|
||||||
void onMrecFailedToLoad();
|
|
||||||
void onMrecShown();
|
|
||||||
void onMrecShowFailed();
|
|
||||||
void onMrecClicked();
|
|
||||||
void onMrecExpired();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: a7fedafa4546a4c6fbcd34cfb230392a
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMemberInSuper.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
public interface IRewardedVideoAdListener
|
|
||||||
{
|
|
||||||
void onRewardedVideoLoaded(bool precache);
|
|
||||||
void onRewardedVideoFailedToLoad();
|
|
||||||
void onRewardedVideoShowFailed();
|
|
||||||
void onRewardedVideoShown();
|
|
||||||
void onRewardedVideoFinished(double amount, string name);
|
|
||||||
void onRewardedVideoClosed(bool finished);
|
|
||||||
void onRewardedVideoExpired();
|
|
||||||
void onRewardedVideoClicked();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: bfcaa2dbbdfb64ec3bb38107e982a867
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace ConsentManager.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMemberInSuper.Global")]
|
|
||||||
public interface IConsentFormListener
|
|
||||||
{
|
|
||||||
void onConsentFormLoaded();
|
|
||||||
void onConsentFormError(ConsentManagerException consentManagerException);
|
|
||||||
void onConsentFormOpened();
|
|
||||||
void onConsentFormClosed(Consent consent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: d2a6d1e4a2dc04e4ba9bf43899ad6cea
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace ConsentManager.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMemberInSuper.Global")]
|
|
||||||
public interface IConsentInfoUpdateListener
|
|
||||||
{
|
|
||||||
void onConsentInfoUpdated(Consent consent);
|
|
||||||
void onFailedToUpdateConsentInfo(ConsentManagerException error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 3e3b4501bed1e45b0b94b9e9bee9d78c
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
|
|
||||||
namespace ConsentManager.Common
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
public interface IConsentManager
|
|
||||||
{
|
|
||||||
void requestConsentInfoUpdate(string appodealAppKey, IConsentInfoUpdateListener listener);
|
|
||||||
void setCustomVendor(Vendor customVendor);
|
|
||||||
Vendor getCustomVendor(string bundle);
|
|
||||||
ConsentManager.Storage getStorage();
|
|
||||||
void setStorage(ConsentManager.Storage iabStorage);
|
|
||||||
Consent.ShouldShow shouldShowConsentDialog();
|
|
||||||
Consent.Zone getConsentZone();
|
|
||||||
Consent.Status getConsentStatus();
|
|
||||||
Consent getConsent();
|
|
||||||
void disableAppTrackingTransparencyRequest();
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
public interface IConsentForm
|
|
||||||
{
|
|
||||||
void load();
|
|
||||||
void show();
|
|
||||||
bool isLoaded();
|
|
||||||
bool isShowing();
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
public interface IVendor
|
|
||||||
{
|
|
||||||
string getName();
|
|
||||||
string getBundle();
|
|
||||||
string getPolicyUrl();
|
|
||||||
List<int> getPurposeIds();
|
|
||||||
List<int> getFeatureIds();
|
|
||||||
List<int> getLegitimateInterestPurposeIds();
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
public interface IVendorBuilder
|
|
||||||
{
|
|
||||||
IVendor build();
|
|
||||||
void setPurposeIds(IEnumerable<int> purposeIds);
|
|
||||||
void setFeatureIds(IEnumerable<int> featureIds);
|
|
||||||
void setLegitimateInterestPurposeIds(IEnumerable<int> legitimateInterestPurposeIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedParameter.Global")]
|
|
||||||
public interface IConsent
|
|
||||||
{
|
|
||||||
Consent.Zone getZone();
|
|
||||||
Consent.Status getStatus();
|
|
||||||
Consent.AuthorizationStatus getAuthorizationStatus();
|
|
||||||
Consent.HasConsent hasConsentForVendor(string bundle);
|
|
||||||
string getIabConsentString();
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
public interface IConsentManagerException
|
|
||||||
{
|
|
||||||
string getReason();
|
|
||||||
int getCode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: a4f071b2c746a4e96802d9d255b1a7f6
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 2f3aec5901bed48c5b00b5001e20e083
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 52489c8c8d0a043b9b10a32e18dc5b27
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 2ad88b269161f4e84aad9fcef055bf58
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!850595691 &4890085278179872738
|
|
||||||
LightingSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: AppodealDemoSceneSettings
|
|
||||||
serializedVersion: 6
|
|
||||||
m_GIWorkflowMode: 0
|
|
||||||
m_EnableBakedLightmaps: 1
|
|
||||||
m_EnableRealtimeLightmaps: 0
|
|
||||||
m_RealtimeEnvironmentLighting: 1
|
|
||||||
m_BounceScale: 1
|
|
||||||
m_AlbedoBoost: 1
|
|
||||||
m_IndirectOutputScale: 1
|
|
||||||
m_UsingShadowmask: 1
|
|
||||||
m_BakeBackend: 1
|
|
||||||
m_LightmapMaxSize: 1024
|
|
||||||
m_BakeResolution: 10
|
|
||||||
m_Padding: 2
|
|
||||||
m_LightmapCompression: 3
|
|
||||||
m_AO: 0
|
|
||||||
m_AOMaxDistance: 1
|
|
||||||
m_CompAOExponent: 1
|
|
||||||
m_CompAOExponentDirect: 0
|
|
||||||
m_ExtractAO: 0
|
|
||||||
m_MixedBakeMode: 2
|
|
||||||
m_LightmapsBakeMode: 1
|
|
||||||
m_FilterMode: 1
|
|
||||||
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_ExportTrainingData: 0
|
|
||||||
m_TrainingDataDestination: TrainingData
|
|
||||||
m_RealtimeResolution: 2
|
|
||||||
m_ForceWhiteAlbedo: 0
|
|
||||||
m_ForceUpdates: 0
|
|
||||||
m_FinalGather: 0
|
|
||||||
m_FinalGatherRayCount: 256
|
|
||||||
m_FinalGatherFiltering: 1
|
|
||||||
m_PVRCulling: 1
|
|
||||||
m_PVRSampling: 1
|
|
||||||
m_PVRDirectSampleCount: 32
|
|
||||||
m_PVRSampleCount: 256
|
|
||||||
m_PVREnvironmentSampleCount: 256
|
|
||||||
m_PVREnvironmentReferencePointCount: 2048
|
|
||||||
m_LightProbeSampleCountMultiplier: 4
|
|
||||||
m_PVRBounces: 2
|
|
||||||
m_PVRMinBounces: 2
|
|
||||||
m_PVREnvironmentImportanceSampling: 0
|
|
||||||
m_PVRFilteringMode: 2
|
|
||||||
m_PVRDenoiserTypeDirect: 0
|
|
||||||
m_PVRDenoiserTypeIndirect: 0
|
|
||||||
m_PVRDenoiserTypeAO: 0
|
|
||||||
m_PVRFilterTypeDirect: 0
|
|
||||||
m_PVRFilterTypeIndirect: 0
|
|
||||||
m_PVRFilterTypeAO: 0
|
|
||||||
m_PVRFilteringGaussRadiusDirect: 1
|
|
||||||
m_PVRFilteringGaussRadiusIndirect: 5
|
|
||||||
m_PVRFilteringGaussRadiusAO: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
|
||||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
|
||||||
m_PVRTiledBaking: 0
|
|
||||||
m_NumRaysToShootPerTexel: -1
|
|
||||||
m_RespectSceneVisibilityWhenBakingGI: 0
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 70b2daef1c1b26d40ad26746d8e87f43
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 4890085278179872738
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 22c314f3a6094434297695ee0a52cce8
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,625 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using AppodealAds.Unity.Api;
|
|
||||||
using AppodealAds.Unity.Common;
|
|
||||||
using ConsentManager.Common;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
|
|
||||||
namespace ConsentManager.ConsentManagerDemo.Scripts
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "ParameterHidesMember")]
|
|
||||||
public class AppodealDemo : MonoBehaviour, IAppodealInitializationListener, IInAppPurchaseValidationListener,
|
|
||||||
IBannerAdListener, IInterstitialAdListener, IRewardedVideoAdListener, IMrecAdListener,
|
|
||||||
IConsentFormListener, IConsentInfoUpdateListener, IAdRevenueListener
|
|
||||||
{
|
|
||||||
#region Constants
|
|
||||||
|
|
||||||
private const string CACHE_INTERSTITIAL = "CACHE INTERSTITIAL";
|
|
||||||
private const string SHOW_INTERSTITIAL = "SHOW INTERSTITIAL";
|
|
||||||
private const string CACHE_REWARDED_VIDEO = "CACHE REWARDED VIDEO";
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region UI
|
|
||||||
|
|
||||||
[SerializeField] public Toggle tgTesting;
|
|
||||||
[SerializeField] public Toggle tgLogging;
|
|
||||||
[SerializeField] public Button btnShowInterstitial;
|
|
||||||
[SerializeField] public Button btnShowRewardedVideo;
|
|
||||||
[SerializeField] public GameObject consentManagerPanel;
|
|
||||||
[SerializeField] public GameObject appodealPanel;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Application keys
|
|
||||||
|
|
||||||
#if UNITY_EDITOR && !UNITY_ANDROID && !UNITY_IPHONE
|
|
||||||
public static string appKey = "";
|
|
||||||
#elif UNITY_ANDROID
|
|
||||||
public static string appKey = "fee50c333ff3825fd6ad6d38cff78154de3025546d47a84f";
|
|
||||||
#elif UNITY_IPHONE
|
|
||||||
public static string appKey = "466de0d625e01e8811c588588a42a55970bc7c132649eede";
|
|
||||||
#else
|
|
||||||
public static string appKey = "";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
private Consent currentConsent;
|
|
||||||
private ConsentForm consentForm;
|
|
||||||
private ConsentManager consentManager;
|
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
consentManagerPanel.gameObject.SetActive(true);
|
|
||||||
appodealPanel.gameObject.SetActive(false);
|
|
||||||
|
|
||||||
btnShowInterstitial.GetComponentInChildren<Text>().text = CACHE_INTERSTITIAL;
|
|
||||||
btnShowRewardedVideo.GetComponentInChildren<Text>().text = CACHE_REWARDED_VIDEO;
|
|
||||||
|
|
||||||
consentManager = ConsentManager.getInstance();
|
|
||||||
consentManager.setStorage(ConsentManager.Storage.SHARED_PREFERENCE);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnDestroy()
|
|
||||||
{
|
|
||||||
Appodeal.destroy(Appodeal.BANNER);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void RequestConsentInfoUpdate()
|
|
||||||
{
|
|
||||||
consentManager?.requestConsentInfoUpdate(appKey, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetCustomVendor()
|
|
||||||
{
|
|
||||||
var customVendor = new Vendor.Builder(
|
|
||||||
"Appodeal Test",
|
|
||||||
"com.appodeal.test",
|
|
||||||
"https://customvendor.com")
|
|
||||||
.setPurposeIds(new List<int> {100, 200, 300})
|
|
||||||
.setFeatureIds(new List<int> {400, 500, 600})
|
|
||||||
.setLegitimateInterestPurposeIds(new List<int> {700, 800, 900})
|
|
||||||
.build();
|
|
||||||
|
|
||||||
consentManager?.setCustomVendor(customVendor);
|
|
||||||
|
|
||||||
var vendor = consentManager?.getCustomVendor("com.appodeal.test");
|
|
||||||
if (vendor == null) return;
|
|
||||||
Debug.Log("Vendor getName: " + vendor.getName());
|
|
||||||
Debug.Log("Vendor getBundle: " + vendor.getBundle());
|
|
||||||
Debug.Log("Vendor getPolicyUrl: " + vendor.getPolicyUrl());
|
|
||||||
foreach (var purposeId in vendor.getPurposeIds())
|
|
||||||
{
|
|
||||||
Debug.Log("Vendor getPurposeIds: " + purposeId);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var featureId in vendor.getFeatureIds())
|
|
||||||
{
|
|
||||||
Debug.Log("Vendor getFeatureIds: " + featureId);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var legitimateInterestPurposeId in vendor.getLegitimateInterestPurposeIds())
|
|
||||||
{
|
|
||||||
Debug.Log("Vendor getLegitimateInterestPurposeIds: " + legitimateInterestPurposeId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShouldShowForm()
|
|
||||||
{
|
|
||||||
Debug.Log("shouldShowConsentDialog: " + consentManager.shouldShowConsentDialog());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void GetConsentZone()
|
|
||||||
{
|
|
||||||
Debug.Log("getConsentZone: " + consentManager.getConsentZone());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void GetConsentStatus()
|
|
||||||
{
|
|
||||||
Debug.Log("getConsentStatus: " + consentManager.getConsentStatus());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LoadConsentForm()
|
|
||||||
{
|
|
||||||
consentForm = ConsentForm.GetInstance(this);
|
|
||||||
consentForm?.load();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void IsLoadedConsentForm()
|
|
||||||
{
|
|
||||||
if (consentForm != null)
|
|
||||||
{
|
|
||||||
Debug.Log("isLoadedConsentForm: " + consentForm.isLoaded());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowFormAsActivity()
|
|
||||||
{
|
|
||||||
if (consentForm != null)
|
|
||||||
{
|
|
||||||
consentForm.show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Log("showForm - false");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowFormAsDialog()
|
|
||||||
{
|
|
||||||
if (consentForm != null)
|
|
||||||
{
|
|
||||||
consentForm.show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Log("showForm - false");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void PrintIABString()
|
|
||||||
{
|
|
||||||
Debug.Log("Consent IAB String is: " + consentManager.getConsent().getIabConsentString());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void PrintCurrentConsent()
|
|
||||||
{
|
|
||||||
if (consentManager.getConsent() == null) return;
|
|
||||||
Debug.Log("consent.hasConsentForVendor() - " + consentManager.getConsent().hasConsentForVendor("com.appodeal.test"));
|
|
||||||
Debug.Log("consent.getStatus() - " + consentManager.getConsent().getStatus());
|
|
||||||
Debug.Log("consent.getZone() - " + consentManager.getConsent().getZone());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void PrintAuthorizationStatus()
|
|
||||||
{
|
|
||||||
if (consentManager.getConsent() == null) return;
|
|
||||||
Debug.Log($"AuthorizationStatus - {consentManager.getConsent().getAuthorizationStatus()} ");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowAppodealLogic()
|
|
||||||
{
|
|
||||||
consentManagerPanel.SetActive(false);
|
|
||||||
appodealPanel.SetActive(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Initialize()
|
|
||||||
{
|
|
||||||
InitWithConsent(currentConsent != null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void InitWithConsent(bool isConsent)
|
|
||||||
{
|
|
||||||
Appodeal.setLogLevel(tgLogging.isOn ? Appodeal.LogLevel.Verbose : Appodeal.LogLevel.None);
|
|
||||||
Appodeal.setTesting(tgTesting.isOn);
|
|
||||||
Appodeal.setUseSafeArea(true);
|
|
||||||
|
|
||||||
Appodeal.setUserId("1");
|
|
||||||
Appodeal.setCustomFilter(UserSettings.USER_AGE, 18);
|
|
||||||
Appodeal.setCustomFilter(UserSettings.USER_GENDER, (int) UserSettings.Gender.MALE);
|
|
||||||
|
|
||||||
Appodeal.setExtraData("testKey", "testValue");
|
|
||||||
Appodeal.resetExtraData("testKey");
|
|
||||||
|
|
||||||
Appodeal.setSmartBanners(true);
|
|
||||||
Appodeal.setBannerAnimation(false);
|
|
||||||
Appodeal.setTabletBanners(false);
|
|
||||||
Appodeal.setBannerRotation(-90, 110);
|
|
||||||
|
|
||||||
Appodeal.disableLocationPermissionCheck();
|
|
||||||
Appodeal.setChildDirectedTreatment(false);
|
|
||||||
Appodeal.muteVideosIfCallsMuted(true);
|
|
||||||
|
|
||||||
Appodeal.setTriggerOnLoadedOnPrecache(Appodeal.INTERSTITIAL, true);
|
|
||||||
|
|
||||||
Appodeal.disableNetwork(AppodealNetworks.VUNGLE);
|
|
||||||
Appodeal.disableNetwork(AppodealNetworks.YANDEX, Appodeal.MREC);
|
|
||||||
|
|
||||||
Appodeal.setAutoCache(Appodeal.INTERSTITIAL, false);
|
|
||||||
Appodeal.setAutoCache(Appodeal.REWARDED_VIDEO, false);
|
|
||||||
|
|
||||||
Appodeal.setBannerCallbacks(this);
|
|
||||||
Appodeal.setInterstitialCallbacks(this);
|
|
||||||
Appodeal.setRewardedVideoCallbacks(this);
|
|
||||||
Appodeal.setMrecCallbacks(this);
|
|
||||||
Appodeal.setAdRevenueCallback(this);
|
|
||||||
|
|
||||||
Appodeal.setCustomFilter("newBoolean", true);
|
|
||||||
Appodeal.setCustomFilter("newInt", 1234567890);
|
|
||||||
Appodeal.setCustomFilter("newDouble", 123.123456789);
|
|
||||||
Appodeal.setCustomFilter("newString", "newStringFromSDK");
|
|
||||||
|
|
||||||
if (isConsent)
|
|
||||||
{
|
|
||||||
Appodeal.updateConsent(currentConsent);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Appodeal.updateCcpaConsent(Appodeal.CcpaUserConsent.OptOut);
|
|
||||||
Appodeal.updateGdprConsent(Appodeal.GdprUserConsent.NonPersonalized);
|
|
||||||
}
|
|
||||||
|
|
||||||
int adTypes = Appodeal.INTERSTITIAL | Appodeal.BANNER | Appodeal.REWARDED_VIDEO | Appodeal.MREC;
|
|
||||||
Appodeal.initialize(appKey, adTypes, (IAppodealInitializationListener) this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowInterstitial()
|
|
||||||
{
|
|
||||||
if (Appodeal.isLoaded(Appodeal.INTERSTITIAL) && Appodeal.canShow(Appodeal.INTERSTITIAL, "default") && !Appodeal.isPrecache(Appodeal.INTERSTITIAL))
|
|
||||||
{
|
|
||||||
Appodeal.show(Appodeal.INTERSTITIAL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Appodeal.cache(Appodeal.INTERSTITIAL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowRewardedVideo()
|
|
||||||
{
|
|
||||||
if (Appodeal.isLoaded(Appodeal.REWARDED_VIDEO) && Appodeal.canShow(Appodeal.REWARDED_VIDEO, "default"))
|
|
||||||
{
|
|
||||||
Appodeal.show(Appodeal.REWARDED_VIDEO);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Appodeal.cache(Appodeal.REWARDED_VIDEO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowBannerBottom()
|
|
||||||
{
|
|
||||||
Appodeal.show(Appodeal.BANNER_BOTTOM, "default");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowBannerTop()
|
|
||||||
{
|
|
||||||
Appodeal.show(Appodeal.BANNER_TOP, "default");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HideBanner()
|
|
||||||
{
|
|
||||||
Appodeal.hide(Appodeal.BANNER);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowBannerView()
|
|
||||||
{
|
|
||||||
Appodeal.showBannerView(Appodeal.BANNER_BOTTOM, Appodeal.BANNER_HORIZONTAL_CENTER, "default");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HideBannerView()
|
|
||||||
{
|
|
||||||
Appodeal.hideBannerView();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowMrecView()
|
|
||||||
{
|
|
||||||
Appodeal.showMrecView(Appodeal.BANNER_TOP, Appodeal.BANNER_HORIZONTAL_CENTER, "default");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HideMrecView()
|
|
||||||
{
|
|
||||||
Appodeal.hideMrecView();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowBannerLeft()
|
|
||||||
{
|
|
||||||
Appodeal.show(Appodeal.BANNER_LEFT);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowBannerRight()
|
|
||||||
{
|
|
||||||
Appodeal.show(Appodeal.BANNER_RIGHT);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region AppodealInitializeListener
|
|
||||||
|
|
||||||
public void onInitializationFinished(List<string> errors)
|
|
||||||
{
|
|
||||||
string output = errors == null ? string.Empty : string.Join(", ", errors);
|
|
||||||
Debug.Log($"onInitializationFinished(errors:[{output}])");
|
|
||||||
|
|
||||||
Debug.Log($"isAutoCacheEnabled() for banner: {Appodeal.isAutoCacheEnabled(Appodeal.BANNER)}");
|
|
||||||
Debug.Log($"isInitialized() for banner: {Appodeal.isInitialized(Appodeal.BANNER)}");
|
|
||||||
Debug.Log($"isSmartBannersEnabled(): {Appodeal.isSmartBannersEnabled()}");
|
|
||||||
Debug.Log($"getUserId(): {Appodeal.getUserId()}");
|
|
||||||
Debug.Log($"getSegmentId(): {Appodeal.getSegmentId()}");
|
|
||||||
Debug.Log($"getRewardParameters(): {Appodeal.getRewardParameters()}");
|
|
||||||
Debug.Log($"getNativeSDKVersion(): {Appodeal.getNativeSDKVersion()}");
|
|
||||||
|
|
||||||
var networksList = Appodeal.getNetworks(Appodeal.REWARDED_VIDEO);
|
|
||||||
output = networksList == null ? string.Empty : string.Join(", ", (networksList.ToArray()));
|
|
||||||
Debug.Log($"getNetworks() for RV: {output}");
|
|
||||||
|
|
||||||
#if UNITY_ANDROID
|
|
||||||
var additionalParams = new Dictionary<string, string> { { "key1", "value1" }, { "key2", "value2" } };
|
|
||||||
|
|
||||||
var purchase = new PlayStoreInAppPurchase.Builder(Appodeal.PlayStorePurchaseType.Subs)
|
|
||||||
.withAdditionalParameters(additionalParams)
|
|
||||||
.withPurchaseTimestamp(793668600)
|
|
||||||
.withDeveloperPayload("payload")
|
|
||||||
.withPurchaseToken("token")
|
|
||||||
.withPurchaseData("data")
|
|
||||||
.withPublicKey("key")
|
|
||||||
.withSignature("signature")
|
|
||||||
.withCurrency("USD")
|
|
||||||
.withOrderId("orderId")
|
|
||||||
.withPrice("1.99")
|
|
||||||
.withSku("sku")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
Appodeal.validatePlayStoreInAppPurchase(purchase, this);
|
|
||||||
#elif UNITY_IOS
|
|
||||||
var additionalParams = new Dictionary<string, string> { { "key1", "value1" }, { "key2", "value2" } };
|
|
||||||
|
|
||||||
var purchase = new AppStoreInAppPurchase.Builder(Appodeal.AppStorePurchaseType.Consumable)
|
|
||||||
.withAdditionalParameters(additionalParams)
|
|
||||||
.withTransactionId("transactionId")
|
|
||||||
.withProductId("productId")
|
|
||||||
.withCurrency("USD")
|
|
||||||
.withPrice("2.89")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
Appodeal.validateAppStoreInAppPurchase(purchase, this);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Appodeal.logEvent("test_event", new Dictionary<string, object> { { "test_key_1", 42 }, { "test_key_2", "test_value" } });
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region InAppPurchaseValidationListener
|
|
||||||
|
|
||||||
public void onInAppPurchaseValidationSucceeded(string json)
|
|
||||||
{
|
|
||||||
Debug.Log($"onInAppPurchaseValidationSucceeded(string json:\n{json})");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onInAppPurchaseValidationFailed(string json)
|
|
||||||
{
|
|
||||||
Debug.Log($"onInAppPurchaseValidationFailed(string json:\n{json})");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region ConsentFormListener
|
|
||||||
|
|
||||||
public void onConsentFormLoaded()
|
|
||||||
{
|
|
||||||
Debug.Log("ConsentFormListener - onConsentFormLoaded");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onConsentFormError(ConsentManagerException exception)
|
|
||||||
{
|
|
||||||
Debug.Log($"ConsentFormListener - onConsentFormError, reason - {exception.getReason()}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onConsentFormOpened()
|
|
||||||
{
|
|
||||||
Debug.Log("ConsentFormListener - onConsentFormOpened");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onConsentFormClosed(Consent consent)
|
|
||||||
{
|
|
||||||
currentConsent = consent;
|
|
||||||
Debug.Log($"ConsentFormListener - onConsentFormClosed, consentStatus - {consent.getStatus()}");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region ConsentInfoUpdateListener
|
|
||||||
|
|
||||||
public void onConsentInfoUpdated(Consent consent)
|
|
||||||
{
|
|
||||||
currentConsent = consent;
|
|
||||||
Debug.Log("onConsentInfoUpdated");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onFailedToUpdateConsentInfo(ConsentManagerException error)
|
|
||||||
{
|
|
||||||
Debug.Log($"onFailedToUpdateConsentInfo");
|
|
||||||
|
|
||||||
if (error == null) return;
|
|
||||||
Debug.Log($"onFailedToUpdateConsentInfo Reason: {error.getReason()}");
|
|
||||||
|
|
||||||
switch (error.getCode())
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
Debug.Log("onFailedToUpdateConsentInfo - UNKNOWN");
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
Debug.Log(
|
|
||||||
"onFailedToUpdateConsentInfo - INTERNAL - Error on SDK side. Includes JS-bridge or encoding/decoding errors");
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
Debug.Log("onFailedToUpdateConsentInfo - NETWORKING - HTTP errors, parse request/response ");
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
Debug.Log("onFailedToUpdateConsentInfo - INCONSISTENT - Incorrect SDK API usage");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Banner callback handlers
|
|
||||||
|
|
||||||
public void onBannerLoaded(int height, bool precache)
|
|
||||||
{
|
|
||||||
Debug.Log("onBannerLoaded");
|
|
||||||
Debug.Log($"Banner height - {height}");
|
|
||||||
Debug.Log($"Banner precache - {precache}");
|
|
||||||
Debug.Log($"getPredictedEcpm(): {Appodeal.getPredictedEcpm(Appodeal.BANNER)}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onBannerFailedToLoad()
|
|
||||||
{
|
|
||||||
Debug.Log("onBannerFailedToLoad");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onBannerShown()
|
|
||||||
{
|
|
||||||
Debug.Log("onBannerShown");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onBannerShowFailed()
|
|
||||||
{
|
|
||||||
Debug.Log("onBannerShowFailed");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onBannerClicked()
|
|
||||||
{
|
|
||||||
Debug.Log("onBannerClicked");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onBannerExpired()
|
|
||||||
{
|
|
||||||
Debug.Log("onBannerExpired");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Interstitial callback handlers
|
|
||||||
|
|
||||||
public void onInterstitialLoaded(bool isPrecache)
|
|
||||||
{
|
|
||||||
if (!isPrecache)
|
|
||||||
{
|
|
||||||
btnShowInterstitial.GetComponentInChildren<Text>().text = SHOW_INTERSTITIAL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Log("Appodeal. Interstitial loaded. isPrecache - true");
|
|
||||||
}
|
|
||||||
|
|
||||||
Debug.Log("onInterstitialLoaded");
|
|
||||||
Debug.Log($"getPredictedEcpm(): {Appodeal.getPredictedEcpm(Appodeal.INTERSTITIAL)}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onInterstitialFailedToLoad()
|
|
||||||
{
|
|
||||||
Debug.Log("onInterstitialFailedToLoad");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onInterstitialShowFailed()
|
|
||||||
{
|
|
||||||
Debug.Log("onInterstitialShowFailed");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onInterstitialShown()
|
|
||||||
{
|
|
||||||
Debug.Log("onInterstitialShown");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onInterstitialClosed()
|
|
||||||
{
|
|
||||||
btnShowInterstitial.GetComponentInChildren<Text>().text = CACHE_INTERSTITIAL;
|
|
||||||
Debug.Log("onInterstitialClosed");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onInterstitialClicked()
|
|
||||||
{
|
|
||||||
Debug.Log("onInterstitialClicked");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onInterstitialExpired()
|
|
||||||
{
|
|
||||||
Debug.Log("onInterstitialExpired");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Rewarded Video callback handlers
|
|
||||||
|
|
||||||
public void onRewardedVideoLoaded(bool isPrecache)
|
|
||||||
{
|
|
||||||
btnShowRewardedVideo.GetComponentInChildren<Text>().text = "SHOW REWARDED VIDEO";
|
|
||||||
Debug.Log("onRewardedVideoLoaded");
|
|
||||||
Debug.Log($"getPredictedEcpm(): {Appodeal.getPredictedEcpm(Appodeal.REWARDED_VIDEO)}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onRewardedVideoFailedToLoad()
|
|
||||||
{
|
|
||||||
Debug.Log("onRewardedVideoFailedToLoad");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onRewardedVideoShowFailed()
|
|
||||||
{
|
|
||||||
Debug.Log("onRewardedVideoShowFailed");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onRewardedVideoShown()
|
|
||||||
{
|
|
||||||
Debug.Log("onRewardedVideoShown");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onRewardedVideoClosed(bool finished)
|
|
||||||
{
|
|
||||||
btnShowRewardedVideo.GetComponentInChildren<Text>().text = "CACHE REWARDED VIDEO";
|
|
||||||
Debug.Log($"onRewardedVideoClosed. Finished - {finished}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onRewardedVideoFinished(double amount, string name)
|
|
||||||
{
|
|
||||||
Debug.Log("onRewardedVideoFinished. Reward: " + amount + " " + name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onRewardedVideoExpired()
|
|
||||||
{
|
|
||||||
Debug.Log("onRewardedVideoExpired");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onRewardedVideoClicked()
|
|
||||||
{
|
|
||||||
Debug.Log("onRewardedVideoClicked");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Mrec callback handlers
|
|
||||||
|
|
||||||
public void onMrecLoaded(bool precache)
|
|
||||||
{
|
|
||||||
Debug.Log($"onMrecLoaded. Precache - {precache}");
|
|
||||||
Debug.Log($"getPredictedEcpm(): {Appodeal.getPredictedEcpm(Appodeal.MREC)}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onMrecFailedToLoad()
|
|
||||||
{
|
|
||||||
Debug.Log("onMrecFailedToLoad");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onMrecShown()
|
|
||||||
{
|
|
||||||
Debug.Log("onMrecShown");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onMrecShowFailed()
|
|
||||||
{
|
|
||||||
Debug.Log("onMrecShowFailed");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onMrecClicked()
|
|
||||||
{
|
|
||||||
Debug.Log("onMrecClicked");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onMrecExpired()
|
|
||||||
{
|
|
||||||
Debug.Log("onMrecExpired");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region IAdRevenueListener implementation
|
|
||||||
|
|
||||||
public void onAdRevenueReceived(AppodealAdRevenue ad)
|
|
||||||
{
|
|
||||||
Debug.Log($"[APDUnity] [Callback] onAdRevenueReceived({ad.ToJsonString(true)})");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: ffb831a105b614dd1bd2adbfcd130c78
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: c1038daf12b2c471fbc6c2c233f84cad
|
|
||||||
folderAsset: yes
|
|
||||||
timeCreated: 1530702704
|
|
||||||
licenseType: Free
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 9aebd6607e7d446bfb67ef2569e87b08
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using UnityEditor;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Editor.Checkers
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
public class FixProblemInstruction
|
|
||||||
{
|
|
||||||
private bool _checkedForResolve;
|
|
||||||
|
|
||||||
public bool checkedForResolve
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _checkedForResolve;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (isAutoresolvePossible) _checkedForResolve = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private readonly string desc;
|
|
||||||
private readonly bool isAutoresolvePossible;
|
|
||||||
|
|
||||||
public FixProblemInstruction(string description, bool autoresolve)
|
|
||||||
{
|
|
||||||
desc = description;
|
|
||||||
isAutoresolvePossible = autoresolve;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string getDescription()
|
|
||||||
{
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool canBeResolvedAutomatically()
|
|
||||||
{
|
|
||||||
return isAutoresolvePossible;
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void fixProblem()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
public abstract class CheckingStep
|
|
||||||
{
|
|
||||||
public bool done;
|
|
||||||
public abstract string getName();
|
|
||||||
public abstract List<FixProblemInstruction> check();
|
|
||||||
public abstract bool isRequiredForPlatform(BuildTarget target);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: aff991977bdce4cca8d7e82c73b39460
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,533 +0,0 @@
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEditor;
|
|
||||||
using System.IO;
|
|
||||||
using System;
|
|
||||||
using System.Xml;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using Debug = System.Diagnostics.Debug;
|
|
||||||
using AppodealAds.Unity.Editor.Utils;
|
|
||||||
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Editor.Checkers
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
public class MultidexActivator : CheckingStep
|
|
||||||
{
|
|
||||||
#region Constants
|
|
||||||
|
|
||||||
//Templates in Unity Editor Data folder
|
|
||||||
private const string gradleDefaultTemplatePath = "PlaybackEngines/AndroidPlayer/Tools/GradleTemplates";
|
|
||||||
public const string manifestDefaultTemplatePath = "PlaybackEngines/AndroidPlayer/Apk/AndroidManifest.xml";
|
|
||||||
|
|
||||||
//Paths without leading Assets folder
|
|
||||||
public const string androidPluginsPath = "Plugins/Android";
|
|
||||||
public const string gradleTemplateName = "mainTemplate.gradle";
|
|
||||||
public const string manifestTemplateName = "AndroidManifest.xml";
|
|
||||||
public const string appodealTemplatesPath = "Appodeal/InternalResources";
|
|
||||||
private const string appodealDexesPath = "Assets/Plugins/Android/appodeal/assets/dex";
|
|
||||||
|
|
||||||
//Gradle search lines
|
|
||||||
public const string GRADLE_GOOGLE_REPOSITORY = "google()";
|
|
||||||
public const string GRADLE_GOOGLE_REPOSITORY_COMPAT = "maven { url \"https://maven.google.com\" }";
|
|
||||||
public const string GRADLE_DEPENDENCIES = "**DEPS**";
|
|
||||||
public const string GRADLE_APP_ID = "**APPLICATIONID**";
|
|
||||||
public const string GRADLE_USE_PROGUARD = "useProguard";
|
|
||||||
public const string GRADLE_MULTIDEX_DEPENDENCY_WO_VERSION = "androidx.multidex:multidex:";
|
|
||||||
public const string GRAFLE_DEFAULT_CONFIG = "defaultConfig";
|
|
||||||
public const string COMPILE_OPTIONS = "compileOptions {";
|
|
||||||
public const string GRADLE_JAVA_VERSION_1_8 = "JavaVersion.VERSION_1_8";
|
|
||||||
public const string GRADLE_SOURCE_CAPABILITY = "sourceCompatibility ";
|
|
||||||
public const string GRADLE_TARGET_CAPATILITY = "targetCompatibility ";
|
|
||||||
|
|
||||||
//Gradle add lines
|
|
||||||
public const string GRADLE_COMPILE = "compile ";
|
|
||||||
public const string GRADLE_IMPLEMENTATION = "implementation ";
|
|
||||||
public const string GRADLE_MULTIDEX_DEPENDENCY = "'androidx.multidex:multidex:2.0.1'";
|
|
||||||
public const string GRADLE_MULTIDEX_ENABLE = "multiDexEnabled true";
|
|
||||||
|
|
||||||
//Manifest add lines
|
|
||||||
public const string manifestMutlidexApp = "androidx.multidex.MultiDexApplication";
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public override string getName()
|
|
||||||
{
|
|
||||||
return "Android Multidex Settings";
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool isRequiredForPlatform(BuildTarget target)
|
|
||||||
{
|
|
||||||
return target == BuildTarget.Android;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override List<FixProblemInstruction> check()
|
|
||||||
{
|
|
||||||
var instructions = new List<FixProblemInstruction>();
|
|
||||||
if (isNodexBuild() && EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android)
|
|
||||||
{
|
|
||||||
if (!AppodealUnityUtils.isGradleEnabled())
|
|
||||||
{
|
|
||||||
if (!AppodealUnityUtils.isGradleAvailable())
|
|
||||||
{
|
|
||||||
var fix = new FixProblemInstruction(
|
|
||||||
"Gradle should be enabled if you use nodex version of Appodeal Plugin. " +
|
|
||||||
"But your version of Unity doesn't support gradle build system.Please update your Unity or use export to Eclipse or Android Studio.",
|
|
||||||
false);
|
|
||||||
instructions.Add(fix);
|
|
||||||
return instructions;
|
|
||||||
}
|
|
||||||
|
|
||||||
instructions.Add(new EnableGradle());
|
|
||||||
}
|
|
||||||
|
|
||||||
var customGradeScript = getCustomGradleScriptPath();
|
|
||||||
if (string.IsNullOrEmpty(customGradeScript) || !File.Exists(customGradeScript))
|
|
||||||
{
|
|
||||||
if (File.Exists(getDefaultGradleTemplate()))
|
|
||||||
{
|
|
||||||
instructions.Add(new CopyGradleScriptAndEnableMultidex());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var instr = new FixProblemInstruction(
|
|
||||||
"There is no build.gradle template in your Unity. " +
|
|
||||||
"Please ensure that your copy of Unity isn't crashed and contact Appodeal Support team.",
|
|
||||||
false);
|
|
||||||
instructions.Add(instr);
|
|
||||||
return instructions;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var settings = new ImportantGradleSettings(customGradeScript);
|
|
||||||
if (!settings.isMultiDexAddedCompletely())
|
|
||||||
{
|
|
||||||
instructions.Add(new EnableMultidexInGradle(customGradeScript));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!settings.isJavaVersionIncluded())
|
|
||||||
{
|
|
||||||
instructions.Add(new EnableJavaVersion(customGradeScript));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var customManifestPath = getCustomManifestPath();
|
|
||||||
if (string.IsNullOrEmpty(customManifestPath) || !File.Exists(customManifestPath))
|
|
||||||
{
|
|
||||||
instructions.Add(new CopyManifestTemplateAndAddNameAttribute());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var appNode = getApplicationNode(customManifestPath);
|
|
||||||
var ns = appNode.GetNamespaceOfPrefix("android");
|
|
||||||
if (!appNode.HasAttribute("name", ns))
|
|
||||||
{
|
|
||||||
instructions.Add(new AddNameAttrubute(appNode, ns));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (appNode.GetAttribute("name", ns) == manifestMutlidexApp) return instructions;
|
|
||||||
var fix = new FixProblemInstruction(
|
|
||||||
"We found that you use custom Application class in this project. " +
|
|
||||||
"Please ensure that your application class meets the multidex requirements (see the official android multidex documentation).",
|
|
||||||
false);
|
|
||||||
instructions.Add(fix);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!isNodexBuild() && isMultidexEnabledSimpleCheck() &&
|
|
||||||
EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android)
|
|
||||||
{
|
|
||||||
var fix = new FixProblemInstruction(
|
|
||||||
"We found that multidex is enabled in your project. To avoid possible problems please " +
|
|
||||||
"replace current version of Appodeal plugin with nodex version.", false);
|
|
||||||
instructions.Add(fix);
|
|
||||||
}
|
|
||||||
|
|
||||||
return instructions;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static XmlElement getApplicationNode(string manifestPath)
|
|
||||||
{
|
|
||||||
var doc = new XmlDocument();
|
|
||||||
doc.Load(manifestPath);
|
|
||||||
var manNode = AppodealUnityUtils.XmlFindChildNode(doc, "manifest");
|
|
||||||
var appNode = (XmlElement) AppodealUnityUtils.XmlFindChildNode(manNode, "application");
|
|
||||||
return appNode;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string getCustomGradleScriptPath()
|
|
||||||
{
|
|
||||||
var androidDirectory = new DirectoryInfo(Path.Combine("Assets", androidPluginsPath));
|
|
||||||
var filePaths = androidDirectory.GetFiles("*.gradle");
|
|
||||||
return filePaths.Length > 0
|
|
||||||
? Path.Combine(Path.Combine(Application.dataPath, androidPluginsPath), filePaths[0].Name)
|
|
||||||
: null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string getCustomManifestPath()
|
|
||||||
{
|
|
||||||
return AppodealUnityUtils.combinePaths(Application.dataPath, androidPluginsPath, manifestTemplateName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static bool isNodexBuild()
|
|
||||||
{
|
|
||||||
var dexesDirectory = new DirectoryInfo(appodealDexesPath);
|
|
||||||
if (!dexesDirectory.Exists)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
var dexes = dexesDirectory.GetFiles("*.dex");
|
|
||||||
return dexes.Length == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static bool isMultidexEnabledSimpleCheck()
|
|
||||||
{
|
|
||||||
var path = getCustomGradleScriptPath();
|
|
||||||
if (string.IsNullOrEmpty(path))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var settings = new ImportantGradleSettings(path);
|
|
||||||
return settings.isMultidexEnabled() && AppodealUnityUtils.isGradleEnabled();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string getDefaultGradleTemplate()
|
|
||||||
{
|
|
||||||
var defaultGradleTemplateFullName = AppodealUnityUtils.combinePaths(
|
|
||||||
EditorApplication.applicationContentsPath,
|
|
||||||
gradleDefaultTemplatePath,
|
|
||||||
gradleTemplateName);
|
|
||||||
if (File.Exists(defaultGradleTemplateFullName)) return defaultGradleTemplateFullName;
|
|
||||||
var unixAppContentsPath =
|
|
||||||
Path.GetDirectoryName(Path.GetDirectoryName(EditorApplication.applicationContentsPath));
|
|
||||||
defaultGradleTemplateFullName = AppodealUnityUtils.combinePaths(unixAppContentsPath,
|
|
||||||
gradleDefaultTemplatePath,
|
|
||||||
gradleTemplateName);
|
|
||||||
|
|
||||||
return defaultGradleTemplateFullName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "NotAccessedField.Local")]
|
|
||||||
public class ImportantGradleSettings
|
|
||||||
{
|
|
||||||
public readonly bool googleRepositoryPresented;
|
|
||||||
public readonly bool multidexDependencyPresented;
|
|
||||||
public readonly bool multidexEnabled;
|
|
||||||
public readonly bool deprecatedProguardPresented;
|
|
||||||
public readonly bool compileOptions;
|
|
||||||
public readonly bool sourceCapability;
|
|
||||||
public readonly bool targetCapability;
|
|
||||||
public bool defaultConfig;
|
|
||||||
|
|
||||||
public ImportantGradleSettings(string gradlePath)
|
|
||||||
{
|
|
||||||
var gradleScriptFullText = File.ReadAllText(gradlePath);
|
|
||||||
multidexDependencyPresented =
|
|
||||||
gradleScriptFullText.Contains(MultidexActivator.GRADLE_MULTIDEX_DEPENDENCY_WO_VERSION);
|
|
||||||
multidexEnabled = gradleScriptFullText.Contains(MultidexActivator.GRADLE_MULTIDEX_ENABLE);
|
|
||||||
deprecatedProguardPresented = gradleScriptFullText.Contains(MultidexActivator.GRADLE_USE_PROGUARD);
|
|
||||||
compileOptions = gradleScriptFullText.Contains(MultidexActivator.COMPILE_OPTIONS);
|
|
||||||
sourceCapability =
|
|
||||||
gradleScriptFullText.Contains(MultidexActivator.GRADLE_SOURCE_CAPABILITY +
|
|
||||||
MultidexActivator.GRADLE_JAVA_VERSION_1_8);
|
|
||||||
targetCapability =
|
|
||||||
gradleScriptFullText.Contains(MultidexActivator.GRADLE_TARGET_CAPATILITY +
|
|
||||||
MultidexActivator.GRADLE_JAVA_VERSION_1_8);
|
|
||||||
defaultConfig = gradleScriptFullText.Contains(MultidexActivator.GRAFLE_DEFAULT_CONFIG);
|
|
||||||
|
|
||||||
var allprojects = getModule("allprojects", gradleScriptFullText);
|
|
||||||
googleRepositoryPresented = allprojects.Contains(MultidexActivator.GRADLE_GOOGLE_REPOSITORY) ||
|
|
||||||
gradleScriptFullText.Contains(MultidexActivator
|
|
||||||
.GRADLE_GOOGLE_REPOSITORY_COMPAT);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool isJavaVersionIncluded()
|
|
||||||
{
|
|
||||||
return sourceCapability && targetCapability;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool isMultidexEnabled()
|
|
||||||
{
|
|
||||||
return multidexDependencyPresented || multidexEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool isMultiDexAddedCompletely()
|
|
||||||
{
|
|
||||||
return multidexDependencyPresented && multidexEnabled && !deprecatedProguardPresented &&
|
|
||||||
googleRepositoryPresented;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string getModule(string moduleName, string fulltext)
|
|
||||||
{
|
|
||||||
var startIndex = fulltext.IndexOf(moduleName, StringComparison.Ordinal);
|
|
||||||
startIndex = fulltext.IndexOf('{', startIndex) + 1;
|
|
||||||
var currentIndex = startIndex;
|
|
||||||
var braces = 1;
|
|
||||||
while (braces != 0)
|
|
||||||
{
|
|
||||||
var c = fulltext[currentIndex];
|
|
||||||
switch (c)
|
|
||||||
{
|
|
||||||
case '{':
|
|
||||||
braces++;
|
|
||||||
break;
|
|
||||||
case '}':
|
|
||||||
braces--;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
currentIndex++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return fulltext.Substring(startIndex, currentIndex - startIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class EnableGradle : FixProblemInstruction
|
|
||||||
{
|
|
||||||
public EnableGradle() : base(
|
|
||||||
"Gradle build system isn't enabled.\n(required for nodex version of Appodeal Plugin " +
|
|
||||||
"and if you aren't going to export your project to Android Studio or Eclipse).", true)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void fixProblem()
|
|
||||||
{
|
|
||||||
AppodealUnityUtils.enableGradleBuildSystem();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class CopyGradleScriptAndEnableMultidex : FixProblemInstruction
|
|
||||||
{
|
|
||||||
public CopyGradleScriptAndEnableMultidex() : base("Assets/Plugins/Android/mainTemplate.gradle not found.\n" +
|
|
||||||
"(required if you aren't going to export your project to Android Studio or Eclipse)",
|
|
||||||
true)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void fixProblem()
|
|
||||||
{
|
|
||||||
//EditorApplication.applicationContentsPath is different for macos and win. need to fix to reach manifest and gradle templates
|
|
||||||
var defaultGradleTemplateFullName = MultidexActivator.getDefaultGradleTemplate();
|
|
||||||
|
|
||||||
var destGradleScriptFullName = AppodealUnityUtils.combinePaths(Application.dataPath,
|
|
||||||
MultidexActivator.androidPluginsPath,
|
|
||||||
MultidexActivator.gradleTemplateName);
|
|
||||||
//Prefer to use build.gradle from the box. Just in case.
|
|
||||||
if (File.Exists(defaultGradleTemplateFullName))
|
|
||||||
{
|
|
||||||
File.Copy(defaultGradleTemplateFullName, destGradleScriptFullName);
|
|
||||||
}
|
|
||||||
|
|
||||||
AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(destGradleScriptFullName),
|
|
||||||
ImportAssetOptions.ForceUpdate);
|
|
||||||
|
|
||||||
//There are no multidex settings in default build.gradle but they can add that stuff.
|
|
||||||
var settings = new ImportantGradleSettings(destGradleScriptFullName);
|
|
||||||
|
|
||||||
if (!settings.isMultiDexAddedCompletely())
|
|
||||||
new EnableMultidexInGradle(destGradleScriptFullName).fixProblem();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class EnableMultidexInGradle : FixProblemInstruction
|
|
||||||
{
|
|
||||||
private readonly string path;
|
|
||||||
|
|
||||||
public EnableMultidexInGradle(string gradleScriptPath) : base(
|
|
||||||
"Multidex isn't enabled. mainTemplate.gradle should be edited " +
|
|
||||||
"according to the official documentation:\nhttps://developer.android.com/studio/build/multidex", true)
|
|
||||||
{
|
|
||||||
path = gradleScriptPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void fixProblem()
|
|
||||||
{
|
|
||||||
var settings = new ImportantGradleSettings(path);
|
|
||||||
var leadingWhitespaces = "";
|
|
||||||
string line;
|
|
||||||
var prevLine = "";
|
|
||||||
var modifiedGradle = "";
|
|
||||||
var gradleScript = new StreamReader(path);
|
|
||||||
string multidexDependency;
|
|
||||||
var comparsionUnityVersionWith20182 =
|
|
||||||
AppodealUnityUtils.compareVersions(Application.unityVersion, "2018.2");
|
|
||||||
if (comparsionUnityVersionWith20182 < 0)
|
|
||||||
{
|
|
||||||
multidexDependency = MultidexActivator.GRADLE_COMPILE + MultidexActivator.GRADLE_MULTIDEX_DEPENDENCY;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
multidexDependency = MultidexActivator.GRADLE_IMPLEMENTATION +
|
|
||||||
MultidexActivator.GRADLE_MULTIDEX_DEPENDENCY;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ((line = gradleScript.ReadLine()) != null)
|
|
||||||
{
|
|
||||||
if (!settings.multidexDependencyPresented && line.Contains(MultidexActivator.GRADLE_DEPENDENCIES))
|
|
||||||
{
|
|
||||||
modifiedGradle += leadingWhitespaces + multidexDependency + Environment.NewLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!settings.multidexEnabled && line.Contains(MultidexActivator.GRADLE_APP_ID))
|
|
||||||
{
|
|
||||||
modifiedGradle += leadingWhitespaces + MultidexActivator.GRADLE_MULTIDEX_ENABLE +
|
|
||||||
Environment.NewLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (settings.deprecatedProguardPresented && line.Contains(MultidexActivator.GRADLE_USE_PROGUARD))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
modifiedGradle += line + Environment.NewLine;
|
|
||||||
leadingWhitespaces = Regex.Match(line, "^\\s*").Value;
|
|
||||||
if (line.Contains("repositories") && prevLine.Contains("allprojects") &&
|
|
||||||
!settings.googleRepositoryPresented)
|
|
||||||
{
|
|
||||||
leadingWhitespaces += leadingWhitespaces;
|
|
||||||
modifiedGradle += leadingWhitespaces + MultidexActivator.GRADLE_GOOGLE_REPOSITORY_COMPAT +
|
|
||||||
Environment.NewLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
prevLine = line;
|
|
||||||
}
|
|
||||||
|
|
||||||
gradleScript.Close();
|
|
||||||
File.WriteAllText(path, modifiedGradle);
|
|
||||||
AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(path), ImportAssetOptions.ForceUpdate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class EnableJavaVersion : FixProblemInstruction
|
|
||||||
{
|
|
||||||
private readonly string path;
|
|
||||||
|
|
||||||
public EnableJavaVersion(string gradleScriptPath) : base("Java version isn't included to mainTemplate.gradle",
|
|
||||||
true)
|
|
||||||
{
|
|
||||||
path = gradleScriptPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void fixProblem()
|
|
||||||
{
|
|
||||||
var settings = new ImportantGradleSettings(path);
|
|
||||||
var leadingWhitespaces = " ";
|
|
||||||
const string additionalWhiteSpaces = "";
|
|
||||||
string line;
|
|
||||||
var modifiedGradle = "";
|
|
||||||
|
|
||||||
var gradleScript = new StreamReader(path);
|
|
||||||
|
|
||||||
while ((line = gradleScript.ReadLine()) != null)
|
|
||||||
{
|
|
||||||
if (line.Contains(MultidexActivator.GRAFLE_DEFAULT_CONFIG))
|
|
||||||
{
|
|
||||||
if (!settings.compileOptions)
|
|
||||||
{
|
|
||||||
modifiedGradle += additionalWhiteSpaces + leadingWhitespaces +
|
|
||||||
MultidexActivator.COMPILE_OPTIONS + Environment.NewLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!settings.sourceCapability)
|
|
||||||
{
|
|
||||||
modifiedGradle += leadingWhitespaces + leadingWhitespaces +
|
|
||||||
MultidexActivator.GRADLE_SOURCE_CAPABILITY
|
|
||||||
+ MultidexActivator.GRADLE_JAVA_VERSION_1_8 + Environment.NewLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!settings.targetCapability)
|
|
||||||
{
|
|
||||||
modifiedGradle += leadingWhitespaces + leadingWhitespaces +
|
|
||||||
MultidexActivator.GRADLE_TARGET_CAPATILITY
|
|
||||||
+ MultidexActivator.GRADLE_JAVA_VERSION_1_8 + Environment.NewLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!settings.targetCapability)
|
|
||||||
{
|
|
||||||
modifiedGradle += leadingWhitespaces + "}" + Environment.NewLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!settings.targetCapability)
|
|
||||||
{
|
|
||||||
modifiedGradle += leadingWhitespaces + Environment.NewLine;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
modifiedGradle += line + Environment.NewLine;
|
|
||||||
leadingWhitespaces = Regex.Match(line, "^\\s*").Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
gradleScript.Close();
|
|
||||||
File.WriteAllText(path, modifiedGradle);
|
|
||||||
AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(path), ImportAssetOptions.ForceUpdate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class CopyManifestTemplateAndAddNameAttribute : FixProblemInstruction
|
|
||||||
{
|
|
||||||
public CopyManifestTemplateAndAddNameAttribute() : base(
|
|
||||||
"Assets/Plugins/Android/AndroidManifest.xml not found.\n", true)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void fixProblem()
|
|
||||||
{
|
|
||||||
var fullManifestName = MultidexActivator.getCustomManifestPath();
|
|
||||||
var defaultTemplate = Path.Combine(EditorApplication.applicationContentsPath,
|
|
||||||
MultidexActivator.manifestDefaultTemplatePath);
|
|
||||||
if (!File.Exists(defaultTemplate))
|
|
||||||
{
|
|
||||||
var unixAppContentsPath =
|
|
||||||
Path.GetDirectoryName(Path.GetDirectoryName(EditorApplication.applicationContentsPath));
|
|
||||||
Debug.Assert(unixAppContentsPath != null, nameof(unixAppContentsPath) + " != null");
|
|
||||||
defaultTemplate = Path.Combine(unixAppContentsPath, MultidexActivator.manifestDefaultTemplatePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
var appodealTemplate = AppodealUnityUtils.combinePaths(Application.dataPath,
|
|
||||||
MultidexActivator.appodealTemplatesPath,
|
|
||||||
MultidexActivator.manifestTemplateName);
|
|
||||||
File.Copy(File.Exists(defaultTemplate) ? defaultTemplate : appodealTemplate, fullManifestName);
|
|
||||||
AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(fullManifestName),
|
|
||||||
ImportAssetOptions.ForceUpdate);
|
|
||||||
|
|
||||||
var appNode = MultidexActivator.getApplicationNode(fullManifestName);
|
|
||||||
var ns = appNode.GetNamespaceOfPrefix("android");
|
|
||||||
if (!appNode.HasAttribute("name", ns))
|
|
||||||
{
|
|
||||||
new AddNameAttrubute(appNode, ns).fixProblem();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class AddNameAttrubute : FixProblemInstruction
|
|
||||||
{
|
|
||||||
private readonly XmlElement appNode;
|
|
||||||
private readonly string ns;
|
|
||||||
|
|
||||||
public AddNameAttrubute(XmlElement appNode, string ns) : base(
|
|
||||||
"Problem in AndroidManifest.xml found.\nApplication tag should contain android:" +
|
|
||||||
"name attribute with value: " + MultidexActivator.manifestMutlidexApp, true)
|
|
||||||
{
|
|
||||||
this.appNode = appNode;
|
|
||||||
this.ns = ns;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void fixProblem()
|
|
||||||
{
|
|
||||||
var fullManifestName = MultidexActivator.getCustomManifestPath();
|
|
||||||
appNode.SetAttribute("name", ns, MultidexActivator.manifestMutlidexApp);
|
|
||||||
Debug.Assert(appNode.OwnerDocument != null, "appNode.OwnerDocument != null");
|
|
||||||
appNode.OwnerDocument.Save(fullManifestName);
|
|
||||||
AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(fullManifestName),
|
|
||||||
ImportAssetOptions.ForceUpdate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 7b6f78d5631104e87b80549c2de29cf1
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 80a09398ec71b48589e89ee7a5b5d480
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,155 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using System.IO;
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace AppodealAds.Unity.Editor.InternalResources
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
public class AppodealSettings : ScriptableObject
|
|
||||||
{
|
|
||||||
private const string AppodealSettingsExportPath = "Appodeal/Editor/InternalResources/AppodealSettings.asset";
|
|
||||||
private static AppodealSettings instance;
|
|
||||||
|
|
||||||
[SerializeField] private string adMobAndroidAppId = string.Empty;
|
|
||||||
[SerializeField] private string adMobIosAppId = string.Empty;
|
|
||||||
|
|
||||||
[SerializeField] private bool accessCoarseLocationPermission;
|
|
||||||
[SerializeField] private bool writeExternalStoragePermission;
|
|
||||||
[SerializeField] private bool accessWifiStatePermission;
|
|
||||||
[SerializeField] private bool vibratePermission;
|
|
||||||
[SerializeField] private bool accessFineLocationPermission;
|
|
||||||
|
|
||||||
[SerializeField] private bool androidMultidex;
|
|
||||||
|
|
||||||
[SerializeField] private bool nSUserTrackingUsageDescription;
|
|
||||||
[SerializeField] private bool nSLocationWhenInUseUsageDescription;
|
|
||||||
[SerializeField] private bool nSCalendarsUsageDescription;
|
|
||||||
[SerializeField] private bool nSAppTransportSecurity;
|
|
||||||
|
|
||||||
[SerializeField] private bool iOSSKAdNetworkItems;
|
|
||||||
[SerializeField] private List<string> iOsskAdNetworkItemsList;
|
|
||||||
|
|
||||||
public static AppodealSettings Instance
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (instance != null) return instance;
|
|
||||||
var settingsFilePath = Path.Combine("Assets", AppodealSettingsExportPath);
|
|
||||||
var settingsDir = Path.GetDirectoryName(settingsFilePath);
|
|
||||||
if (!Directory.Exists(settingsDir))
|
|
||||||
{
|
|
||||||
Directory.CreateDirectory(settingsDir ?? string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
instance = AssetDatabase.LoadAssetAtPath<AppodealSettings>(settingsFilePath);
|
|
||||||
if (instance != null) return instance;
|
|
||||||
instance = CreateInstance<AppodealSettings>();
|
|
||||||
AssetDatabase.CreateAsset(instance, settingsFilePath);
|
|
||||||
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string AdMobAndroidAppId
|
|
||||||
{
|
|
||||||
get { return Instance.adMobAndroidAppId; }
|
|
||||||
set { Instance.adMobAndroidAppId = value.Trim(); }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string AdMobIosAppId
|
|
||||||
{
|
|
||||||
get { return Instance.adMobIosAppId; }
|
|
||||||
set { Instance.adMobIosAppId = value.Trim(); }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool AccessCoarseLocationPermission
|
|
||||||
{
|
|
||||||
get { return accessCoarseLocationPermission; }
|
|
||||||
set { Instance.accessCoarseLocationPermission = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool WriteExternalStoragePermission
|
|
||||||
{
|
|
||||||
get { return writeExternalStoragePermission; }
|
|
||||||
set { Instance.writeExternalStoragePermission = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool AccessWifiStatePermission
|
|
||||||
{
|
|
||||||
get { return accessWifiStatePermission; }
|
|
||||||
set { Instance.accessWifiStatePermission = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool VibratePermission
|
|
||||||
{
|
|
||||||
get { return vibratePermission; }
|
|
||||||
set { Instance.vibratePermission = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool AccessFineLocationPermission
|
|
||||||
{
|
|
||||||
get { return accessFineLocationPermission; }
|
|
||||||
set { Instance.accessFineLocationPermission = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool AndroidMultidex
|
|
||||||
{
|
|
||||||
get { return androidMultidex; }
|
|
||||||
set { Instance.androidMultidex = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool NSUserTrackingUsageDescription
|
|
||||||
{
|
|
||||||
get { return nSUserTrackingUsageDescription; }
|
|
||||||
set { Instance.nSUserTrackingUsageDescription = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool NSLocationWhenInUseUsageDescription
|
|
||||||
{
|
|
||||||
get { return nSLocationWhenInUseUsageDescription; }
|
|
||||||
set { Instance.nSLocationWhenInUseUsageDescription = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool NSCalendarsUsageDescription
|
|
||||||
{
|
|
||||||
get { return nSCalendarsUsageDescription; }
|
|
||||||
set { Instance.nSCalendarsUsageDescription = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool NSAppTransportSecurity
|
|
||||||
{
|
|
||||||
get { return nSAppTransportSecurity; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
Instance.nSAppTransportSecurity = value;
|
|
||||||
#if UNITY_2018_1_OR_NEWER
|
|
||||||
if (BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.iOS, BuildTarget.iOS)) PlayerSettings.iOS.allowHTTPDownload = value;
|
|
||||||
else Instance.nSAppTransportSecurity = false;
|
|
||||||
#elif UNITY_IOS
|
|
||||||
PlayerSettings.iOS.allowHTTPDownload = value;
|
|
||||||
#else
|
|
||||||
Instance.nSAppTransportSecurity = false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IOSSkAdNetworkItems
|
|
||||||
{
|
|
||||||
get { return iOSSKAdNetworkItems; }
|
|
||||||
set { Instance.iOSSKAdNetworkItems = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<string> IOSSkAdNetworkItemsList
|
|
||||||
{
|
|
||||||
get { return iOsskAdNetworkItemsList; }
|
|
||||||
set { Instance.iOsskAdNetworkItemsList = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SaveAsync()
|
|
||||||
{
|
|
||||||
EditorUtility.SetDirty(instance);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 9403d56c027e8442284a59449c4f1002
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,120 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<items>
|
|
||||||
<item>
|
|
||||||
<filter>^((?!InternalResources).)*$</filter>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Appodeal unity interface</name>
|
|
||||||
<path>Appodeal</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<check_if_empty>true</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Appodeal unity interface</name>
|
|
||||||
<path>Appodeal</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Appodeal unity interface</name>
|
|
||||||
<path>Appodeal</path>
|
|
||||||
<perform_only_if_total_remove>true</perform_only_if_total_remove>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<check_if_empty>false</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>ConsentManager</name>
|
|
||||||
<path>ConsentManager</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<description>External Dependency Manager is used by many plugins for integrating platform specific
|
|
||||||
libraries and resolving conflicting dependencies. If some of your plugins use Jar
|
|
||||||
Resolver, removing can lead to issues.
|
|
||||||
</description>
|
|
||||||
<is_confirmation_required>true</is_confirmation_required>
|
|
||||||
<name>Jar Resolver</name>
|
|
||||||
<path>ExternalDependencyManager</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<filter>^Appodeal.*</filter>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Appodeal Dependencies</name>
|
|
||||||
<path>Editor</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<check_if_empty>true</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Appodeal Editor</name>
|
|
||||||
<path>Editor</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<filter>Appodeal</filter>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Appodeal iOS</name>
|
|
||||||
<path>Plugins/iOS</path>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
|
||||||
<check_if_empty>false</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Plugins iOS Consent Manager</name>
|
|
||||||
<path>Plugins/iOS/ConsentManager</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<check_if_empty>true</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Plugins iOS folder</name>
|
|
||||||
<path>Plugins/iOS</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<filter>
|
|
||||||
(appodeal-)|(appodeal)|(adcolony)|(applovin)|(amazon)|(chartboost)|(facebook)|(inmobi)|(ironsource)|(mytarget)|(startapp)|(tapjoy)|(unity_ads)|(yandex)|(mintegral)|(mintegral-)|(ogury-)
|
|
||||||
</filter>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Appodeal Android</name>
|
|
||||||
<path>Plugins/Android</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<filter>
|
|
||||||
|(adcolony)|(amazon_ads)|(applovin)|(chartboost)|(facebook)|(ironsource)|(my_target)|(protobuf)|(tapjoy)|(unity_ads)|(vungle)|(yandex)|
|
|
||||||
</filter>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Appodeal Android Assets Dex</name>
|
|
||||||
<path>Plugins/Android/assets/dex</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<check_if_empty>false</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Plugins Android Assets Com Tapjoy</name>
|
|
||||||
<path>Plugins/Android/assets/com/tapjoy</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<check_if_empty>true</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Plugins Android Assets Com</name>
|
|
||||||
<path>Plugins/Android/assets/com</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Plugins Android Assets Js</name>
|
|
||||||
<path>Plugins/Android/assets/js</path>
|
|
||||||
<filter>(closebutton\.html)|(mraid\.js)</filter>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<check_if_empty>true</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Plugins Android Assets</name>
|
|
||||||
<path>Plugins/Android/assets</path>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
|
||||||
<check_if_empty>true</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Plugins Android folder</name>
|
|
||||||
<path>Plugins/Android</path>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<check_if_empty>true</check_if_empty>
|
|
||||||
<is_confirmation_required>false</is_confirmation_required>
|
|
||||||
<name>Assets Plugins</name>
|
|
||||||
<path>Plugins</path>
|
|
||||||
</item>
|
|
||||||
</items>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 0c7bc99260f0c43e3bb182e9a9aa9bd7
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 96b04064353f64115acbb3f904cf278d
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDAdColonyAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
<iosPod name="BidMachineAdColonyAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:adcolony:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads.networks.adcolony:2.3.1.11" />
|
|
||||||
<androidPackage spec="com.adcolony:sdk:4.8.0" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-ads-identifier:18.0.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 4e45e06cf431d48e8afd52fdb18cfe70
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDAdjustAdapter" version="3.1.3.0" minTargetSdk="11.0">
|
|
||||||
<sources>
|
|
||||||
<source>https://github.com/appodeal/CocoaPods.git</source>
|
|
||||||
</sources>
|
|
||||||
</iosPod>
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.services:adjust:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:public:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:internal:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:extensions:3.1.3" />
|
|
||||||
<androidPackage spec="com.adjust.sdk:adjust-android:4.33.4" />
|
|
||||||
<androidPackage spec="com.explorestack.adjust:sdk-purchase:1.1.2" />
|
|
||||||
<androidPackage spec="com.android.installreferrer:installreferrer:2.2" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-ads-identifier:18.0.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: ba700f0a931b64e6296dc8deb1610466
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDAppLovinAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:applovin:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="com.applovin:applovin-sdk:11.10.1" />
|
|
||||||
<androidPackage spec="com.google.android.exoplayer:exoplayer:2.17.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 7fad1169905f24b97b06cce224203af7
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="Appodeal" version="3.1.3" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:public:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:internal:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:network:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:consent:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:extensions:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:advertising:3.1.3" />
|
|
||||||
<androidPackage spec="com.explorestack:iab:1.5.2" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 95fd68066d56242daa4a6bd25eaff950
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDAppsFlyerAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.services:appsflyer:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:public:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:internal:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:extensions:3.1.3" />
|
|
||||||
<androidPackage spec="com.appsflyer:af-android-sdk:6.12.1" />
|
|
||||||
<androidPackage spec="com.appsflyer:adrevenue:6.9.1" />
|
|
||||||
<androidPackage spec="com.android.installreferrer:installreferrer:2.2" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 43ec741b8409546ca99f9ed7f8d366f4
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDBidMachineAdapter" version="3.1.3.0" minTargetSdk="12.0" />
|
|
||||||
<iosPod name="BidMachineAmazonAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
<iosPod name="BidMachineCriteoAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
<iosPod name="BidMachineMintegralAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
<iosPod name="BidMachinePangleAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
<iosPod name="BidMachineSmaatoAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
<iosPod name="BidMachineTapjoyAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:bidmachine:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads:2.3.1" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads.networks.amazon:2.3.1.12" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads.networks.criteo:2.3.1.11" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads.networks.mintegral:2.3.1.3" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads.networks.pangle:2.3.1.6" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: e62f366a4d86549ca9638abb21ac0d02
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDFirebaseAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.services:firebase:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:public:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:internal:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:extensions:3.1.3" />
|
|
||||||
<androidPackage spec="com.google.firebase:firebase-analytics-ktx:21.2.0" />
|
|
||||||
<androidPackage spec="com.google.firebase:firebase-config-ktx:21.2.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 43fe1f0f98df449cbbe92b9e3a9ed3a7
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDGoogleAdMobAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:admob:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-ads:22.1.0" />
|
|
||||||
<androidPackage spec="androidx.constraintlayout:constraintlayout:2.1.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 1b0b5f6b7541c4d8d8eef948344d1307
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDIABAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:iab:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="com.explorestack:iab:1.5.2" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 516bf1ee5904f412cb906b2aeaebabc6
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDIronSourceAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:ironsource:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="com.ironsource.sdk:mediationsdk:7.3.0.1" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-base:18.0.1" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-ads-identifier:18.0.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 3f4c4c86bf9f14b6e95b588278f775fe
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDMetaAudienceNetworkAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
<iosPod name="BidMachineMetaAudienceAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:meta:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads.networks.meta_audience:2.3.1.13" />
|
|
||||||
<androidPackage spec="com.facebook.android:audience-network-sdk:6.14.0" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-base:18.0.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 0b1ee1c3cfbd348439492e3e2af3adb3
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDFacebookAdapter" version="3.1.3.0" minTargetSdk="12.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.services:facebook_analytics:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:public:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:internal:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:extensions:3.1.3" />
|
|
||||||
<androidPackage spec="com.facebook.android:facebook-core:16.0.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 6e9e2f441126b45169884cae8b64d64a
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDMyTargetAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
<iosPod name="BidMachineMyTargetAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:my_target:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads.networks.my_target:2.3.1.10" />
|
|
||||||
<androidPackage spec="com.my.target:mytarget-sdk:5.16.5" />
|
|
||||||
<androidPackage spec="com.google.android.exoplayer:exoplayer:2.17.1" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-ads-identifier:18.0.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 77c70a83ec8654ec489f729418f92798
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.services:sentry_analytics:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:network:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:public:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:internal:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:extensions:3.1.3" />
|
|
||||||
<androidPackage spec="io.sentry:sentry-android:6.26.0" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 2e850d7e2306444149de058b95c356ff
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDStackAnalyticsAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.services:stack_analytics:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:network:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:public:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.core:internal:3.1.3" />
|
|
||||||
<androidPackage spec="com.appodeal.ads:extensions:3.1.3" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 99356fd3c53024770808863a56aae8ab
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDUnityAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:unity_ads:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="com.unity3d.ads:unity-ads:4.6.1" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: c432d629d99c34980a38a7633fd76645
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDVungleAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
<iosPod name="BidMachineVungleAdapter" version="~> 2.3.0.0" minTargetSdk="12.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:vungle:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="io.bidmachine:ads.networks.vungle:2.3.1.3" />
|
|
||||||
<androidPackage spec="com.vungle:publisher-sdk-android:6.12.1" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-basement:18.1.0" />
|
|
||||||
<androidPackage spec="com.google.android.gms:play-services-ads-identifier:18.0.1" />
|
|
||||||
<androidPackage spec="androidx.core:core:1.7.0" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 934a7a1941d9b459e9e8bac106b2b987
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<dependencies>
|
|
||||||
<iosPods>
|
|
||||||
<iosPod name="APDYandexAdapter" version="3.1.3.0" minTargetSdk="11.0" />
|
|
||||||
</iosPods>
|
|
||||||
<androidPackages>
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk.networks:yandex:3.1.3.0" />
|
|
||||||
<androidPackage spec="com.appodeal.ads.sdk:core:3.1.3" />
|
|
||||||
<androidPackage spec="com.yandex.android:mobileads:5.10.0" />
|
|
||||||
<androidPackage spec="com.yandex.android:mobmetricalib:5.3.0" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib:1.7.10" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" />
|
|
||||||
<androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" />
|
|
||||||
<repositories>
|
|
||||||
<repository>https://artifactory.appodeal.com/appodeal</repository>
|
|
||||||
</repositories>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 4a6ba9c97026a492ea15671dd614939a
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: a30d5928ba4d3451aad806721abfdccd
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: d36084c2e5a794d83af1233007969ec6
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,343 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using System.Xml;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEditor;
|
|
||||||
using Appodeal.Editor.AppodealManager.Data;
|
|
||||||
|
|
||||||
// ReSharper disable All
|
|
||||||
|
|
||||||
namespace Appodeal.Editor.AppodealManager.AppodealDependencies
|
|
||||||
{
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
[SuppressMessage("ReSharper", "ReturnValueOfPureMethodIsNotUsed")]
|
|
||||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
||||||
public static class AppodealDependencyUtils
|
|
||||||
{
|
|
||||||
#region Constants
|
|
||||||
|
|
||||||
public const string PluginRequest = "https://mw-backend.appodeal.com/v2.1/unity";
|
|
||||||
public const string AdaptersRequest = "https://mw-backend.appodeal.com/v2.1/unity/config/";
|
|
||||||
public const string Network_configs_path = "Assets/Appodeal/Editor/NetworkConfigs/";
|
|
||||||
public const string Replace_network_dependency_value = "com.appodeal.ads.sdk.networks:";
|
|
||||||
public const string Replace_service_dependency_value = "com.appodeal.ads.sdk.services:";
|
|
||||||
public const string Replace_dependency_core = "com.appodeal.ads.sdk:core:";
|
|
||||||
public const string ReplaceAdmobDepValue = "com.appodeal.ads.sdk.networks:admob";
|
|
||||||
public const string PackageName = "Name";
|
|
||||||
public const string CurrentVersionHeader = "Current Version";
|
|
||||||
public const string LatestVersionHeader = "Latest Version";
|
|
||||||
public const string ActionHeader = "Action";
|
|
||||||
public const string BoxStyle = "box";
|
|
||||||
public const string ActionUpdate = "Update";
|
|
||||||
public const string ActionImport = "Import";
|
|
||||||
public const string ActionRemove = "Remove";
|
|
||||||
public const string EmptyCurrentVersion = " - ";
|
|
||||||
public const string AppodealUnityPlugin = "Appodeal Unity Plugin";
|
|
||||||
public const string AppodealSdkManager = "Appodeal SDK Manager";
|
|
||||||
public const string Appodeal = "Appodeal";
|
|
||||||
public const string Loading = "Loading...";
|
|
||||||
public const string ProgressBar_cancelled = "Progress bar canceled by the user";
|
|
||||||
public const string AppodealCoreDependencies = "Appodeal Core Dependencies";
|
|
||||||
public const string iOS = "iOS";
|
|
||||||
public const string Android = "Android";
|
|
||||||
public const string AppodealNetworkDependencies = "Appodeal Network Dependencies";
|
|
||||||
public const string AppodealServiceDependencies = "Appodeal Service Dependencies";
|
|
||||||
public const string SpecOpenDependencies = "<dependencies>\n";
|
|
||||||
public const string SpecCloseDependencies = "</dependencies>";
|
|
||||||
public const string XmlFileExtension = ".xml";
|
|
||||||
public const string TwitterMoPub = "TwitterMoPub";
|
|
||||||
public const string GoogleAdMob = "GoogleAdMob";
|
|
||||||
public const string APDAppodealAdExchangeAdapter = "APDAppodealAdExchangeAdapter";
|
|
||||||
public const string Dependencies = "Dependencies";
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public static FileInfo[] GetInternalDependencyPath()
|
|
||||||
{
|
|
||||||
var info = new DirectoryInfo(Network_configs_path);
|
|
||||||
var fileInfo = info.GetFiles();
|
|
||||||
|
|
||||||
return fileInfo.Length <= 0 ? null : fileInfo.Where(val => !val.Name.Contains("meta")).ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ShowInternalErrorDialog(EditorWindow editorWindow, string message, string debugLog)
|
|
||||||
{
|
|
||||||
EditorUtility.ClearProgressBar();
|
|
||||||
Debug.LogError(message);
|
|
||||||
var option = EditorUtility.DisplayDialog("Internal error",
|
|
||||||
$"{message}. Please contact Appodeal support.",
|
|
||||||
"Ok");
|
|
||||||
if (option)
|
|
||||||
{
|
|
||||||
editorWindow.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ShowInternalErrorDialog(EditorWindow editorWindow, string message)
|
|
||||||
{
|
|
||||||
EditorUtility.ClearProgressBar();
|
|
||||||
Debug.LogError(message);
|
|
||||||
var option = EditorUtility.DisplayDialog("Internal error",
|
|
||||||
$"{message}.",
|
|
||||||
"Ok");
|
|
||||||
if (option)
|
|
||||||
{
|
|
||||||
editorWindow.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void FormatXml(string inputXml)
|
|
||||||
{
|
|
||||||
var document = new XmlDocument();
|
|
||||||
document.Load(inputXml);
|
|
||||||
using (var writer = new XmlTextWriter(inputXml, Encoding.UTF8))
|
|
||||||
{
|
|
||||||
writer.Formatting = Formatting.Indented;
|
|
||||||
writer.Indentation = 4;
|
|
||||||
document.Save(writer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetConfigName(string value)
|
|
||||||
{
|
|
||||||
var configName = value.Replace(Network_configs_path, string.Empty);
|
|
||||||
return configName.Replace("Dependencies.xml", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetiOSContent(string path)
|
|
||||||
{
|
|
||||||
var iOSContent = string.Empty;
|
|
||||||
var lines = File.ReadAllLines(path);
|
|
||||||
foreach (var line in lines)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(line)) continue;
|
|
||||||
|
|
||||||
if (line.Contains("<iosPods>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("<iosPod name="))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("<sources>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("<source>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("</sources>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("</iosPod>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("</iosPods>"))
|
|
||||||
{
|
|
||||||
iOSContent += line;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return iOSContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetAndroidContent(string path)
|
|
||||||
{
|
|
||||||
var iOSContent = string.Empty;
|
|
||||||
var lines = File.ReadAllLines(path);
|
|
||||||
foreach (var line in lines)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(line)) continue;
|
|
||||||
|
|
||||||
if (line.Contains("<androidPackages>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("<androidPackage spec="))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("<repositories>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("<repository>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("</repositories>"))
|
|
||||||
{
|
|
||||||
iOSContent += line + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.Contains("</androidPackages>"))
|
|
||||||
{
|
|
||||||
iOSContent += line;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return iOSContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetAndroidDependencyName(string value)
|
|
||||||
{
|
|
||||||
return value.Substring(value.IndexOf(':') + 1, value.LastIndexOf(':') - value.IndexOf(':') - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetAndroidDependencyVersion(string value)
|
|
||||||
{
|
|
||||||
string androidDependencyVersion = value.Substring(value.LastIndexOf(':') + 1);
|
|
||||||
if (androidDependencyVersion.Contains("@aar"))
|
|
||||||
{
|
|
||||||
androidDependencyVersion = androidDependencyVersion.Substring(0,
|
|
||||||
androidDependencyVersion.IndexOf('@'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return androidDependencyVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetMajorVersion(string value)
|
|
||||||
{
|
|
||||||
return value.Substring(0, 6).Remove(0, 5).Insert(0, string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetAndroidDependencyCoreVersion(string value)
|
|
||||||
{
|
|
||||||
var androidDependencyVersion =
|
|
||||||
value.Replace(Replace_dependency_core, string.Empty);
|
|
||||||
if (androidDependencyVersion.Contains("@aar"))
|
|
||||||
{
|
|
||||||
androidDependencyVersion = androidDependencyVersion.Substring(0,
|
|
||||||
androidDependencyVersion.LastIndexOf("@", StringComparison.Ordinal));
|
|
||||||
}
|
|
||||||
|
|
||||||
return androidDependencyVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string ReplaceBetaVersion(string value)
|
|
||||||
{
|
|
||||||
return Regex.Replace(value, "-Beta", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ReplaceInFile(
|
|
||||||
string filePath, string searchText, string replaceText)
|
|
||||||
{
|
|
||||||
string contentString;
|
|
||||||
using (var reader = new StreamReader(filePath))
|
|
||||||
{
|
|
||||||
contentString = reader.ReadToEnd();
|
|
||||||
reader.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
contentString = Regex.Replace(contentString.Replace("\r", ""), searchText, replaceText);
|
|
||||||
|
|
||||||
using (var writer = new StreamWriter(filePath))
|
|
||||||
{
|
|
||||||
writer.Write(contentString);
|
|
||||||
writer.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#if UNITY_2018_1_OR_NEWER
|
|
||||||
public static int CompareVersion(string interal, string latest)
|
|
||||||
{
|
|
||||||
var xParts = interal.Split('.');
|
|
||||||
var yParts = latest.Split('.');
|
|
||||||
var partsLength = Math.Max(xParts.Length, yParts.Length);
|
|
||||||
if (partsLength <= 0) return string.Compare(interal, latest, StringComparison.Ordinal);
|
|
||||||
for (var i = 0; i < partsLength; i++)
|
|
||||||
{
|
|
||||||
if (xParts.Length <= i) return -1;
|
|
||||||
if (yParts.Length <= i) return 1;
|
|
||||||
var xPart = xParts[i];
|
|
||||||
var yPart = yParts[i];
|
|
||||||
if (string.IsNullOrEmpty(xPart)) xPart = "0";
|
|
||||||
if (string.IsNullOrEmpty(yPart)) yPart = "0";
|
|
||||||
if (!int.TryParse(xPart, out var xInt) || !int.TryParse(yPart, out var yInt))
|
|
||||||
{
|
|
||||||
var abcCompare = string.Compare(xPart, yPart, StringComparison.Ordinal);
|
|
||||||
if (abcCompare != 0)
|
|
||||||
return abcCompare;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (xInt != yInt) return xInt < yInt ? -1 : 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public static void GuiHeaders(GUIStyle headerInfoStyle, GUILayoutOption btnFieldWidth)
|
|
||||||
{
|
|
||||||
using (new EditorGUILayout.HorizontalScope(GUILayout.ExpandWidth(false)))
|
|
||||||
{
|
|
||||||
GUILayout.Button(PackageName, headerInfoStyle, GUILayout.Width(150));
|
|
||||||
GUILayout.Space(25);
|
|
||||||
GUILayout.Button(CurrentVersionHeader, headerInfoStyle, GUILayout.Width(110));
|
|
||||||
GUILayout.Space(90);
|
|
||||||
GUILayout.Button(LatestVersionHeader, headerInfoStyle);
|
|
||||||
GUILayout.Button(ActionHeader, headerInfoStyle, btnFieldWidth);
|
|
||||||
GUILayout.Button(string.Empty, headerInfoStyle, GUILayout.Width(5));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static AppodealDependency GetAppodealDependency(SortedDictionary<string, AppodealDependency> dependencies)
|
|
||||||
{
|
|
||||||
return dependencies.First(dep => dep.Key.Contains(Appodeal) && dep.Value != null).Value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
||||||
public static class JsonHelper
|
|
||||||
{
|
|
||||||
public static T[] FromJson<T>(string json)
|
|
||||||
{
|
|
||||||
var wrapper = JsonUtility.FromJson<Wrapper<T>>(json);
|
|
||||||
return wrapper.Items;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string ToJson<T>(T[] array)
|
|
||||||
{
|
|
||||||
var wrapper = new Wrapper<T> {Items = array};
|
|
||||||
return JsonUtility.ToJson(wrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string ToJson<T>(T[] array, bool prettyPrint)
|
|
||||||
{
|
|
||||||
var wrapper = new Wrapper<T>();
|
|
||||||
wrapper.Items = array;
|
|
||||||
return JsonUtility.ToJson(wrapper, prettyPrint);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string fixJson(string value)
|
|
||||||
{
|
|
||||||
value = "{\"Items\":" + value + "}";
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
private class Wrapper<T>
|
|
||||||
{
|
|
||||||
public T[] Items;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user