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

任务详情页面添加任务标识与取消任务按钮;
主页任务列表优化刷新(当取消或者接收任务时);
下载管理页面优化

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

+ 3 - 2
app/src/main/java/com/kfzs/duanduan/ActDownloadMgr.java

@@ -29,6 +29,7 @@ import com.kfzs.duanduan.utils.dlg.HelperUtils;
 import com.kfzs.duanduan.utils.dlg.TitleBarUtils;
 import com.kfzs.duanduan.view.DialogStorageLow;
 import com.kfzs.duanduan.view.KFProgressButton;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 
@@ -56,7 +57,7 @@ public class ActDownloadMgr extends BaseCompatActivity {
     ListView lvDownloadMgr;
 
     @BindView(R.id.empty_view)
-    View tvEmptyView;
+    View empty_view;
 
     /**
      * Download manager list view data's adapter
@@ -409,7 +410,7 @@ public class ActDownloadMgr extends BaseCompatActivity {
     }
 
     private void showDownloadTaskList(boolean isShow) {
-        tvEmptyView.setVisibility(isShow ? View.GONE : View.VISIBLE);
+        CommonUtil.getInstance().updateEmptyView(empty_view, !isShow);
         lvDownloadMgr.setVisibility(!isShow ? View.GONE : View.VISIBLE);
     }
     @Download.onPre void onPre(DownloadTask task) {

+ 4 - 1
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -546,8 +546,10 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             BaseMessage baseMessage = (BaseMessage) object;
             allTaskAcceptedTaskList = baseMessage.getDataList(TaskAcceptedEty.class);
             AutoTaskListUtil.getInstance().loadList(allTaskAcceptedTaskList);
-            mHanderl.sendEmptyMessage(1);
+        } else {
+            allTaskAcceptedTaskList.clear();
         }
+        mHanderl.sendEmptyMessage(1);
     }
 
     @Override
@@ -567,6 +569,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             e.printStackTrace();
             G.showToast(" 网络错误!");
         }
+        allTaskAcceptedTaskList.clear();
         mHanderl.sendEmptyMessage(1);
     }
 

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

@@ -340,6 +340,15 @@ public class TaskHelper {
         if(timer != null)
             timer.clear();
         timer = null;
+        action1 = null;
+    }
+    /**
+     * 退出
+     */
+    public void onDestroy() {
+        clear();
+        action1 = null;
+        activity = null;
     }
 
 

+ 16 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java

@@ -573,4 +573,20 @@ public class TaskEty implements Serializable, IDownload {
         TaskChild taskChild = ListUtil.getLast(child);
         return taskChild == null || taskChild.getAlready_accepted_task_id() == lastCommitId;
     }
+
+
+    /**
+     * 不是连续任务返回true
+     * 是连续任务时,子任务中第一个处理接受任务状态时返回true
+     * @return
+     */
+    public boolean canCancelTask() {
+       switch (task_type){
+           case 1000:
+               TaskChild taskChild = ListUtil.getItem(child, 0);
+               return taskChild == null || taskChild.getStatus() == 3;
+           default:
+               return true;
+       }
+    }
 }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java

@@ -446,7 +446,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     protected void onDestroy() {
         super.onDestroy();
         EventBus.getDefault().unregister(this);
-        taskHelper.clear();
+        taskHelper.onDestroy();
     }
 
     @Override

+ 64 - 22
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -167,6 +167,13 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     TextView end_of_time_tv;
     @BindView(R.id.num_tv)
     TextView num_tv;
+    @BindView(R.id.num_tv1)
+    TextView num_tv1;
+
+    @BindView(R.id.task_detail_reward)
+    TextView task_detail_reward;
+    @BindView(R.id.task_detail_cancel)
+    TextView task_detail_cancel;
 
     private Activity activity;
     @Inject
@@ -256,6 +263,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
         num_tv.setText("剩" + taskReleaseEty.getLast_num() + "份");
 
+        TaskHelper.setTaskTagText(num_tv, taskReleaseEty);
+        TaskHelper.setNumText(num_tv1, taskReleaseEty);
 
         GlideImageLoader.setGameImage(iconIv, taskEty.getIcon());
 
@@ -282,6 +291,15 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             detailTaskTv.setText("领取福利号");
             detailTaskTv.setBackground(activity.getResources().getDrawable(R.drawable.selector_button_full_main));
         }
