using System.Collections.Generic;
#if UNITY_ANDROID
using UnityEngine;
#endif
namespace JustTrack
{
///
/// Contains parameters used for retargeting in the justtrack SDK.
///
public class RetargetingParameters
{
///
/// Initializes a new instance of the class.
///
/// A value indicating whether the app was already installed.
/// The URI parameter.
/// The parameters dictionary.
/// The promotion parameter.
protected RetargetingParameters(bool pWasAlreadyInstalled, string? pUri, Dictionary pParameters, string? pPromotionParameter)
{
this.WasAlreadyInstalled = pWasAlreadyInstalled;
this.Uri = pUri;
this.Parameters = pParameters;
this.PromotionParameter = pPromotionParameter;
}
///
/// Gets a value indicating whether the app was already installed.
///
public bool WasAlreadyInstalled { get; private set; }
///
/// Gets the URI parameter.
///
public string? Uri { get; private set; }
///
/// Gets the parameters dictionary.
///
public Dictionary Parameters { get; private set; }
///
/// Gets the promotion parameter.
///
public string? PromotionParameter { get; private set; }
#if UNITY_ANDROID
internal static RetargetingParameters FromAndroidObject(AndroidJavaObject pObject) {
using var uri = pObject.Call("getUri");
var dictionary = new Dictionary();
using var parameters = pObject.Call("getParameters");
using var entrySet = parameters.Call("entrySet");
using var parametersIterator = entrySet.Call("iterator");
while (parametersIterator.Call("hasNext")) {
using var entry = parametersIterator.Call("next");
dictionary[entry.Call("getKey")] = entry.Call("getValue");
}
return new RetargetingParameters(
pObject.Call("wasAlreadyInstalled"),
uri == null ? null : uri.Call("toString"),
dictionary,
pObject.Call("getPromotionParameter")
);
}
#endif
#if UNITY_IOS
internal static RetargetingParameters CreateRetargetingParameters(bool pWasAlreadyInstalled, string? pUri, Dictionary pParameters, string? pPromotionParameter) {
return new RetargetingParameters(pWasAlreadyInstalled, pUri, pParameters, pPromotionParameter);
}
#endif
}
}