瀏覽代碼

review
优化接口调用,防止重复调用接口;
列表接口在onResume中直接调用,不再记录标签来调用

zengjiebin 7 年之前
父節點
當前提交
f2fd58007f

+ 30 - 23
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -7,12 +7,10 @@ import android.content.Context;
 import android.content.DialogInterface;
 import android.graphics.Color;
 import android.graphics.drawable.BitmapDrawable;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.support.annotation.RequiresApi;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
 import android.support.v4.widget.NestedScrollView;
@@ -213,28 +211,37 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
     private static final int LIST_COUNT = 2;//tryMakeMoneyAdp 总共有2条数据
     private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
-    public Handler mHanderl = new Handler(Looper.getMainLooper()) {
+    public static final int WHAT_LOAD_USER_INFO = 0;//加载用户信息
+    public static final int WHAT_LOAD_RUN_TASK = 1;//加载正在进行的任务列表
+    public static final int WHAT_UPDATE_VP_HEIGHT = 2;//刷新viewpager高度
+    public static final int WHAT_TRY_SHOW_HB = 7;//尝试显示红包
+    public Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
             switch (msg.what) {
-                case 0:
+                case WHAT_LOAD_USER_INFO:
                     loadUserInfo();
                     break;
-                case 1:
+                case WHAT_LOAD_RUN_TASK:
                     tryMakeMoneyAdp.clear();
-                    if(!ListUtil.isEmpty(allTaskAcceptedTaskList)){
-                        if(recyclerview_line != null)
-                            recyclerview_line.setVisibility(View.VISIBLE);
+                    //正在进行中的任务列表
+                    boolean isAcceptedTaskListEmpty = ListUtil.isEmpty(allTaskAcceptedTaskList);
+                    if(!isAcceptedTaskListEmpty){
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList));
                     }
+                    //正在进行中的任务下面的线是否显示
+                    if(recyclerview_line != null)
+                        recyclerview_line.setVisibility(isAcceptedTaskListEmpty ? View.GONE : View.VISIBLE);
+
+                    //发布的任务列表----注:3.0开始已经没有展示,使用viewpager展示
                     if(!ListUtil.isEmpty(releaseEtyLists)) {
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists));
                     }
                     tryMakeMoneyAdp.notifyDataSetChanged();
                     checkAndInitView();
                     break;
-                case 2:
+                case WHAT_UPDATE_VP_HEIGHT:
                     FgtTryMakeMoney item = (FgtTryMakeMoney) adpViewPagerDetail.getItem(curPosition);
                     if(mViewPager == null || item == null){
                         return;
@@ -244,7 +251,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     params.height = count == 0 ? G.HEIGHT / 2 : (count * getResources().getDimensionPixelSize(R.dimen.content_padding_96)+getResources().getDimensionPixelSize(R.dimen.content_padding));
                     mViewPager.setLayoutParams(params);
                     break;
-                case 7:
+                case WHAT_TRY_SHOW_HB:
                     isShowRedPackages(activity);
                     break;
             }
@@ -289,7 +296,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     protected void initView(Bundle savedInstanceState) {
         setContentView(R.layout.homepage_act_layout);
         activity = getActivity();
-        DataUtil.getInstance().isTaskListChange(getClass());
         showPDialog();
         initView();
         initListener();
@@ -341,7 +347,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             @Override
             public void onPageSelected(int position) {
                 curPosition = position;
-                mHanderl.sendEmptyMessage(2);//重新计算viewpager高度
+                mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);//重新计算viewpager高度
             }
 
             @Override
@@ -440,7 +446,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 //        List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task, TaskReleaseEty.class);
 //        if (cacheTaskReleaseEtyList != null) {
 //            releaseEtyLists.addAll(cacheTaskReleaseEtyList);
-//            mHanderl.sendEmptyMessage(1);
+//            mHandler.sendEmptyMessage(WHAT_LOAD_RUN_TASK);
 //        }
 
 
@@ -530,7 +536,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             homepageItemNoticeMv.stopFlipping();
             homepageItemNoticeMv.startFlipping();
         }
