private void FlushDataList(Dictionary <string, object> data, Action <string, object[]> flushAction, PlayerPrefsString store) { FlushData(data, (s, o) => flushAction(s, ((List <object>)o).ToArray()), store); }
/// <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); }