private IEnumerator MainPageTaskTimeout(PageContentTask pageTask, float warningTime) { yield return(new WaitForSeconds(warningTime)); if (pageTask != null && !pageTask.Completed) { FMLogger.Log("main page long load report"); pageTask.TriggerLongLoading(); } else { FMLogger.Log("Wtf task is completed"); } this.mainPageTaskTimeoutCoroutine = null; yield break; }
public void LoadMainPage(PageContentTask pageTask) { if (pageTask.Page == 1 && this.orderedMainPage != null && this.orderedMainPage.Count > 0 && this.libResponse != null) { pageTask.Result(true, new PageContentInfo(this.orderedMainPage, this.featuredSection, this.newsTabInfo, this.libResponse.categories, this.libResponse.update_dialog, this.libResponse.bonus_category_config)); } else if (pageTask.Page == 1) { if (this.mainPageTaskTimeoutCoroutine != null) { FMLogger.Log("Multi page load invocation"); base.StopCoroutine(this.mainPageTaskTimeoutCoroutine); FMLogger.Log("terminate prev main page task handler"); } this.mainPageTaskTimeoutCoroutine = base.StartCoroutine(this.MainPageTaskTimeout(pageTask, 5f)); TGFModule.Instance.GetMainPage(pageTask.Page, delegate(LibraryPageResponce response) { if (pageTask == null || pageTask.IsCanceled) { FMLogger.Log("task canceled " + pageTask.Page); } else if (pageTask != null && pageTask.Completed) { FMLogger.Log("task already completed " + pageTask.Page); } else { if (this.mainPageTaskTimeoutCoroutine != null) { this.StopCoroutine(this.mainPageTaskTimeoutCoroutine); this.mainPageTaskTimeoutCoroutine = null; } if (response != null) { this.ParseMainPageContent(response); this.libResponse = response; pageTask.Result(true, new PageContentInfo(this.orderedMainPage, this.featuredSection, this.newsTabInfo, this.libResponse.categories, this.libResponse.update_dialog, this.libResponse.bonus_category_config)); } else { pageTask.Result(false, null); } } }); } }