Просмотр исходного кода

优化任务列表中的刷新机制与显示;
修复载h5卡的问题

zengjiebin лет назад: 7
Родитель
Сommit
2f96088c87

+ 0 - 1
app/src/main/AndroidManifest.xml

@@ -351,7 +351,6 @@
             android:screenOrientation="portrait" />
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActWeb"
-            android:hardwareAccelerated="false"
             android:screenOrientation="portrait" />
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActMyMoney"

+ 1 - 0
app/src/main/java/com/kfzs/duanduan/event/EventTypes.java

@@ -42,6 +42,7 @@ public enum EventTypes {
 
     REFRESH_XIAOMI_GAME_LIST,//刷新界面
     FGT_SHEEP_REFRESH_H , //刷新fgtSmallSheep高度
+    FGT_SHEEP_FOOT_VIEW_CALL_BACK , //FgtSmallSheep中ViewPager内容中的任务列表XRecyclerView的FootView刷新回调
     FGT_SHEEP_SET_BOTTOM_LINE , //设置底线内容
     FGT_SHEEP_SHOW_NEW_USER_HONG_BAO , //显示红包
     REFRESH_AUDITACTIVITY_DATA,//审核数据刷新

+ 20 - 0
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -219,6 +219,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     public static final int WHAT_LOAD_RUN_TASK = 1;//加载正在进行的任务列表
     public static final int WHAT_UPDATE_VP_HEIGHT = 2;//刷新viewpager高度
     public static final int WHAT_UPDATE_BOTTOM_LINE = 3;//刷新底线(双击我回到顶部)
+    public static final int WHAT_UPDATE__FOOT_VIEW_CALL_BACK = 4;//刷新发布任务列表的加载更多的状态回调
     public static final int WHAT_TRY_SHOW_HB = 7;//尝试显示红包
     public Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
@@ -257,6 +258,19 @@ 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 WHAT_UPDATE__FOOT_VIEW_CALL_BACK://发布任务列表的加载更多的回调
+                    String obj = (String) msg.obj;
+                    switch (obj){
+                        case "onLoadingMore":
+                            bottom_line_text.setText("羊羊努力加载中...");
+                            break;
+                        case "onLoadMoreComplete":
+                            bottom_line_text.setText("上拉下载更多,双击我回到顶部");
+                            break;
+                        case "onSetNoMore":
+                            break;
+                    }
+                    break;
                 case WHAT_UPDATE_BOTTOM_LINE://刷新底线
                     item = (FgtTryMakeMoney) adpViewPagerDetail.getItem(curPosition);
                     if (mViewPager == null || item == null) {
@@ -1194,6 +1208,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             case FGT_SHEEP_REFRESH_H:
                 mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);
                 break;
+            case FGT_SHEEP_FOOT_VIEW_CALL_BACK:
+                Message msg = Message.obtain();
+                msg.what = WHAT_UPDATE__FOOT_VIEW_CALL_BACK;
+                msg.obj = event.getData();
+                mHandler.sendMessage(msg);
+                break;
             case FGT_SHEEP_SET_BOTTOM_LINE:
                 mHandler.sendEmptyMessage(WHAT_UPDATE_BOTTOM_LINE);
                 break;

+ 40 - 12
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -482,30 +482,58 @@ public class ViewUtil {
     }
 
     public static View setBottomLine(final XRecyclerView view_list) {
+        return setBottomLine(view_list, null);
+    }
+
+    public static View setBottomLine(final XRecyclerView view_list, final Action1<String> action1) {
         View view = LayoutInflater.from(SheepApp.getInstance()).inflate(R.layout.common_foot_view, null);
         view_list.setFootView(view, new CustomFooterViewCallBack() {
             @Override
             public void onLoadingMore(View yourFooterView) {
-                TextView bottom_line_text = yourFooterView.findViewById(R.id.bottom_line_text);
-                bottom_line_text.setText("羊羊努力加载中...");
+                if(action1 != null) {
+                    action1.call("onLoadingMore");
+                } else {
+                    TextView bottom_line_text = yourFooterView.findViewById(R.id.bottom_line_text);
+                    bottom_line_text.setText("羊羊努力加载中...");
+                }
             }
 
             @Override
             public void onLoadMoreComplete(View yourFooterView) {
-                TextView bottom_line_text = yourFooterView.findViewById(R.id.bottom_line_text);
-                bottom_line_text.setText("加载完成");
+                if(action1 != null) {
+                    action1.call("onLoadMoreComplete");
+                } else {
+                    TextView bottom_line_text = yourFooterView.findViewById(R.id.bottom_line_text);
+                    bottom_line_text.setText(canScrollToTop() ? "加载完成,点击我回到顶部" : "加载完成");
+                    yourFooterView.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                            if(canScrollToTop())
+                                view_list.scrollToPosition(0);
+                        }
+                    });
+                }
             }
 
             @Override
             public void onSetNoMore(View yourFooterView, boolean noMore) {
-                TextView bottom_line_text = yourFooterView.findViewById(R.id.bottom_line_text);
-                bottom_line_text.setText(canScrollToTop() ? "我是有底线的,点击我回到顶部" : "我是有底线的");
-                yourFooterView.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        view_list.scrollToPosition(0);
-                    }
-                });
+                if(action1 != null) {
+                    action1.call("onSetNoMore");
+                } else {
+                    yourFooterView.setVisibility(isEmpty() ? View.GONE : View.VISIBLE);
+                    TextView bottom_line_text = yourFooterView.findViewById(R.id.bottom_line_text);
+                    bottom_line_text.setText(canScrollToTop() ? "我是有底线的,点击我回到顶部" : "我是有底线的");
+                    yourFooterView.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                            if(canScrollToTop())
+                                view_list.scrollToPosition(0);
+                        }
+                    });
+                }
+            }
+            private boolean isEmpty(){
+                return view_list.getAdapter().getItemCount() == 0;
             }
             private boolean canScrollToTop(){
                 return view_list.getAdapter().getItemCount() > 10;

+ 24 - 11
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -50,6 +50,7 @@ import javax.inject.Inject;
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.Unbinder;
+import rx.functions.Action1;
 
 
 /**
@@ -73,6 +74,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     private List<TaskReleaseEty> releaseEtyListsBegin = new ArrayList<>();
     private int about_to_begin = 0;
     private String show_type;//有值代表来自主页
+    private boolean isFromHome = false;//来自主页
     private int is_succession;//0:一般任务 1:连续任务
 
     private void checkAndInitView() {
@@ -105,13 +107,13 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         recyclerview.refreshComplete();
         recyclerview.loadMoreComplete();
         notifyBottomLine(false);
-        if (!TextUtils.isEmpty(show_type))
+        if (isFromHome)
             EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_REFRESH_H));
     }
 
     private void notifyBottomLine(boolean noMore) {
         if(bottomLine != null) {
-            if (!TextUtils.isEmpty(show_type)){//主页不展示底线,用主页自带的底线
+            if (isFromHome){//主页不展示底线,用主页自带的底线
                 bottomLine.setVisibility(View.GONE);
                 return;
             }
@@ -160,6 +162,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         if (bundle != null) {
             about_to_begin = bundle.getInt("type", 0);
             show_type = bundle.getString("show_type", "");
+            isFromHome = !TextUtils.isEmpty(show_type);
             switch (show_type){
                 case "is_hot":
                     isGetRelease = true;
@@ -214,14 +217,20 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         tryMakeMoneyAdp = new TryMakeMoneyAdp(activity);
         tryMakeMoneyAdp.addType(about_to_begin);
         tryMakeMoneyAdp.addShowType(show_type);
-        tryMakeMoneyAdp.setIs_succession(TextUtils.isEmpty(show_type) ? is_succession : 3);
+        tryMakeMoneyAdp.setIs_succession(getIs_succession());
         tryMakeMoneyAdp.addPresenter(presenter);
         for (int i = 0; i < LIST_COUNT; i++) {
             tryMakeMoneyAdp.add(NULL);
         }
         recyclerview.setAdapter(tryMakeMoneyAdp);
 
-        bottomLine = ViewUtil.setBottomLine(recyclerview);
+        bottomLine = ViewUtil.setBottomLine(recyclerview, new Action1<String>() {
+            @Override
+            public void call(String msg) {
+                if (isFromHome)
+                    EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_FOOT_VIEW_CALL_BACK).setData(msg));
+            }
+        });
 
     }
     private View bottomLine;
@@ -262,7 +271,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                     recyclerview.setNoMore(true);
                     noMore = true;
                     notifyBottomLine(true);
-                    if (!TextUtils.isEmpty(show_type))
+                    if (isFromHome)
                         EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_SET_BOTTOM_LINE));
                 }
             }
@@ -281,7 +290,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     public void refreshData() {
         isFirstCache = false;
         noMore = false;
-        if (!TextUtils.isEmpty(show_type))
+        if (isFromHome)
             EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_SET_BOTTOM_LINE));
         releasePage = 1;
         releaseBeginPage = 1;
@@ -311,7 +320,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
             if (isGameTask) {
                 cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.run_game_task, TaskAcceptedEty.class);
             } else {
-                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.new_run_task(TextUtils.isEmpty(show_type) ? is_succession : 3, 0), TaskAcceptedEty.class);
+                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.new_run_task(getIs_succession(), 0), TaskAcceptedEty.class);
             }
             if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {
                 acceptedEtyList.clear();
@@ -408,9 +417,13 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         }
     }
 
+    public int getIs_succession() {
+        return isFromHome ? 3 : is_succession;
+    }
+
     @Override
     public void returnTaskTaskUpdateView(Object object) {
-        boolean isNewData = DataUtil.getInstance().isNewData(isGameTask ? ApiKey.run_game_task : ApiKey.new_run_task(TextUtils.isEmpty(show_type) ? is_succession : 3, 0));
+        boolean isNewData = DataUtil.getInstance().isNewData(isGameTask ? ApiKey.run_game_task : ApiKey.new_run_task(getIs_succession(), 0));
         if (isNewData) {
             if (object instanceof BaseMessage) {
                 List<TaskAcceptedEty> taskAcceptedEty = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
@@ -440,7 +453,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
      */
     @Override
     public void releaseTaskTaskUpdateView(BaseMessage baseMessage, int about_to_begin) {
-        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.release_task(about_to_begin == 0 ? releasePage : releaseBeginPage, per_page, about_to_begin, task_type, TextUtils.isEmpty(show_type) ? is_succession : 3));
+        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.release_task(about_to_begin == 0 ? releasePage : releaseBeginPage, per_page, about_to_begin, task_type, getIs_succession()));
         if (isNewData) {
             List<TaskReleaseEty> releaseEtyList = baseMessage.getDataList(TaskReleaseEty.class);
             switch (about_to_begin) {
@@ -482,7 +495,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     //从ACache获取发布的任务列表
     private void getReleaseFromACache(int about_to_begin) {
         try {
-            List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task(about_to_begin == 0 ? releasePage : releaseBeginPage, per_page, about_to_begin, task_type, TextUtils.isEmpty(show_type) ? is_succession : 3), TaskReleaseEty.class);
+            List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task(about_to_begin == 0 ? releasePage : releaseBeginPage, per_page, about_to_begin, task_type, getIs_succession()), TaskReleaseEty.class);
             switch (about_to_begin) {
                 case 0:
                     ListUtil.addAll(releaseEtyLists, cacheTaskReleaseEtyList);
@@ -509,7 +522,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                                 0,
                                 about_to_begin,
                                 task_type,
-                                TextUtils.isEmpty(show_type) ? is_succession : 3));
+                                getIs_succession()));
         presenter.releaseTask(paramEty);
     }