private AndroidJavaObject ConstructCampaignEnv(CAMPAIGN_ENV environment)
        {
            AndroidJavaObject campaignEnv = new AndroidJavaObject("com.sourcepoint.cmplibrary.data.network.util.CampaignsEnv", CSharp2JavaStringEnumMapper.GetCampaignEnvKey(environment), (int)environment);

            campaignEnv.Set("env", CSharp2JavaStringEnumMapper.GetCampaignEnvKey(environment));
            CmpDebugUtil.Log("campaignEnv is OK");
            return(campaignEnv);
        }
        public void InitializeLib(List <SpCampaign> spCampaigns, int accountId, string propertyName, MESSAGE_LANGUAGE language, CAMPAIGN_ENV campaignsEnvironment, long messageTimeoutInSeconds = 3)
        {
#if UNITY_IOS && !UNITY_EDITOR_OSX
            _cleanDict();
            int   campaignsAmount = spCampaigns.Count;
            int[] campaignTypes   = new int[campaignsAmount];
            foreach (SpCampaign sp in spCampaigns)
            {
                foreach (TargetingParam tp in sp.TargetingParams)
                {
                    _addTargetingParamForCampaignType((int)sp.CampaignType, tp.Key, tp.Value);
                }
            }
            for (int i = 0; i < campaignsAmount; i++)
            {
                campaignTypes[i] = (int)spCampaigns[i].CampaignType;
            }
            _consrtuctLib(accountId: accountId,
                          propName: propertyName,
                          arrSize: campaignsAmount,
                          campaignTypes: campaignTypes,
                          campaignsEnvironment: (int)campaignsEnvironment,
                          timeOutSeconds: messageTimeoutInSeconds);
            _setMessageLanguage((int)language);
#endif
        }
 public static string GetCampaignEnvKey(CAMPAIGN_ENV environment)
 {
     return(campaignEnvToJavaEnumKey[environment]);
 }
        internal AndroidJavaObject ConstructSpConfig(int accountId, string propertyName, long messageTimeout, AndroidJavaObject language, CAMPAIGN_ENV campaignsEnvironment, AndroidJavaObject[] spCampaigns)
        {
            AndroidJavaObject spConfig;

            using (AndroidJavaObject SpConfigDataBuilderClass = new AndroidJavaObject("com.sourcepoint.cmplibrary.creation.SpConfigDataBuilder"))
            {
                SpConfigDataBuilderClass.Call <AndroidJavaObject>("addAccountId", accountId);
                CmpDebugUtil.Log("addAccountId is OK");
                SpConfigDataBuilderClass.Call <AndroidJavaObject>("addPropertyName", propertyName);
                CmpDebugUtil.Log("addPropertyName is OK");
                SpConfigDataBuilderClass.Call <AndroidJavaObject>("addMessageLanguage", language);
                CmpDebugUtil.Log("addMessageLanguage is OK");
                SpConfigDataBuilderClass.Call <AndroidJavaObject>("addMessageTimeout", messageTimeout);
                CmpDebugUtil.Log("addMessageTimeout is OK");
                AndroidJavaObject env = ConstructCampaignEnv(campaignsEnvironment);
                SpConfigDataBuilderClass.Call <AndroidJavaObject>("addCampaignsEnv", env);
                CmpDebugUtil.Log("addCampaignsEnv is OK");

                foreach (AndroidJavaObject camp in spCampaigns)
                {
                    SpConfigDataBuilderClass.Call <AndroidJavaObject>("addCampaign", camp);
                    CmpDebugUtil.Log("addCampaign is OK");
                }

                spConfig = SpConfigDataBuilderClass.Call <AndroidJavaObject>("build");
                CmpDebugUtil.Log("build() is OK");
            }
            CmpDebugUtil.Log("SpConfig is OK");
            return(spConfig);
        }
