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 } }