예제 #1
0
        private void OnRequestResult(WWWResult www)
        {
            if (Network.IsError)
            {
                if (Network.ErrCode == Network.EErrCode.AbilityCoinShort)
                {
                    FlowNode_Network.Back();
                }
                else
                {
                    FlowNode_Network.Retry();
                }
            }
            else
            {
                WebAPI.JSON_BodyResponse <Json_PlayerDataAll> jsonObject = JSONParser.parseJSONObject <WebAPI.JSON_BodyResponse <Json_PlayerDataAll> >(www.text);
                try
                {
                    MonoSingleton <GameManager> .Instance.Deserialize(jsonObject.body.player);

                    Network.RemoveAPI();
                }
                catch (Exception ex)
                {
                    DebugUtility.LogException(ex);
                    FlowNode_Network.Retry();
                    return;
                }
                AnalyticsManager.TrackSpendCoin("AbilityPoint", (int)MonoSingleton <GameManager> .Instance.MasterParam.FixParam.AbilityRankUpCountCoin);
                this.UpdateValue();
                this.Success();
            }
        }
예제 #2
0
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => new ArticlesScreenViewModel {
         isLoggedIn = state.loginState.isLoggedIn,
         feedHasNew = state.articleState.feedHasNew,
         currentTabBarIndex = state.tabBarState.currentTabIndex,
         nationalDayEnabled = state.serviceConfigState.nationalDayEnabled
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToSearch = () => {
                 dispatcher.dispatch(new MainNavigatorPushToAction {
                     routeName = MainNavigatorRoutes.Search
                 });
                 AnalyticsManager.ClickEnterSearch("Home_Article");
             },
             pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.Login
             }),
             pushToReality = () => {
                 dispatcher.dispatch(new EnterRealityAction());
                 AnalyticsManager.AnalyticsClickEgg(1);
             }
         };
         return new ArticlesScreen(viewModel: viewModel, actionModel: actionModel);
     }
                ));
 }
예제 #3
0
        private void LoadInventoryActivity(DateTime selectedDate)
        {
            DateTime startDate = new DateTime(selectedDate.Year, selectedDate.Month, 1);
            DateTime endDate   = new DateTime(selectedDate.Year, selectedDate.Month, DateTime.DaysInMonth(selectedDate.Year, selectedDate.Month));

            try
            {
                AnalyticsManager   analyticsManager = new AnalyticsManager();
                InventoryPageViews pageViews        = analyticsManager.GetInventoryPageViews(CompanyId, startDate, endDate);

                lblInventoryPageViews.Text      = pageViews.PageViews.ToString(CultureInfo.InvariantCulture);
                lblInventoryUserViews.Text      = pageViews.UserViews.ToString(CultureInfo.InvariantCulture);
                lblInventoryUserViews.ForeColor = lblInventoryPageViews.ForeColor = Color.Empty;
            }
            catch (StageBitzException ex)
            {
                lblInventoryPageViews.Text    = "Error!";
                lblInventoryUserViews.Text    = "Error!";
                lblInventoryPageViews.ToolTip = lblInventoryUserViews.ToolTip = ex.InnerException.ToString();

                lblInventoryUserViews.ForeColor = lblInventoryPageViews.ForeColor = Color.Red;
            }

            gvInventoryActivity.DataSource = this.GetBL <CompanyBL>().GetInventoryActivityData(CompanyId, startDate, endDate);
            gvInventoryActivity.DataBind();
        }
예제 #4
0
        public async Task TestMissingDeviceAppAttributesAsync()
        {
            var analyticsManager = new AnalyticsManager(uniqueId, null, TEST_ENCRYPTION_KEY);
            await analyticsManager.ResetAsync().ConfigureAwait(false);

            var eventBuilder = new InstrumentationEventBuilder(analyticsManager);
            var curTime      = System.DateTime.Now.Ticks;
            var eventName    = string.Format(TEST_EVENT_NAME, curTime);

            eventBuilder.Name       = eventName;
            eventBuilder.SessionId  = TEST_SESSION_ID;
            eventBuilder.SchemaType = InstrumentationEvent.SchemaType.LightningError;
            eventBuilder.StartTime  = curTime;
            eventBuilder.SenderId   = TEST_SENDER_ID;
            eventBuilder.EventType  = InstrumentationEvent.EventType.system;
            eventBuilder.ErrorType  = InstrumentationEvent.ErrorType.warning;
            eventBuilder.Page       = new JObject();
            try
            {
                eventBuilder.BuildEvent();
                Assert.Fail("Exception should have been thrown for missing mandatory field 'device app attributes'");
            }
            catch (EventBuilderException)
            {
                LoggingService.Log("Exception thrown as expected", LoggingLevel.Information);
            }
            finally
            {
                await analyticsManager.ResetAsync();
            }
        }
