private void ProcessNextState()
        {
            if (bHoldStatus)
            {
                return;
            }
            if (CurrentPresent == null || CurrentPresent.IsFinish())
            {
                UIState state = GetNextState();

                CurrentPresent = GetPresentByEnum(state.state);

                if (CurrentPresent != null)
                {
                    GuLog.Debug("<><DrinkWaterUIPresentManager> StateProcessing:" + state.state.ToString());

                    if (state.state != UIStateEnum.eSleepMode && state.state != UIStateEnum.eSchoolMode)
                    {
                        CurrentPresent.ProcessState(state);
                    }
                    if (!state.needWait)
                    {
                        CurrentPresent = null;
                    }
                    ProcessNextState();
                }
            }
        }
 public bool IsInSilenceMode()
 {
     if (CurrentPresent != null)
     {
         return(IsSilenceMode(CurrentPresent.GetStateEnum()));
     }
     return(false);
 }
 public void ClearState()
 {
     if (CurrentPresent != null)
     {
         CurrentPresent.Stop();
         CurrentPresent = null;
         listState.Clear();
     }
 }
 public bool IsExistState(UIStateEnum eState)
 {
     if (CurrentPresent != null && CurrentPresent.GetStateEnum() == eState)
     {
         return(true);
     }
     foreach (var state in listState)
     {
         if (state.state == eState)
         {
             return(true);
         }
     }
     return(false);
 }
 public bool IsInRunning()
 {
     if (CurrentPresent != null)
     {
         GuLog.Debug("<><DrinkWaterUIPresentManager>currentPresent:" + CurrentPresent.GetStateEnum().ToString());
         return(true);
     }
     if (bHoldStatus)
     {
         GuLog.Debug("<><DrinkWaterUIPresentManager>bHoldStatus:true");
         return(true);
     }
     if (listState.Count != 0)
     {
         GuLog.Debug("<><DrinkWaterUIPresentManager>listState.Count" + listState.Count);
         return(true);
     }
     return(false);
 }
        public void PushNewState(UIState state)
        {
            if (state.state == UIStateEnum.eStartDailyProcessBar || state.state == UIStateEnum.eDrinkFail)
            {
                if (IsExistState(state.state))
                {
                    return;
                }
            }
            if (state.state == UIStateEnum.eRefreshMainByData)
            {
                RemoveSameState(state);
            }
            if (state.state == UIStateEnum.eMissionComplete)
            {
                FlurryUtil.LogEvent("Mission_Daily_count");
            }
            else if (state.state == UIStateEnum.eTreasureBoxOpen)
            {
                FlurryUtil.LogEvent("Nim_Chest_Open_daily_count");
            }
            else if (state.state == UIStateEnum.eDailyGoalCrownComplete)
            {
                switch ((int)state.value0)
                {
                case 0:
                {
                    FlurryUtil.LogEvent("Dailygoal_30_Archived_Event");
                }
                break;

                case 1:
                {
                    FlurryUtil.LogEvent("Dailygoal_60_Archived_Event");
                }
                break;

                case 2:
                {
                    FlurryUtil.LogEvent("Dailygoal_100_Archived_Event");
                }
                break;
                }
            }

            if (IsSilenceMode(state.state))
            {
                MainPresentBase present = GetPresentByEnum(state.state);
                if (present != null)
                {
                    present.ProcessState(state);
                }

                if (CurrentPresent == null)
                {
                    listState.Clear();
                    CurrentPresent = present;
                    return;
                }
                else
                {
                    if (!IsSilenceMode(CurrentPresent.GetStateEnum()))
                    {
                        ClearState();
                        CurrentPresent = present;
                        return;
                    }
                }
            }
            else if (CurrentPresent != null && IsSilenceMode(CurrentPresent.GetStateEnum()))
            {
                if (state.state != UIStateEnum.eRefreshMainByData && state.state != UIStateEnum.eStartDailyProcessBar)
                {
                    if (state.state == UIStateEnum.eDropWaterAni)
                    {
                        if (CurrentPresent.GetStateEnum() == UIStateEnum.eSchoolMode)
                        {
                            FlurryUtil.LogEvent("Drink_In_Schoolmode_Daily_Count");
                        }
                        else if (CurrentPresent.GetStateEnum() == UIStateEnum.eSleepMode)
                        {
                            FlurryUtil.LogEvent("Drink_In_Sleepmode_Daily_Count");
                        }
                    }
                    else if (state.state == UIStateEnum.eDailyProcessIncrease || state.state == UIStateEnum.eMissionFadeInOut)
                    {
                        MainPresentBase present = GetPresentByEnum(state.state);
                        if (present != null)
                        {
                            present.ProcessState(state);
                        }
                    }
                    return;
                }
            }
            if (state.state == UIStateEnum.eDropWaterAni)
            {
                FlurryUtil.LogEvent("Drink_Nomal_Daily_Count");
            }

            listState.Add(state);
        }