+        //设置是否显示取消任务按钮
+        if(gettaskAcceptedEty != null && (gettaskAcceptedEty.getStatus() == 1 || gettaskAcceptedEty.getStatus() == 2) &&
+                taskEty.canCancelTask()){
+            task_detail_reward.setVisibility(View.GONE);
+            task_detail_cancel.setVisibility(View.VISIBLE);
+        } else {
+            task_detail_reward.setVisibility(View.VISIBLE);
+            task_detail_cancel.setVisibility(View.GONE);
+        }
         updateBottom();
     }
     private void updateBottom(){
@@ -575,7 +593,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
      */
     private DownloadTaskService mDownloadTaskService;
 
-    @OnClick({R.id.detail_task_tv, R.id.web_text, R.id.ll_infos, R.id.btn_task_item, R.id.btn_up_imag, R.id.detail_share_friend_tv})
+    @OnClick({R.id.detail_task_tv, R.id.web_text, R.id.ll_infos, R.id.btn_task_item, R.id.btn_up_imag, R.id.detail_share_friend_tv, R.id.task_detail_cancel})
     public void onViewClicked(View view) {
         try {
             switch (view.getId()) {
@@ -694,6 +712,20 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 case R.id.detail_share_friend_tv:
                     Jump2View.getInstance().tryShare(activity,"task_desc_url", "task_id", releaseTaskId);
                     break;
+                case R.id.task_detail_cancel://尝试取消任务
+                    if(gettaskAcceptedEty != null && gettaskAcceptedEty.getId() > 0)
+                        取消任务(gettaskAcceptedEty.getId(), new Action1<Integer>() {
+                            @Override
+                            public void call(Integer integer) {
+                                hideProgress();
+                                gettaskAcceptedEty = null;
+                                taskReleaseEty = null;
+                                CommonUtil.getInstance().setTAskEnty(null);
+                                DataUtil.getInstance().setTaskListChanged();
+                                presenter.taskDesc(releaseTaskId);
+                            }
+                        });
+                    break;
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -929,27 +961,14 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         switch (requestCode){
             case 0:
                 if (resultCode == RESULT_OK) {
-                    if (taskReleaseEty.getAccepted_task_id() > 0) {
-                        showProgress(true);
-                        SheepApp.getInstance()
-                                .getNetComponent()
-                                .getApiService()
-                                .giveUpTask(taskReleaseEty.getAccepted_task_id())
-                                .subscribeOn(Schedulers.io())
-                                .observeOn(AndroidSchedulers.mainThread())
-                                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
-                                    @Override
-                                    public void onError(BaseMessage baseMessage) {
-                                        hideProgress();
-                                        G.showToast(baseMessage);
-                                    }
-
-                                    @Override
-                                    public void onNext(BaseMessage baseMessage) {
-                                        CommonUtil.getInstance().setTAskEnty(null);
-                                        acceptedTask();
-                                    }
-                                });
+                    if (taskReleaseEty != null && taskReleaseEty.getAccepted_task_id() > 0) {
+                        取消任务(taskReleaseEty.getAccepted_task_id(), new Action1<Integer>() {
+                            @Override
+                            public void call(Integer integer) {
+                                CommonUtil.getInstance().setTAskEnty(null);
+                                acceptedTask();
+                            }
+                        });
                     }
                 }
                 break;
@@ -963,6 +982,29 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
     }
 
+    private void 取消任务(int id, final Action1<Integer> action1) {
+        showProgress(true);
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .giveUpTask(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        hideProgress();
+                        G.showToast(baseMessage);
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if(action1 != null)
+                            action1.call(1);
+                    }
+                });
+    }
+
     /**
      * 领取任务
      */

BIN
app/src/main/res/drawable-xhdpi/index_download.png


BIN
app/src/main/res/drawable-xhdpi/index_download.webp


BIN
app/src/main/res/drawable-xxhdpi/index_download.webp


+ 29 - 6
app/src/main/res/layout/task_detail_layout.xml

@@ -153,14 +153,30 @@
                                 android:layout_height="0dp"
                                 android:layout_weight="3"/>
 
-                            <TextView
-                                android:id="@+id/num_tv"
-                                android:layout_width="wrap_content"
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
-                                android:text=""
-                                android:textSize="@dimen/text_size_2"
-                                android:textColor="@color/txt_black_818181"/>
+                                android:gravity="center_vertical"
+                                android:orientation="horizontal">
 
+                                <TextView
+                                    android:id="@+id/num_tv"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text=""
+                                    android:textSize="@dimen/text_size_2"
+                                    android:textColor="@color/txt_black_818181"/>
+                                <TextView
+                                    android:id="@+id/num_tv1"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginStart="@dimen/content_padding"
+                                    android:text=""
+                                    android:textColor="@color/txt_black_818181"
+                                    android:textSize="@dimen/text_size_2"
+                                    android:visibility="gone" />
+                            </LinearLayout>
                             <View
                                 android:layout_width="match_parent"
                                 android:layout_height="0dp"
@@ -195,6 +211,7 @@
                                 android:textSize="@dimen/text_size_20"
                                 android:layout_gravity="center_horizontal"/>
                             <TextView
+                                android:id="@+id/task_detail_reward"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:text="任务奖励"
@@ -202,6 +219,12 @@
                                 android:layout_gravity="center_horizontal"
                                 android:textColor="@color/txt_black_818181"/>
                             <TextView
+                                android:id="@+id/task_detail_cancel"
+                                style="@style/style_button_find"
+                                android:text="取消任务"
+                                android:textSize="@dimen/text_size_2"
+                                android:visibility="gone"/>
+                            <TextView
                                 android:id="@+id/detail_task_tv"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"