PageDataFinishTask.java
2.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package com.wd.layoutdataimpl.model;
import androidx.annotation.NonNull;
import com.wd.capability.layout.comp.layoutdata.AbsGroup;
import com.wd.foundation.wdkit.mvvm.model.ConditionTask;
/**
* @Description: 类描述
* @Author: Li Yubing
* @Email: liyubing@wondert.com.cn
* @CreateDate: 2023/8/10 16:56
* @Version: 1.0
*/
public class PageDataFinishTask extends ConditionTask<String> {
private PageDataFetcher pageDataFetcher;
/**
* 接口业务类型 :1、获取信息流页面数据收集,绘制信息流页面;2、调用多个批查接口,收集数据,完成页面刷新;3、调用多个批查接口,收集数据,无需告知页面刷新
*/
private int pageType;
public PageDataFinishTask(int pageType) {
this.pageType = pageType;
}
public void setPageType(int pageType) {
this.pageType = pageType;
}
public void setPageDataFetcher(PageDataFetcher pageDataFetcher) {
this.pageDataFetcher = pageDataFetcher;
}
@Override
protected String onInstantiateContext() {
// onExecute不需要参数,这里直接设null
return null;
}
@Override
protected void onExecute(String contextType) {
if (pageDataFetcher.isCanceled()) {
return;
}
if (pageDataFetcher.getmListener() != null) {
if (pageType == 1) {
pageDataFetcher.resetPage();
// 第三次遍历页面所有楼层的稿件和组件
pageDataFetcher.retrieveAllGroupOfComp();
// 调用批查方法 查询页面相关稿件的动态数据,如 收藏 、点赞、关注等数据
pageDataFetcher.handlerAllCompDataBetchData();
// 通知页面刷新
pageDataFetcher.getmListener().onPageDataSuccess(pageDataFetcher.getmPage(), pageDataFetcher.getPageData());
} else if (pageType == 2) {
// 第一批次发送多个批查请求,获取到最终结果,刷新ui,批次批查完毕
pageDataFetcher.getmListener().onPageDataSetChanged();
pageDataFetcher.checkBatchTimeAndRequestDyData();
} else if (pageType == 3) {
// 其它批次批查,只负责更新数据,批次未查询完毕
pageDataFetcher.checkBatchTimeAndRequestDyData();
}
}
}
void onGetPartialDataFinish(@NonNull AbsGroup group) {
if (group != null) {
String tag = group.toString();
matchCondition(tag);
}
}
void registerCondition(@NonNull AbsGroup group) {
if (group != null) {
String tag = group.toString();
registerCondition(tag);
}
}
}