private void instantiateWidget(GameObject widgetPrefab, CellPhoneRecurringLocationActivityDefinition definition)
        {
            GameObject gameObject = UnityEngine.Object.Instantiate(widgetPrefab, base.transform, worldPositionStays: false);

            currentLoadedWidget = gameObject.GetComponent <CellPhoneActivitiyScreenStartingSoonWidget>();
            currentLoadedWidget.SetWidgetData(definition);
            currentLoadedWidget.CountdownCompleteAction += onWidgetCountdownComplete;
        }
        protected override void setWidgetData(CellPhoneActivityDefinition widgetData)
        {
            CellPhoneRecurringLocationActivityDefinition cellPhoneRecurringLocationActivityDefinition = widgetData as CellPhoneRecurringLocationActivityDefinition;

            if (cellPhoneRecurringLocationActivityDefinition != null)
            {
                this.widgetData = cellPhoneRecurringLocationActivityDefinition;
                resetStartTime(this.widgetData.ActivityStartScheduleCron);
                CoroutineRunner.Start(updateTimer(), this, "updateTimer");
            }
        }
        public static CellPhoneRecurringLocationActivityDefinition GetActiveRecurringActivityDefinition(List <CellPhoneRecurringLocationActivityDefinition> activities)
        {
            CellPhoneRecurringLocationActivityDefinition result = null;

            for (int i = 0; i < activities.Count; i++)
            {
                DateTime dateTime = Service.Get <ContentSchedulerService>().ScheduledEventDate();
                if (CronExpressionEvaluator.EvaluatesTrue(dateTime, activities[i].ShowWidgetScheduleCron) && DateTimeUtils.DoesDateFallBetween(dateTime, activities[i].GetStartingDate().Date, activities[i].GetEndingDate().Date))
                {
                    result = activities[i];
                    break;
                }
            }
            return(result);
        }
        private IEnumerator loadWidget()
        {
            CellPhoneRecurringLocationActivityDefinition widgetDefinition = GetActiveRecurringActivityDefinition(recurringActivityDefinitions);

            if (widgetDefinition != null)
            {
                AssetRequest <GameObject> assetRequest = Content.LoadAsync(widgetDefinition.WidgetPrefabKey);
                yield return(assetRequest);

                removeCurrentWidget();
                instantiateWidget(assetRequest.Asset, widgetDefinition);
            }
            else
            {
                removeCurrentWidget();
                UnityEngine.Object.Destroy(base.gameObject);
            }
        }