Beispiel #5
0
        public void InitializeLib(List <SpCampaign> spCampaigns, int accountId, string propertyName, MESSAGE_LANGUAGE language, CAMPAIGN_ENV campaignsEnvironment, long messageTimeoutMilliSeconds = 3000)
        {
#if UNITY_ANDROID
            if (Application.platform == RuntimePlatform.Android)
            {
                try
                {
                    AndroidJavaObject   msgLang   = constructor.ConstructMessageLanguage(language);
                    AndroidJavaObject[] campaigns = new AndroidJavaObject[spCampaigns.Count];
                    foreach (SpCampaign sp in spCampaigns)
                    {
                        AndroidJavaObject   typeAJO     = constructor.ConstructCampaignType(sp.CampaignType);
                        AndroidJavaObject[] paramsArray = new AndroidJavaObject[sp.TargetingParams.Count];
                        foreach (TargetingParam tp in sp.TargetingParams)
                        {
                            AndroidJavaObject param = constructor.ConstructTargetingParam(tp.Key, tp.Value);
                            paramsArray[sp.TargetingParams.IndexOf(tp)] = param;
                        }
                        AndroidJavaObject paramsList = CmpJavaToUnityUtils.ConvertArrayToList(paramsArray);
                        AndroidJavaObject campaign   = constructor.ConstructCampaign(typeAJO, paramsList, sp.CampaignType);
                        campaigns[spCampaigns.IndexOf(sp)] = campaign;
                    }
                    AndroidJavaObject spConfig = constructor.ConstructSpConfig(accountId: accountId,
                                                                               propertyName: propertyName,
                                                                               messageTimeout: messageTimeoutMilliSeconds,
                                                                               language: msgLang,
                                                                               campaignsEnvironment: campaignsEnvironment,
                                                                               spCampaigns: campaigns);
                    consentLib = constructor.ConsrtuctLib(spConfig: spConfig,
                                                          activity: this.activity,
                                                          spClient: this.spClient);
                }
                catch (Exception e)
                {
                    CmpDebugUtil.LogError(e.Message);
                }
            }
#endif
        }
Beispiel #6
0
        public static void Initialize(List <SpCampaign> spCampaigns,
                                      int accountId,
                                      string propertyName,
                                      MESSAGE_LANGUAGE language,
                                      CAMPAIGN_ENV campaignsEnvironment,
                                      long messageTimeoutInSeconds = 3)
        {
            if (!IsSpCampaignsValid(spCampaigns))
            {
                return;
            }
            CreateBroadcastExecutorGO();
#if UNITY_ANDROID && !UNITY_EDITOR
            if (Application.platform == RuntimePlatform.Android)
            {
                //excluding ios14 campaign if any
                RemoveIos14SpCampaign(ref spCampaigns);
                if (!IsSpCampaignsValid(spCampaigns))
                {
                    return;
                }
                ConsentWrapperAndroid.Instance.InitializeLib(spCampaigns: spCampaigns,
                                                             accountId: accountId,
                                                             propertyName: propertyName,
                                                             language: language,
                                                             campaignsEnvironment: campaignsEnvironment,
                                                             messageTimeoutMilliSeconds: messageTimeoutInSeconds * 1000);
            }
#elif UNITY_IOS && !UNITY_EDITOR_OSX
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                ConsentWrapperIOS.Instance.InitializeLib(spCampaigns: spCampaigns,
                                                         accountId: accountId,
                                                         propertyName: propertyName,
                                                         language: language,
                                                         campaignsEnvironment: campaignsEnvironment,
                                                         messageTimeoutInSeconds: messageTimeoutInSeconds);
            }
#else
            CmpLocalizationMapper.language = CSharp2JavaStringEnumMapper.GetMessageLanguageKey(language);
            SingleCampaignPostGetMessagesRequest gdprTargetingParams = null;
            SpCampaign gdpr = spCampaigns.Find(x => x.CampaignType == CAMPAIGN_TYPE.GDPR);
            if (gdpr != null)
            {
                CmpCampaignPopupQueue.EnqueueCampaignId(0);
                Dictionary <string, string> tarParams = new Dictionary <string, string>();
                foreach (var param in gdpr.TargetingParams)
                {
                    tarParams[param.Key] = param.Value;
                }
                gdprTargetingParams = new SingleCampaignPostGetMessagesRequest(tarParams);
            }
            SingleCampaignPostGetMessagesRequest ccpaTargetingParams = null;
            SpCampaign ccpa = spCampaigns.Find(x => x.CampaignType == CAMPAIGN_TYPE.CCPA);
            if (ccpa != null)
            {
                CmpCampaignPopupQueue.EnqueueCampaignId(2);
                Dictionary <string, string> tarParams = new Dictionary <string, string>();
                foreach (var param in ccpa.TargetingParams)
                {
                    tarParams[param.Key] = param.Value;
                }
                ccpaTargetingParams = new SingleCampaignPostGetMessagesRequest(tarParams);
            }
            CmpLocalizationMapper.GetMessages(accountId: accountId,
                                              propertyHref: propertyName,
                                              gdpr: gdprTargetingParams,
                                              ccpa: ccpaTargetingParams,
                                              environment: (int)campaignsEnvironment,
                                              millisTimeout: Convert.ToInt32(messageTimeoutInSeconds * 1000));
#endif
        }