zengjiebin лет назад: 8
Родитель
Сommit
c8591e6592

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

@@ -307,7 +307,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 .apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE))
                 .preload(800, 800);
         if(userEntity.getNewbie_task_status() < 15){//为15时代表已经完成所有新手任务,不是新手
-            newbie_task.setVisibility(View.VISIBLE);
             try {
                 newbie_task_record = MyDbManager.getInstance().dbFindNewbieTaskRecord(userEntity.getInvitation_code());
             } catch (DbException e) {
@@ -328,6 +327,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     .subscribe(new SheepSubscriber<BaseMessage>(getContext()) {
                         @Override
                         public void onNext(BaseMessage baseMessage) {
+                            newbie_task.setVisibility(View.VISIBLE);
                             List<NewbieTask> newbieTaskList = baseMessage.getDatas(NewbieTask.class);
                             if(BinaryUtil.isInt(userEntity.getNewbie_task_status(),0, 0)){//第一个任务未完成
                                 DialogNewbieTaskRegistSuccess.showDialog(getActivity(), newbie_task_record);
@@ -352,6 +352,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
                         @Override
                         public void onError(BaseMessage baseMessage) {
+                            newbie_task.setVisibility(View.GONE);
                             System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
                         }
                     });

+ 16 - 8
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -9,7 +9,9 @@ import com.kfzs.duanduan.ActMain;
 import com.kfzs.duanduan.bean.KFIntentKeys;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.NewbieTaskRecord;
+import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
+import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.WXOnHookAccount;
 import com.sheep.gamegroup.view.activity.AccountAndSecurityAct;
@@ -306,22 +308,28 @@ public class Jump2View {
     /**
      * 跳出弹框页面
      * @param context
-     * @param o
+     * @param curTask
+     * @param runTask
      */
-    public synchronized void goDialogActivityView(Context context, TaskEty o){
+    public synchronized void goDialogActivityView(Context context, TaskEty curTask, TaskAcceptedEty runTask){
         Intent intent = new Intent(context, DialogActivity.class);
-        intent.putExtra("task_entity", o);
-        context.startActivity(intent);}
+        intent.putExtra("task_entity", curTask);
+        intent.putExtra("task_accepted_entity", runTask);
+        context.startActivity(intent);
+    }
 
     /**
      * 跳出弹框页面
      * @param context
-     * @param o
+     * @param curTask
+     * @param runTask
      */
-    public synchronized void goTaskDetailView(Context context, TaskEty o){
+    public synchronized void goTaskDetailView(Context context, TaskEty curTask, TaskAcceptedEty runTask){
         Intent intent = new Intent(context, TaskDetailAct.class);
-        intent.putExtra("task_entity", o);
-        context.startActivity(intent);}
+        intent.putExtra("task_entity", curTask);
+        intent.putExtra("task_accepted_entity", runTask);
+        context.startActivity(intent);
+    }
 
     /**
      * 跳到已做过任务列表页面

+ 40 - 6
app/src/main/java/com/sheep/gamegroup/view/activity/DialogActivity.java

@@ -1,6 +1,7 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
+import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
@@ -30,8 +31,10 @@ import com.kfzs.duanduan.services.DownloadTaskService;
 import com.sheep.gamegroup.di.components.DaggerTaskDialogComponent;
 import com.sheep.gamegroup.di.modules.TaskDialogModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskState;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.TaskDialogContract;
 import com.sheep.gamegroup.presenter.TaskDialogPresenter;
 import com.sheep.gamegroup.util.CommonUtil;
@@ -41,6 +44,7 @@ import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.view.adapter.TaskStateAdapter;
 import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
+import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
@@ -59,6 +63,8 @@ import javax.inject.Inject;
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
 
 import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
 
@@ -84,6 +90,7 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
     @BindView(R.id.listview)
     MyListview listview;
     private TaskEty task_entity;
+    private TaskAcceptedEty task_accepted_entity;
     private List<TaskState> stateList = new ArrayList<>();//状态列表
     private TaskStateAdapter stateAdapter;
 
@@ -141,6 +148,7 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
     private void initViews() {
 
         task_entity = (TaskEty) getIntent().getSerializableExtra("task_entity");
+        task_accepted_entity = (TaskAcceptedEty) getIntent().getSerializableExtra("task_accepted_entity");
         if (task_entity == null) {
             finish();
             return;
@@ -206,12 +214,29 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
         try{
             switch (type){
                 case 0://领取任务
-                    JSONObject object = new JSONObject();
-
-                    object.put("device_id",DeviceUtil.getDeviceId(activity));
-                    object.put("release_task_id", Integer.valueOf(task_entity.getRelease_task_id()+""));
-                    preference.acceptedTask(object);
-                    UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_ACCEPT);
+                    if(task_accepted_entity == null){//没有正在进行的任务
+                        acceptedTask();
+                    } else {//先取消正在进行的任务
+                        SheepApp.getInstance().getNetComponent().getApiService().giveUpTask(task_accepted_entity.getId())
+                                        .subscribeOn(Schedulers.io())
+                                        .observeOn(AndroidSchedulers.mainThread())
+                                        .subscribe(new SheepSubscriber<BaseMessage>(activity) {
+                                            @Override
+                                            public void onNext(BaseMessage baseMessage) {
+                                                if(BuildConfig.DEBUG)
+                                                    System.out.println("baseMessage onNext "+ JSON.toJSONString(baseMessage));
+                                                acceptedTask();
+                                                task_accepted_entity = null;
+                                            }
+
+                                            @Override
+                                            public void onError(BaseMessage baseMessage) {
+                                                if(BuildConfig.DEBUG)
+                                                    System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
+                                                G.showToast(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                                            }
+                                        });
+                    }
                     break;
                 case 1://开始试玩
                     toTestPlay();
@@ -262,6 +287,15 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
             e.printStackTrace();
         }
     }
+
+    private void acceptedTask() {
+        JSONObject object = new JSONObject();
+        object.put("device_id",DeviceUtil.getDeviceId(activity));
+        object.put("release_task_id", Integer.valueOf(task_entity.getRelease_task_id()+""));
+        preference.acceptedTask(object);
+        UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_ACCEPT);
+    }
+
     /**
      * 去试玩
      */

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

@@ -34,6 +34,7 @@ import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.di.components.DaggerTaskDetailComponent;
 import com.sheep.gamegroup.di.modules.TaskDetailModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.UploadResult;
 import com.sheep.gamegroup.presenter.TaskDetailContract;
@@ -94,6 +95,7 @@ public class TaskDetailAct extends BaseActivity implements TaskDetailContract.Vi
     TaskDetailPresenter presenter;
 
     private TaskEty taskEty;
+    private TaskAcceptedEty task_accepted_entity;
     private DialogShowLoading dialogShowLoading;
 
     /**
@@ -123,6 +125,7 @@ public class TaskDetailAct extends BaseActivity implements TaskDetailContract.Vi
     public void initView() {
         activity = this;
         taskEty = (TaskEty) getIntent().getSerializableExtra("task_entity");
+        task_accepted_entity = (TaskAcceptedEty) getIntent().getSerializableExtra("task_accepted_entity");
         DaggerTaskDetailComponent.builder()
                 .netComponent(SheepApp.get(activity).getNetComponent())
                 .taskDetailModule(new TaskDetailModule(this))
@@ -242,7 +245,7 @@ public class TaskDetailAct extends BaseActivity implements TaskDetailContract.Vi
                     PackageUtil.installApk(SheepApp.mContext, PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""));
                 }
                 else {
-                    Jump2View.getInstance().goDialogActivityView(activity, taskEty);
+                    Jump2View.getInstance().goDialogActivityView(activity, taskEty, task_accepted_entity);
                     UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
                 }
                 break;

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/TryMakeMoneyact.java

@@ -128,7 +128,7 @@ public class TryMakeMoneyact extends BaseActivity implements TryMakeMoneyContrac
         for (int i = 0; i < 2; i++) {
             tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
         }
-        tryMakeMoneyAdp.addHaveTask(false);
+        tryMakeMoneyAdp.setTaskAcceptedEty(null);
         presenter.releaseTask(null);
     }
 
@@ -186,7 +186,7 @@ public class TryMakeMoneyact extends BaseActivity implements TryMakeMoneyContrac
             TaskAcceptedEty taskAcceptedEty = JSONObject.parseObject(JSONObject.toJSONString(baseMessage.getData()), TaskAcceptedEty.class);
             tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, taskAcceptedEty),position);
             tryMakeMoneyAdp.addPresenter(presenter);
-            tryMakeMoneyAdp.addHaveTask(true);
+            tryMakeMoneyAdp.setTaskAcceptedEty(taskAcceptedEty);
             position ++;
 //            mhandler.sendEmptyMessage(0);
         }catch (Exception e){

+ 12 - 15
app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java

@@ -60,7 +60,6 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
     private final static int TAG_ID_TEMP = R.id.view_tag_1;
     @Inject
     TryMakeMoneyPresenter presenter;
-    private boolean isHave;
     private Context context;
 
     public TryMakeMoneyAdp(Context context) {
@@ -111,12 +110,14 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
     }
 
     /**
-     * 传入是否有自己运行的任务
-     * @param isHave
+     * 传入正在运行的任务
+     * @param taskAcceptedEty
      */
-    public void addHaveTask(boolean isHave){
-        this.isHave = isHave;
+    public void setTaskAcceptedEty(TaskAcceptedEty taskAcceptedEty) {
+        this.taskAcceptedEty = taskAcceptedEty;
     }
+    private TaskAcceptedEty taskAcceptedEty;
+
 
     /**
      * 获取已发布的
@@ -175,7 +176,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                         taskEty.setBonus(etyList.get(i).getBonus());
                         taskEty.setRelease_task_id(etyList.get(i).getId());
                         taskEty.setName(etyList.get(i).getName());
-                        Jump2View.getInstance().goTaskDetailView(context, taskEty);
+                        Jump2View.getInstance().goTaskDetailView(context, taskEty, taskAcceptedEty);
                     }
                 });
                 Glide.with(context)
@@ -185,15 +186,11 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                 viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
-                        if(isHave){
-                            G.showToast("请先取消已接受的任务");
-                            return;
-                        }
                         TaskEty taskEty = etyList.get(i).getTask();
                         taskEty.setRunTask(0);
                         taskEty.setRelease_task_id(etyList.get(i).getId());
                         taskEty.setName(etyList.get(i).getName());
-                        Jump2View.getInstance().goDialogActivityView(context, taskEty);
+                        Jump2View.getInstance().goDialogActivityView(context, taskEty, taskAcceptedEty);
                     }
                 });
                 setDebugDownLoad(context, viewHolder.itemView, etyList.get(i).getTask());
@@ -256,7 +253,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                         taskEty.setRelease_task_id(etyList.get(i).getRelease_task().getId());
                         taskEty.setAcceptedTaskId(etyList.get(i).getId());
                         taskEty.setName(etyList.get(i).getRelease_task().getName());
-                        Jump2View.getInstance().goTaskDetailView(context, taskEty);
+                        Jump2View.getInstance().goTaskDetailView(context, taskEty, taskAcceptedEty);
                         UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DETAIL);
                     }
                 });
@@ -280,7 +277,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                         taskEty.setRelease_task_id(etyList.get(i).getRelease_task().getId());
                         taskEty.setName(etyList.get(i).getRelease_task().getName());
                         taskEty.setAcceptedTaskId(etyList.get(i).getId());
-                        Jump2View.getInstance().goDialogActivityView(context, taskEty);
+                        Jump2View.getInstance().goDialogActivityView(context, taskEty, taskAcceptedEty);
                     }
                 });
                 setDebugDownLoad(context, viewHolder.itemView, etyList.get(i).getRelease_task().getTask());
@@ -334,7 +331,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                 taskEty.setRelease_task_id(acceptedEty.getRelease_task().getId());
                 taskEty.setAcceptedTaskId(acceptedEty.getId());
                 taskEty.setName(acceptedEty.getRelease_task().getName());
-                Jump2View.getInstance().goTaskDetailView(context, taskEty);
+                Jump2View.getInstance().goTaskDetailView(context, taskEty, taskAcceptedEty);
                 UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DETAIL);
             }
         });
@@ -346,7 +343,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                 taskEty.setRelease_task_id(acceptedEty.getRelease_task().getId());
                 taskEty.setName(acceptedEty.getRelease_task().getName());
                 taskEty.setAcceptedTaskId(acceptedEty.getId());
-                Jump2View.getInstance().goDialogActivityView(context, taskEty);
+                Jump2View.getInstance().goDialogActivityView(context, taskEty, taskAcceptedEty);
             }
         });
         setDebugDownLoad(context, holder.itemView, acceptedEty.getRelease_task().getTask());