using System.Collections.Generic;  
 | 
using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
  
 | 
namespace vnxbqy.UI  
 | 
{  
 | 
    public class ActivityPushCell : CellView  
 | 
    {  
 | 
        [SerializeField] Text nameText;  
 | 
        [SerializeField] Text weekDayText;  
 | 
        [SerializeField] Text timeText;  
 | 
        [SerializeField] PushSwitchBtn pushBtn;  
 | 
        [SerializeField] GameObject bgObj;  
 | 
  
 | 
        SetPrivateModel privateModel { get { return ModelCenter.Instance.GetModel<SetPrivateModel>(); } }  
 | 
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }  
 | 
  
 | 
        public void SetModel(int dailyId)  
 | 
        {  
 | 
            string title = "";  
 | 
            string weekDay = "";  
 | 
            List<string> openTime =null;  
 | 
            privateModel.GetDailyInfoById(dailyId, out title, out weekDay, out openTime);  
 | 
            nameText.text = title;  
 | 
            weekDayText.text = weekDay;  
 | 
            timeText.text = GetTimeLabel(openTime);  
 | 
  
 | 
            var quests = dailyQuestModel.GetDailyQuests(DailyQuestModel.DailyQuestCategory.TimeLimit);  
 | 
            int index = privateModel.GetSwitchIndexById(dailyId, quests);  
 | 
            pushBtn.SetInit(index, privateModel.GetSwitchStateByIndex(index));  
 | 
            pushBtn.switchBtn.SetListener(() =>  
 | 
            {  
 | 
                if (pushBtn.onObj.activeInHierarchy)  
 | 
                {  
 | 
                    pushBtn.RefreshSwitchUI(false);  
 | 
                    privateModel.RefreshPushSet(pushBtn.switchIndex, false);  
 | 
                    privateModel.RemoveActivityPush(dailyId);  
 | 
                }  
 | 
                else  
 | 
                {  
 | 
                    pushBtn.RefreshSwitchUI(true);  
 | 
                    privateModel.RefreshPushSet(pushBtn.switchIndex, true);  
 | 
                    privateModel.AddActivityPush(dailyId);  
 | 
                }  
 | 
            });  
 | 
  
 | 
            bgObj.SetActive(this.index % 2 == 0);  
 | 
        }  
 | 
  
 | 
        static string GetTimeLabel(List<string> times)  
 | 
        {  
 | 
            if (times == null)  
 | 
            {  
 | 
                return string.Empty;  
 | 
            }  
 | 
            return string.Join("\n", times.ToArray());  
 | 
        }  
 | 
    }  
 | 
}  
 |