private void FlushDataList(Dictionary <string, object> data, Action <string, object[]> flushAction,
                            PlayerPrefsString store)
 {
     FlushData(data,
               (s, o) => flushAction(s, ((List <object>)o).ToArray()),
               store);
 }
예제 #2
0
 /// <summary>
 /// Set the tracking id. This will create a data store in the PlayerPrefs for the tracked data
 /// of this account. Different account ids will resolve to different PlayerPrefs keys
 /// </summary>
 /// <param name="id">Id of the account</param>
 public override void Identify(string id)
 {
     Debug.Log("DebugAnalyticsManager: Identifying as " + id);
     AccountId        = id;
     _playerDataStore = new PlayerPrefsString("DeBox.Analytics.DebugManager,id=" + id, "{}");
     LoadPlayerData();
 }
 /// <summary>
 /// Create a new PlayerPrefsCachedAnalyticsManager that caches for the given IAnalyticsManager
 /// </summary>
 /// <param name="name">PlayerPrefs key prefix for all the data of this manager</param>
 /// <param name="analyticsManager">The proxied IAnalyticsManager implementation</param>
 public PlayerPrefsCachedAnalyticsManager(string name, IAnalyticsManager analyticsManager)
 {
     _name                    = name;
     _eventQueue              = new PlayerPrefsQueue <PlayerPrefsString, string>(name + ":eventQueue", 10000000);
     _revenueQueue            = new PlayerPrefsQueue <PlayerPrefsString, string>(name + ":eventQueue", 10000000);
     _incrementDataStore      = new PlayerPrefsString(name + ":increment", "{}");
     _setDataStore            = new PlayerPrefsString(name + ":set", "{}");
     _setOnceDataStore        = new PlayerPrefsString(name + ":set_once", "{}");
     _addToListDataStore      = new PlayerPrefsString(name + ":add_to_list", "{}");
     _unionListDataStore      = new PlayerPrefsString(name + ":union_list", "{}");
     _intersectListDataStore  = new PlayerPrefsString(name + ":intersect_list", "{}");
     _removeFromListDataStore = new PlayerPrefsString(name + ":remove_from_list", "{}");
     _incrementData           = LoadData(_incrementDataStore);
     _setData                 = LoadData(_setDataStore);
     _setOnceData             = LoadData(_setOnceDataStore);
     _addToListData           = LoadData(_addToListDataStore);
     _unionListData           = LoadData(_unionListDataStore);
     _intersectListData       = LoadData(_incrementDataStore);
     _removeFromListData      = LoadData(_removeFromListDataStore);
     _analyticsManager        = analyticsManager;
 }
 private void StoreData(Dictionary <string, object> data, PlayerPrefsString dataStore)
 {
     dataStore.Value = JsonConvert.SerializeObject(data);
 }
 private Dictionary <string, object> LoadData(PlayerPrefsString dataStore)
 {
     return(JsonConvert.DeserializeObject <Dictionary <string, object> >(dataStore.Value));
 }
 private void FlushData(Dictionary <string, object> data, Action <string, object> flushAction, PlayerPrefsString store)
 {
     foreach (var p in data)
     {
         flushAction(p.Key, p.Value);
     }
     data.Clear();
     StoreData(data, store);
 }