예제 #5
0
 Widget _buildLogoutBtn()
 {
     return(new CustomButton(
                padding: EdgeInsets.zero,
                onPressed: () => {
         ActionSheetUtils.showModalActionSheet(new ActionSheet(
                                                   title: "确定退出当前账号吗?",
                                                   items: new List <ActionSheetItem> {
             new ActionSheetItem("退出", type: ActionType.destructive,
                                 () => {
                 AnalyticsManager.ClickLogout();
                 this.widget.actionModel.logout();
             }),
             new ActionSheetItem("取消", type: ActionType.cancel)
         }
                                                   ));
     },
                child: new Container(
                    height: 60,
                    color: CColors.White,
                    child: new Row(
                        mainAxisAlignment: MainAxisAlignment.center,
                        crossAxisAlignment: CrossAxisAlignment.center,
                        children: new List <Widget> {
         new Text(
             "退出登录",
             style: CTextStyle.PLargeError
             )
     }
                        )
                    )
                ));
 }
예제 #6
0
 public override Widget build(BuildContext context)
 {
     base.build(context: context);
     return(new Container(
                color: CColors.White,
                child: new Column(
                    children: new List <Widget> {
         new CustomNavigationBar(
             new Text("活动", style: CTextStyle.H2),
             null,
             backgroundColor: CColors.White,
             0
             ),
         new Expanded(
             child: new CustomSegmentedControl(
                 new List <string> {
             "即将开始", "往期活动"
         },
                 new List <Widget> {
             new EventOngoingScreenConnector(),
             new EventCompletedScreenConnector()
         },
                 newValue => AnalyticsManager.ClickEventSegment("Event", 0 == newValue ? "ongoing" : "completed"),
                 1
                 )
             )
     }
                    )
                ));
 }
예제 #7
0
 private void TrackGiftAnalytics(Json_Mail[] inObtainedGifts)
 {
     if (inObtainedGifts == null)
     {
         throw new Exception("Tracking null gifts received!");
     }
     foreach (Json_Mail inObtainedGift in inObtainedGifts)
     {
         foreach (Json_Gift gift in inObtainedGift.gifts)
         {
             if (gift.coin > 0)
             {
                 AnalyticsManager.TrackFreePremiumCurrencyObtain((long)gift.coin, "Gifts");
             }
             else if (gift.gold > 0)
             {
                 AnalyticsManager.TrackNonPremiumCurrencyObtain(AnalyticsManager.NonPremiumCurrencyType.Zeni, (long)gift.gold, "Gifts", (string)null);
             }
             else if (gift.num > 0 && !string.IsNullOrEmpty(gift.iname))
             {
                 Debug.Log((object)(">>>>> others : " + gift.iname + ", amt : " + (object)gift.num));
                 this.AnalyticsTrackItemReceived(gift.iname, gift.num);
             }
         }
     }
 }
예제 #8
0
 public void FoundItem(Actor actor)
 {
     if (AnalyticsEnabled && actor != null)
     {
         AnalyticsManager.FoundItem(actor.ActorID);
     }
 }
예제 #9
0
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => new ArticlesScreenViewModel {
         isLoggedIn = state.loginState.isLoggedIn,
         showFirstEgg = state.eggState.showFirst
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToSearch = () => {
                 dispatcher.dispatch(new MainNavigatorPushToAction {
                     routeName = MainNavigatorRoutes.Search
                 });
                 AnalyticsManager.ClickEnterSearch("Home_Article");
             },
             fetchReviewUrl = () => dispatcher.dispatch <IPromise>(Actions.fetchReviewUrl()),
             pushToReality = () => {
                 dispatcher.dispatch(new EnterRealityAction());
                 AnalyticsManager.AnalyticsClickEgg(1);
             }
         };
         return new ArticlesScreen(viewModel, actionModel);
     }
                ));
 }
예제 #10
0
 public void ActorStateChange(Actor actor, int state)
 {
     if (AnalyticsEnabled && actor != null)
     {
         AnalyticsManager.ActorStateChange(actor.ActorID, state);
     }
 }