-        pagePresenter.getUserInfo();
+        if(onResumeCount > 0 || userEntity == null)//非第一次才更新用户信息
+            pagePresenter.getUserInfo();
 
         if (views.size() < 1) {
             pagePresenter.getAwardDetail();
@@ -610,7 +617,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     }
 
     private void refreshTaskList() {
-        DataUtil.getInstance().isTaskListChange(getClass());
         tryMakeMoneyPresenter.returnTask(is_succession, show_game_task);
         RequestParameEty parameEty = new RequestParameEty();
         parameEty.setHashMap(
@@ -672,7 +678,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             return;
         }
         DataUtil.getInstance().setUserEntity(userEntity);
-        mHanderl.sendEmptyMessage(0);
+        mHandler.sendEmptyMessage(WHAT_LOAD_USER_INFO);
     }
 
     @Override
@@ -718,7 +724,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         } else {
             allTaskAcceptedTaskList.clear();
         }
-        mHanderl.sendEmptyMessage(1);
+        mHandler.sendEmptyMessage(WHAT_LOAD_RUN_TASK);
     }
 
     @Override
@@ -739,7 +745,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             G.showToast(" 网络错误!");
         }
         allTaskAcceptedTaskList.clear();
-        mHanderl.sendEmptyMessage(1);
+        mHandler.sendEmptyMessage(WHAT_LOAD_RUN_TASK);
     }
 
     @Override
@@ -749,7 +755,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             List<TaskReleaseEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskReleaseEty.class);
             if (releaseEtyList != null) {
                 releaseEtyLists = releaseEtyList;
-                mHanderl.sendEmptyMessage(1);
+                mHandler.sendEmptyMessage(WHAT_LOAD_RUN_TASK);
             }
         }
     }
@@ -898,8 +904,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             userEntity = result;
             loadUserInfo();
         }
-        if(DataUtil.getInstance().isTaskListChange(getClass()))//数据变化才刷新
+        if(onResumeCount > 0)
             refreshTaskList();
+        onResumeCount++;
     }
 
 
@@ -950,13 +957,13 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     public void onEventMainThread(BigEvent event) {
         switch (event.getEventTypes()) {
             case ONFRESH_FGT_FAMLLSHEEP:
-                mHanderl.sendEmptyMessage(1);
+                mHandler.sendEmptyMessage(WHAT_LOAD_RUN_TASK);
                 break;
             case FGT_SHEEP_REFRESH_H:
-                mHanderl.sendEmptyMessage(2);
+                mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);
                 break;
             case FGT_SHEEP_SHOW_NEW_USER_HONG_BAO:
-                mHanderl.sendEmptyMessage(7);
+                mHandler.sendEmptyMessage(WHAT_TRY_SHOW_HB);
                 break;
         }
     }

+ 0 - 1
app/src/main/java/com/sheep/gamegroup/helper/TaskHelper.java

@@ -238,7 +238,6 @@ public class TaskHelper {
                                                 @Override
                                                 public void onNext(BaseMessage baseMessage) {
                                                     CommonUtil.getInstance().setTAskEnty(null);
-                                                    DataUtil.getInstance().setTaskListChanged();//主页任务列表发生变化,回到主页后自动刷新
                                                     refreshTask();
                                                 }
 

+ 0 - 32
app/src/main/java/com/sheep/gamegroup/util/DataUtil.java

@@ -233,38 +233,6 @@ public class DataUtil {
     }
 
     //-----------------------------------------缓存数据部分-----------------------------------------------------结束
-    //-----------------------------------------进行任务部分-----------------------------------------------------开始
-
-    /**
-     * 是否首页正在运行的任务与发布的任务列表发生变化
-     *
-     * @return
-     */
-    public boolean isTaskListChange(Class<?> tagClass) {
-        return isTaskListChange(tagClass.getName());
-    }
-
-    /**
-     * 是否首页正在运行的任务与发布的任务列表发生变化
-     *
-     * @return
-     */
-    public boolean isTaskListChange(String tag) {
-        if (tagList.contains(tag)) {//包含tag,说明使用该tag的地方已经刷新数据
-            return false;
-        } else {
-            tagList.add(tag);
-            return true;
-        }
-    }
-
-    private List<String> tagList = ListUtil.emptyList();
-
-    public void setTaskListChanged() {
-        tagList.clear();
-    }
-
-    //-----------------------------------------进行任务部分-----------------------------------------------------结束
 
     //-----------------------------------------其它数据部分-----------------------------------------------------开始
     private Map<String, Object> objectMap = new HashMap<>();

+ 9 - 8
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -641,7 +641,6 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                                 gettaskAcceptedEty = null;
                                 taskReleaseEty = null;
                                 CommonUtil.getInstance().setTAskEnty(null);
-                                DataUtil.getInstance().setTaskListChanged();
                                 presenter.taskDesc(releaseTaskId);
                             }
                         });
