|
|
@@ -11,6 +11,7 @@ import android.view.ViewGroup;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.kfzs.duanduan.event.BigEvent;
|
|
|
+import com.kfzs.duanduan.utils.NumberFormatUtils;
|
|
|
import com.sheep.gamegroup.di.components.DaggerFgtTryMakeMoneyComponent;
|
|
|
import com.sheep.gamegroup.di.modules.TryMakeMoneyModule;
|
|
|
import com.sheep.gamegroup.model.entity.BaseMessage;
|
|
|
@@ -23,6 +24,7 @@ import com.sheep.gamegroup.model.entity.TaskReleaseEty;
|
|
|
import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
|
|
|
import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
|
|
|
import com.sheep.gamegroup.util.CommonUtil;
|
|
|
+import com.sheep.gamegroup.util.ListUtil;
|
|
|
import com.sheep.gamegroup.view.activity.TryMakeMoneyact;
|
|
|
import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
|
|
|
import com.sheep.jiuyan.samllsheep.R;
|
|
|
@@ -30,6 +32,8 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
|
|
|
import com.sheep.jiuyan.samllsheep.base.BaseFragment;
|
|
|
import com.sheep.jiuyan.samllsheep.utils.G;
|
|
|
|
|
|
+import org.afinal.simplecache.ACache;
|
|
|
+import org.afinal.simplecache.ApiKey;
|
|
|
import org.greenrobot.eventbus.EventBus;
|
|
|
import org.greenrobot.eventbus.Subscribe;
|
|
|
|
|
|
@@ -61,10 +65,10 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
private TryMakeMoneyact activity;
|
|
|
private TryMakeMoneyAdp tryMakeMoneyAdp;
|
|
|
private int position = 0;
|
|
|
+ private List<TaskAcceptedEty> acceptedEtyList = new ArrayList<>();
|
|
|
private List<TaskReleaseEty> releaseEtyLists = new ArrayList<>();
|
|
|
private List<TaskReleaseEty> releaseEtyListsBegin = new ArrayList<>();
|
|
|
private int type = 0;
|
|
|
- private GridViewEntity gridViewEntity;//选中的
|
|
|
private int is_succession;//0:一般任务 1:连续任务
|
|
|
|
|
|
private void checkAndInitView() {
|
|
|
@@ -154,7 +158,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
|
|
@Override
|
|
|
public void onRefresh() {
|
|
|
- initData();
|
|
|
+ refreshData();
|
|
|
}
|
|
|
});
|
|
|
recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
|
|
@@ -173,14 +177,23 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ private boolean isFirstCache = false;//是否首先尝试缓存
|
|
|
+ //先尝试缓存数据,无缓存数据时,再尝试获取网络数据
|
|
|
+ public void initACacheData(){
|
|
|
+ isFirstCache = true;
|
|
|
+ mInitData();
|
|
|
+ }
|
|
|
+ //强制刷新数据
|
|
|
+ public void refreshData(){
|
|
|
+ isFirstCache = false;
|
|
|
+ mInitData();
|
|
|
+ }
|
|
|
public void reFresh(){
|
|
|
-// if(refresh.isRefreshing()){
|
|
|
-// return;
|
|
|
-// }
|
|
|
+ isFirstCache = false;
|
|
|
refresh.setRefreshing(true);
|
|
|
- initData();
|
|
|
+ mInitData();
|
|
|
}
|
|
|
- public void initData() {
|
|
|
+ public void mInitData() {
|
|
|
empty_view.setVisibility(View.GONE);
|
|
|
position = 0;
|
|
|
type = 0;
|
|
|
@@ -191,9 +204,33 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
|
|
|
}
|
|
|
tryMakeMoneyAdp.setIs_succession(is_succession);
|
|
|
- gridViewEntity = activity.getTabValue();
|
|
|
- if(activity instanceof TryMakeMoneyact)
|
|
|
- CommonUtil.getInstance().getRunTask(presenter,activity.getIsSuccession());
|
|
|
+
|
|
|
+ if(isFirstCache){
|
|
|
+ List<TaskAcceptedEty> cacheTaskAcceptedEtyList = CommonUtil.getInstance().getCacheList(ApiKey.new_run_task(is_succession), TaskAcceptedEty.class);
|
|
|
+ if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {//本地无数据,从网络获取
|
|
|
+ CommonUtil.getInstance().getRunTask(presenter,is_succession);
|
|
|
+ } else {
|
|
|
+ //重新设置正在运行的任务的缓存时间
|
|
|
+ long saveTime = CommonUtil.getInstance().getSaveTime(TaskAcceptedEty.class.getSimpleName());
|
|
|
+ if(saveTime > 0)
|
|
|
+ for (TaskAcceptedEty acceptedEty : cacheTaskAcceptedEtyList) {
|
|
|
+ long newEndTime = acceptedEty.getEnd_time() - (System.currentTimeMillis() - saveTime) / 1000;
|
|
|
+ if(newEndTime < 1){//有一个正在运行的任务的时间过期时,会刷新数据,不使用缓存
|
|
|
+ mInitData();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ acceptedEty.setEnd_time(newEndTime);//重置时间
|
|
|
+ }
|
|
|
+ acceptedEtyList = cacheTaskAcceptedEtyList;
|
|
|
+ tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, cacheTaskAcceptedEtyList),0);
|
|
|
+ tryMakeMoneyAdp.addPresenter(presenter);
|
|
|
+ position ++;
|
|
|
+
|
|
|
+ getNetWork(type);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ CommonUtil.getInstance().getRunTask(presenter,is_succession);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -261,6 +298,15 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
BaseMessage baseMessage = (BaseMessage) o;
|
|
|
List<TaskAcceptedEty> taskAcceptedEty = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskAcceptedEty.class);
|
|
|
if(taskAcceptedEty != null && taskAcceptedEty.size()>0){
|
|
|
+ //重新设置正在运行的任务的缓存时间
|
|
|
+ long minRunTime = 3600;//最多保存一个小时
|
|
|
+ CommonUtil.getInstance().setSaveTime(TaskAcceptedEty.class.getSimpleName());
|
|
|
+ for (TaskAcceptedEty acceptedEty : taskAcceptedEty) {
|
|
|
+ minRunTime = Math.min(minRunTime, acceptedEty.getEnd_time());
|
|
|
+ }
|
|
|
+ CommonUtil.getInstance().resetCacheTime(ApiKey.new_run_task(is_succession), (int) minRunTime);
|
|
|
+
|
|
|
+ acceptedEtyList = taskAcceptedEty;
|
|
|
tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, taskAcceptedEty),0);
|
|
|
tryMakeMoneyAdp.addPresenter(presenter);
|
|
|
position ++;
|
|
|
@@ -268,6 +314,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
+ isFirstCache = false;//有新的正在运行的任务时,强制更新
|
|
|
getNetWork(type);
|
|
|
// notifyDataSetChanged();
|
|
|
}
|
|
|
@@ -345,7 +392,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
public void onEventMainThread(BigEvent event){
|
|
|
switch (event.getEventTypes()){
|
|
|
case ONFRESH_TRYMAKEMANY_PAGE:
|
|
|
-// reFresh();
|
|
|
+ reFresh();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -401,7 +448,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
public void onResume() {
|
|
|
super.onResume();
|
|
|
if (presenter != null) {
|
|
|
- reFresh();
|
|
|
+ initACacheData();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -424,20 +471,46 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
|
|
|
*/
|
|
|
private void getNetWork(int type){
|
|
|
if(type > 1){
|
|
|
+ notifyDataSetChanged();
|
|
|
return;
|
|
|
}
|
|
|
+ if(isFirstCache){
|
|
|
+ List<TaskReleaseEty> cacheTaskReleaseEtyList = CommonUtil.getInstance().getCacheList(ApiKey.release_task(type, is_succession), TaskReleaseEty.class);
|
|
|
|
|
|
- RequestParameEty parameEty = new RequestParameEty();
|
|
|
- parameEty.setHashMap(
|
|
|
- CommonUtil.getInstance()
|
|
|
- .setHashMap(1,
|
|
|
- 100,
|
|
|
- SheepApp.getInstance().getConnectAddress().getPlatForm(),
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- type,
|
|
|
- -1+"",
|
|
|
- activity.getIsSuccession()));
|
|
|
- presenter.releaseTask(parameEty);
|
|
|
+ if(ListUtil.isEmpty(cacheTaskReleaseEtyList)) {//可以领取的任务
|
|
|
+ isFirstCache = false;
|
|
|
+ getNetWork(type);
|
|
|
+ } else{
|
|
|
+// //删除缓存中已经存在的任务
|
|
|
+// List<TaskReleaseEty> removeList = ListUtil.emptyList();
|
|
|
+// for (TaskAcceptedEty taskAcceptedEty : acceptedEtyList) {
|
|
|
+// for (TaskReleaseEty taskReleaseEty : cacheTaskReleaseEtyList) {
|
|
|
+// if(taskAcceptedEty.getRelease_task_id() == taskReleaseEty.getId()){
|
|
|
+// removeList.add(taskReleaseEty);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// cacheTaskReleaseEtyList.removeAll(removeList);
|
|
|
+ releaseEtyLists.addAll(cacheTaskReleaseEtyList);
|
|
|
+ tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position);
|
|
|
+ position++;
|
|
|
+
|
|
|
+ type++;
|
|
|
+ getNetWork(type);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ RequestParameEty parameEty = new RequestParameEty();
|
|
|
+ parameEty.setHashMap(
|
|
|
+ CommonUtil.getInstance()
|
|
|
+ .setHashMap(1,
|
|
|
+ 100,
|
|
|
+ SheepApp.getInstance().getConnectAddress().getPlatForm(),
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ type,
|
|
|
+ -1 + "",
|
|
|
+ is_succession));
|
|
|
+ presenter.releaseTask(parameEty);
|
|
|
+ }
|
|
|
}
|
|
|
}
|