예제 #11
0
 public void OfudaHit(int eventID, Actor actor)
 {
     if (AnalyticsEnabled && actor != null)
     {
         AnalyticsManager.OfudaHit(eventID, actor.ActorID);
     }
 }
예제 #12
0
 public void ActorKilled(Actor killer, Actor dead)
 {
     if (AnalyticsEnabled && killer != null && dead != null)
     {
         AnalyticsManager.ActorKilled(killer.ActorID, dead.ActorID);
     }
 }
예제 #13
0
 public void ActorVisitedCell(Actor actor, int cellID)
 {
     if (AnalyticsEnabled && actor != null)
     {
         AnalyticsManager.EnteredCell(actor.ActorID, cellID);
     }
 }
예제 #14
0
        public void ResDebugDataReset(WWWResult www)
        {
            if (Network.IsError)
            {
                Network.IsRetry = true;
            }
            else
            {
                bool   flag1            = GameUtility.Config_UseAssetBundles.Value;
                bool   flag2            = GameUtility.Config_UseDevServer.Value;
                bool   flag3            = GameUtility.Config_UseLocalData.Value;
                string devServerSetting = GameUtility.DevServerSetting;
                GameUtility.ClearPreferences();
                GameUtility.Config_UseAssetBundles.Value = flag1;
                GameUtility.Config_UseDevServer.Value    = flag2;
                GameUtility.Config_UseLocalData.Value    = flag3;
                GameUtility.DevServerSetting             = devServerSetting;
                DebugUtility.Assert(www.text != null, "res == null");
                MonoSingleton <GameManager> .Instance.ResetAuth();

                GameUtility.Config_NewGame.Value = false;
                PlayerPrefs.DeleteKey("PlayerName");
                PlayerPrefs.DeleteKey("AccountLinked");
                AnalyticsManager.Setup();
                Network.RemoveAPI();
                this.Success();
            }
        }
예제 #15
0
    void Update()
    {
        timeElapsed += Time.deltaTime;

        if (Input.GetKeyUp(KeyCode.Escape))
        {
            Application.Quit();
        }

        if (state == TitleState.Waiting && (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2)))
        {
            // ゲームへ
            nextSceneName = gameSceneName;
            state         = TitleState.FadeOut;
            SoundManager.PlaySE(SoundManager.SE.select);
            AnalyticsManager.StartSession();
        }
        else if (state == TitleState.Waiting && timeElapsed > 60)
        {
            // 学校ロゴへ
            nextSceneName = logoSceneName;
            state         = TitleState.FadeOut;
        }

        if (state == TitleState.FadeIn)
        {
            fadeIn();
        }
        if (state == TitleState.FadeOut)
        {
            fadeOut();
        }
    }
예제 #16
0
 public override void OnSuccess(WWWResult www)
 {
     if (Network.IsError)
     {
         Network.EErrCode errCode = Network.ErrCode;
         this.OnFailed();
     }
     else
     {
         WebAPI.JSON_BodyResponse <Json_PlayerDataAll> jsonObject = JSONParser.parseJSONObject <WebAPI.JSON_BodyResponse <Json_PlayerDataAll> >(www.text);
         DebugUtility.Assert(jsonObject != null, "res == null");
         if (jsonObject.body == null)
         {
             this.OnFailed();
         }
         else
         {
             try
             {
                 MonoSingleton <GameManager> .Instance.Player.Deserialize(jsonObject.body.player);
             }
             catch (Exception ex)
             {
                 DebugUtility.LogException(ex);
                 this.OnFailed();
                 return;
             }
             Network.RemoveAPI();
             AnalyticsManager.TrackOriginalCurrencyUse(ESaleType.Coin, this.getRequiredCoin(), this.ResetType.ToString());
             this.Success();
         }
     }
 }
예제 #17
0
 void _sendComment(string type, string parentMessageId = "", string upperMessageId = "",
                   string replyUserName = null)
 {
     if (!this.widget.viewModel.isLoggedIn)
     {
         this.widget.actionModel.pushToLogin();
     }
     else
     {
         AnalyticsManager.ClickComment(
             type: type,
             channelId: this._article.channelId,
             title: this._article.title,
             commentId: parentMessageId
             );
         ActionSheetUtils.showModalActionSheet(new CustomInput(
                                                   replyUserName: replyUserName,
                                                   text => {
             ActionSheetUtils.hiddenModalPopup();
             this.widget.actionModel.sendComment(
                 arg1: this._article.channelId,
                 arg2: text,
                 Snowflake.CreateNonce(),
                 arg4: parentMessageId,
                 arg5: upperMessageId
                 );
         })
                                               );
     }
 }