@@ -1112,8 +1111,6 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         taskReleaseEty.getTask().setRelease_task_id(taskReleaseEty.getId());
                         CommonUtil.getInstance().setTAskEnty(taskReleaseEty.getTask());
 
-                        DataUtil.getInstance().setTaskListChanged();//主页任务列表发生变化,回到主页后自动刷新
-
                         getAcceptedTaskDetail(releaseTaskId);
 
                     }
@@ -1223,15 +1220,19 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
     }
 
+    private int onResumeCount = 0;
     @Override
     protected void onResume() {
         super.onResume();
-        if (taskReleaseEty == null || isFresh) {
-            isFresh = true;
-            freshData();
-        } else {
-            updateBottom();
+        if(onResumeCount > 0) {//第一次不加载
+            if (taskReleaseEty == null || isFresh) {
+                isFresh = true;
+                freshData();
+            } else {
+                updateBottom();
+            }
         }
+        onResumeCount++;
     }
 
     /**

+ 5 - 26
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -25,7 +25,6 @@ import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.view.activity.GamemakeMoneyAct;
 import com.sheep.gamegroup.view.activity.TryMakeMoneyact;
 import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
@@ -36,7 +35,6 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -137,7 +135,6 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     @Override
     public void onViewCreated() {
         activity = getActivity();
-        DataUtil.getInstance().isTaskListChange(getClass());
         initView();
         initData();
     }
@@ -156,8 +153,6 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
             task_type = "1002,1003,1004";
             isGameTask = true;
         }
-        EventBus.getDefault().register(this);
-//        ButterKnife.bind(this, mContentView);
         DaggerFgtTryMakeMoneyComponent.builder()
                 .netComponent(SheepApp.get(activity).getNetComponent())
                 .tryMakeMoneyModule(new TryMakeMoneyModule(FgtTryMakeMoney.this))
@@ -209,7 +204,6 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     }
     //强制刷新数据
     public void refreshData(){
-        DataUtil.getInstance().isTaskListChange(getClass());
         isFirstCache = false;
         if(TextUtils.isEmpty(show_type))
             if(refresh != null)
@@ -269,8 +263,6 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     public void onDestroyView() {
         super.onDestroyView();
         unbinder.unbind();
-
-        EventBus.getDefault().unregister(this);
     }
 
     @Override
@@ -310,7 +302,6 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     public void giveUpTaskSuccesView(Object object) {
         G.showToast("取消任务成功");
         CommonUtil.getInstance().setTAskEnty(null);
-        DataUtil.getInstance().setTaskListChanged();
         refreshData();
     }
 
@@ -389,24 +380,12 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         getFromNetWorkFirst(type);
     }
 
-    @Subscribe
-    public void onEventMainThread(BigEvent event){
-        switch (event.getEventTypes()){
-            case ONFRESH_TRYMAKEMANY_PAGE:
-                break;
-        }
-    }
-
     private int onResumeCount = 0;
     @Override
     public void onResume() {
         super.onResume();
-        if (onResumeCount > 0 && presenter != null){
-            if(DataUtil.getInstance().isTaskListChange(getClass())) {//需要全部刷新
-                refreshData();
-            } else {
-                initAcceptedTaskList();
-            }
+        if (onResumeCount > 0 && presenter != null){//直接全部刷新
+            refreshData();
         }
         onResumeCount++;
     }
@@ -422,7 +401,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
      * 发布的任务
      * type: 0 1
      */
-    private void getFromAcacheFirst(int type){
+    private void getFromACacheFirst(int type){
         if(TextUtils.isEmpty(show_type)){
             this.type = ++type;
             getFromACache(this.type);
@@ -442,7 +421,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                         releaseEtyLists.clear();
                         releaseEtyLists.addAll(cacheTaskReleaseEtyList);
                         notifyDataSetChanged();
-                        getFromAcacheFirst(type);
+                        getFromACacheFirst(type);
                     }
                     break;
                 case 1:
@@ -452,7 +431,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                         releaseEtyListsBegin.clear();
                         releaseEtyListsBegin.addAll(cacheTaskReleaseEtyList);
                         notifyDataSetChanged();
-                        getFromAcacheFirst(type);
+                        getFromACacheFirst(type);
                     }
                     break;
             }