예제 #18
0
        public static object editFavoriteTag(IconStyle iconStyle, string tagId, string name, string description = "")
        {
            if (HttpManager.isNetWorkError())
            {
                CustomDialogUtils.showToast("请检查网络", iconData: Icons.sentiment_dissatisfied);
                return(null);
            }

            CustomDialogUtils.showCustomDialog(
                child: new CustomLoadingDialog(
                    message: "编辑收藏夹中"
                    )
                );
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                return FavoriteApi
                .EditFavoriteTag(tagId: tagId, iconStyle: iconStyle, name: name, description: description)
                .Then(editFavoriteTagResponse => {
                    CustomDialogUtils.hiddenCustomDialog();
                    dispatcher.dispatch(new EditFavoriteTagSuccessAction {
                        favoriteTag = editFavoriteTagResponse
                    });
                    dispatcher.dispatch(new MainNavigatorPopAction());
                    AnalyticsManager.AnalyticsHandleFavoriteTag(type: FavoriteTagType.edit);
                })
                .Catch(error => {
                    CustomDialogUtils.hiddenCustomDialog();
                    Debuger.LogError(message: error);
                });
            }));
        }
        void _showShareView(IEvent eventObj)
        {
            ShareUtils.showShareView(
                new ShareView(
                    projectType: ProjectType.iEvent,
                    onPressed: type => {
                AnalyticsManager.ClickShare(type, "Event", "Event_" + eventObj.id, eventObj.title);

                var linkUrl =
                    $"{Config.apiAddress}/events/{eventObj.id}";
                if (type == ShareType.clipBoard)
                {
                    this.widget.actionModel.copyText(linkUrl);
                    CustomDialogUtils.showToast("复制链接成功", Icons.check_circle_outline);
                }
                else
                {
                    var imageUrl = $"{eventObj.avatar}.200x0x1.jpg";
                    CustomDialogUtils.showCustomDialog(
                        child: new CustomLoadingDialog()
                        );
                    this.widget.actionModel.shareToWechat(type, eventObj.title, eventObj.shortDescription,
                                                          linkUrl,
                                                          imageUrl).Then(CustomDialogUtils.hiddenCustomDialog)
                    .Catch(_ => CustomDialogUtils.hiddenCustomDialog());
                }
            }
                    )
                );
        }
예제 #20
0
        public static object deleteFavoriteTag(string tagId)
        {
            if (HttpManager.isNetWorkError())
            {
                CustomDialogUtils.showToast("请检查网络", iconData: Icons.sentiment_dissatisfied);
                return(null);
            }

            CustomDialogUtils.showCustomDialog(
                child: new CustomLoadingDialog(
                    message: "删除收藏夹中"
                    )
                );
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                return FavoriteApi.DeleteFavoriteTag(tagId: tagId)
                .Then(deleteFavoriteTagResponse => {
                    CustomDialogUtils.hiddenCustomDialog();
                    dispatcher.dispatch(new DeleteFavoriteTagSuccessAction {
                        favoriteTag = deleteFavoriteTagResponse
                    });
                    AnalyticsManager.AnalyticsHandleFavoriteTag(type: FavoriteTagType.delete);
                })
                .Catch(error => {
                    CustomDialogUtils.hiddenCustomDialog();
                    Debuger.LogError(message: error);
                });
            }));
        }
예제 #21
0
 public void WordCollected()
 {
     _timerControl.EndLevel(_currentWordNumber);
     _currentWordNumber++;
     if (InGameLevel.Words.Count <= _currentWordNumber)
     {
         //Загрузка нового уровня
         _nextLevelUi.Show(_currentLevel, string.Join(" ", InGameLevel.Words));
         if (_levels.Count > _currentLevel)
         {
             AnalyticsManager.DidFinishLevel(_currentLevel);
             _currentLevel++;
         }
         else
         {
             _currentLevel = 1;
         }
         PlayerPrefs.SetInt("CurrentLevel", _currentLevel);
         _currentWordNumber = 0;
         _timerControl.ChangeTimerPause();
     }
     else
     {
         LoadWord();
     }
 }
예제 #22
0
        public override void OnSuccess(WWWResult www)
        {
            if (Network.IsError)
            {
                if (Network.ErrCode == Network.EErrCode.SessionFailure)
                {
                    this.OnFailed();
                }
                else
                {
                    this.OnFailed();
                }
            }
            else
            {
                WebAPI.JSON_BodyResponse <FlowNode_GetSessionID.JSON_DeviceID> jsonObject = JSONParser.parseJSONObject <WebAPI.JSON_BodyResponse <FlowNode_GetSessionID.JSON_DeviceID> >(www.text);
                DebugUtility.Assert(jsonObject != null, "res == null");
                string deviceId = jsonObject.body.device_id;
                AnalyticsManager.TrackUserID(deviceId);
                MonoSingleton <GameManager> .Instance.SaveAuth(deviceId);

                Network.RemoveAPI();
                this.ActivateOutputLinks(1);
                ((Behaviour)this).set_enabled(false);
            }
        }
예제 #23
0
 private void OnApplicationQuit()
 {
     ExitEvent();
     StopSession();
     _instance = null;
     DestroyImmediate(gameObject);
 }
예제 #24
0
 private void Start()
 {
     this.AdjustInit();
     this.FirebaseInit();
     this.CheckDailyBonus();
     try
     {
         PlayTimeEventTracker.AppResume();
     }
     catch (Exception ex)
     {
         UnityEngine.Debug.Log("PlayTimeEventTracker ex. " + ex.Message);
     }
     this.deepLinker = new DeeplinkController(base.GetComponent <FMDeepLink>());
     this.deepLinker.BonusCodeReceived += this.OnFBDeeplinkOpened;
     AppState.ContentReqTime            = DateTime.Now;
     base.StartCoroutine(this.LoadSysParameters(delegate
     {
         AdsManager.Instance.SetParams(this.adsId, this.adsLimitied);
         if (GeneralSettings.AdsDisabled)
         {
             FMLogger.vAds("casual disable ads on startup");
             AdsManager.Instance.DisableAds();
         }
         else
         {
             FMLogger.vAds("ads init");
             AdsManager.Instance.Init();
             AdsManager.Instance.StartFsInterval();
         }
         TGFModule.Instance.Init(this.adsId, this.adsLimitied, this.countryCode, this.langCode);
         ImageManager.Instance.Init();
         SharedData.Instance.Init();
         //FB.Init(null, null, null);
         AppState.LaunchTime = DateTime.Now;
         this.fairyController.StartTimer();
         this.deepLinker.Check();
         TGFModule.Instance.PrecachePages();
         try
         {
             AnalyticsManager.SetUserDeviceTypeProperty(SafeLayout.IsTablet);
         }
         catch (Exception ex2)
         {
             FMLogger.vCore("SetUserDeviceTypeProperty crash. " + ex2.Message);
         }
         float delay = 0.5f;
         if (AppManager.__f__mg_cache0 == null)
         {
             AppManager.__f__mg_cache0 = new Action(UserLifecycle.AppLaunch);
         }
         base.StartCoroutine(this.DelayAction(delay, AppManager.__f__mg_cache0));
         AppManager.inited = true;
         if (this.Loaded != null)
         {
             this.Loaded();
         }
     }));
 }
예제 #25
0
        public override Widget build(BuildContext context)
        {
            base.build(context: context);
            var mode = this._selectValue == "all" ? "" : this._selectValue;

            return(new Container(
                       padding: EdgeInsets.only(top: CCommonUtils.getSafeAreaTopPadding(context: context)),
                       color: CColors.White,
                       child: new Column(
                           children: new List <Widget> {
                new CustomNavigationBar(
                    new Text("活动", style: CTextStyle.H2)
                    ),
                new Expanded(
                    child: new CustomSegmentedControl(
                        new List <object> {
                    "即将开始", "往期活动"
                },
                        new List <Widget> {
                    new EventOngoingScreenConnector(mode: mode),
                    new EventCompletedScreenConnector(mode: mode)
                },
                        newValue => AnalyticsManager.ClickEventSegment("Event",
                                                                       0 == newValue ? "ongoing" : "completed"),
                        1,
                        trailing: new Container(
                            padding: EdgeInsets.only(right: 12),
                            child: new CustomDropdownButton <string>(
                                value: this._selectValue,
                                items: new List <CustomDropdownMenuItem <string> > {
                    new CustomDropdownMenuItem <string>(
                        value: "all",
                        child: new Text("全部")
                        ),
                    new CustomDropdownMenuItem <string>(
                        value: "online",
                        child: new Text("线上")
                        ),
                    new CustomDropdownMenuItem <string>(
                        value: "offline",
                        child: new Text("线下")
                        )
                },
                                onChanged: newValue => {
                    if (this._selectValue != newValue)
                    {
                        this.setState(() => this._selectValue = newValue);
                    }
                },
                                headerWidget: new Container(height: 6, color: CColors.White),
                                footerWidget: new Container(height: 6, color: CColors.White)
                                )
                            )
                        )
                    )
            }
                           )
                       ));
        }
예제 #26
0
        public override Widget build(BuildContext context)
        {
            var child = new Container(
                color: CColors.White,
                child: new CustomSafeArea(
                    bottom: false,
                    child: new CustomTabBar(
                        new List <Widget> {
                new ArticlesScreenConnector(),
                new EventsScreen(),
                new NotificationScreenConnector(),
                new PersonalScreenConnector()
            },
                        new List <CustomTabBarItem> {
                new CustomTabBarItem(
                    0,
                    Icons.UnityTabIcon,
                    Icons.UnityTabIcon,
                    "首页"
                    ),
                new CustomTabBarItem(
                    1,
                    Icons.outline_event,
                    Icons.eventIcon,
                    "活动"
                    ),
                new CustomTabBarItem(
                    2,
                    Icons.outline_notification,
                    Icons.notification,
                    "通知"
                    ),
                new CustomTabBarItem(
                    3,
                    Icons.mood,
                    Icons.mood,
                    "我的"
                    )
            },
                        backgroundColor: CColors.TabBarBg,
                        (fromIndex, toIndex) => {
                AnalyticsManager.ClickHomeTab(fromIndex: fromIndex, toIndex: toIndex);

                if (toIndex != 2 || StoreProvider.store.getState().loginState.isLoggedIn)
                {
                    return(true);
                }

                Router.navigator.pushNamed(routeName: MainNavigatorRoutes.Login);
                return(false);
            }
                        )
                    )
                );

            return(new VersionUpdater(
                       child: child
                       ));
        }
예제 #27
0
 public void Awake()
 {
     GlobalInstance = this;
     LastDump       = Time.time;
     DontDestroyOnLoad(gameObject);
     loggedData = new Queue <KeyValuePair <string, string> >();
     startTimes = new List <KeyValuePair <string, float> >();
 }
예제 #28
0
        static void pushPage()
        {
            var splash = SplashManager.getSplash();

            AnalyticsManager.ClickSplashPage(splash.id, splash.name, splash.url);
            Router.navigator.pushReplacementNamed(MainNavigatorRoutes.Main);
            JPushPlugin.openUrl(splash.url);
        }
            public static void Postfix() // happens the moment any game starts
            {
                // sets the delta at the start of the game
                // the delta will gradually widen if they speedhack
                AnalyticsManager analyticsManager = new AnalyticsManager();

                delta = analyticsManager.GetServerDelta(Il2CppSystem.DateTime.Now);
            }
예제 #30
0
        void pushCallback()
        {
            this.cancelTimer();
            var splash = SplashManager.getSplash();

            AnalyticsManager.ClickSkipSplashPage(splash.id, splash.name, splash.url);
            StoreProvider.store.dispatcher.dispatch(new MainNavigatorPushReplaceMainAction());
        }
예제 #31
0
        /// <summary>
        /// Decorates the HTML markup rendered by an Entity or Region View.
        /// </summary>
        /// <param name="htmlToDecorate">The HTML to decorate.</param>
        /// <param name="viewModel">The <see cref="ViewModel"/> associated with the HTML fragment.</param>
        /// <returns>The decorated HTML.</returns>
        public string DecorateMarkup(string htmlToDecorate, ViewModel viewModel)
        {
            SmartTargetExperiment experiment = viewModel as SmartTargetExperiment;
            if (experiment == null)
            {
                // Not a ST Experiment; nothing to do.
                return htmlToDecorate;
            }

            using (new Tracer(htmlToDecorate, viewModel))
            {
                if (_analyticsManager == null)
                {
                    // NOTE: might overwrite in a race condition, but that's not a problem.
                    _analyticsManager = new AnalyticsManager();
                }
                AnalyticsMetaData analyticsMetaData = new AnalyticsMetaData();
                return _analyticsManager.AddTrackingToLinks(htmlToDecorate, experiment.ExperimentDimensions, analyticsMetaData);
            }
        }